谢谢Tharwat!这里是我的代码,如果第1层和第3层有多个圆,你的lisp能处理吗?
- (defun chkToggle ()
- (setq item1(atoi(get_tile "item1")))
- (setq item2(atoi(get_tile "item2")))
- (setq item3(atoi(get_tile "item3")))
- )
- (defun s1()
- (setq dcl_id (load_dialog "sub.dcl"))
- (if (not (new_dialog "sub" dcl_id) ) (exit))
- (action_tile "item1" "(chkToggle)")
- (action_tile "item2" "(chkToggle)")
- (action_tile "item3" "(chkToggle)")
- (action_tile "accept" "(setq ddiag 2)(done_dialog)")
- (action_tile "cancel" "(setq ddiag 1)(done_dialog)")
- (start_dialog)
- (unload_dialog dcl_id)
-
-
- (if(= ddiag 1)
- (princ "\nCancelled!")
- )
- (if (= ddiag 2)
-
- (sc2)
-
- )
- );defun
-
-
- (defun sc2 ()
- (cond
- ((= item1 1) (setq sset (ssget "x" (list '(8 . "layer1" ) '(0 . "CIRCLE")(cons 410 (getvar "CTAB"))))))
- ((= item2 1) (setq sset (ssget "x" (list '(8 . "layer2" ) '(0 . "CIRCLE")(cons 410 (getvar "CTAB"))))))
- ((= item3 1) (setq sset (ssget "x" (list '(8 . "layer3" ) '(0 . "CIRCLE")(cons 410 (getvar "CTAB"))))))
- )
- (if sset
- (repeat (setq i (sslength sset))
- (setq sn (ssname sset (setq i (1- i))))
- (entmod (subst (cons 40 (* (cdr (assoc 40 (setq e (entget sn)))) 4.)) (assoc 40 e) e))
- )
- )
- (princ)
- );defun
-
|