永发信息网

CAD VBA中Region.Centroid用法(求面域重心)

答案:1  悬赏:30  手机版
解决时间 2021-02-12 03:40
我的目的是在两个面域产生的交集的重心画一个圆,代码如下:

Public Sub ss_region()
Dim ss As AcadSelectionSet, region As Variant, p(0 To 2)
Set ss = ThisDrawing.SelectionSets.Add("sss")
ss.SelectOnScreen
Dim ents(0 to 1) As AcadEntity
Dim i As Integer
For i = 0 To 1
Set ents(i) = ss.Item(i)
Next i
ss.Delete
region = ThisDrawing.ModelSpace.AddRegion(ents)
region("0").Boolean acIntersection, region("1")
If region("0").Area > 0 Then
MsgBox "非空交集"
‘MsgBox region("0").Centroid(0)
p(0) = region("0").Centroid(0)
p(1) = region("0").Centroid(1)
P(2) = 0
Call ThisDrawing.ModelSpace.AddCircle(p, 0.5)
region("0").Delete
Else
MsgBox "交集为空"
End If
End Sub
程序运行到判断交集是否为空都没问题,但是region("0").Centroid(0) 没有返回值。。导致圆也画不上。请高手看看问题出在哪儿了。
最佳答案
在autolisp里面,如果产生了新图元,那么就需要重新提取图元,autolisp里面使用函数【entlast】来提取,如果要确认是不是有新图元产生,也可以使用【entnext】来判断。C#函数的话,是不是图元提取出现问题?

我在AutoCAD里面,一般用autolisp来写,其它的VLAX函数也可以使用,总之,那个函数方便就使用那个函数,你试试!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
医院感染中,泌尿道感染的主要致病病原体是A.
运兴运输有限责任公司计调中心怎么去啊,有知
想知道: 上海市 从莘庄站到浦卫公路怎么坐公
外国数学难题,请教中国高手。
缺爱了怎么办。。。
电信手机卡的定向流量怎么使用
建华平价商店(利民社区医疗服务中心北)地址在
项目法人就本建设项目制定的应急救援预案应当
滕州房贷能混合贷吗?
被道教徒称为“太上老君”,尊为教主的是谁
探探上,不小心左滑了怎么再找到他啊
求解 我在大学旁开了间干锅烤鱼店生意不好
盐津到重庆要多久?
灰姑娘璀璨人生鞋包馆地址在什么地方,想过去
恒鑫网吧在什么地方啊,我要过去处理事情
推荐资讯
雅依时尚女装怎么去啊,有知道地址的么
市场营销的功能包括______。A.商品销售B.市场
万分着急 请帮忙鉴定一下这对青铜剑 有图 谢
对室内刷浆工程的下列说法,正确的是()。A.分
工商银行网上信用贷款要多久到账
名侦探柯南现在还在不断更新吗?大约多少集完
烟台哪里有无痛分娩
女生束脚裤应该配高帮运动鞋还是低帮运动鞋子
中国ios怎么还没有超级马里奥跑酷
武汉华润翡翠城怎么样?
致美斋(白广路店)地址在哪,我要去那里办事
巴中万信汽车销售公司地址有知道的么?有点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?