I am looking for help to display part of a file name that is after a certain number of characters or a dash symbol.
For example, I have a part with file name 1-123456-001
I want to be able to display only the 001 from the end after the second dash on a drawing. How can this be trimmed and displayed?
Here is another version, it can be simplified but I prefer it.
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim FileName As String
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
FileName = swModel.GetPathName
FileName = Mid(FileName, InStrRev(FileName, "\") + 1)
FileName = Left(FileName, InStrRev(FileName, ".") - 1)
FileName = Mid(FileName, InStrRev(FileName, "-") + 1)
Debug.Print FileName
End Sub
I should add that ideally I could run the macro and have it plug into a custom property value (ex PRP: “End of filename”) so I could run this across hundreds of drawings.
Deepak, based on this post and your help from the past I was able to cobble something together that works on Solidworks Parts, but I would like it to work on the drawing files as well.
Also, it would be a bonus for this macro to automatically run when saving the document.
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swCustPropMgr As SldWorks.CustomPropertyManager
Dim bRet As Boolean
Dim PropValue As String
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swCustPropMgr = swModel.Extension.CustomPropertyManager("Default")
If Not swModel Is Nothing And swModel.GetPathName <> "" Then
PropValue = Mid(swModel.GetPathName, InStrRev(swModel.GetPathName, "\") + 1)
PropValue = Left(PropValue, InStrRev(PropValue, ".") - 1)
PropValue = Mid(PropValue, InStrRev(PropValue, "-") + 1)
bRet = swCustPropMgr.Add3("DETAIL #", 30, PropValue, 1)
End If
swModel.Save
End Sub
Set swCustPropMgr = swModel.Extension.CustomPropertyManager(“Default”)
with
If swModel.GetType = 3 Then
Set swCustPropMgr = swModel.Extension.CustomPropertyManager(“”)
Else
Set swCustPropMgr = swModel.Extension.CustomPropertyManager(“Default”)
End If
Deepak,
Rather than plugging this into another property within the drawing/part, would it be possible to create a property that is linked to the filename but always displays the number after the dash? This way it is always up-to-date regardless of if the filename has changed.
This can only be done via a macro or add-in, which will update the property value on file save. You can use design table as well, and derive the property via excel formulas.