Cze wszystkim
Obecnie pracuję nad projektem automatyzacji niektórych folderów i chciałbym zintegrować niektóre funkcje z moim istniejącym makrem, które wstawia i eksportuje zestawienie komponentów w zestawieniu w formacie TXT.
Dziękuję tym, którzy poświęcili czas, aby mnie przeczytać i dać mi kilka chwil na odblokowanie się. :)
Eksport i zapis części BOM idzie dobrze, ale mam problem, gdy próbuję pobrać wartości właściwości jednego z komponentów (jedynego, który ma te właściwości): CLIENT, LOCAL, CPLT LOCAL, DEAL, DRAFTSMAN, QTE ASS) przed skopiowaniem ich pod tą samą nazwą = wartość w złożeniu.
Majstrowałem przy czymś, "manipulując" wyeksportowaną tabelą Excela na podstawie:
AFFAIRE = Range("BG2:BG1000").Find("*", , , , xlByColumns).Value 'Cherche la première valeur non vide
On Error Resume Next
Ale to działa tylko wtedy, gdy właściwość istnieje. Krótko mówiąc, chciałbym znaleźć bardziej precyzyjne i bezpieczne rozwiązanie.
Przeszukałem i wypróbowałem wiele fragmentów kodu i/lub rozwiązań znalezionych na stronie lub w innym miejscu, ale naprawdę nie wiem wystarczająco dużo o interfejsach API i kodzie VBA, aby dostosować go do moich potrzeb.
Zidentyfikowałem jednak kilka interesujących funkcji, z których oto przykład poniżej, aby po prostu odczytać właściwości CODE w MsgBox. (to już byłby dobry krok:) ale niestety nie działa)
Dim swSelMgr As SldWorks.SelectionMgr
Dim swSelComp As Variant
Dim swSelModel As SldWorks.ModelDoc2
Dim swCustPropMgr As CustomPropertyManager
Dim swEnt As SldWorks.Entity
Dim val As String
Dim valout As String
Set swSelComp = swBOMAnnotation.GetComponents2(2, Configuration)
Set swCustPropMgr = swSelComp.Extension.CustomPropertyManager("")
swCustPropMgr.Get4 "CODE", False, val, valout 'Change property name here
MsgBox "Value: " & val & "Evaluated value: " & valout
Ostatecznym pomysłem byłoby zatem pobranie zmiennej komponentu, skopiowanie jej do zespołu, a następnie do każdej z części o właściwościach CODIFICATION ="X"
Czy masz jakieś rady i oczywiste poprawki, którymi chciałbyś się ze mną podzielić, aby mnie odblokować? Z góry bardzo dziękuję. Nie wahaj się zapytać mnie o więcej szczegółów.
Załączam moje dwa kawałki kodu, z których jeden jest naprawdę szorstki i używany do moich badań / testów... Drugi jest najprostszy, który działa po wprowadzeniu właściwości.
PS: Powinienem zaznaczyć, że nie mam dostępnych narzędzi myCADtools .
Dziękuję wam wszystkim.
Michael
test_export_txt_nomenclature.swp