' **************************************************
'提取代号_名称命名的零件,程序以_进行分界
' **************************************************
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim retval As String
Set swApp = Application.SldWorks
Set swModel = swApp.GetFirstDocument
path_name = swModel.GetPathName '取出当前文档的路径及名称
name_ = swModel.GetTitle '取出当前文档的名称
L1 = InStrRev(name_, "_", , 0) '取出当前文档“_”之前代号的长度
L2 = InStrRev(name_, ".", , 0) '取出“.”之前的长度
name_front = Left(name_, L1 - 1) '取出当前文档“_”之前的文本
name_back = Mid(name_, L1 + 1, L2 - L1 - 1) '取出当前文档“_”和“.”之间的的文本
retval = swModel.DeleteCustomInfo("代号" '删除之前的代号
retval = swModel.AddCustomInfo3("", "代号", swCustomInfoText, name_front) '将代号值写入自定义属性
retval = swModel.DeleteCustomInfo("名称" '删除之前的名称
retval = swModel.AddCustomInfo3("", "名称", swCustomInfoText, name_back) '将名称值写入自定义属性
End Sub
作者: 小仓鼠 时间: 2013-6-22 09:07
自己给自己顶一个……作者: colour 时间: 2013-6-22 09:09
試試如下:win7 64位元
編碼原則為 代號_名稱.solidworks副檔名(如 123456_軸承.SLDPRT)
功能:應用宏抓出零件編碼的"代號"及"名稱",放置到屬性欄.
' 2013/12/17 2012-sp4版 test
' data
'宏 ---> 屬性
Dim swApp As Object
Sub main()
Dim retval As Boolean
Dim name_front As String
Dim swModel As SldWorks.ModelDoc2
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swModel = swApp.GetFirstDocument
path_name = swModel.GetPathName
name_ = swModel.GetTitle
L1 = InStrRev(name_, "_", , 0)
L2 = InStrRev(name_, ".", , 0)
name_front = Left(name_, L1 - 1)
name_back = Mid(name_, L1 + 1, L2 - L1 - 1)
retval = swModel.DeleteCustomInfo("代號")
retval = swModel.AddCustomInfo3("", "代號", swCustomInfoText, name_front)
retval = swModel.DeleteCustomInfo("名稱")
retval = swModel.AddCustomInfo3("", "名稱", swCustomInfoText, name_back)
End Sub test121217.rar(6.95 KB, 下载次数: 173)
2014-8-4 17:08 上传
点击文件名下载附件
作者: luoweike 时间: 2013-6-22 09:11
嗯,谢谢大神。已解决,赞一个作者: dongjun 时间: 2013-6-22 09:11
大侠,我在更改以前的零件属性时,插入方程式的步骤比较多,想一键完成,遇到如下问题,要怎么解决哦
Dim swEquationMgr As Object
Dim Part As Object
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swEquationMgr = Part.GetEquationMgr()
swEquationMgr.Add -1, "执行宏" & Chr(34) & "=" & """嵌合宏""" '这里出了问题,“嵌合宏”这位置只能是数字,字母汉字都无法插入,求解
End Sub作者: szm 时间: 2013-6-22 09:11
建議使用“回复”及“添加代码文字”。
試下改為: