Hallo
Ich habe ein Makro, das alle Komponenten einer Modellbaugruppe durch alle vom Benutzer über eine Excel-Datei ausgewählten Baugruppen ersetzt, dies ermöglicht es uns, sehr schnell eine Maschine zu erstellen, die aus Standardelementen besteht.
Für eines dieser Elemente (ein Teil) ändert sich nur eine Dimension, abhängig von einigen Optionen, die der Benutzer ausgewählt hat.
Ich hätte ein Solidworks-Teil speziell für jede Möglichkeit erstellen können, aber da dieses Teil für jede Maschine spezifisch ist, habe ich es vorgezogen, ein generisches Modell dieses Teils zu erstellen:
- Importieren Sie es in meine Maschinenmodellbaugruppe
- Öffnen Sie dieses generische Bauteil
- Diese Bewertung bearbeiten
- Speichern Sie das Teil und seine Zeichnung unter einem neuen Namen (generische Zeichnung bereits fertig)
- und schließen Sie dieses Teil, um zur Baugruppe in der Konstruktion zurückzukehren.
Von allen oben genannten Schritten kann ich nur mein generisches Teil (Name des Teils TEST. SLDPRT), wählen Sie es aus, öffnen Sie es und wählen Sie dann die betreffende Dimension aus, die den Namen "DIAM" trägt, für den Rest der Schritte dachte ich, ich würde die Makroaufzeichnung verwenden, um den Wert der ausgewählten Dimension zu ändern, das Teil unter einem neuen Namen zu speichern (sowie seine Zeichnung, indem Sie es vor dem Speichern der Teiledatei öffnen), Leider wird in der Aufzeichnung für diese Aktionen nichts aufgezeichnet...
Ich kopiere / füge den Code ein, den ich habe, um mein Teil auszuwählen, öffne es und wähle die Dimension aus , deren Wert ich ändern möchte:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("TEST-1@ASSY TEST", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.OpenCompFile
' Open the part TEST.SLDPRT
Set Part = swApp.OpenDoc6("PATCH\TEST.SLDPRT", 1, 0, "", longstatus, longwarnings)
Set Part = swApp.ActiveDoc
' Select dimension "DIAM"
boolstatus = Part.Extension.SelectByID2("DIAM@Sketch1@TEST.SLDPRT", "DIMENSION", 0, 0, 0, True, 0, Nothing, 0)
End Sub
Meine Frage ist also ziemlich offensichtlich, hat jemand eine Idee für:
- Ändern des Werts einer ausgewählten Dimension
- Öffnen der Zeichnung eines ausgewählten Teils
- Speichern eines Teils unter einem neuen Namen
- Speichern Sie die Zeichnung unter einem neuen Namen
- Schließen Sie alles, um zur Baugruppe zurückzukehren
Ich habe bereits versucht zu suchen, die Auswahl zu manipulieren, aber ich muss zugeben, dass ich mich im Vergleich zu Excel VBA sehr leicht in Solidworks VBA verliere und daher Schwierigkeiten habe, die Auswahl usw. zu manipulieren.
Vielen Dank im Voraus für Ihre Hilfe
P.S: Entschuldigung für die fehlenden Akzente, ich benutze eine englische Tastatur ...
Yves