Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.
bionorica2015
363 Views, 4 Replies

Code for saving iparts as dxf flat sheet

Hello

I have this code:

Sub CreateDxf()

Dim oDoc As PartDocument = ThisApplication.ActiveDocument
Dim oDef As SheetMetalComponentDefinition = oDoc.ComponentDefinition

Dim oPartMember As iPartMember

For Each oTab As iPartTableRow In oDef.iPartFactory.TableRows

MessageBox.Show(oTab.MemberName, "Name of the Member")

iPart.ChangeRow("", oTab.MemberName)

Dim oFeat As PartFeature
For Each oFeat In oDef.Features

If oDoc.SubType = "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then

If oDef.HasFlatPattern = False Then
oDef.Unfold
Else
oDef.FlatPattern.Edit
End If

Dim odxf As String
Dim oPath As String

oPath = ThisDoc.Path & "\DXF"

If Not System.IO.Directory.Exists(oPath) Then
System.IO.Directory.CreateDirectory (oPath)
End If

Dim odxfname As String

odxf = "FLAT PATTERN DXF?OuterProfileLayer=0&OuterProfileLayerColor=0;0;0&InteriorProfilesLayer=0&InteriorProfilesLayerColor=0;0;0&BendDownLayerLineType=37633&BendDownLayerColor=0;0;255&BendUpLayerLineType=37633&BendUpLayerColor=0;0;255IV_BEND;IV_BEND_DOWN;IV_OUTER_PROFILE;IV_INTERIOR_PROFILES;IV_FEATURE_PROFILES;IV_FEATURE_PROFILES_DOWN;IV_ALTREP_FRONT;IV_ALTREP_BACK;IV_ROLL_TANGENT;IV_ROLL&InvisibleLayers=IV_TANGENT;IV_TOOL_CENTER;IV_TOOL_CENTER_DOWN;IV_ARC_CENTERS;IV_UNCONSUMED_SKETCHES" _
+ "&RebaseGeometry=True" _
+ "&SimplifySplines=True" _
+ "&SplineTolerance=0.01" _

odxfname = oPath & "\" & oTab.MemberName & ".dxf"
oDef.DataIO.WriteDataToFile(odxf, odxfname)
oDef.FlatPattern.ExitEdit

MessageBox.Show ("DXF has been saved in this location: " + odxfname)
Else
MessageBox.Show ("There must be a sheetmetal component to get the dxf file!")
End If

Next

Next
End Sub

 

But when I put it into vba to create macros these lines are getting red :

bionorica2015_1-1653242464475.pngbionorica2015_2-1653242482792.png

Please help what I must do to solve these problems?

PS: When I put it into ilogic rule these errors occur;

System.ArgumentException: Параметр задан неверно. (Исключение из HRESULT: 0x80070057 (E_INVALIDARG))
в System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
в Inventor.DataIO.WriteDataToFile(String Format, String FileName)
в ThisRule.Main()
в Autodesk.iLogic.Exec.AppDomExec.ExecRuleInAssembly(Assembly assem)
в iLogic.RuleEvalContainer.ExecRuleEval(String execRule)

 

Yhis code is written for Inventor 2021. my Inventor is 2020