Inventor API: 如何在工程图里显示装配不同详细等级(LOD)的重量

来源:互联网 发布:工具书网络出版总库 编辑:程序博客网 时间:2024/05/28 18:43

这是一个Autodesk 论坛里发起的问题,有其他开发者贡献了一个样例。我觉得这个方案挺棒,就对其进行了优化和改造。其实思路很简单:


遍历装配的详细等级(LOD),激活每个等级为当前LOD,这时 iProperties.Mass 就返回当前的重量。把这个值写入一个自定义iProperties。在工程图里,创建文本,让文本绑定从模型来的iProperties,这样,就能显示对应的iProperties值。

例如:假设有个装配,其LOD是这样的:




建立一个iLogic规则,执行LOD遍历和获取重量的工作。


'get RepresentationsManagerDim repMgr As RepresentationsManager = ThisApplication.ActiveDocument.ComponentDefinition.RepresentationsManager 'record current LevelOfDetailRepresentationDim oCurrentRepName As String  = repMgr.ActiveLevelOfDetailRepresentation.Name Dim oRep As LevelOfDetailRepresentationDim oRepName Dim oMass For Each oRep In repMgr.LevelOfDetailRepresentations    oRepName = oRep.Name    'activate this LOD    repMgr.LevelOfDetailRepresentations.Item(oRepName).Activate    'get mass     oMass = iProperties.Mass     'update value of custom property     iProperties.Value("Custom", oRepName) = iProperties.MassNext 'restorerepMgr.LevelOfDetailRepresentations.Item(oCurrentRepName).Activate

运行后,可以看到iProperties里有这些数据。如果相同名字的iProperty存在,则更新为新值,若没有,则会自动创建一个iProperty。



工程图中,如果我们只想看First,Second,Thrid三个LOD的重量,这样定义文本:




这样,工程图图纸里就能关联对应的数据:




0 0
原创粉丝点击