czww26 发表于 2019-10-28 22:18:15

lisp画角度为什么不能像鼠标一样操作??

(command "pline"p1 p2 "<45")。想画45度角,为什么这一步直接显示函数被取消??末尾加上引号也显示函数被取消。用lisp怎么样写才能像手动输入回车一样的效果?

lisperado 发表于 2019-10-29 06:40:17

本帖最后由 lisperado 于 2019-10-29 06:46 编辑

(command "_pline"p1 p2 "@10<45 ")

(command "_pline"p1 p2 "@7.071,7.071")


(defun c:tt ( / stop p1 p2 dg v1 v2 v )

(and

    (setq dg (cond ((getreal "\n请输入角度 <45.0> : ")) (45.0)))
    (setq stop '(nil (while (/= (getvar 'cmdactive) 0) (command)))
             p1   (getpoint "\n第一点.. ")
             )
       (setq p2 (getpoint p1 "\n第二点.. "))
      
       (setq v1 (strcat "@10<" (rtos dg 2)) ;"@10<45.0000"
             v(polar '(0. 0.) (* (/ dg 180.) pi) 10.0)
             v2 (apply 'strcat (apply 'append (mapcar ''((a b) (list a (rtos b 2))) '("@" ",") v)))
             ) ;"@7.0711,7.0711"
      
       (progn
      (princ )
      (alert (strcat "\n第三点取于长度10.00以及已输入角度如下 \n(command \"_pline\" p1 p2 "v1")"))
         (command "_pline" p1 p2 v1) ;"@10<45.0000"
            (stop)
            (command "_pline" (mapcar '+ '(0.0 10.0) p1) (mapcar '+ '(0.0 10.0) p2) v1 )
            (stop)
      
            (alert (strcat "或第二种写法 \n(command \"_pline\" p1 p2 "v2")"))
            (apply 'command
                     (cons "_pline"
                           (append (mapcar ''((x) (mapcar '+ '(0.0 20.0) x)) (list p1 p2)) (list v2))
;"@7.0711,7.0711"
                           )
                     )
            (stop)
            )
       )
(princ "\n示范完成!")
(princ)
)

czww26 发表于 2019-10-29 12:56:09

lisperado 发表于 2019-10-29 06:40
(command "_pline"p1 p2 "@10

你的代码出来的直线是固定长度,不能实现预览点选长度啊。我想要像手动操作一样,输入<45就可以控制直线方向往上还是朝下和长度自由点选

start4444 发表于 2019-10-29 16:01:43

既然你要手动还要预览为什么还要写代码,直接用命令不就行了,难道还要把cad自带命令反编译出来用吗,真是莫名其妙

czww26 发表于 2019-10-29 19:57:55

start4444 发表于 2019-10-29 16:01
既然你要手动还要预览为什么还要写代码,直接用命令不就行了,难道还要把cad自带命令反编译出来用吗,真是 ...

因为这个命令需要重复反复使用,使用频率很高,每次输入太麻烦

lisperado 发表于 2019-10-29 20:34:44

不是很明白是不是强烈约束45度倍数画线?

https://i.imgur.com/u4g5983.gif


http://bbs.mjtd.com/thread-178260-1-1.html

直接免去符号 @10<45d32'10"

或PLINE中执行隐形命令 'dd 10 45 32 10
https://www.cadtutor.net/forum/topic/68950-draw-plines-in-inches-metric-cad-file/?do=findComment&comment=556923

czww26 发表于 2019-10-29 23:14:39

lisperado 发表于 2019-10-29 20:34
不是很明白是不是强烈约束45度倍数画线?




是这个意思,谢谢提供的网址
页: [1]
查看完整版本: lisp画角度为什么不能像鼠标一样操作??