使用零件文件名重命名切割清单实体的任意方法



我找到了一个适用于单个零件的 solidworks 宏,但我必须(办公室的其他人)每次都必须更改切割清单主体的名称。

有没有办法从零件中获取文件名(我们在多实体零件中工作)并将其应用于切割列表实体 +1 fo 每个连续实体?

如前所述,此宏重命名主体,如果它从零件文件名中获取名称,那将绝对是一流的,因为这符合我们的标准。

法典:

Dim swApp As Object
Option Explicit
Sub main()   
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2 
Dim swPart As SldWorks.PartDoc 
Dim vBodyArr As Variant  
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc 
Set swPart = swModel
swModel.ClearSelection2 True
vBodyArr = swPart.GetBodies2(0, False)  
RenameBodies swModel, vBodyArr 
End Sub
Sub RenameBodies(swModel As SldWorks.ModelDoc2, vBodyArr As Variant)  
Dim vBody As Variant  
Dim swBody As SldWorks.Body2  
Dim prefixName As String   
Dim bodycount As Integer
bodycount = 1
If IsEmpty(vBodyArr) Then Exit Sub  
prefixName = "Set swCustPropMgr = TheModel.Extension.CustomPropertyManager"
For Each vBody In vBodyArr
vBody.Name = prefixName & bodycount
bodycount = bodycount + 1
Next vBody
swModel.EditRebuild3
End Sub

我不知道你是否已经解决了你的问题,但其他人可能也需要这个。

您可以使用

prefixName = swModel.GetPathName

我测试了您的代码,并且在SolidWorks 2017上运行良好。它也应该适用于更高版本。

您可能希望摆脱文件的完整路径和扩展名。这是堆栈溢出上显示如何操作的链接: 如何删除路径和扩展名

最新更新