2013-07-04 1 views
0

저는 Inventor API 프로그래밍에 vb.net을 사용하고 있습니다. 필요한 것은 API를 사용하여 재질을 변경하고 업데이트 된 볼륨을 얻는 것입니다. 이렇게 코딩했습니다.Autodesk Inventor 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;