Lesen des Teilenamens in der Baugruppe

Hallo

Ich möchte die Namen der Teile im Erstellungsbaum auslesen und in Variablen speichern.

Zum Beispiel:

Variable1= "Kronenring 26"

Variable2= "EP-BC-AR

...

...

(siehe Anhang)

Danke für Ihre Hilfe

 

JB

 


capture.png

Hallo jb!

 

Trotz meiner Zweifel habe ich es so geschafft:

 

TreePiece = InputBox("geben Sie den Namen des auszuwählenden Teils sowie dessen Nummer im Baum ein" & vbCrLf & "00-XXXXX-0-Piece-3" & vbCrLf & "'-3' ist hier der Vorkommensindex")

 

gefolgt von 

 

swModel.ClearSelection2 Wahr
bstatus = swModel.Extension.SelectByID2(stnewfilename & "@SE-XXXXX-0-Trajectory", "COMPONENT", 0, 0, 0, True, 0, Nothing, 0)

 

um das Stück auszuwählen :-)

Weitere Informationen finden Sie unter GetComponents-Methoden-API (IAssemblyDoc)

 

Hier ist ein Beispiel 

 

 

Dim swDoc As SldWorks.ModelDoc2

Dim swAss As SldWorks.AssemblyDoc

Dim stOldFileName As String, stNewFileName As String

Dim bStatus als boolescher Wert

 

Sub main()

 

    Legen Sie swApp = Application.SldWorks fest

    Festlegen von swDoc = swApp.ActiveDoc

    

    Wenn swDoc nichts ist, dann sub beenden

    Wenn swDoc.GetType <> swDocumentTypes_e.swDocASSEMBLY, dann sub beenden

    

    Setze swAss = swDoc

   

    Dim swComponents als Variante: swComponents = swAss.GetComponents(True)

    

    Für i = 0 TB UBound(swComponents)

        MsgBox swComponents(i). Name

    Nächster

    

 

Ende Sub

 

 

4 „Gefällt mir“

Zu gut!

 

Vielen Dank

Ist es auch möglich, auf diese Weise den Link zum Raum zu haben?

 

Vielen Dank im Voraus

Guten Abend allerseits,

 

Ich verstehe Ihre Anfrage nicht>> "Ist es auch möglich, auf diesem Weg den Link zum Raum zu haben?"

 

A+

 

MC

Ich verstehe den Zusammenhang des Raumes auch nicht?

3 „Gefällt mir“

Hallo

 

Mein Ziel ist es, Gleichungen basierend auf den Abmessungen der Teile einer Baugruppe zu modifizieren (Frage zur Makrogleichung im Forum).

 

Um dies zu erreichen, bestand meine erste Idee darin, die Teile in der Baugruppe zu bearbeiten, um die Gleichungen zu ändern. (pro Makro)

 

mit der Ausnahme, dass:

Für i = 0 Zu swEquationMgr.GetCount - 1 (in meinem Programm)

funktioniert nicht in einem bearbeiteten Teil ==> Ende der Schleife

 

Also zwei Lösungen:

   - 1) swEquationMgr.GetCount ändern , um die Gleichungen in einem bearbeiteten Teil lesen zu können

   - 2) Öffnen Sie nacheinander die Teile, in denen swEquationMgr.GetCount funktioniert

 

Die erste wäre wahrscheinlich besser für die Einfachheit und Ausführung des Programms. Ich habe einige Nachforschungen zur Verwendung der GetEquationMgr-Methode (IModelDoc2) angestellt, aber nichts gefunden, das mir helfen könnte.

 

Für den zweiten benötigen Sie den vollständigen Link, um den Raum zu öffnen:

Beispiel

Set Part = swApp.OpenDoc6("D:\LIBRARY\03-Technical Library Shoulder\EP-BC-AR. SLDPRT", 1, 0, "", longstatus, longwarnings)
Set Part = swApp.ActiveDoc

 

und daher durch Öffnen der Baugruppe, um die Verbindung der Teile, aus denen sie besteht, lesen zu können, um sie zu öffnen.

Natürlich verlangsamt diese Methode das Programm.

 

Ich hoffe, ich bin etwas klarer geworden^^

 

Vielen Dank 

JB

 

Alles klar!

PRB gelöst!

 

Danke für Ihre Hilfe!