Makroaufzeichnung in PDF und DXF in einem externen Ordner

Hallo zusammen und einen guten Rutsch ins neue Jahr 2014!

 

Ich bin auf der Suche nach einem Makro, das Folgendes ermöglicht:

  • Speichern eines SW-Setups in DXF und PDF
  • in einem anderen Ordner im Netzwerk als dem Speicherort von . SLDDRW
  • Fügen Sie die benutzerdefinierte Eigenschaft "Revision" am Ende des Dateinamens hinzu
  • Klicken Sie auf ein Symbol, um den gesamten Vorgang auszuführen

 

Der Link (http://forum.solidagora.com/macro-api-solidworks-enregistrer-pdf-dxf-x-t101.html), den Gt22 in der Frage (http://www.lynkoa.com/forum/3d/macro-d-enregistrement-en-pdf#) vorgeschlagen hat, ist ein nettes Versprechen, aber es gibt kein Makro...

Das Dienstprogramm BatchConverter ist gut, aber etwas schwerer (ich möchte nur auf ein Symbol klicken müssen)

 

Also, kann mir jemand helfen?

 

Vielen Dank im Voraus,

Thomas

Hallo

Im Solidagora-Link ist markiert, dass Sie sich nur an die Person wenden müssen, die die Nachricht gepostet hat, um das Makro zu erhalten. Also fange ich dort an;) 

Im gleichen Geist wie BATCHCONVERTER gibt es INTEGRATION (insbesondere, wenn Sie den Namen der endgültigen Datei ändern möchten, indem Sie die Eigenschaft Revision hinzufügen, da es mir nicht so vorkommt, als ob Batch weiß, wie es geht).

 

Sie sollten den "DEV" bei Axemble fragen, ob er für Sie ein "Makro" aus der SW erstellen kann, das die INTEGRATION mit Ihrer Konvertierung + Änderung der endgültigen Dateieinstellungen startet.

 

Persönlich haben wir vor der Umstellung auf EPDM den BATCHCONVERTER verwendet, um MEPs automatisch in dxf, pdf und edrw in ein anderes Verzeichnis als das des BEM zu konvertieren (damit sie z. B. für die Produktion zugänglich sind).

Wir haben jeden Abend das Dienstprogramm BATCHCONVERTER gestartet, das alle Zeichnungen berücksichtigt, die im Laufe des Tages erstellt oder geändert wurden (Sie verwalten dies über die Filter auf den Daten). Der Vorteil ist, dass es bei dieser Methode keine Aufsicht gibt, im Gegensatz zu Ihrer Makrotaste, die menschliches Eingreifen erfordert.

2 „Gefällt mir“

Wenn ich mich nicht irre, sollten Sie Lucas Prieur fragen, er kennt sich sehr gut mit Makro aus, aber ich weiß nicht, ob er verfügbar ist?

1 „Gefällt mir“

Hallo und ein frohes neues Jahr an alle,

 

In der Tat habe ich ein ähnliches Makro (PDF & DWG) erstellt.

Ich hatte vor, diesen Artikel auf Lynkoa zu posten, aber ich habe es aus Zeitmangel nicht gemacht. Bevor ich es veröffentlichte, wollte ich es vereinfachen und alle Zeilen nacheinander kommentieren, um die Lesbarkeit für die Neulinge der VBA-Programmierung zu verbessern.

 

Haben Sie die Grundlagen in VBA? Haben Sie bereits eine Basis für dieses Makro oder fangen Sie bei Null an?

 

Ich habe ein Tutorial für "Save-As" für SolidWorks erstellt (das einfacher ist und für jede Zeile kommentiert wird), das Sie hier finden können:

http://www.lynkoa.com/tutos/3d/macro-enregistrer-sous-avec-solidworks

 

Sie werden bereits einige Leads haben. Ich bin derzeit bis zum 6. im Urlaub, daher werde ich das Makro zu diesem Zeitpunkt übertragen (aber seien Sie sich bewusst, dass dieses spezifisch für unser Unternehmen ist und viel Anpassungsarbeit erfordert).

Hallo und einen guten Rutsch ins neue Jahr,

Können Sie angeben, wenn Sie sagen:

  • in einem anderen Ordner im Netzwerk als dem Speicherort von . SLDDRW

Möchten Sie es immer an einem Ort haben?

 

 

Wir haben unsere Solidworks-Dateien (Teile, Baugruppen und Zeichnungen) in einem Ordner "Technisch".

Wir haben eine "Datenbank" mit Plänen in DXF und PDF (von allen durchsuchbar) in einem anderen Ordner.

 

Also NEIN, das sind 2 verschiedene Orte!

Aber ist es ein einziger Ordner für alle PDFs? Oder ist es für jede Bestellung/jeden Deal/jede Maschine ein anderer Ordner?

Hallo @ ThomasM

 

Ich denke, das Versprechen ist nicht nur schön

denn wenn ich mich nicht irre, konnten Sie dieses besagte Makro wiederherstellen

 

Haben Sie es ausprobiert und entspricht es Ihrem tatsächlichen Bedarf?

 

Es stimmt, je klarer die Frage, desto zielgerichteter ist die Antwort (Lucas) ;-)

 

@+ ;-)

Es ist in der Tat ein einziger Ordner für alle PDFs. (und DXF)

Nein, im Moment funktioniert es nicht.

 

Ich habe das Makro tatsächlich im "Solidagora"-Forum bekommen.

Aber es gibt mir einen Fehler.

Ein Problem, das mit der Tatsache zusammenhängt, dass ich in 64 Bit bin. (soweit ich das verstehe)

 

Ich versuche, mich weiterzuentwickeln, damit es funktioniert.

 

Und ich möchte es auch so vereinfachen, dass es durch Drücken des Makrosymbols das tut, was ich von ihm verlange, ohne einen Ordnerpfad eingeben oder die Erweiterung überprüfen zu müssen...

 

  

Für die 64 Bit ist das einzige Problem, das ich kenne, dass beim Starten des Makros das Dialogfeld nicht angezeigt wird.
Mit einem "kleinen" ALT + TAB rufen Sie das Dialogfeld  auf (Sie brauchen nicht all diese longPtr und PrtSafe ...) 

 

Diese Antwort beantwortet Ihre Frage nicht

Geduldiges Selbst, die meisten Menschen sind im Urlaub zum Jahresende, es wird kommen

@+ ;-)

Können Sie das Makro hier als Textdatei posten?

Ich kann es so ändern, dass es den gewünschten Pfad enthält, wenn Sie es mir geben (in UNC ist es besser, wie: "\\SERVER\Design Office\SolidWorks Plans\PDF Plans\")

 

Wenn Sie den Fehler haben und auf Debuggage klicken, zu welcher Zeile gelangen Sie?

Siehe diesen Link

 

https://forum.solidworks.com/thread/66010

 

Anhang

 

@+ ;-)


file_save_as_pdf__dwg.swp_.zip

Siehe auch diesen Link

 

http://forum.solidagora.com/topic1758.html

 

@+ ;-)

Hier ist, was ich geschafft habe, indem ich rechts und links wiederhergestellt habe.

 

Option Explizit
Öffentliche Enumerations swDocumentTypes_e
    swDocNONE = 0       ' Früher TYPE_NONE
    swDocPART = 1       ' Früher TYPE_PART
    swDocASSEMBLY = 2   ' Früher TYPE_ASSEMBLY
    swDocDRAWING = 3    ' Früher TYPE_DRAWING
 
Ende der Enumeration
Dimmen swApp als Objekt
Dim swModel As ModelDoc2
Dim sPathName als Zeichenfolge
Dim sReference As String
Dim sSaveName als Zeichenfolge
Dim longstatus As Long
myRev als String dimmen
Sub main()
Legen Sie swApp = Application.SldWorks fest
Festlegen von swModel = swApp.ActiveDoc

Wenn swModel nichts ist, dann
    MsgBox ("Kein geöffnetes Dokument")
ElseIf swModel.GetType <> 3 dann
    MsgBox ("Dies ist keine Zeichnung")
Oder
   sPathName = swModel.GetPathName' ruft den Anzeigenamen des aktuellen Dokuments ab
   sReference = Mid(sPathName, InStrRev(sPathName, "\") + 1) 'Ruft alles nach dem letzten \ ab
   sReference = Left(sReference, Len(sReference) - 7) 'Die 6 Zeichen, die der Dateierweiterung entsprechen, und die .
   sPathName = Left(sPathName, InStrRev(sPathName, "\")) 'Ruft den Pfad ohne Dateinamen ab

'myRev = swModel.CustomInfo2("", "Hinweis") 'Ruft den Hinweis aus den Dokumenteigenschaften ab
myRev = swModel.GetCustomInfoValue("", "Index")

   longstatus = swModel.SaveAs3("X:\" + sReference + myRev + ".PDF", 0, 0)
   longstatus = swModel.SaveAs3("X:\" + sReference + myRev + ". DXF", 0, 0)
    
Ende, wenn


Ende Sub

 

 

 

Letztes kleines Problem:

Ich kann die Eigenschaft "Hinweis", die mit dem Teil verknüpft ist, nicht abrufen.

swModel.CustomInfo2("", "Index") und swModel.GetCustomInfoValue("", "Index") geben mir nichts zurück.

 

Was muss ich schreiben, um die Eigenschaft "Index" abzurufen?

 

Und so kann mir niemand sagen, wie ich die benutzerdefinierte "Review"-Eigenschaft abrufen kann, die im Raum "verankert" ist?

 

Es wäre großartig, da es mir ermöglichen würde, meine Frage vollständig zu beantworten!

 

Vielen Dank im Voraus!

Ich denke, dass Sie im anderen Forum eine Bitte um eine Erklärung haben, siehe den beigefügten Text

 

von annwn » Di 7 Jan 2014 14:25

Beeindruckend... Abwarten... Ich verstehe nicht alles!
Welche Änderung des Codes haben Sie vorgenommen?

Können Sie Screenshots Ihrer Fehlermeldungen machen?

 

@+ ;-)

Hallo

 

Ich habe ein ähnliches Makro, das eine benutzerdefinierte Eigenschaft abruft und an den Dateinamen anhängt.

 

Es macht, was Sie wollen, speichert eine Zeichnung in PDF und DXF mit dem Zusatz der Eigenschaft "index"

 

Alles, was Sie tun müssen, ist, die Zielpfade zu ändern.

 

Wenn Sie Hilfe benötigen, zögern Sie nicht


dxf__pdf_bon_pour_fab.swp
1 „Gefällt mir“

Um eine benutzerdefinierte Eigenschaft abzurufen, müssen Sie den folgenden Befehl verwenden:

Get4-Methode (ICustomPropertyManager)

 

Nachfolgend finden Sie ein Beispiel für die API-Hilfe:

 

Dim swApp als SldWorks.SldWorks

Dim swModel As ModelDoc2

Dim swModelDocExt als ModelDocExtension

Dim swCustProp As CustomPropertyManager

Dim val As String Dim valout As String

Dim bool als boolescher Wert

 

Sub main()

 

Legen Sie swApp = Application.SldWorks fest

Legen Sie swModel = swApp fest. ActiveDoc (Englisch)

Legen Sie swModelDocExt = swModel fest. Erweiterung

 

' Abrufen der benutzerdefinierten Eigenschaftsdaten

Legen Sie swCustProp = swModelDocExt fest. CustomPropertyManager("")

bool = swCustProp. Get4("Property_Name", False, val, valout)

 

Debug.Print "Wert: " & Wert

Debug.Print "Ausgewerteter Wert: " & Valout

Debug.Print "Aktuelle Daten: " & bool

 

Ende Sub