|
经典图书 看论坛的分离宏都是以零件名中的空格或者斜杠为准进行分割,如果零件名不包含这些就无法分离,现在我自己琢磨了一个方法,不需要这些特殊符号,经测试可以准确识别分离以下几种情况:
1图号+名称的情况 ,例如:ABC123固定板,分离成图号:ABC123,名称:固定板
2名称+图号的情况, 例如:固定板ABC123,分离成图号:ABC123,名称:固定板
3纯名称,不包含图号的情况,例如:固定板,将全部写入“名称”属性
4纯图号,不包含名称的情况,例如:ABC123,将全部写入“图号”属性
以下为代码,写的不规范美观,但是能用
本帖隐藏的内容
本帖隐藏的内容
Sub MAIN()
Set swApp = CreateObject("sldworks.application")
Set Part = swApp.ActiveDoc
swApp.ActiveDoc.ActiveView.FrameState = 1
Set CurCFG = Part.GetActiveConfiguration()
ConfName = CurCFG.Name
Name = swApp.ActiveDoc.GetTitle()
C = Replace(Name, " ", "") '去除名称中的空格
B = Len(C)
G = Left(C, B - 7) '去除后缀名
For I = 1 To Len(G)
If Asc(Mid$(G, I, 1)) < 0 Then
W = I '确定第一个汉字的位置
Exit For
End If
Next
For I = 0 To Len(G) - 1
If Asc(Mid$(G, Len(G) - I, 1)) < 0 Then
X = Len(G) - I '确定最后一个汉字的位置
Exit For
End If
Next
If W > 0 Then
If W = 1 Then
s = Left(G, X) '汉字在前数字在后的情况 & 纯汉字的情况
t = Right(G, Len(G) - X)
Else
t = Left(G, W - 1) '数字在前汉字在后的情况
s = Right(G, Len(G) - W + 1)
End If
Else
s = "" '纯数字的情况
t = G
End If
blnretval = Part.AddCustomInfo3(ConfName, "图号", swCustomInfoText, frmPartID)
blnretval = Part.AddCustomInfo3(ConfName, "名称", swCustomInfoText, frmPartID)
dummy = Part.Extension.CustomPropertyManager(Part.ConfigurationManager.ActiveConfiguration.Name).Set("图号", t)
dummy = Part.Extension.CustomPropertyManager(Part.ConfigurationManager.ActiveConfiguration.Name).Set("名称", s)
End Sub
复制代码 |
|