dimlinear命令循环
;;下面这段程序只能执行到 第1步,因水平有限,后面的2和3不会做,恳请帮忙;;希望实现的功能:循环开始 1 如果选第一(a)点,那么循环执行(command "dimlinear" a pause pause)
2如果第一点(a)为空,那么执行(command "dimlinear" "" pause pause)一次,完成后返回到1
3如果执行到第2步时,空选(即右键)程序退出
(defun c:NN(/)
(setq os (getvar "osmode"))
(if(not(tblsearch "layer" "dim"))
(command "layer" "new" "dim" "C" 3 "dim" "L" "Continuous" "dim" "LW" 0.15 "dim" ""))
(setvar "osmode" 183)
(setq a 0)
(while (/= a nil)
(progn
(setq a (getpoint "\n-->请指定标注的第一点:\n>>>或回车<选择实体>:"))
(if (/= a nil)
(command "dimlinear" a pause pause)
(command "dimlinear" "" pause pause));;;;选择标注的图元后,程序终止循环了,不能返回到“指定标注的第一点"
))
(setvar "osmode"os)
(princ))
http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 冒个烟圈的微博 本帖最后由 zkq1212 于 2016-3-16 08:41 编辑
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=111484
这里有 ;;希望实现的功能:
;循环开始
; 1 如果选第一(a)点,那么循环执行(command "dimlinear" a pause pause)
; 2如果第一点(a)为空,那么执行(command "dimlinear" "" pause pause)一次,完成后返回到1
; 3如果执行到第2步时,空选(即右键)程序退出
(defun c:NN(/)
(setq os (getvar "osmode"))
(command "layer" "M" "dim" "C" 3 "" "LW" 0.15 "" "")
(setvar "osmode" 183)
(setq pt1 T)
(while pt1
(while (setq pt1 (getpoint "\n第一点: "))
(command "DIMLINEAR" pt1 PAUSE PAUSE)
)
(if (setq pt1 (getpoint "\n第二点: ")) (command "DIMLINEAR" "" pt1 PAUSE))
)
(setvar "osmode"os)
(princ)
)
zkq1212 发表于 2016-3-16 08:38 static/image/common/back.gif
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=111484
这里有
谢谢提示。。。。。。。。。 ZZXXQQ 发表于 2016-3-16 08:53 static/image/common/back.gif
谢谢指点。。。我再琢磨琢磨 (command "dimlinear" "" pause pause));;;;选择标注的图元后,程序终止循环了,不能返回到“指定标注的第一点"=====》想出办法了没有
页:
[1]