Layout

Hallo

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

Danke für Ihre Hilfe.

 

Hallo

Was ist der DN in dem Satz "es ist der DN, der sich ändert"?

Muss man das auf vielen Ebenen tun? Hat die Ansicht immer noch den gleichen Namen und auch die Konfiguration?

Bearbeiten: Tatsächlich entspricht der DN den verschiedenen Konfigurationen

.PL

Der DN entspricht dem Durchmesser des Flansches.

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)  
  •     msg = msg & i + 1 & vbTab & myModel.GetConfigurationNames(i) & vbCrLf  
  • Nächster  
  • X = InputBox(msg, "Konfiguration auswählen ", 1)  
  • Dim-Konfiguration  als Zeichenfolge  
  •  config = myModel.GetConfigurationNames(X - 1)  
  • myView.ReferencedConfiguration = Konfiguration  
  • myDraw.ForceRebuild  
  • MsgBox "Fertig"  
  • Ende Sub

configurations.png

Hallo

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.

DN = Nennweite eines Rohres, das in Rohrleitungen und damit an einem DN100, DN 200 Flansch verwendet wird, ....

 

@manu67,

 

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 bereits versucht, diese Zeile zu bearbeiten, aber ich erhalte eine Fehlermeldung.

Meine Recherchen in der SolidWorks API-Hilfe haben mich auch nicht weitergebracht.

Probieren Sie dieses aus:

 

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.ChangeRefConfigurationOfDefaultView("O:\FJS-Flanschtyp11B ASA300. SLDPRT", "DN040")
Part.ClearSelection2 Wahr
Ende Sub

Dieser Code sollte funktionieren:

Legen Sie swView = swDraw.IGetFirstView fest

Tun
    Legen Sie swView = swView.GetNextView fest
    Wenn swView nichts ist, dann beenden Sie do
    swView.ReferencedConfiguration =  Konfigurationsname

Schleife

 

Hallo ihr alle

Vielen Dank an manu67 und .PL für eure Antworten.

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"

swDraw avant, essaye ceci :

Set swDraw = swApp.ActiveDoc

Legen Sie swView = swDraw.IGetFirstView fest

Dim ConfigName als Zeichenfolge
Konfigurationsname = "DN040"

Tun
    Legen Sie swView = swView.GetNextView fest

    If swView.GetName2 = "Ansicht der Zeichnung1" then
    swView.ReferencedConfiguration =  Konfigurationsname

    Ende, wenn

Schleife

Das Problem ist immer noch da.

Nachfolgend finden Sie den erhaltenen Code:

Sub main()

Dim ConfigName als Variante

Dim swView As IView
Dim swDraw As IDrawingDoc
Legen Sie swDraw = swApp.ActiveDoc fest
Legen Sie swView = swDraw.IGetFirstView fest

Tun
    Legen Sie swView = swView.GetNextView fest
    Wenn swView nichts ist, dann beenden Sie do
    swView.ReferencedConfiguration = Konfigurationsname

Schleife

Ende Sub

blöde Frage, sorry ;-(

Haben Sie eine Familie von Teilen für Ihre verschiedenen Zaumzeuge erstellt?

und speichern Sie sie in einer speziellen persönlichen Datei und Bibliographie außerhalb der SW-Bibliothek 

Warum eine persönliche Bibliothek?

um Ihre Bibliotheken behalten zu können, wenn Sie die SW-Version ändern

@+ ;-)

GT22,

Ja, die verschiedenen Konfigurationen werden in einer Familie von Teilen verwaltet und in einem bestimmten Ordner außerhalb von SolidWorks gespeichert.

 

Aber das beantwortet meine Frage nicht...

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

Schönen Tag