Ich versuche, ein Makro zu erstellen, um jedes Blatt meiner Zeichnungen in DXF und PDF zu speichern. Bisher kann ich alle Blätter im richtigen Format speichern oder es aktivieren, indem ich mit den Solidworks-Optionen herumspiele.
Trotzdem möchte ich den Namen direkt ändern können, ohne jede Datei umzubenennen (so langweilig!) Kurz. Zu diesem Zweck möchte ich in der Lage sein, meinem Makro zu sagen, dass es ein Blatt öffnet, es speichert und dann mit dem nächsten fortfährt. Ich weiß, dass ich ein Messgerät darauf stellen muss... Aber wie sage ich ihm, dass er das Blatt1, dann 2 usw. nehmen soll?
Und, kleine Bonusfrage. Gibt es irgendwo eine Zusammenfassung aller Solidworks-spezifischen Befehle?
Für deinen "Zähler" musst du alle Blätter aufschleifen, wenn du sicher bist, dass es immer Blatt1 dann 2 usw. ist, brauchst du nur eine Anleitung wie diese:
[CODE]
i = 1
Tun Sie, solange es (sheet_name gibt) 'Ich kenne die Kopfanweisung nicht
sheet_name = "Blatt" & i
"Hier ist Ihr Code für den Export in PDF und DWG
i = i +1
Schleife
[/CODE]
Aber wenn die Person Blatt 1 löscht oder umbenennt, funktioniert es nicht mehr!
Sie müssen also den Namen oder die Nummer jedes Blattes abrufen, und die SolidWorks API-Hilfe bietet ein Beispiel!
Da ist er:
Bearbeiten: Aktualisierung des Links, der schlecht war
Vielen Dank Lucas P für deine schnellen und bereitgestellten Antworten.
Zumindest bin ich jetzt mit Beispielen gepanzert (zum Glück liegt mein Englisch nicht so weit hinter mir!)
Ja, ich habe Ihr ähnliches Makro gesehen. Für mich hat es mich sehr inspiriert, indem ich es an meine Bedürfnisse angepasst habe.
Andererseits bin ich nach dem, was ich in dem, was Sie mir schicken, verstehe, verpflichtet, die Namen der Blätter zu kennen. Wenn es für meine Kurzgeschichten kein Problem ist, schaffe ich nicht wirklich das, was meine Vorgänger gemacht haben.
Also hatte ich gehofft, etwas wie in Excel zu finden, wo Sie "Sheet1" eingeben können, um sie anstelle ihrer Namen zu bezeichnen.
Ich werde ein bisschen herumfummeln und zurückkommen und den ganzen Code posten, wenn es funktioniert
Ich habe ein Makro, das reibungslos funktioniert ... Aber wo nichts passiert. Ich verstehe nicht wirklich, warum und wo es stecken bleibt. Hat jemand eine Idee?
Sub Speichern() Dim swapp als SldWorks.SldWorks Dim swdoc As SldWorks.ModelDoc2 Dim Swdraw As SldWorks.ModelDoc Dim swSheet als SldWorks.Sheet Dimmen von vSheetNames als Variante Dim Nbfeuille als Variante Set swapp = Application.SldWorks Legen Sie swdoc = swapp fest. ActiveDoc (Englisch) Setze swdraw = swdoc Set swSheet = Swdraw.GetCurrentSheet "Bestätigungsmeldung ret = MsgBox("Möchten Sie diese Zeichnung in DXF und PDF konvertieren?", vbOKCancel + vbExclamation + vbMsgBoxSetForeground + vbSystemModal, "Laserkonvertierung") Wenn ret = vbAbbrechen, dann Ende Registrierung neuer Name Tun newname = InputBox("Bitte geben Sie den neuen Namen an:", "blabla", newname) Wenn StrPtr(newname) = 0 dann MsgBox "Vorgang abgebrochen" Sub beenden Ende, wenn 'Überprüfen von Fenstern mit verbotenen Zeichen Do while InStr(newname, "/") > 0 Or InStr(newname, "*") > 0 Or InStr(newname, "?") > 0 Or InStr(newname, "<") > 0 Or InStr(newnam, ">") > 0 Or InStr(newnam, "!") > 0 newname = InputBox("Bitte beachten Sie, dass der Name mindestens eines der verbotenen Zeichen enthält \/:*?""<>!" & vbNewLine & vbNewLine & "Bitte geben Sie den neuen Namen an:", "save-under by LPR", newname) Schleife Schleife While newname = " " "Registrierungsdossier Tun FilePath = InputBox("Geben Sie den Pfad an", "Datensatzordner", FilePath) Wenn StrPtr(FilePath) = 0, dann MsgBox "Vorgang abgebrochen" Sub beenden Ende, wenn "Durch Hinzufügen des \ am Ende des Ordnernamens If Right(FilePath, 1) <> "\" then FilePath = FilePath & "\" Wenn Dir$(FilePath) <> "" dann EXISTIERT = 1 Ansonsten: MsgBox "das Verzeichnis existiert nicht, bitte erstellen Sie es" Debug.Print Dir$(Dateipfad) Ende, wenn Schleife, während EXISTS <> 1 "Gibt die Anzahl der Blätter an Nbfeuille = swdoc. GetSheetCount (Englisch) Für i = 0 Bis Nbfeuille SWDOC. BlattVorherige Seite Weiter i 'Wechseln Sie zum nächsten Blatt, wenn < zur Gesamtzahl Für i = 0 Bis varSheetCount - 1 Wenn ich 0 <>, dann sw-Modell verwenden. BlattWeiter Ende, wenn Aufzeichnung in DXF und PDF SWDOC. Speichern unter (Dateipfad + neuer Name + "_" + i + ".dxf") SWDOC. Speichern unter (Dateipfad + neuer Name + "_" + i + ".pdf") Weiter i Ende Sub