OCE 源头代码:AutoCAD VBA 剪力墙截面形心

AutoCAD 中的面域可以通过 MassProp 命令查询形心位置及惯性矩。但对于多段线绘制的几何图形,其属性中只有面积及周长,没有形心位置。本文旨在通过代码来解决这个问题。

暂时未找到一般性的算法,于是先从定义出发:将不规则图形分割为多个矩形来处理。例如三个矩形的面积及形心坐标分别为:A1 (X1, Y1) 、A2 (X2, Y2)、A3 (X3, Y3);则不规则图形 A = A1 + A2 + A3 的形心坐标就是:

Xc = (A1*X1 + A2*X2 + A3*X3) / (A1 + A2 + A3)

Yc = (A1*Y1 + A2*Y2 + A3*Y3) / (A1 + A2 + A3)

下面是 AutoCAD VBA 的代码实现过程。首先是 ThisDrawing 模块的内容:

Option Explicit

Public Sub PolyCenter()

Dim SeleObjts As AcadSelectionSet

Call CreateSelectionSet(SeleObjts, "SeleObjts")
SeleObjts.SelectOnScreen

Dim Objt As Object
Dim nPoly As Integer

Dim Polys() As AcadLWPolyline

For Each Objt In SeleObjts
 
If TypeOf Objt Is AcadLWPolyline Then
  nPoly = nPoly 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值