We produce parts, assemblies and drawings for fabricators and rely heavily on custom properties. We export each drawing out as a PDF in the format: PART-NO.REVISION-LETTER.PDF. For example: SW001.issueA.PDF. This is saved and renamed manually despite the revision letter being in the custom properties.
When producing a new drawing for the part, the revision letter correctly pulls through to the drawing, but not to the custom properties. See below:
One solution was to use a macro to pull through the custom properties from the part to populate the drawing. This appeared to partially work but only on fields that were text (not drop-down menus) and only on parts. I'd need something to pull through custom properties from both parts and assemblies. Also, to pull through ALL of the fields. I stumbled across the below macro which only some way does what I need:
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swmodel As SldWorks.ModelDoc2
Dim swmod As SldWorks.ModelDoc2
Dim swdraw As SldWorks.DrawingDoc
Dim swview As SldWorks.View
Dim v As Variant
Dim Propname As Variant
Dim evval As Variant
Dim model As String
Dim error As Long
Dim warning As Long
Dim config As Variant
Dim addstatus As Long
Dim i As Integer
Dim comp As SldWorks.Component2
Dim swCustPropMgr As SldWorks.CustomPropertyManager
Sub main()
Set swApp = Application.SldWorks
Set swmodel = swApp.ActiveDoc
Set swdraw = swmodel
Set swview = swdraw.GetFirstView
Set swview = swview.GetNextView
v = swview.GetVisibleComponents
Set comp = v(0)
Set swmod = comp.GetModelDoc2
Propname = swmod.GetCustomInfoNames
Set swCustPropMgr = swmodel.Extension.CustomPropertyManager("")
For i = 0 To UBound(Propname)
evval = swmod.GetCustomInfoValue(config, Propname(i))
addstatus = swCustPropMgr.Add2(Propname(i), swCustomInfoText, evval)
evval = ""
Next
End Sub
Question: Is there a way to link custom properties between parts & assemblies with their linked drawing, without needing a macro?
Secondary question: If not, could someone please point me in the right direction for accessing part and assembly custom properties?
Any help would be much appreciated!
SolidworksApi/macros