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”的定义'

启动 Autodesk Inventor 实例

autodesk inventor 2012安装不成功

使用 python 自动化 Autodesk Inventor

Autodesk Forge 大型模型查看器 - 抑制的 Inventor 组件