社区
AutoCAD综合讨论区
欢迎访问欧特克AutoCAD论坛!分享知识,发帖提问,浏览AutoCAD热帖。
取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

封闭的长方形,作了BOUNDARY,能用lisp解出其质心吗??

3 条回复3
已解决
回复
1 条消息(共 4 条)
nf_lee
452 次查看, 3 条回复

封闭的长方形,作了BOUNDARY,能用lisp解出其质心吗??

nf_lee
Participant
Participant

封闭的长方形,作了BOUNDARY,能用lisp解出其质心吗??

0 个赞

封闭的长方形,作了BOUNDARY,能用lisp解出其质心吗??

封闭的长方形,作了BOUNDARY,能用lisp解出其质心吗??

3 条回复3
2 条消息(共 4 条)
Rliu_zzZ
回复: nf_lee

Rliu_zzZ
Advocate
Advocate

如果是标准矩形,比较容易,就是其几何中心。取得对角点中心就可以了。

其实吧。质心一般是对面或是体来讲。所以标准做法是把这个图形变为面或是面域,再去找质心。


写的还行点“赞”;写的对点 "接受解答" 按钮.


yanlei.liu

EESignature

如果是标准矩形,比较容易,就是其几何中心。取得对角点中心就可以了。

其实吧。质心一般是对面或是体来讲。所以标准做法是把这个图形变为面或是面域,再去找质心。


写的还行点“赞”;写的对点 "接受解答" 按钮.


yanlei.liu

EESignature

3 条消息(共 4 条)
nf_lee
回复: Rliu_zzZ

nf_lee
Participant
Participant

您好,

1.长方形对角点求质心的lisp程序,已有了…

2.以BOUNDARY形式,其((-1 . <图元名: 1f650b75d70>) (0 . "LWPOLYLINE") (330 . <图元名: 1f650b8fdf0>) (5 . "9C47") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "DIM") (100 . "AcDbPolyline") (90 . 4) (70 . 1) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 390.944 50.8824) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 338.659 50.8824) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 338.659 37.8357) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 390.944 37.8357) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (210 0.0 0.0 1.0))

>>>如何提取4个点坐标, (10 390.944 50.8824), (10 338.659 50.8824), (10 338.659 37.8357), (10 390.944 37.8357)

>>(setq pt (getpoint "\n指定封闭区域的点:") )

(setq pL(bpoly pt))

(SETQ PL1 (assoc 10 (entget PL)))…只能提取1组(10 390.944 50.8824)…

0 个赞

您好,

1.长方形对角点求质心的lisp程序,已有了…

2.以BOUNDARY形式,其((-1 . <图元名: 1f650b75d70>) (0 . "LWPOLYLINE") (330 . <图元名: 1f650b8fdf0>) (5 . "9C47") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "DIM") (100 . "AcDbPolyline") (90 . 4) (70 . 1) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 390.944 50.8824) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 338.659 50.8824) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 338.659 37.8357) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 390.944 37.8357) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (210 0.0 0.0 1.0))

>>>如何提取4个点坐标, (10 390.944 50.8824), (10 338.659 50.8824), (10 338.659 37.8357), (10 390.944 37.8357)

>>(setq pt (getpoint "\n指定封闭区域的点:") )

(setq pL(bpoly pt))

(SETQ PL1 (assoc 10 (entget PL)))…只能提取1组(10 390.944 50.8824)…

4 条消息(共 4 条)
Rliu_zzZ
回复: nf_lee

Rliu_zzZ
Advocate
Advocate
已接受的解答

第三个也容易取 (setq p3(nth 24  (entget PL)))

我把这个想复杂了,我一度认为你这个想要一个非规则图形的质心。多写一点,对于非规则图形,需要把图形转为面域或是体,这样就可以使用vla-get-Centroid 取得质心的坐标变体,当看到这个函数详细说明时就会知道如何把变体转为坐标了。

 


写的还行点“赞”;写的对点 "接受解答" 按钮.


yanlei.liu

EESignature

第三个也容易取 (setq p3(nth 24  (entget PL)))

我把这个想复杂了,我一度认为你这个想要一个非规则图形的质心。多写一点,对于非规则图形,需要把图形转为面域或是体,这样就可以使用vla-get-Centroid 取得质心的坐标变体,当看到这个函数详细说明时就会知道如何把变体转为坐标了。

 


写的还行点“赞”;写的对点 "接受解答" 按钮.


yanlei.liu

EESignature

找不到想要的内容?向社区提问或分享您的知识。

到论坛发帖  

”