标题: 宏自动批量重命名(代号_名称) [打印本页] 作者: gao6300 时间: 2022-4-27 15:45 标题: 宏自动批量重命名(代号_名称) 在打开的装配体中,运行宏程序后在设计树中被选择的零件或者装配体,按照各自的代号+名称的方式自动改名(配置代号_配置名称),有没有高手能解决此问题?
本人不懂宏,只在论坛中得到部分代码。
Sub zdmm()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
c = swApp.ActiveDoc.GetTitle() '获取零件名
t = Right(c, 7)
't = UCase(t) ' 返回大写
If t = ".sldasm" Or t = ".SLDASM" Then
d = Left(c, Len(c) - 7) '去掉后缀名
End If
Set swComp = swSelMgr.GetSelectedObjectsComponent3(i, 0) '获取被点选的零件
arr = swComp.Name2 '提取被点选零件名称
Str(i - 1) = arr
If i = count Then
End If
Next
For i = 1 To count
arr = Str(i - 1)
作者: joyousfish 时间: 2022-4-27 19:12
楼主很专业,写得很好!作者: 边城浪子回头 时间: 2022-4-27 19:13
顶一下,坐等高手!作者: 淡淡的雲 时间: 2022-4-28 08:22
论坛好像有,仔细搜索作者: gao6300 时间: 2022-4-28 17:26
Dim swApp As Object
Dim Part As SldWorks.ModelDoc2
Dim t As String
Dim Partname As String
Sub Automatic_renaming()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Partname = swApp.ActiveDoc.GetTitle()
Set curcfg = swApp.ActiveDoc.GetActiveConfiguration()
configname = curcfg.Name
cname = Part.GetCustomInfoValue(configname, "名称")
ccname = Part.GetCustomInfoValue(configname, "代号") '配置代号,CustomPropertyManager还不会用 CustomPropertyManager Property (IModelDocExtension)
newPartname = ccname & "_" & cname