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
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
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
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?
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!