Message 1 of 5
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I'm trying to modify this rule to only rename certain characters in the file name, but have no success. What i'm trying to accomplish is when i save my parent assembly which is "ST-100000 Stairs Assembly" to "250001-100000" i'd like for all the parts to retain the same amount of characters from the left. Each part in the assembly uses "ST" as the first two characters, then it's the same amount of characters afterwards except for added characters such as "Stairs assembly" which i don't need along with other parts. Any help?
If ThisApplication.ActiveDocumentType <> DocumentTypeEnum.kAssemblyDocumentObject Then MsgBox("This rule '" & iLogicVb.RuleName & "' only works for Assembly Documents.",vbOK, "WRONG DOCUMENT TYPE") Return End If Dim oADoc As AssemblyDocument = ThisApplication.ActiveDocument Dim oFileDlg As Inventor.FileDialog = Nothing ThisApplication.CreateFileDialog(oFileDlg) oFileDlg.Filter = "Autodesk Inventor Assembly Files (*.iam)|*.iam" oFileDlg.InitialDirectory = ThisApplication.DesignProjectManager.ActiveDesignProject.WorkspacePath oFileDlg.FileName = IO.Path.GetFileName(oADoc.FullFileName).TrimEnd("."c,"i"c,"a"c,"m"c) oFileDlg.DialogTitle = "Specify New Name & Location For Copied Assembly" oFileDlg.CancelError = True On Error Resume Next oFileDlg.ShowSave If Err.Number <> 0 Then MsgBox("No File Saved.", vbOKOnly, "DIALOG CANCELED") ElseIf oFileDlg.FileName <> "" Then oNewFileName = oFileDlg.FileName oADoc.SaveAs(oNewFileName, False) End If oADoc = Nothing InventorVb.DocumentUpdate() oADoc = ThisApplication.ActiveDocument Dim oLast3Chars As String For Each oRefDoc As Document In oADoc.AllReferencedDocuments ThisApplication.Documents.Open(oRefDoc.FullFileName,False) oLast3Chars = Left(Right(oRefDoc.FullFileName, 7), 10) If oRefDoc.DocumentType = DocumentTypeEnum.kPartDocumentObject Then oRefDoc.SaveAs(Left(oADoc.FullFileName, Len(oADoc.FullFileName) -4) & oLast3Chars & ".ipt", True) ElseIf oRefDoc.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then oRefDoc.SaveAs(Left(oADoc.FullFileName, Len(oADoc.FullFileName) -4) & oLast3Chars & ".iam", True) End If oRefDoc.Close Next Dim oOccDoc As Document Dim oOccNewFileName As String For Each oOcc As ComponentOccurrence In oADoc.ComponentDefinition.Occurrences oOccDoc = oOcc.Definition.Document oLast3Chars = Left(Right(oOccDoc.FullFileName, 7), 10) If oOccDoc.DocumentType = DocumentTypeEnum.kPartDocumentObject Then oOccNewFileName = Left(oADoc.FullFileName,Len(oADoc.FullFileName)-4) & oLast3Chars & ".ipt" ElseIf oOccDoc.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then oOccNewFileName = Left(oADoc.FullFileName,Len(oADoc.FullFileName)-4) & oLast3Chars & ".iam" End If oOcc.Replace(oOccNewFileName, True) Next
Solved! Go to Solution.