这是我能用隐含选择得到的最接近的结果
- (defun c:test (/ Prcd gr Npt Mode Par )
- (prompt "\nSelect objects, or [by Style/by Layer/by Color/...]:")
- (while (null Prcd)
- (setq gr (grread nil 4 2) Mode (car gr))
- (cond
- ((= 3 Mode)
- (princ "\nSelect Mode")
- (initget 32)
- (setq Npt (Getcorner (cadr gr) "\nOther Corner:"))
-
- (setq Objects (ssget (if (< (car (cadr gr))(car Npt)) "_W" "_C") (cadr gr) npt
- ))
- (foreach mp (vl-remove-if 'listp
- (mapcar 'cadr(ssnamex Objects)))
- (redraw mp 3))
- (setq Prcd T))
- ((and (= 2 Mode)
- (setq Par (member (cAdr gr) '(67 76 83 99 108 115))))
- (princ (strcat "\nYou Pressed " (chr (car Par))))
- (setq Prcd T))
- )
- )
- (princ)
- )
希望这有帮助 |