iLogic 规则——拆分文件名自动填写图名图号

QQ截图20240508171915.jpg

在工作中,我习惯模型画好之后在设计助手里面,根据零部件装配结构顺序对文件按照(图号+图名)的格式进行统一命名。

如部件:M2A1.02.01 履带机构(M2A1=设备代号,.02=总装下第二个子部件,.01=再下一级子部件,履带机构=图名);

零件:M2A1.02.01-03 履带板 (。。。-03=上述部件的第三个子零件,履带板=图名)。

当我们出工程图的时候,在标题栏、明细栏或图框中都需要显示零部件的图号(零件代号)和图名。

在使用如上方式对模型文件重命名后,所需内部属性在并不会自动关联,需要打开文件手动编辑,这工作就变得十分繁琐。

这时候就需要我们的 iLogic 一显身手了。

参考网友们的代码编写了如下规则,可用于在总装配文件中批量将所有子零部件的文件名拆分,把前面图号部分写入对应文件的【零件代号】属性,后面图号部分写入【标题】属性。后续出图工作中就可以直接引用。

 

以下是完整代码:

 

 

 

 

(注意!在运行任何规则之前都应当确保数据的安全性!)
doc = ThisDoc.Document
Dim oAsmCompDef As AssemblyComponentDefinition = doc.ComponentDefinition
For Each CompOcc In oAsmCompDef .Occurrences
	Dim oCcdoc = CompOcc.Definition.Document
	Dim oPtno =oCcdoc .PropertySets.Item("Design Tracking Properties").Item("Part Number")
	Dim oTitle = oCcdoc .PropertySets.Item("Inventor Summary Information").Item("Title")
	Dim oCcFileName = System.IO.Path.GetFileNameWithoutExtension(oCcdoc.FullFileName)
		If CompOcc.Definition.BOMStructure = 51973 Then
			Try	
				If InStr(1, (oCcFileName), " ") = 0 Then
				oPtno.value =oCcFileName 
				Else
					 oPtno.value= ""
					 oTitle.value= Split(oCcFileName, Chr(32),)(0)
				End If	
			Catch	
			End Try
		Else
			Try	
				If InStr(1, (oCcFileName), " ") = 0 Then
				oPtno.value =oCcFileName 
				Else
					 oPtno.value= Split(oCcFileName, Chr(32),)(0)
					 oTitle.value=Split(oCcFileName, Chr(32),)(1)
				End If	
			Catch	
			End Try
			
			End If
Next

 

 

 

 

 

有任何疑问欢迎在评论区留言,做进一步讨论!

1 评论