238 发表于 2013-3-7 18:08:56

Autocad MEP-VBScript-获取对象的法线

我在Autocad MEP中工作,试图通过使用特性集和vbscript获取对象的法线 我甚至不确定这是否可能 我在Autodesk网站上找到了这篇文章http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=6057466&linkID=9240657;这描述了如何添加不是对象的自动属性的属性,并显示了此vbscript代码
RESULT="--"
On Error Resume Next
Set AcadApp = GetObject(, "AutoCAD.Application")
Set Obj = AcadApp.Activedocument.Objectidtoobject("xxxxx")
RESULT= Obj.area
我将Obj.area修改为Obj.normal,但属性集仅显示-- 我知道代码是有效的,因为我将obj.normal更改为obj.rotation,它给出了配件的旋转
有人知道如何在Autocad MEP或Autocad Architecture中获取属性集内对象的法线吗 我需要它,以便我可以看到风管管件是否已绕其中心线旋转 旋转参数仅返回XY平面中的旋转 我需要在XZ平面或ZY平面中旋转,可以从拟合的法线确定
我确实使用VBA检查了AecbDuctFitting's属性和法线是可用的属性之一
谢谢你的帮助

舞天姬 发表于 2013-3-7 19:20:06

我真的认为这样应该可以工作,但它只返回RESULT的默认字符串,这意味着obj.normal会在某处抛出错误
RESULT="Fitting Orientation Correct"
On Error Resume Next
Set AcadApp = GetObject(, "AutoCAD.Application")
Set Obj = AcadApp.Activedocument.Objectidtoobject("")
Normal = obj.normal
If Normal(2) = -1 Then
   RESULT = "UpsideDown Fitting"
End If

顺水行舟 发表于 2013-3-9 03:29:25

看看这个话题,可能会有所帮助http://forums.autodesk.com/t5/AutoCAD-Architecture/Can-this-be-done-with-VBScript/td-p/3058092

长高 发表于 2013-3-9 10:58:32

非常感谢菲索 我能够从帖子中提供的例子中得到我想要的 下面是工作代码,允许我获取属性集中对象的法线
;出错时继续下一步面由Autocad Architecture和Autocad MEP提供 再次感谢

郭柏鹭 发表于 2013-3-10 01:45:33

很高兴你成功了干杯
页: [1]
查看完整版本: Autocad MEP-VBScript-获取对象的法线