Kapali geometrik seklin agirlik merkezini bulmak icin paylastigimiz lisp kodunu, seklin plan duzleminde oldugunu varsayarak yazmistik.. Ancak bu sekil plan duzleminde degilse create edilen region nesnenin 'Centroid noktasi hesaplanamaz ve kod hata vererek sonlanir.. Bu hata giderilmis olup son hali asagidaki gibidir..
Kod:
(defun c:qw (/ dc ms ss e n)
(vl-load-com)
(if (setq dc (vla-get-ActiveDocument
(vlax-get-acad-object))
ms (vla-get-ModelSpace dc)
ss (ssget))
(progn (vla-StartUndomark dc)
(repeat (setq e (sslength ss))
(setq e (1- e))
(if (not (vl-catch-all-error-p
(vl-catch-all-apply 'vlax-invoke
(list ms 'AddRegion (list
(vlax-ename->vla-object
(ssname ss e)))))))
(progn
(setq n (vlax-ename->vla-object
(entlast)))
(if (not (vl-catch-all-error-p
(vl-catch-all-apply 'vlax-get
(list n 'Centroid))))
(vla-AddPoint ms (vlax-3d-point
(vlax-get n 'Centroid))))
(vla-Delete n)
)
)
) (vla-EndUndomark dc)
)
) (prin1)
)