或者,考虑以下代码:
- (defun c:test ( / layer doc eLast ent obj ) (vl-load-com)
- ;; Example by Lee Mac 2011 - www.lee-mac.com
- (setq layer "P-HEATTRACE"
- doc (vla-get-ActiveDocument (vlax-get-acad-object))
- )
- (if (not (tblsearch "LAYER" layer)) (vla-Add (vla-get-Layers doc) layer))
- (setq eLast (entlast))
- (command "_.pline")
- (while (= 1 (logand 1 (getvar 'CMDACTIVE))) (command pause))
- (if
- (and
- (not (equal eLast (setq ent (entlast))))
- (setq obj (vlax-ename->vla-object ent))
- (vl-every
- (function
- (lambda ( d / l )
- (if
- (not
- (vl-catch-all-error-p
- (setq l
- (vl-catch-all-apply 'vlax-invoke (list obj 'Offset d))
- )
- )
- )
- (mapcar '(lambda ( o ) (vla-put-Layer o layer)) l)
- )
- )
- )
- (list 3.0 -3.0)
- )
- )
- (entdel ent)
- )
- (princ)
- )
|