怎么中途终止
新手有个问题请教,在command的pause处按esc或右键终止,程序并不会退出,而是往下进行.(setq pt2 (getpoint pt1))
(command "_dimlinear" pt1 pt2 pause )
::::::::::::::::::想在这里的pause(指定尺寸位置)时按esc或右键终止退出程序,又不想多添加一个别的动作来终止,不知道能不能实现
(setq nam (entlast))
(command "_move" nam "" ) 本帖最后由 aihuyujian 于 2021-6-17 09:21 编辑
没明白你在指定尺寸位置时退出要干啥而且用command在指定尺寸位置时退出也不生成标注啊 相当于没执行
如果你想指定pt1 pt2后直接生成标注不自己点击 完全可以再加一个参数啊 (command "_dimlinear" pt1 pt2 pt3)
有时我只想看一下距离,或距离不准,就得先修改距离在给出尺寸,所以要中途退出。 本帖最后由 aihuyujian 于 2021-6-17 16:33 编辑
wwchlncad 发表于 2021-6-17 09:50
有时我只想看一下距离,或距离不准,就得先修改距离在给出尺寸,所以要中途退出。
你的意思是生成标注对象才执行之后的程序,如果ESC或者右键中止就不执行之后的程序是吧?
那你就在之后的程序前面加一个判断呗
(setq pt2 (getpoint pt1))
(command "_dimlinear" pt1 pt2 pause )
(setq nam (entlast))
(if (= (cdr (assoc 0 (entget nam))) "DIMENSION")(progn
(command "_move" nam "" )
...
))
这样用得保证你用这个程序之前最后一个对象不是"DIMENSION"标注对象不然还会执行
你可以选择在(command "_dimlinear")之前加一个(COMMAND"LINE" pt1 pt2) 来避免这种情况
这样确实可以,解决了一个想了好久的一个问题,多谢帮助! 这样是否合适:
(defun c:13(/ p1 p2)
(if (and
(setq p1 (getpoint "\n 请指定基点标注第一点:"))
(setq p2 (getpoint p1 "\n 请指定基点标注下一点:"))
)
(vl-cmdf "dimlinear" "non" p1 p2 "\\")
)
(princ)) 669423907 发表于 2021-6-19 18:34
这样是否合适:
(defun c:13(/ p1 p2)
(if (and
(if (and
(setq p1 (getpoint "\n 请指定基点标注第一点:"))
(setq p2 (getpoint p1 "\n 请指定基点标注下一点:"))
)
(vl-cmdf "dimlinear" "non" p1 p2 "\\")
)
(setq nam (entlast))
(command "_move" nam "" ))
是无法在指定尺寸位置时取消命令后,后续的entlast不继续,跳出整个程序的。或许我的用法有问题,请指教。
页:
[1]