一个叫freerefill的家伙不久前把这个放在了一起。虽然不是最干净的代码,但它非常可靠。
- (defun plverts (ent / retn listy retDum add1 add2) ;
- (vl-load-com)
- (if (= (cdr (assoc 0 (entget ent))) "LWPOLYLINE")
- (progn
- (setq retn nil
- listy (vlax-safearray->list
- (vlax-variant-value
- (vla-get-coordinates (vlax-ename->vla-object ent))
- )
- )
- )
- (while (and (setq var1 (car listy)) (setq var2 (cadr listy)))
- (setq retn (append retn (list (list var1 var2 0))))
- (setq listy (cddr listy))
- )
- )
- )
- retn
- ) ; Returns a list of 3D coordinates defining the vertices of a polygon
|