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

Ilogic Save derived file

Hi, 

 

I'm trying to create an ilogic that creates a derived part and saves that derived part in a spesific location in my project file. I will not claim that this is something that I have created my self, it is more of a "copy/paste"-creation. 

 

SyntaxEditor Code Snippet

Try
    Dim g_App As Inventor.InventorServer = ThisApplication
       Dim AssDoc as Inventor.AssemblyDocument= ThisDoc.Document

    ' Create a new part document that will be the shrinkwrap substitute
    Dim oPartDoc As PartDocument
    oPartDoc = g_App.Documents.Add(DocumentTypeEnum.kPartDocumentObject, , True)

    Dim oPartDef As PartComponentDefinition
    oPartDef = oPartDoc.ComponentDefinition

    Dim oDerivedAssemblyDef As DerivedAssemblyDefinition
    oDerivedAssemblyDef = oPartDef.ReferenceComponents.DerivedAssemblyComponents.CreateDefinition(AssDoc.FullDocumentName)
    ' Set various shrinkwrap related options
    oDerivedAssemblyDef.DeriveStyle = DerivedComponentStyleEnum.kDeriveAsMultipleBodies
    oDerivedAssemblyDef.IncludeAllTopLevelWorkFeatures = DerivedComponentOptionEnum.kDerivedExcludeAll
    oDerivedAssemblyDef.IncludeAllTopLevelSketches = DerivedComponentOptionEnum.kDerivedExcludeAll
    oDerivedAssemblyDef.IncludeAllTopLeveliMateDefinitions = DerivedComponentOptionEnum.kDerivedExcludeAll
    oDerivedAssemblyDef.IncludeAllTopLevelParameters = DerivedComponentOptionEnum.kDerivedExcludeAll
    Call oDerivedAssemblyDef.SetHolePatchingOptions(DerivedHolePatchEnum.kDerivedPatchNone)
    Call oDerivedAssemblyDef.SetRemoveByVisibilityOptions(DerivedGeometryRemovalEnum.kDerivedRemoveNone)
    Dim oDerivedAss As DerivedAssemblyComponent
    oDerivedAss = oPartDoc.ComponentDefinition.ReferenceComponents.DerivedAssemblyComponents.Add(oDerivedAssemblyDef)
    'Call oDerivedAss.BreakLinkToFile()
    
    FEMDirectory = ThisDoc.Path()&"\FEM" 
    oFileName = ThisDoc.FileName(False) & ".ipt" 
    
    ' Save the part
    Dim partname As String=ThisDoc.PathAndFileName(False)& ".ipt"
    ThisApplication.ActiveView.Fit
    ThisApplication.CommandManager.ControlDefinitions.Item("AppIsometricViewCmd").Execute
    Call oPartDoc.SaveAs(FEMDirectory & "\" & "FEM_" & oFileName,  False)
Catch ex As Exception
        ErrorMessage = "Error creating ipt file."
        
End Try

 

My problem is that this ilogic saves the derived part in a new folder in the assembly folder e.g: C:\...\project\Assembly\FEM. When I want it to save to an already existing folder one leve up:  C:\...\project\FEM. I think the problem has to be that "ThisDoc.Path" is referering to the assembly folder. I have also tried with "Thisdoc.workspacepath", but this creates an FEM folder on the c-drive, C:\FEM, where it save the derived file. Any help out there?