lisp画角度为什么不能像鼠标一样操作??
(command "pline"p1 p2 "<45")。想画45度角,为什么这一步直接显示函数被取消??末尾加上引号也显示函数被取消。用lisp怎么样写才能像手动输入回车一样的效果? 本帖最后由 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)
)
lisperado 发表于 2019-10-29 06:40
(command "_pline"p1 p2 "@10
你的代码出来的直线是固定长度,不能实现预览点选长度啊。我想要像手动操作一样,输入<45就可以控制直线方向往上还是朝下和长度自由点选 既然你要手动还要预览为什么还要写代码,直接用命令不就行了,难道还要把cad自带命令反编译出来用吗,真是莫名其妙 start4444 发表于 2019-10-29 16:01
既然你要手动还要预览为什么还要写代码,直接用命令不就行了,难道还要把cad自带命令反编译出来用吗,真是 ...
因为这个命令需要重复反复使用,使用频率很高,每次输入太麻烦 不是很明白是不是强烈约束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
lisperado 发表于 2019-10-29 20:34
不是很明白是不是强烈约束45度倍数画线?
是这个意思,谢谢提供的网址
页:
[1]