Autodesk Inventor API 材料属性更改
Posted
技术标签:
【中文标题】Autodesk Inventor API 材料属性更改【英文标题】:Autodesk Inventor API Material Property Change 【发布时间】:2013-07-02 00:40:47 【问题描述】:我正在使用 vb.net 进行 Inventor API 编程。我需要使用 api 更改材料并获取更新的体积。我这样编码。
Dim oDoc As PartDocument
oDoc = inventorApp.ActiveDocument
Dim oDTProps As PropertySet
oDTProps = oDoc.PropertySets.Item("32853F0F-3444-11d1-9E93-0060B03C1CA6")
Dim oDesignerProp As Inventor.Property
oDesignerProp = oDTProps.ItemByPropId( _
PropertiesForDesignTrackingPropertiesEnum.kMaterialDesignTrackingProperties)
oDesignerProp = oDTProps.Item("Material")
oDesignerProp.Value = "Titanium"
oDoc.Update()
但在属性中,材料名称已更改,但并未更新质量和体积。 有人知道为什么吗?
【问题讨论】:
【参考方案1】:您必须找到材料并将其分配给组件定义。
var app =(Application) System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application");
var doc = app.ActiveDocument;
var partDoc = (PartDocument)doc;
var compDef = partDoc.ComponentDefinition;
var mass1 = compDef.MassProperties.Mass;
var mat =
(from Material material in partDoc.Materials
where material.Name == "Titan"
select material).First();
partDoc.ComponentDefinition.Material = mat;
if (mat.StyleLocation == StyleLocationEnum.kLibraryStyleLocation)
mat.ConvertToLocal();
var mass2 = compDef.MassProperties.Mass;
【讨论】:
以上是关于Autodesk Inventor API 材料属性更改的主要内容,如果未能解决你的问题,请参考以下文章
通过 API 在 Autodesk Inventor 中获取连接的元素
Autodesk Inventor C# API UserParameter.set_Units '对象不包含“set_Units”的定义'