[Inventor] Inventor自动化子零件文件及工程图重命名iLogic程序

JUMU实名认证 发表于 2026-05-13 00:03 | 显示全部楼层 | 复制链接分享      上一主题  翻页  下一主题
在部件环境中,部件中选个零件或者部件,修改对应的零件部件文件名,并同步更改工程图文件名。鼠标先选择零件 再运行。
  1. Imports File = System.IO.File
  2. Imports Path = System.IO.Path
  3. '在部件环境中,部件中选个零件或者部件,修改对应的零件部件文件名,并同步更改工程图文件名
  4. '鼠标先选择零件 再运行
  5. Sub Main()
  6.         If ThisDoc.Document.DocumentType = kPartDocumentObject Then
  7.                 MsgBox("仅在部件环境中使用!")
  8.                 Return
  9.         End If
  10.         On Error Resume Next
  11.         Dim oDrawDoc As DrawingDocument
  12.         Dim oOcc As ComponentOccurrence
  13.         oOcc = ThisApplication.ActiveDocument.SelectSet.Item(1)
  14.         If Err.Number <> 0 Then
  15.                 MsgBox("你必须选择一个零件!")
  16.                 Exit Sub
  17.         End If
  18.         On Error GoTo 0
  19.         Dim oDoc = oOcc.Definition.Document
  20.         Err.Clear
  21.         filepath = oDoc.fullfilename '获得全路径名称
  22.         Dim oFileName = IO.Path.GetFileNameWithoutExtension(filepath) '获取无扩展名的名称 ( returns: 1234)
  23.         FName = InputBox("零件名称是:", "请输入...", oFileName)
  24.         If FName = "" Then
  25.                 FName = oldname
  26.                 MsgBox("名称不能为空!")
  27.                 Return
  28.         End If
  29.         If FName = oFileName Then
  30.                 MsgBox("名称不能为之前名称!或者相同")
  31.                 Return
  32.         End If
  33.         On Error Resume Next
  34.         PP = IO.Path.GetDirectoryName(filepath) '得到的路径 (returns: C:\Temp\Test)
  35.         Dim oExt = IO.Path.GetExtension(filepath) '得到扩展 ( returns: .ipt)
  36.         Dim pathstr = PP + "" + FName + oExt
  37.         If File.Exists(pathstr) Then
  38.                 MsgBox("已存在同名文件!")
  39.         Else
  40.                 Err.Clear
  41.                 oDoc.SaveAs(pathstr, True)
  42.                 oOcc.Replace(pathstr, True)
  43.                 My.Computer.FileSystem.DeleteFile(filepath, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin, FileIO.UICancelOption.DoNothing)

  44.                 Dim newStockNum As String = InputBox("新物料号(Part Number):", "属性填写")
  45.                 iProperties.Value(FName & oExt, "Project", "Part Number") = newStockNum
  46.                 iProperties.Value(FName & oExt, "Project", "Stock Number") = newStockNum

  47.                 Call idwdrawingnamechangefx(filepath, pathstr)'调用idw工程图修改子函数
  48.                 Call dwgdrawingnamechangefx(filepath, pathstr)'调用dwg工程图修改子函数
  49.                 Err.Clear
  50.         End If
  51. End Sub
  52. Sub idwdrawingnamechangefx(ByRef oldModelPath, ByRef NewModelPath)
  53.         Dim oldDrawingPath As String
  54.         Dim NewDrawingPath As String
  55.         oldDrawingPath = Strings.Left(oldModelPath, Strings.Len(oldModelPath) -3) + "idw" '老工程图路径
  56.         NewDrawingPath = Strings.Left(NewModelPath, Strings.Len(NewModelPath) -3) + "idw" '新工程图路径
  57.         IO.File.Copy(oldDrawingPath, NewDrawingPath)'复制工程图新的到指定路径
  58.         Dim oDrawDoc As DrawingDocument
  59.         oDrawDoc = ThisApplication.Documents.Open(NewDrawingPath, True)'打开复制后新工程图(打开窗口不显示)
  60.         Dim oFD As FileDescriptor
  61.         oFD = oDrawDoc.File.ReferencedFileDescriptors(1)
  62.         oFD.ReplaceReference(NewModelPath)' 替换引用文档为改名后的模型文档
  63.         My.Computer.FileSystem.DeleteFile(oldDrawingPath, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin, FileIO.UICancelOption.DoNothing)'删除旧工程图
  64.         oDrawDoc.Close(False)' 保存修改并关闭工程图
  65. End Sub
  66. Sub dwgdrawingnamechangefx(ByRef oldModelPath, ByRef NewModelPath)
  67.         Dim oldDrawingPath As String
  68.         Dim NewDrawingPath As String
  69.         oldDrawingPath = Strings.Left(oldModelPath, Strings.Len(oldModelPath) -3) + "dwg" '老工程图路径
  70.         NewDrawingPath = Strings.Left(NewModelPath, Strings.Len(NewModelPath) -3) + "dwg" '新工程图路径
  71.         IO.File.Copy(oldDrawingPath, NewDrawingPath)'复制工程图新的到指定路径
  72.         Dim oDrawDoc As DrawingDocument
  73.         oDrawDoc = ThisApplication.Documents.Open(NewDrawingPath, True)'打开复制后新工程图(打开窗口不显示)
  74.         Dim oFD As FileDescriptor
  75.         oFD = oDrawDoc.File.ReferencedFileDescriptors(1)
  76.         oFD.ReplaceReference(NewModelPath)' 替换引用文档为改名后的模型文档
  77.         My.Computer.FileSystem.DeleteFile(oldDrawingPath, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin, FileIO.UICancelOption.DoNothing)'删除旧工程图
  78.         oDrawDoc.Close(False)' 保存修改并关闭工程图
  79. End Sub
复制代码


  距米网  

找到您想要的设计

工程师、学生在线交流学习平台
关注我们

手机版- JMCAD苏ICP备18040927号-1

©2017-2026 常州居居米智能技术有限公司 苏公网安备32041102000587号