|
使用宏。不过挺麻烦的。给个方案:获取文件路径,然后通过“”识别出文件夹的名字,然后。
一下是我图号分离的宏,将零件的名字分离图号和名称,写入到文件属性。如文件名是“TEMP-000_临时文件”,图号分离为TEMP-000,名称为"临时文件"
Dim swApp As Object
Dim Part As Object
Dim SelMgr As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Feature As Object
Dim a As Integer
Dim b As String
Dim m As String
Dim e As String
Dim k As String
Dim t As String
Dim c As String
Dim j As Integer
Dim strmat As String
Dim tempvalue As String
Dim ConfName As String
'Dim CurCFG As String
Sub main()
'link solidworks
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager
'获取配置名字
Set CurCFG = swApp.ActiveDoc.GetActiveConfiguration()
ConfName = CurCFG.Name
swApp.ActiveDoc.ActiveView.FrameState = 1
'设定变量
c = swApp.ActiveDoc.GetTitle() '零件名
strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)
'删除自定义属性与配置属性
blnretval = Part.DeleteCustomInfo2("", "零部件号")
blnretval = Part.DeleteCustomInfo2("", "说明")
blnretval = Part.DeleteCustomInfo2(ConfName, "代号")
blnretval = Part.DeleteCustomInfo2(ConfName, "名称")
'识别代号与名称
a = InStr(c, "_") - 1 '重点:分隔标识符,这里是一个下划线
If a > 0 Then
k = Left(c, a)
t = Left(LTrim(e), 3)
If t = "GBT" Then
e = "GB/T" + Mid(k, 4)
Else
e = k
End If
b = Mid(c, a + 2)
t = Right(c, 7)
If t = ".SLDPRT" Or t = ".SLDASM" Then
j = Len(b) - 7
Else
j = Len(b)
End If
m = Left(b, j)
End If
'写入自定义属性
blnretval = Part.AddCustomInfo3("", "零部件号", swCustomInfoText, e) '代号
blnretval = Part.AddCustomInfo3("", "说明", swCustomInfoText, m) '名称
'写入配置属性
blnretval = Part.AddCustomInfo3(ConfName, "代号", swCustomInfoText, e) '代号
blnretval = Part.AddCustomInfo3(ConfName, "名称", swCustomInfoText, m) '名称
End Sub |
|