11.11.2025 22:28    

alumina
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)
)

> 1 <
Copyright © 2004-2026 SQL: 0.658 saniye - Sorgu: 49 - Ortalama: 0.01343 saniye