Tharwat 发表于 2022-7-6 08:27:16

这是我的代码,但仅限于闭合多段线。
 

(defun c:Test (/ spc s)
;;; Tharwat 25. July. 2012 ;;;
(vl-load-com)
(if (not acdoc)
   (setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
)
(setq    spc (if    (> (vla-get-activespace acdoc) 0)
         (vla-get-modelspace acdoc)
         (vla-get-paperspace acdoc)
       )
)
(while (setq s (ssget "_+.:S" '((0 . "LWPOLYLINE") (-4 . "&=") (70 . 1))))
   (progn (setq cn
         (vlax-get (setq
               r    (car (vlax-invoke
                      spc
                      'addregion
                      (list (vlax-ename->vla-object (ssname s 0)))
                  )
               )
               )
               'centroid
         )
      )
      (print cn)
      (vla-delete r)
   )
)
(princ)
)

Tharwat 发表于 2022-7-6 08:31:15

@达德加德
 
你把我的名字写错了

Dadgad 发表于 2022-7-6 08:33:46

Tharwat,非常抱歉,我正在戴尔电脑上打字,有很多重复输入。
当我第一次发帖子时,我注意到你的名字后面有一个额外的“t”,我马上又去修复它。。。。。。
这方面做得不太好,对不起!

Tharwat 发表于 2022-7-6 08:41:34

 
没关系
 
干杯

amarcon 发表于 2022-7-6 08:45:43

这是我不久前偶然发现的一个解决方案。这是免费的,所以我希望作者不介意我分享(找不到旧链接)。要进行测试,只需拖放附加的“质心”。vlx“(在附带的ZIP档案中)并键入质心。选择多段线、面域或三维实体。当我有复杂的三维实体时,我用它来检查我的其他例程,但是,在二维世界中同样有用。提示只需调整PDMODE=66,以更清楚地看到质心。
质心。拉链
页: 1 [2]
查看完整版本: 找出重心