Makro Solidworks

Hallo ihr alle

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

Hallo

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.

Herzliche Grüße

 

2 „Gefällt mir“

Hallo und danke für die Antwort,

Sorry, es ist das 1. Mal, dass ich einen Fuß in das Makro gesetzt habe, ich verstehe es nicht, es funktioniert nicht^^

' Speichern unter
longstatus = Part.SaveAs3("C:\Benutzer\dao\Desktop\MACRO_PDF-DWG\GetTitle.PDF", 0, 0)
Ende Sub

Ist es nicht?

 

Hallo

Nein, so ist es ganz und gar nicht!

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.

Herzliche Grüße

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

 

 

2 „Gefällt mir“

Ok kein Problem.

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 ...

1 „Gefällt mir“

Ja, ich habe Ihnen die PDF-Erweiterung gegeben, aber ich denke, es sollte funktionieren, wenn Sie die Zeile hinzufügen

longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\" & nomfichier & ".DWG", 0, 0)

 

Direkt nach demjenigen, der Ihr PDF erstellt. Und ich weiß nicht, ob es funktioniert, ich habe dieses Makro nicht ausgeführt.

1 „Gefällt mir“

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.

1 „Gefällt mir“

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

Wenn ich zu dieser Zeile komme:

' Save As
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\ & "nomfichier" & ".DWG", 0, 0)

 

Er sagte zu mir:
"Kompilierungsfehler
Wobei: Listentrennzeichen oder )"

Es ist in Ordnung, es funktioniert, vielen Dank für Ihre Geduld.

Sorry nochmal, aber ich muss alles verstehen.

Ja, ich hatte die "Ich korrigiere

Keine Sorge, ich nehme es ziemlich

Kennst du eine Seite, auf der ich einige Grundlagen usw. lernen kann?

Einen schönen Tag noch, nochmals vielen Dank ;)

Hallo Maxbzh,

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.

Herzliche Grüße