详细阐述FranknBeans的建议-结合我最喜欢的grread函数来考虑这个例子:
- ; Flip block example - with (grread)
- (defun C:test ( / e enx g s k itm )
- (and
- (setq e (car (entsel "\nPick a block to flip: ")))
- (member '(0 . "INSERT") (setq enx (entget e)))
- (princ "\nPress [X/Y/Z] to flip the block <exit>: ")
- (while (not s) (setq g (grread))
- (cond
- ( (or (eq g '(2 13)) (= 25 (car g))) (setq s T) )
- ( (= 2 (car g))
- (and
- (setq k (cadr (assoc (strcase (chr (cadr g))) '(("X" 41)("Y" 42)("Z" 43)))))
- (setq itm (assoc k enx))
- (entmod (setq enx (subst (cons k (- (cdr itm))) itm enx)))
- )
- )
- ); cond
- ); while
- ); and
- (princ)
- ); defun C:test
|