这几乎也奏效了。。
- (defun c:test (/ opt)
- (setvar 'cmdecho 0)
- (vl-load-com)
- (initget "DD EE FF Select")
- (setq opt (getkword "\nSelect block entity or [DD/EE/FF/Select]: "))
- (cond
- ((or (= "DD" opt)
- (= "EE" opt)
- (= "EE" opt))
- (sssetfirst nil (ssget "_x" (list '(0 . "INSERT") (cons 2 opt))))
- (vl-cmdf "_.-refedit")
- (while (> (getvar "CMDACTIVE") 0)
- (command "_o" "" "")
- )
- )
-
- ((= "Select" opt)
- (sssetfirst nil (ssget ":S" '((0 . "INSERT"))))
- (vl-cmdf "_.-refedit")
- (while (> (getvar "CMDACTIVE") 0)
- (command "_o" "" "")
- )
- )
- )
- (setvar 'cmdecho 1)
- (princ)
- )
只有当只有一个块实例时,选择选项才能用于任何其他块。
为了爱我,我不记得在代码仍处于活动状态时将其搁置。。我知道我在什么地方读过ir。(可能在这个论坛上)
-
- ((or (= "DD" opt)
- (= "EE" opt)
- (= "EE" opt))
- (setq ss (ssget "_x" (list '(0 . "INSERT") (cons 2 opt))))
- (setq i -1)
- (while
- (sssetfirst nil (ssget "_x" (list (assoc 10 (entget (ssname ss (setq i (1+ i)))))
- (cons 2 opt))))
- (vl-cmdf "_.-refedit")
- (while (> (getvar "CMDACTIVE") 0)
- (command "_o" "" "")
- )
- )
- )
失败!!!
第一次计数后失败。。有人能猜出这个吗? |