作为另一种选择,另一种表达LISP的方式是:
但是,就速度而言,mapcar很慢:
此外,如果要转换已绘制的多段线:
- (defun c:rdMark3 (/ ss off1 off2)
- (vl-load-com)
- (if (setq ss (ssget '((0 . "LWPOLYLINE"))))
- (foreach pObj (mapcar 'vlax-ename->vla-object
- (vl-remove-if 'listp
- (mapcar 'cadr (ssnamex ss))))
- (vla-put-color pObj acWhite)
- (vla-put-ConstantWidth pObj 0.2)
- (setq off1 (vlax-safearray->list
- (vlax-variant-value
- (vla-offset pObj 0.15)))
- off2 (vlax-safearray->list
- (vlax-variant-value
- (vla-offset pObj -0.15))))
- (mapcar
- (function
- (lambda (x)
- (vla-put-color x acYellow)
- (vla-put-ConstantWidth x 0.1)))
- (append Off1 Off2))))
- (princ))
希望这有帮助
李 |