Ich möchte ein Makro erstellen, um meine Präsentationen im PDF- und DWG-Format zu exportieren.
Bisher keine Sorge, ich werde es schaffen, aber ich möchte, dass meine PDF- und DWG-Datei, die über dieses Makro erstellt wurde, den Namen meiner geöffneten Präsentation hat?
Dort habe ich getrunken, ich habe das Makrobearbeitungssystem verstanden, aber ich weiß nicht, was ich eingeben soll.
' Speichern unter longstatus = Part.SaveAs3("C:\Benutzer\dao\Desktop\MACRO_PDF-DWG\ hier. DWG", 0, 0) Ende Sub
Ich glaube alles läuft dort, wo ich hier geschrieben habe, da muss man wohl doch mal so etwas wie "Dateiname" eingeben, oder? Danke im Voraus;)
BEARBEITEN: Wenn Sie Links haben, von denen aus ich alle Makrobefehle abrufen kann, bin ich interessiert :D
Es ist anscheinend die GetTitle-Funktion , nach der Sie suchen. In Ihrem Makro müssen Sie also diesen GetTitle abrufen und den Pfad Ihrer Datei mit dem Ergebnis von GetTitle überarbeiten.
GetTitle ist eine API-Funktion, die es Ihnen ermöglicht, in Textform den Namen der in Solidworks geöffneten Datei abzurufen, dort haben Sie gerade geschrieben, dass Ihre PDF-Datei GetTitle.PDF heißen soll.
Wenn Sie noch nie ein Makro und/oder eine Programmierung gemacht haben, müssen Sie entweder ein wenig recherchieren, wie eine Programmiersprache funktioniert, bevor Sie es tun, oder Sie müssen Ihr vollständiges Makro veröffentlichen und erklären, wie Sie die Funktionsweise ändern möchten, in der Hoffnung, dass jemand bereit ist, sich daran zu halten.
Ich gebe zu, dass ich die Bemerkung "Bisher keine Sorge, ich komme dahin" zu Beginn Ihrer Frage nicht verstehe.
Ja, Sie müssen zuerst den Namen Ihrer Datei mit der getTitle-Funktion abrufen.
Ich gebe auch zu, dass ich das "Bisher keine Sorge, ich komme dahin" nicht wirklich verstehe...
Versuchen Sie Folgendes:
'déclaration des variables
Dim swApp As Object
Dim Part As Object
Dim longstatus As Long
dim nomfichier as string
Sub enregistrement()
'initialisation des variables objet
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
'récupération du nom fichier part
Nomfichier = Part.GetTitle
'suppression de l'extension solidworks
Nomfichier = Strings.Left(Nomfichier, Len(Nomfichier) - 7)
'enregistrement du fichier en pdf
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\" & nomfichier & ".PDF", 0, 0)
end sub
Grundsätzlich verstehe ich, wie es funktioniert, wenn man so will, aber tatsächlich muss ich mich mehr über das Problem und die Programmierung fragen.
Tatsächlich ist es relativ einfach und ich denke sogar, dass dieses Makro bereits existieren muss.
Ich wünschte nur, dass ich, sobald meine Zeichnung fertig ist, auf eine Schaltfläche klicke, die für mich ein PDF und eine DWG in einem Ordner generiert, aber mit dem Namen der Zeichnung geöffnet.
Wenn ich eine neue Zeichnung öffne, möchte ich, dass dieses Makro andere unterschiedliche und benannte Dateien mit dieser Zeichnung generiert.
Tut mir leid, ich bin mir nicht sicher , ob ich zu klar bin...
Das ist es, was das von bengous gegebene Beispiel tut, alles, was Sie tun müssen, ist, die DWG-Aufnahme nach dem gleichen Prinzip wie für das PDF hinzuzufügen ...
Ich weiß gut, D.roger, es gab einen Fehler, ich konnte die Kommentare nicht mehr sehen, wir mussten gleichzeitig antworten. Ich werde es testen und mich bei Ihnen melden, um es Ihnen zu sagen;) Vielen Dank auf jeden Fall:D
EDIT: Meine visuelle Grundausstattung ist auf Englisch, kann sie spielen?
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
Part.SheetPrevious
Part.SheetNext
boolstatus = Part.EditRebuild3()
' Redraw
Part.GraphicsRedraw2
' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
' Zoom To Fit
Part.ViewZoomtofit2
' Redraw
Part.GraphicsRedraw2
' Save As
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\???.DWG", 0, 0)
' Save As
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\???", 0, 0)
End Sub
Ich habe dir einen Code gemacht, den du nicht einmal benutzt hast...
Nun, versuchen Sie, es so zu machen
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
dim nomfichier as string
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Part.SheetPrevious
Part.SheetNext
boolstatus = Part.EditRebuild3()
' Redraw
Part.GraphicsRedraw2
' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
' Zoom To Fit
Part.ViewZoomtofit2
' Redraw
Part.GraphicsRedraw2
'récupération du nom fichier part
Nomfichier = Part.GetTitle
'suppression de l'extension solidworks
Nomfichier = Strings.Left(Nomfichier, Len(Nomfichier) - 7)
' Save As
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\" & nomfichier & ".DWG", 0, 0)
' Save As
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\" & nomfichier & ".pdf", 0, 0)
End Sub
Und ich denke, dass Ihre Zooms von der Ausgangsposition abhängen, daher denke ich, dass es besser ist, wenn Sie sich vor der Aufnahme einrahmen.
Bengous nimmt es nicht übel, ich bin neu in der Sache^^ Wenn ich Ihren Code gut ausprobiert habe, nehmen Sie ihn überhaupt nicht schlecht, ich entdecke ihn nur
Sie finden HIER einen Diskussionsthread, der sich mit dem Thema Programmieren auf Solidworks beschäftigt hat, ich empfehle Ihnen, ihn bis zum Ende zu lesen, Sie werden einen ganzen Haufen interessanter Links finden.