Makra Wyewidencjonuj własność części na rysunku

Witam wszystkich,

Utworzyłem makro do eksportu mojej nomenklatury w pliku CSV, które działa dobrze.

Teraz chcę to poprawić, formatując nazwę pliku wyjściowego.
Aby to zrobić, muszę pobrać wartość właściwości części o nazwie "DRAWING_NUM", aby umieścić ją w zmiennej, podczas gdy jestem na rysunku i ta właściwość nie istnieje na rysunku.

Czy ktoś z Was ma pomysł, jak to zrobić?
Znalazłem już na tym forum kilka przykładów odzyskiwania mienia, ale żaden z nich nie odpowiada mojemu przypadku

Z góry dziękuję

Witam

Wystarczy, że dodasz go do swojego szablonu planu i będzie on nazywany jego częścią

1 polubienie

Witam

Czy zawsze jest to element w planie i czy w tych ujęciach jest tylko jeden model, o którym mowa?

1 polubienie

Tak, w planie znajdują się już widoki, a właściwości części są pobierane w celu napełnienia wkładu

Ponownie
Zasadniczo, poniższy kod pozwala z pierwszego "zeskanowanego" widoku pobrać właściwość DRAWING_NUM pliku dołączonego do widoku.

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 polubienia

Dziękuję Cyril.f działa idealnie!

1 polubienie