Odczytywanie nazwy części w złożeniu

Witam

Chcę odczytać nazwy części w drzewie tworzenia i zapisać je w zmiennych.

Lubię co:

Zmienna1= "Pierścień korony 26"

Zmienna2= "EP-BC-AR

...

...

(patrz załącznik)

Dziękuję za pomoc,

 

JB

 


capture.png

Witaj jb!

 

Mimo moich wątpliwości udało mi się tak:

 

TreePiece = InputBox("wprowadź nazwę części, która ma zostać wybrana, jak również jej numer w drzewie" & vbCrLf & "00-XXXXX-0-Piece-3" & vbCrLf & "'-3' będąc tutaj indeksem wystąpienia")

 

Następuje 

 

swModel.ClearSelection2 Prawda
bstatus = swModel.Extension.SelectByID2(stnewfilename & "@SE-XXXXX-0-Trajectory", "KOMPONENT", 0, 0, 0, Prawda, 0, Nic, 0)

 

w celu wybrania kawałka :-)

Zobacz interfejs API metody GetComponents (IAssemblyDoc)

 

Oto przykład 

 

 

Dim swDoc jako SldWorks.ModelDoc2

Dim swAss jako SldWorks.AssemblyDoc

Dim stOldFileName As String, stNewFileName As String

Dim bStatus As Boolean

 

Sub main()

 

    Ustaw swApp = Application.SldWorks

    Ustaw swDoc = swApp.ActiveDoc

    

    Jeśli swDoc jest niczym, wyjdź z sub

    Jeśli swDoc.GetType <> swDocumentTypes_e.swDocASSEMBLY, wyjdź z sub

    

    Ustaw swAss = swDoc

   

    Dim swComponents As Variant: swComponents = swAss.GetComponents(True)

    

    Dla i = 0 TB UBound(swComponents)

        MsgBox swComponents(i). Nazwa

    Następny

    

 

Koniec subwoofera

 

 

4 polubienia

Aż za dobrze!

 

Dziękuję

Czy w ten sposób można również uzyskać połączenie z pokojem?

 

Z góry dziękuję

Dobry wieczór wszystkim,

 

Nie rozumiem twojej prośby>> "Czy w ten sposób można również uzyskać link do pokoju?"

 

Klasa A+

 

MC

Nie rozumiem też linku do pokoju?

3 polubienia

Witam

 

Moim celem jest modyfikowanie równań na podstawie wymiarów części zespołu ( pytanie o równanie makro na forum).

 

Aby to zrobić, moim pierwszym pomysłem była edycja części w zespole w celu zmodyfikowania równań. (na makro)

 

z wyjątkiem, że:

Dla i = 0 Do swEquationMgr.GetCount - 1 (w moim programie)

nie działa w edytowanej części ==> koniec pętli

 

A więc dwa rozwiązania:

   - 1) zmień swEquationMgr.GetCount , aby móc odczytywać równania w edytowanej części

   - 2) otwórz części jeden po drugim, w których działa swEquationMgr.GetCount 

 

Pierwszy z nich byłby prawdopodobnie lepszy ze względu na prostotę i wykonanie programu. Przeprowadziłem pewne badania na temat korzystania z metody GetEquationMgr (IModelDoc2), ale nie znalazłem niczego, co by mi pomogło.

 

W przypadku drugiego musisz mieć pełny link, aby otworzyć pokój:

przykład

Ustaw część = swApp.OpenDoc6("D:\LIBRARY\03-Ramię biblioteki technicznej\EP-BC-AR. SLDPRT", 1, 0, "", longstatus, longwarnings)
Ustaw część = swApp.ActiveDoc

 

a zatem, otwierając zespół, aby móc odczytać połączenie składających się na niego części, aby je otworzyć.

Oczywiście ta metoda spowolni program.

 

Mam nadzieję, że wyraziłem się trochę jaśniej^^

 

Dziękuję 

JB

 

W porządku!

PRB rozwiązany!

 

Dziękuję za pomoc!