我已经找到了针对SolidWorks的宏,该宏可用于单个零件,但我(办公室的其余部分)每次都必须更改切割清单主体的名称。
是否可以从零件中获取文件名(我们在多实体零件中工作)并将其应用于每个连续实体+1的切割清单实体?
如前所述,此宏重命名主体,如果它是从零件文件名中提取的,那绝对是恒星,因为这符合我们的标准。
代码:
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
答案 0 :(得分:1)
我不知道您是否已经解决了问题,但是其他人也可能需要它。
您可以使用
prefixName = swModel.GetPathName
我已经测试了您的代码,并且在SolidWorks 2017上都可以正常工作。它也应该在更高版本上工作。
您可能希望摆脱文件的完整路径和扩展名。这是stackoverflow上的链接,显示了如何执行此操作: how to remove path and extension