| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| myCAD 2024 Visiativ-Kundentag in Rosenheim, eine Veranstaltung am 29.10.2024
|
Autor
|
Thema: PDF erstellen mit Namen der Artikelnummer (3943 mal gelesen)
|
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1142 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 07. Jul. 2008 12:23 <-- editieren / zitieren --> Unities abgeben:
Hallo Allerseits, ich habe hier eine Problemstellung, wo ich auf ein paar Tips von euch hoffe: Kann ich von einer eingecheckten Zeichnung (oder auch kurz vor dem einchecken) ein PDF erstellen, welches nicht den Namen bekommt welchen die Zeichnungsableitung hat, sondern den Namen einer benutzerdefinierte Eigenschaft (Artikelnummer)? Geht so etwas eventuell mit einem Makro? Hat jemand sowas schon in Verwendung? Schon mal Danke fürs lesen! ------------------ Viele Grüße, THSEFA Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 07. Jul. 2008 13:43 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Hi THSEFA, Zitat: Original erstellt von THSEFA: Kann ich von einer eingecheckten Zeichnung (oder auch kurz vor dem einchecken) ein PDF erstellen, [...]
Kommt darauf an, ob du noch die Berechtigung hast eine eingecheckte Datei (wohin auch immer eingecheckt) wieder aufrufen und in SoldiWorks als PDF speichern bzw, drucken zu können. Normalerweise würde ich sagen soltle gehen. Zitat: Original erstellt von THSEFA: [...] welches nicht den Namen bekommt welchen die Zeichnungsableitung hat, sondern den Namen einer benutzerdefinierte Eigenschaft (Artikelnummer)? Geht so etwas eventuell mit einem Makro?
Ja, per Makro sollte das kein Problem sein, am einfachsten mit der (veralteten) ModelDoc::SaveAs4 und vorher mit ModelDoc::CustomInfo2 den Inhalt deiner Eigenschaft holen und als Dateinamen nutzen. Zitat: Original erstellt von THSEFA: Hat jemand sowas schon in Verwendung?
Nein, ich zumindest nicht. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Stefans SolidWorks Blog Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 07. Jul. 2008 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Quick and dirty: Code: Dim swApp As Object Dim Part As Object Dim Artikelnr As String Const CIArtikelnr = "ARTIKELNR" 'Dateieigenschaft Sub main()Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc If Part Is Nothing Then MsgBox "Kein Solidworks-Dokument geöffnet!" End End If If Part.GetType() <> swDocDRAWING Then MsgBox "Geöffnetes Dokument ist keine Zeichnung!" End End If Artikelnr = Part.CustomInfo2("", CIArtikelnr) If Trim(Artikelnr) = "" Then MsgBox "Keine Dateieigenschaft " + CIArtikelnr + " gefunden!" End Else Part.SaveAs2 Artikelnr + ".pdf", 0, True, False MsgBox "Zeichnung wurde als " + Artikelnr + " gespeichert!" End If End Sub
------------------ Klaus www.al-ko.com | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1142 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 07. Jul. 2008 17:22 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von KMassler: Quick and dirty: ...
Dankeschön! Das habe ich nun schon mal Dank deines Codes hinbekommen. Nun möchte ich das PDF auf einem ganz bestimmten Laufwerk speichern. Daran beiße ich mir jetzt die Zähne aus. Bis jetzt wird das PDF dort abgelegt, wo auch das Makro liegt. Ich habe mir schon die ganzen Makros von Stefans Seite angeschaut, welche das speichern betreffen und auch hier schon gesucht. @Stefan Dein Makro Nr. 5 ist ja schon sehr nahe dran an dem was ich machen will. Leider ist es mir nicht gelungen, diesen Codeschnippsel, der das Speichern in einem bestimmten Laufwerk ermöglicht, so einzubinden, dass es funktioniert hat. Ich muss aber auch zu meiner Schande gestehen, dass ich sehr wenig Ahnung von dem habe, was ich da machen will. ------------------ Viele Grüße, THSEFA Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 08. Jul. 2008 08:15 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Na dann eben Quick and Dirty ungefähr so: Code: Dim Part As Object Dim Artikelnr As String Const CIArtikelnr = "ARTIKELNR" 'Dateieigenschaft Dim Pfad As String Dim Record As Variant Dim n As IntegerSub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc If Part Is Nothing Then MsgBox "Kein Solidworks-Dokument geöffnet!", vbInformation, "Save as PDF" End End If If Part.GetType() <> swDocDRAWING Then MsgBox "Geöffnetes Dokument ist keine Zeichnung!", vbInformation, "Save as PDF" End End If Artikelnr = Part.CustomInfo2("", CIArtikelnr) 'Pfad der SolidWorks-Zeichnung feststellen: Pfad = "" Record = Split(Part.GetPathName, "\") If UBound(Record) > 0 Then 'Erfolg Pfad = Record(0) For n = 1 To UBound(Record) - 1 Pfad = Pfad + "\" + Record(n) Next n End If If Trim(Artikelnr) = "" Then MsgBox "Keine Dateieigenschaft " + CIArtikelnr + " gefunden!" End Else Pfad = InputBox("Bitte Pfad für PDF-Datei eingeben:", "Save As PDF", _ Pfad) Part.SaveAs2 Pfad + "\" + Artikelnr + ".pdf", 0, True, False MsgBox "Zeichnung wurde als " + Pfad + "\" + Artikelnr + ".PDF gespeichert!", _ vbInformation, "Save as PDF" End If End Sub
Wenn du noch mehr Wert auf Schönheit legst, dann bastelst du dir in VBA statt der InputBox nen schönen Dialog, damit kommt das gleich noch besser an. Aber die Arbeit überlasse ich dir oder anderen, die Lust dazu haben. ------------------ Klaus www.al-ko.com | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1142 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 08. Jul. 2008 09:28 <-- editieren / zitieren --> Unities abgeben:
Vielen herzlichen Dank! Habe jetzt nur noch die Abfrage geändert und meinen Pfad eingesetzt und schon läuft es genau so wie ich es mir gewünscht habe! Code:
Dim swApp As Object Dim Part As Object Dim Artikelnummer As String Const CIArtikelnummer = "ARTIKELNUMMER" 'Dateieigenschaft Dim Pfad As String Dim Record As Variant Dim n As Integer Sub main()Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc If Part Is Nothing Then MsgBox "Kein Solidworks-Dokument geöffnet!", vbInformation, "Save as PDF" End End If If Part.GetType() <> swDocDRAWING Then MsgBox "Geöffnetes Dokument ist keine Zeichnung!", vbInformation, "Save as PDF" End End If Artikelnummer = Part.CustomInfo2("", CIArtikelnummer) 'Pfad der SolidWorks-Zeichnung feststellen: Pfad = "" Record = Split(Part.GetPathName, "\") If UBound(Record) > 0 Then 'Erfolg Pfad = Record(0) For n = 1 To UBound(Record) - 1 Pfad = Pfad + "\" + Record(n) Next n End If If Trim(Artikelnummer) = "" Then MsgBox "Keine Dateieigenschaft " + CIArtikelnummer + " gefunden!" End Else Pfad = "Hier kommt das Verzeichnis rein" Part.SaveAs2 Pfad + "\" + Artikelnummer + ".pdf", 0, True, False MsgBox "Zeichnung wurde als " + Pfad + "\" + Artikelnummer + ".PDF gespeichert!", _ vbInformation, "Save as PDF" End If End Sub
------------------ Viele Grüße, THSEFA Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mobil-sldwks Mitglied
Beiträge: 7 Registriert: 04.08.2008
|
erstellt am: 12. Aug. 2008 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Hi, gibt es eure Lösung auch so, dass der Dateiname anstatt der Eigenschaft (Artikelnummer)als abgespeicherten Namen trägt? Denn falls die Eigenschaft nicht belegt ist, kann das Dokument nicht gespeichert werden... Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 12. Aug. 2008 11:42 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Code: Dim Part As Object Dim Filename As String Dim Pfad As String Dim Record As Variant Dim n As IntegerSub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc If Part Is Nothing Then MsgBox "Kein Solidworks-Dokument geöffnet!", vbInformation, "Save as PDF" End End If If Part.GetType() <> swDocDRAWING Then MsgBox "Geöffnetes Dokument ist keine Zeichnung!", vbInformation, "Save as PDF" End End If ' ''Pfad der SolidWorks-Zeichnung feststellen: Pfad = "" Record = Split(Part.GetPathName, "\") If UBound(Record) > 0 Then 'Erfolg Pfad = Record(0) For n = 1 To UBound(Record) - 1 Pfad = Pfad & "\" + Record(n) Next n End If 'Dateiname ohne Endung Filename = Record(UBound(Record)) Filename = Left(Filename, Len(Filename) - 7) & ".PDF" Pfad = InputBox("Bitte Pfad für PDF-Datei eingeben:", "Save As PDF", _ Pfad) Part.SaveAs2 Pfad & Filename, 0, True, False MsgBox "Zeichnung wurde als " & Pfad & "\" & Filename & " gespeichert!", _ vbInformation, "Save as PDF" End Sub
------------------ Klaus www.al-ko.com | mein Gästebuch | privat... [Diese Nachricht wurde von KMassler am 12. Aug. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mobil-sldwks Mitglied
Beiträge: 7 Registriert: 04.08.2008
|
erstellt am: 12. Aug. 2008 12:10 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Super Danke, ich merke ich habs hier mit Profis zu tun. Dann kann man ja auch den code ergänzen, sodass edrawings ebelfalls gespeichert werden sollen. Und ohne jedes mal nach dem Pfad gefragt zu werden???
den pfad eintragen?? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 12. Aug. 2008 12:31 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
|
mobil-sldwks Mitglied
Beiträge: 7 Registriert: 04.08.2008
|
erstellt am: 12. Aug. 2008 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
|
HartmutT Mitglied Dipl.-Ing (TU) MB
Beiträge: 790 Registriert: 16.06.2006 SWX 2019 SP5.0 MaxxDB 2021.SP0.02 Linked Jan 18 2021 (64bit)
|
erstellt am: 09. Okt. 2008 18:13 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Hallo Gemeinde! Ein solches Makro arbeitet auch in unserem Büro. Stabil und ohne Tadel. Nun aber stellt mir n Kollege die Frage, warum das Makro nicht Quer und mit Dateinamen oder Artikelnummer als Fußzeile generiert. Kann man dem Part.SaveAs2 Pfad + "\" + Artikelnr + ".pdf", 0, True, False noch ein ne Fußzeile aufzwingen? beDANKung für jede Hilfe im Voraus. Grüßle ausm Remstal, H. ------------------ Hartmut Tylla http://www.schiwa.de/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 10. Okt. 2008 08:43 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
^^ Oo Oh Mann! Also direkt beim Speichern als PDF...weiß ich nicht. Bei Ausgabe über einen PDF-PseudoDrucker (z.B. FreePDF)...vielleicht. Auf die Schnelle fällt mir nur ein, per Makro vor dem Speichern als PDF an einer definierten Stelle auf dem Blatt einen Text (Note) einzutragen und diesen dann hinterher, wenn nötig, wieder zu löschen. Oder ihr fügt so einen Platzhaltertext bereits in den Vorlagen ein mit Verweis auf eine Dateieigenschaft, die dann beim Speichern als PDF gefüllt und hinterher wieder geleert wird. Oder so ... ------------------ Klaus www.al-ko.com | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HartmutT Mitglied Dipl.-Ing (TU) MB
Beiträge: 790 Registriert: 16.06.2006 SWX 2019 SP5.0 MaxxDB 2021.SP0.02 Linked Jan 18 2021 (64bit)
|
erstellt am: 10. Okt. 2008 09:37 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Hallo Gemeinde, Hallo Klaus! @Klaus:ZITAT...an einer definierten Stelle auf dem Blatt Aber ich möchte doch das Part, die Assy PDF-fotografieren. Oder habe ich Dich da mißverstanden. Meinst Du, im Part kurzzeitig mal eine Beschriftung mit bspw. Benennung_Art-Nr zu generieren?? Gibts noch völlig andere Ideen? Immer schön neugierig verbleibt, H. ------------------ Hartmut Tylla http://www.schiwa.de/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 10. Okt. 2008 09:55 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Ah so, nein. Ich bin davon ausgegangen, dass du ein PDF von einer Zeichnung machen wills, sorry. Für PDF von einem Modell habe ich jetzt keine Idee, wenn du das mit "Speichern als PDF" machst. Wenn du einen "PDF-Drucker" verwendest, kannst du in deinen Modellvorlagen Kopf- und Fußzeile für Ausdrucke vordefinieren. Die kommen dann aber auch bei jedem Ausdruck. ------------------ Klaus www.al-ko.com | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HartmutT Mitglied Dipl.-Ing (TU) MB
Beiträge: 790 Registriert: 16.06.2006 SWX 2019 SP5.0 MaxxDB 2021.SP0.02 Linked Jan 18 2021 (64bit)
|
erstellt am: 10. Okt. 2008 12:05 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Ja, so habe ich ja mein Variante1.jpg, das schönere von beiden erzeugt. Das Makro macht mir auf Knopfdruck nur den nackten Ausdruck Variante2.jpg Ich suche nach Befehlsparametern fürs Makrodrucken oder eben nach solchen Ideen, wie kurzzeitigens Beschriftung-generieren am Teil und Schnappschuß. Wir haben dann einen Datenpool von zig JPG. Ich will dann beim schnellen Ausdruck dieses JPG aus unserem Artikelpool nicht jedes mal mit Kuli die Artikelnummer oder Bezeichnung draufschreiben und damit in die Montage gehen, sondern jeder soll das JPG klicken, drucken können und braucht sich die Bezeichnung nicht im Köpfchen behalten... Grüßle H. ------------------ Hartmut Tylla http://www.schiwa.de/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 13. Okt. 2008 08:13 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Zitat: Original erstellt von HartmutT: .... Ich will dann beim schnellen Ausdruck dieses JPG aus unserem Artikelpool nicht jedes mal mit Kuli die Artikelnummer oder Bezeichnung draufschreiben und damit in die Montage gehen, sondern jeder soll das JPG klicken, drucken können und braucht sich die Bezeichnung nicht im Köpfchen behalten... Grüßle H.
Ihr werdet doch nicht nach JPEG fertigen??? quick'n'dirty mal sowas:
Code: Dim swApp As Object Dim Part As Object Dim SelMgr As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim Feature As Object Dim Note As Object Dim Annotation As Object Dim TextFormat As ObjectSub main() Dim Fname As String 'Dateiname Dim pName As String 'Pfadname Dim Record As Variant Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc If Part Is Nothing Then 'nichts offen Exit Sub End If pName = Part.GetPathName Record = Split(pName, "\") Fname = Record(UBound(Record))
Set SelMgr = Part.SelectionManager Part.ShowNamedView2 "", 7 Part.ViewZoomtofit2 Set Note = Part.InsertNote(Fname) 'Note mit Dateinamen erzeugen If Not Note Is Nothing Then Note.Angle = 0 boolstatus = Note.SetBalloon(0, 0) Set Annotation = Note.GetAnnotation() If Not Annotation Is Nothing Then longstatus = Annotation.SetLeader2(True, 1, True, False, False, False) boolstatus = Annotation.SetPosition(0, 0, 0) End If End If Part.SaveAs2 pName & ".jpg", 0, True, False End Sub
Damit wird eine "Note" mit dem Dateinamen am Ursprung erzeugt, aber ich glaube, das wird nicht immer passen. Das ist das große Problem: Wo soll die Beschriftung hin? Das hängt ja immer von Größe und Form des Modells ab. Da wirst du dir noch ne Lösung überlegen müssen. Die Alternative wäre, das Modell erst mal ohne Beschriftung als JPEG abzuspeichern und dieses JPEG dann per VBA zu beschriften. Das sollte wohl gehen, aber damit sind meine Programmierkenntnisse- zumindest kurzfristig- überfordert. Da müssen mal die VB-Gurus ran. Das wäre dann wohl auch eher was für vb.net ------------------ Klaus www.al-ko.com | mein Gästebuch | privat... 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: 13. Okt. 2008 14:55 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
|
HartmutT Mitglied Dipl.-Ing (TU) MB
Beiträge: 790 Registriert: 16.06.2006 SWX 2019 SP5.0 MaxxDB 2021.SP0.02 Linked Jan 18 2021 (64bit)
|
erstellt am: 13. Okt. 2008 16:14 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Hallo Gilbert! Hast ja recht, wenn es um das einfache Erstellen eines Ausdrucks geht. Eigentlich ist mir mehr danach, daß "öffnen+Makro" nachts zig Datensätze PDF-fotografiert und mit ner Nummer im Ausdruck (muß nicht unbedingt eine Fußzeile sein) versieht. Als Grunddatenmenge für unsere neue Idee eines Datenpools. Da kann ich nicht Mannmonate verschwenden, um mit Mausklickhinundherdruckenfusszeileblablabla zu zig JPGs zu kommen. Weischt, wie ich mein. Grüßle ausm Remstal, H. ------------------ Hartmut Tylla http://www.schiwa.de/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 13. Okt. 2008 16:33 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
nochmal quick'n'dirty als Word-Makro: - Modell in SWX öffnen - als jpeg speichern - Modell schließen - beliebigen Text (z.B. Dateiname) in Word eintragen - JPEG in Word einfügen - Drucken - alles wieder löschen Das musst du jetzt nur noch ausbauen, z.B. als Schleife, die ein Verzeichnis abarbeitet oder ähnliches. Dazu Modellausrichtung und was du sonst noch so brauchst. Code: Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim FeatureData As Object Dim Feature As Object Dim Component As Object Sub main() 'Zu SolidWorks verbinden: Set swApp = CreateObject("SldWorks.Application") swApp.Visible = True 'Modell öffnen Set Part = swApp.OpenDoc6("C:\temp\mk08101321.SLDPRT", 1, 0, "", longstatus, longwarnings) Set Part = swApp.ActivateDoc2("mk08101321.SLDPRT", False, longstatus) 'Modell als JPG speichern Part.SaveAs2 "C:\temp\mk08101321.JPG", 0, True, False
'Modell schließen Set Part = Nothing swApp.CloseDoc "mk08101321.SLDPRT" 'Text in Word einfügen Selection.TypeText Text:="MK08101321.SLDPRT" 'Bild in Word einfügen Selection.TypeParagraph Selection.InlineShapes.AddPicture FileName:="C:\temp\mk08101321.jpg", _ LinkToFile:=False, SaveWithDocument:=True 'Drucken ActiveDocument.PrintOut 'Alles wieder löschen Selection.WholeStory Selection.Delete Unit:=wdCharacter, Count:=1 End Sub
------------------ Klaus www.al-ko.com | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HartmutT Mitglied Dipl.-Ing (TU) MB
Beiträge: 790 Registriert: 16.06.2006 SWX 2019 SP5.0 MaxxDB 2021.SP0.02 Linked Jan 18 2021 (64bit)
|
erstellt am: 13. Okt. 2008 17:50 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Hi Klaus! Mit dem Umweg übers WORD kann ich mich nicht anfreunden, gute Idee, aber ZwischenJPG und EndJPG, ... o-( Wir hatten bei der letzten Aktion "öffnen+Makro" so häufig Abstürze oder "Server ist ausgelastet", da läuft das nachts nie problemfrei über die Datensätze. Eher checke ich mal, wie das mit der Textblase rüberkommt. Nur wird das heut und morgen nicht. beDANKung, Grüßle H. ------------------ Hartmut Tylla http://www.schiwa.de/ 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: 14. Okt. 2008 07:17 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Jetzt kommt mir was in den Sinn, nachdem ich Klaus's Beitrag weiter Oben nochmals gelesen habe... Ich habe mir mal das da Unten geschrieben, damit ich weiss, wann ich meine Zeichnung zuletzt gedruckt habe! Ich fülle die Variable "Zeit" beim Drucken (von Zeichnungen) mit der aktuellen Zeit und Datum aus (das Makro hier druckt nicht, sondern fügt nur ein Textfeld ein): Code: ' ****************************************************************************** ' C:\Temp\swx3204\Macro1.swb - macro recorded on 06/23/08 by fuerer_g ' ****************************************************************************** Dim swApp As Object Dim Part As Object Dim SelMgr As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim Feature As Object Sub main()Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set SelMgr = Part.SelectionManager Dim Note As Object Dim Annotation As Object Dim TextFormat As Object Set Note = Part.InsertNote("Zuletzt gedruckt am: $PRP:""Zeit""") If Not Note Is Nothing Then Note.Angle = 0 boolstatus = Note.SetBalloon(0, 0) Set Annotation = Note.GetAnnotation() If Not Annotation Is Nothing Then longstatus = Annotation.SetLeader2(False, 0, True, True, False, False) boolstatus = Annotation.SetPosition(0#, 0#, 0#) boolstatus = Annotation.SetTextFormat(0, True, TextFormat) End If End If Part.ClearSelection2 True Part.WindowRedraw End Sub
Hier kann man sicherlich noch Schriftart und -grösse eingeben. Aber wie schon Klaus gesagt hat, die Position könnte das Problem sein. Doch, wenn Du den Text auf 0,0,0 einfügst, sollte der immer sichtbar sein. Vermutlich aber über Deinem Teil, aber besser als gar nichts. Leider weiss ich nicht ob man Text transparent machen kann...?! Oder in den Druckereinstellungen, das "Watermark" per API ansteuern. Da müsste man den Druckerhersteller fragen ob das bei Deinem Drucker möglich ist. Hier wäre noch ein JPEG-Drucker: http://www.rarefind.com/paperlessprinter/downloads.html Beim Publisher SDK kannst Du dann selber alles einstellen: http://www.miraplacid.com/mp/sdk.shtml Weiter möglichkeit: denn Text absichtlich weiter weg zu positionieren, und dann mit Zoom sicherstellen, dass der Text am richtigen Ort erscheint.
Vielleicht hilft Dir das ja weiter. ------------------ http://www.worldcommunitygrid.org Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VBSpawn Mitglied Programmierer
Beiträge: 514 Registriert: 23.08.2005 Sorgfältige Planung ersetzt niemals pures Glück.
|
erstellt am: 14. Okt. 2008 07:37 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Hallo zusammen, Klaus und Gilbert ich find eure Ideen sowas von Prima -> Respekt So einfach wie ein Kofigurationsabhängiges Schriftfeld :-) . Besonders da es sich um jpg handelt ist es nämlich nicht 'ganz' so einfach in VBA zu lösen. Mein Weg wäre über BMP (wobei es einfacher ist einen Text hinzuzufügen) wieder zum jpg. Gruß Micha ------------------ Stell dir vor, es geht, und keiner kriegts hin. Zitat: Interpunktion und Orthographie des Postings sind frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 14. Okt. 2008 08:05 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
|