arri
Guest
inserisce un punto nel centroide delle geometrie selezionate (le polilinee devono essere chiuse)
segnalato da antoniovinci
Code:
(defun c:polycen (/ polyset polylist model newpl obarr newreg newpt)
(princ "\n*** select closed polylines *** ")
(if
(setq polyset(ssget '((0 . "lwpolyline"))))
(progn
(setq polylist(mapcar 'vlax-ename->vla-object
(vl-remove-if 'listp
(mapcar 'cadr(ssnamex polyset))))
model(vla-get-modelspace
(vla-get-activedocument
(vlax-get-acad-object)))
); end setq
(foreach p polylist
(if(= :vlax-true(vla-get-closed p))
(progn
(setq newpl(vla-copy p)
obarr(vlax-make-safearray vlax-vbobject '(0 . 0))
); end setq
(vlax-safearray-put-element obarr 0 newpl)
(setq newreg(car(vlax-safearray->list
(vlax-variant-value
(vla-addregion model obarr))))
newpt(vlax-3d-point
(append
(vlax-safearray->list
(vlax-variant-value
(vla-get-centroid newreg)))(list 0.0)))
); end setq
(vla-addpoint model newpt)
(vla-delete newpl)(vla-delete newreg)
); end progn
); end if
); end foreach
); end progn
(princ "\n*** notning closed polylines selected! *** ")
); end if
(princ)
); end of c:polycen
(vl-load-com)
segnalato da antoniovinci
Last edited: