Ich habe ein Zeichnungsmodell, auf dem eine Vorderansicht eines Flansches zu sehen ist. Um die Vorderansicht anzuzeigen, muss ich die untere Ansicht des Flansches auswählen. Ich möchte über ein Makro die Konfiguration dieser Ansicht ändern (es ist der DN, der sich ändert).
Der Makrorekorder gibt mir einen Code, der funktioniert, aber wenn ich das Makro zum ersten Mal ausführe, erstellt er eine Konfiguration, die mit "-SM-FLAT-PATTERN" endet, und ich bin gezwungen, ihn ein zweites Mal auszuführen, damit sich die Konfiguration ändert (er zeigt die Konfiguration an, die beim ersten Lauf erstellt wurde).
Ich möchte keine neuen Konfigurationen erstellen und das Makro einmal ausführen.
Nachfolgend finden Sie den erhaltenen Code:
Dimmen swApp als Objekt
Teil als Objekt dimmen Dim boolstatus als boolescher Wert Dim longstatus As Long, longwarnings As Long
Sub main()
swApp = _ setzen Anwendung.SldWorks
Set Part = swApp.ActiveDoc boolstatus = Part.Extension.SelectByID2("Zeichnungsansicht1", "DRAWINGVIEW", 0.267271785970659, 0.323684671386922, 0, Falsch, 0, Nichts, 0) boolstatus = Part.ChangeRefConfigurationOfFlatPatternView("O:\FJS-Flanschtyp11B ASA300. SLDPRT", "DN040") Part.ClearSelection2 Wahr Ende Sub
Ja, ich versuche, diese Funktion zu automatisieren, weil sie auf vielen Ebenen von meinen Kollegen und mir selbst erledigt werden muss. Die Ansicht hat immer noch den gleichen Namen, aber die Konfiguration ändert sich. Ich hänge ein Bild der Konfigurationen an. Ich möchte die Konfiguration entsprechend dem Wert des DN ändern.
Ich habe einen Code gefunden, der funktioniert, aber fragt, welche Konfiguration ich anzeigen möchte, aber ich möchte, dass dies automatisch gemäß dem Wert des DN geschieht (ich bekomme diesen Wert in einer Excel-Datei):
Sub ChangeRefConfig()
MyApp als SldWorks.SldWorks dimmen
Legen Sie myApp = Application.SldWorks fest
MyDraw als DrawingDoc dimmen
Legen Sie myDraw = myApp.ActiveDoc fest
myView As View als Ansicht dimmen
Legen Sie myView = myDraw.ActiveDrawingView fest
MyModel als ModelDoc2 dimmen
Legen Sie myModel = myView.ReferencedDocument fest
Dim msg As String
msg = "Bitte wählen Sie die Konfiguration aus , zu der Sie für die Ansicht wechseln möchten " & myView.Name & vbCrLf
Für i = 0 TB UBound(myModel.GetConfigurationNames)
Tatsächlich entsteht eine Blechkonfiguration in abgewickelter Ausführung, daher der Name "-SM-FLAT-PATTERN" und um auf PL zu antworten, ist der DN der Nenndurchmesser des Flansches. Vielleicht das Zaumzeug und das Blech und deshalb kreiert sie für dich die flache Variante.
Ich verstehe nicht, warum eine Blechkonfiguration erstellt wird, da das Teil als Volumenkörper erstellt wird ...
Ich suche nach der Funktion "ShowConfiguration2", da diese Funktion in 3D, aber nicht in der Zeichnung funktioniert.
Unten sehen Sie den Code für das 3D:
Dimmen swApp als Objekt
Teil als Objekt dimmen Dim boolstatus als boolescher Wert Dim longstatus As Long, longwarnings As Long
Sub main()
swApp = _ setzen Anwendung.SldWorks
Set Part = swApp.ActiveDoc myModelView als Objekt dimmen Festlegen von myModelView = Part.ActiveView myModelView.FrameState = swWindowState_e.swWindowMaximized boolstatus = Part.Extension.SelectByID2("DN300@Bride FJS-Typ11B ASA300. SLDPRT", "KONFIGURATIONEN", 0, 0, 0, Falsch, 0, Nichts, 0) boolstatus = Teil.ShowConfiguration2("DN050") Ende Sub
Kann mir jemand helfen, es an die Zeichnung anzupassen?
Schauen Sie in den Code Ihrer Frage, die 4. Zeile von unten, die Sie haben: "boolstatus = Part.ChangeRefConfigurationOfFlatPatternView("O:\FJS Bride " Ich denke, dieser Teil des Codes sollte geändert oder entfernt werden, damit die Flatpattern-Version nicht mehr erstellt wird
Ich habe beide Codes ausprobiert, aber keiner hat funktioniert.
Für den Code von manu67 befindet sich der Fehler in der Zeile boolstatus = Part.ChangeRefConfigurationOfDefaultView("O:\FJS Flanschtyp11B ASA300. SLDPRT", "DN040". Der angezeigte Fehler lautet: "Laufzeitfehler '438': Eigenschaft oder Methode wird von diesem Objekt nicht behandelt"
Für den .PL Code befindet sich der Fehler in der Zeile Set swView = swDraw.IGetFirstView: "Runtime error '424': object required. Ich habe versucht, die Variable ConfigName zu deklarieren, aber der Fehler ist derselbe:
Dim ConfigName als Zeichenfolge Konfigurationsname = "DN040"
Ja, die verschiedenen Konfigurationen werden in einer Familie von Teilen verwaltet und in einem bestimmten Ordner außerhalb von SolidWorks gespeichert.
Ich habe die Lösung für mein Problem gefunden. Ich habe den Code unten eingefügt:
Sub ChangeRefConfig() MyApp als SldWorks.SldWorks dimmen Legen Sie myApp = Application.SldWorks fest MyDraw als DrawingDoc dimmen Legen Sie myDraw = myApp.ActiveDoc fest myView As View als Ansicht dimmen Legen Sie myView = myDraw.ActiveDrawingView fest MyModel als ModelDoc2 dimmen Legen Sie myModel = myView.ReferencedDocument fest Dim msg As String myView.ReferencedConfiguration = "DN125" myDraw.ForceRebuild MsgBox "Fertig" Ende Sub
In Anführungszeichen gebe ich den Namen der gewünschten Konfiguration ein, und das Makro ändert die Konfiguration in der Zeichnung