| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| AMB |
Autor
|
Thema: Exporteinstellungen einlesen bevor PDF erstellt wird (2620 mal gelesen)
|
fossy123 Mitglied
Beiträge: 21 Registriert: 19.11.2002
|
erstellt am: 18. Jul. 2008 01:59 <-- editieren / zitieren --> Unities abgeben:
Hallo, folgendes Problem: Ich muss von Zeichnungen PDF-Dateien erstellen. Soweit kein Problem, aber die Anwender setzen die Einstellungen immer so wie sie meinen, dass es gut wäre. Aber ich benötige die Einstellung, das auch Schriftarten eingebettet werden (um später per Ghostscript mehrblättrige Tif's erstellen zu können). Nun habe ich gedacht unter [HKEY_CURRENT_USER\Software\SolidWorks\SolidWorks 2008\Export Settings] kann ich über eine Reg-Datei meine Einstellungen wiederherstellen und dann ein PDF erzeugen. Leider werden diese Einstellungen aber scheinbar nur beim Start von SolidWorks gelesen. Ändere ich hingegen eine Einstellung in SolidWorks wird diese direkt in die Registry geschrieben. So und nun? Wie kann ich SolidWorks dazu bewegen, die Einstellungen aus der Registry zu berücksichtigen? Oder habe ich hier irgend etwas übersehen? Für Tipps & Tricks bin ich jeder Zeit dankbar. Gruß Fossy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 18. Jul. 2008 07:26 <-- editieren / zitieren --> Unities abgeben: Nur für fossy123
Per Makro lässt sich das ganz einfach machen -> Dann hast Du einen Knopf für die PDFs und niemand mehr muss über Datei -> Speichern unter .... und das wäre viel einfacher In der SolidWorks API Hilfe findest Du die Parameter für das Speichern von PDFs ( -> "swUserPreferenceToggle_e" mit dem da zusammen "ModelDoc2::SetUserPreferenceToggle") und hier im Forum, wie man ein PDF per Makro speichert. ------------------ http://www.worldcommunitygrid.org Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
riesi Mitglied CAD-Admin
Beiträge: 1073 Registriert: 06.05.2002 SWX Premium 2020-Sp5
|
erstellt am: 18. Jul. 2008 08:20 <-- editieren / zitieren --> Unities abgeben: Nur für fossy123
Ich mache das immer so: '------------------------------------------------------------------ ' Zeichnung als PDF in ein spezielles Verzeichnis speichern '------------------------------------------------------------------ Option Explicit Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim pdfoptions As Long Dim sPathName As String Dim nErrors As Long Dim nWarnings As Long Dim nRetval As Long Dim bShowMap As Boolean Dim bRet As Boolean Dim sFileName As String Dim ConfName As String Dim Index As String Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc sPathName = swModel.GetPathName sPathName = Left(sPathName, Len(sPathName) - 7) sFileName = ohnePfad(sPathName) ConfName = swModel.GetConfigurationNames Index = swModel.CustomInfo2(ConfName, "Revision") If Len(Index) = 3 Then Index = Left(Index, 2) End If sPathName = "\\Citrix_server_1\PDF\" & sFileName & "-" & Index & ".pdf" Debug.Print sPathName swApp.SetUserPreferenceToggle swPDFExportInColor, False swApp.SetUserPreferenceToggle swPDFExportEmbedFonts, True swApp.SetUserPreferenceToggle swPDFExportHighQuality, True swApp.SetUserPreferenceToggle swPDFExportPrintHeaderFooter, False swApp.SetUserPreferenceToggle swPDFExportUseCurrentPrintLineWeights, True bRet = swModel.SaveAs4(sPathName, _ swSaveAsCurrentVersion, _ swSaveAsOptions_Silent, _ nErrors, _ nWarnings) If bRet = False Then nRetval = swApp.SendMsgToUser2("Probleme mit dem Speichern des PDFs", swMbWarning, swMbOk) End If End Sub Private Function ohnePfad(mitPfad As String) As String Dim intCounter As Integer For intCounter = Len(mitPfad) To 1 Step -1 If Mid(mitPfad, intCounter, 1) = "\" Then Exit For End If Next intCounter ' Return the value ohnePfad = Right(mitPfad, Len(mitPfad) - intCounter) End Function Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fossy123 Mitglied
Beiträge: 21 Registriert: 19.11.2002
|
erstellt am: 18. Jul. 2008 09:48 <-- editieren / zitieren --> Unities abgeben:
|
mobil-sldwks Mitglied
Beiträge: 7 Registriert: 04.08.2008
|
erstellt am: 04. Aug. 2008 10:57 <-- editieren / zitieren --> Unities abgeben: Nur für fossy123
|
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 04. Aug. 2008 15:35 <-- editieren / zitieren --> Unities abgeben: Nur für fossy123
|
mobil-sldwks Mitglied
Beiträge: 7 Registriert: 04.08.2008
|
erstellt am: 06. Aug. 2008 12:04 <-- editieren / zitieren --> Unities abgeben: Nur für fossy123
|
Ralf Tide Moderator -
Beiträge: 4978 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 06. Aug. 2008 17:10 <-- editieren / zitieren --> Unities abgeben: Nur für fossy123
Zitat: Original erstellt von mobil-sldwks: ...Gibts die API-Hilfe auch in Deutsch?...
Es gibt noch keine SolidWorks API-Hilfe in deutsch. Was es gibt findet man z.B. >HIER<Diese Liste ist zum erweitern gedacht Gruß, Ralf ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mobil-sldwks Mitglied
Beiträge: 7 Registriert: 04.08.2008
|
erstellt am: 11. Aug. 2008 13:57 <-- editieren / zitieren --> Unities abgeben: Nur für fossy123
Hi, danke. Konnte einiges finden. Ein Problem habe ich noch: Das mit dem speichern als pdf/edrawing hat funktioniert. Das Problem ist nur, dass er das immer dort speichert wo er die Datei geöffnet wurde. Ich möchte nun beim speichern z.B. im Quelltext einen Pfad eines Servers angeben, sodass er z.B ein kopie in einem best. Verzeichnis ablegt und die lokale löscht...irgendwie so... Kann mir jemand eine Lösung als Programm hier posten?? Danke im Voraus hier mein Programm: ---------------------------------------------------------------------- Dim FeatureData As Object Dim Feature As Object Dim Component As Object Dim saveFileName As String Dim nErrors As Long Dim nRetval As Long Dim nWarnings As Long Dim nrettung As Boolean Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc swApp.ActiveDoc.ActiveView.FrameState = 1 swApp.ActiveDoc.ActiveView.FrameState = 1 Part.EditSketch If (swApp.ActiveDoc.GetPathName = "") Then 'Abfrage ob Name vergeben wurde MsgBox ("Bitte zuerst Zeichnung speichern!") Exit Sub End If
'saveFileName = Left(swApp.ActiveDoc.GetPathName, Len(swApp.ActiveDoc.GetPathName) - 7) + ".dxf" ' Speichern als DXF-Datei 'Part.SaveAs2 saveFileName, 0, True, False saveFileName = Left(swApp.ActiveDoc.GetPathName, Len(swApp.ActiveDoc.GetPathName) - 7) + ".pdf" ' Speichern als PDF-Datei Part.SaveAs2 saveFileName, 0, True, False 'saveFileName = Left(swApp.ActiveDoc.GetPathName, Len(swApp.ActiveDoc.GetPathName) - 7) + ".jpg" ' Speichern als JPG-Datei 'Part.SaveAs2 saveFileName, 0, True, False saveFileName = Left(swApp.ActiveDoc.GetPathName, Len(swApp.ActiveDoc.GetPathName) - 7) + ".edrw" ' Speichern als Edrawing-Datei Part.SaveAs2 saveFileName, 0, True, False
'Abfrage ob Fehler beim speichern bRet = Part.SaveAs4(saveFileName, _ swSaveAsCurrentVersion, _ swSaveAsOptions_Silent, _ nErrors, _ nWarnings) If bRet = False Then nRetval = swApp.SendMsgToUser2("Probleme beim Speichern der Datei(en)!", swMbWarning, swMbOk) End If End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
riesi Mitglied CAD-Admin
Beiträge: 1073 Registriert: 06.05.2002 SWX Premium 2020-Sp5
|
erstellt am: 11. Aug. 2008 14:21 <-- editieren / zitieren --> Unities abgeben: Nur für fossy123
|
mobil-sldwks Mitglied
Beiträge: 7 Registriert: 04.08.2008
|
erstellt am: 11. Aug. 2008 14:51 <-- editieren / zitieren --> Unities abgeben: Nur für fossy123
Sorry wenn ich deine Lösung nicht aus dem Programm gelesen hab, bin nicht der Programmierexperte. Du hattest ja eine andere Methode angewandt!? Hatte auch schon versucht, Teile von dir einzubauen, hat leider nicht geklappt... Könnte mir evlt. jemand mein Programm so umschreiben, dass ich unter einem best. Pfad speichern kann?? Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
webfritz Mitglied Dipl.-Ing.(FH) Fahrzeugtechnik
Beiträge: 301 Registriert: 09.12.2000 SWX 2009 / CATIA V5 R18
|
erstellt am: 22. Okt. 2010 11:27 <-- editieren / zitieren --> Unities abgeben: Nur für fossy123
Hallo, super Macro! Vielen Dank, funktioniert (fast) einwandfrei. Ein Thema dazu möchet ich noch fragen: Das Makro ist immer aktiv - wenn man es auf eine Schaltfläche - auch wenn keine Modelldaten geladen sind. Irgendwo müsste noch eine Abfrage rein, damit das Makro diesen Zustand abfrägt und erst dann den Drucke PDF Button aktiv schaltet, wenn auch Daten zum Drucken vorhanden sind. Hat da jemand eine Idee?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
webfritz Mitglied Dipl.-Ing.(FH) Fahrzeugtechnik
Beiträge: 301 Registriert: 09.12.2000 SWX 2009 / CATIA V5 R18
|
erstellt am: 22. Okt. 2010 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für fossy123
Hallo, super Macro! Vielen Dank, funktioniert (fast) einwandfrei. Ein Thema dazu möchet ich noch fragen: Das Makro ist immer aktiv - wenn man es auf eine Schaltfläche - auch wenn keine Modelldaten geladen sind. Irgendwo müsste noch eine Abfrage rein, damit das Makro diesen Zustand abfrägt und erst dann den Drucke PDF Button aktiv schaltet, wenn auch Daten zum Drucken vorhanden sind. Hat da jemand eine Idee?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |