Macro's Afrekenen Eigendom van een onderdeel in een tekening

Hallo allemaal,

Ik heb een macro gemaakt om mijn nomenclatuur te exporteren in een CSV-bestand dat goed werkt.

Nu wil ik het verbeteren door de uitvoerbestandsnaam te formatteren.
Om dit te doen, moet ik de waarde van een eigenschap van het onderdeel met de naam "DRAWING_NUM" ophalen om het in een variabele te zetten, terwijl ik in de tekening zit en deze eigenschap niet bestaat in de tekening.

Heeft iemand van jullie een idee om dit te laten gebeuren?
Ik heb al verschillende voorbeelden van eigendomsherstel op dit forum gevonden, maar geen van hen komt overeen met mijn geval

Bij voorbaat dank

Hallo

Het zou voldoende zijn om het toe te voegen aan uw plansjabloon en het zal er een deel van worden genoemd

1 like

Hallo

Is het altijd een onderdeel van het plan en is er maar één model dat in deze foto's wordt genoemd?

1 like

Ja, er zijn al aanzichten in het plan en de onderdeeleigenschappen worden opgehaald voor het vullen van de cartridge

Re
Kortom, de onderstaande code maakt het mogelijk om vanaf de eerste "gescande" weergave de DRAWING_NUM eigenschap van het bestand dat aan de weergave is gekoppeld, op te halen.

Dim swApp                       As SldWorks.SldWorks
Dim swModel                     As SldWorks.ModelDoc2
Dim swDraw                      As SldWorks.DrawingDoc
Dim swView                      As SldWorks.View
Dim swCustProp                  As CustomPropertyManager
Dim bRet                        As Boolean
Dim ResolvedValOut              As String
Dim sValout                     As String
Dim WasResolved                 As Boolean

Sub main()
Set swApp = CreateObject("SldWorks.Application")

Set swModel = swApp.ActiveDoc

Set swDraw = swModel
        
Set swView = swDraw.GetFirstView 'Active le fond de plan

Set swView = swView.GetNextView 'Active la première vue après le fond de plan

Set swModel = swView.ReferencedDocument 'Récupère le fichier associé à la première vue
Set swModelDocExt = swModel.Extension
Set swCustProp = swModelDocExt.CustomPropertyManager("")

bRet = swCustProp.Get5("DRAWING_NUM", False, sValout, ResolvedValOut, WasResolved) 'Récupération de la propriété "DRAWIND_NUM"

Debug.Print ResolvedValOut 'Utiliser ResolvedValout ou sValout, tout dépend si c'est une valeur calculée ou une valeur fixe

Set swModel = Nothing
Set swApp = Nothing

End Sub

2 likes

Dank je wel Cyril.f het werkt perfect!

1 like