Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Zeichnung als PDF mit benutzerdefinierter Eigenschaft des Models

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: SOLIDWORKS - DFMXpress
Autor Thema:   Zeichnung als PDF mit benutzerdefinierter Eigenschaft des Models (393 mal gelesen)
slow89
Mitglied
Konstrukteur

Sehen Sie sich das Profil von slow89 an!   Senden Sie eine Private Message an slow89  Schreiben Sie einen Gästebucheintrag für slow89

Beiträge: 2
Registriert: 22.10.2020

Solidworks Standard 2020 SP3

erstellt am: 22. Okt. 2020 14:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo CAD Forum,
ich bin neu hier und habe ein Problem, bei dem ich allein nicht weiter komme.
Ich möchte mit Hilfe eines Makros eine SW-Zeichnung als PDF abspeichern in deren Dateiname die Revisionsnummer des Models in der Zeichnung und das Datum auftaucht.
Mit Hilfe einiger Beiträge habe ich schon folgendes zusammen stellen können.


***************************************************************
Option Explicit
    Dim swApp                  As SldWorks.SldWorks
    Dim swModel                As SldWorks.ModelDoc2
    Dim sPathName              As String
    Dim nErrors                As Long
    Dim nWarnings              As Long
    Dim nRetval                As Long
   
    Dim swModelDocExt          As SldWorks.ModelDocExtension
    Dim swExportData            As SldWorks.ExportPdfData
    Dim filename                As String
    Dim boolstatus              As Boolean
    Dim lErrors                As Long
    Dim lWarnings              As Long
    Dim bRet                    As Boolean
   
Dim View As SldWorks.View
Dim sModelName As String
Dim SwAsmModel As SldWorks.ModelDoc2

Dim index As String

    Dim DrawingDoc      As Object
 

    Dim RefModelView    As String
    Dim RefModelName    As String

   
   
       
Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc

   
   
    ' Strip off SolidWorks drawing file extension (.slddrw)
    ' and add PDF file extension (.pdf)
    sPathName = swModel.GetPathName
    sPathName = Left(sPathName, Len(sPathName) - 6)
    sPathName = sPathName + "pdf"
    ' Show current settings
   
   
Set DrawingDoc = swModel
'Das ist das Blatt
Set View = DrawingDoc.GetFirstView()
'Die erste Ansicht im Blatt
Set View = View.GetNextView
'Dokument der Ansicht
sModelName = View.GetReferencedModelName

'Jetzt hast du einen Pfad und kannst in den geöffneten ModelDocs nach dem richtigen Suchen.
Set SwAsmModel = swApp.GetFirstDocument

 
'Dokumenteigenschaft
If Not SwAsmModel Is Nothing Then
index = swModel.CustomInfo("Revision")
End If


    ' Turn off showing of map
      Set swModelDocExt = swModel.Extension
    Set swExportData = swApp.GetExportFileData(swExportPDFData)
    filename = swModel.GetPathName
    filename = Strings.Left(filename, Len(filename) - 7) & "_R" & index & "_" & Date & ".PDF"
    boolstatus = swExportData.SetSheets(swExportData_ExportAllSheets, 1)
    boolstatus = swModelDocExt.SaveAs(filename, 0, 0, swExportData, lErrors, lWarnings)
    If boolstatus Then
        MsgBox "Erfolgreich" & vbNewLine & filename
    Else
        MsgBox "Save as PDF failed you did somthing wrong dumb ass, Error code:" & lErrors '
    End If
 

   
End Sub
************************************************************

das funktioniert soweit auch ganz gut, wenn die Zeichnung für ein Part ist. Ist eine Baugruppe in der Zeichnung, bezieht sich die Revisionsnummer auf das erste Part der Baugruppe und nicht auf die Baugruppeneigenschaft.

Kann mir hier irgendjemand, der sich mit Programmierung auskennt weiter helfen?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nahe
Ehrenmitglied



Sehen Sie sich das Profil von nahe an!   Senden Sie eine Private Message an nahe  Schreiben Sie einen Gästebucheintrag für nahe

Beiträge: 1576
Registriert: 18.01.2001

arbeite mit:
HP Z440 Workstation
Xenon (12-Kern) 3.5GHz
32GB RAM
238GB SSD
------------------------
SWX-2018 SP5.0
EPDM
----------------
Windows 7 64 bit
----------------
VB.net
VB
VBA
Lotus Notes Datenbanken
erste Schritte mit Swift

erstellt am: 25. Okt. 2020 09:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für slow89 10 Unities + Antwort hilfreich

Hallo Slow89,

ohne den Code getestet zu haben
wie kannst Du Dir sicher sein, dass
Set SwAsmModel = swApp.GetFirstDocument

auf das richtige Modell verweist?

Ich würde das mal debuggen und prüfen welches Modell dort als Ergebnis geliefert wird

------------------
Grüße
Heinz

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

riesi
Mitglied
Konstrukteur, CAD-Admin


Sehen Sie sich das Profil von riesi an!   Senden Sie eine Private Message an riesi  Schreiben Sie einen Gästebucheintrag für riesi

Beiträge: 841
Registriert: 06.05.2002

SWX Office Pre. 2020-Sp4

erstellt am: 25. Okt. 2020 17:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für slow89 10 Unities + Antwort hilfreich

Ich würde zuerst prüfen, ob eine Zeichnung wirklich das aktive Dokument ist und zusätzlich alle Zeichenansichten durchschauen, ob nicht eine Ansicht von einem anderen Modell vorliegt.

Die Ermittlung der Revisions-Nr. aus dem Modell-Eigenschaften, muss dieses geöffnet werden. Über den Pfad oder wie auch immer, hab' SolidWorks-API nicht im Kopf, ob auch dass Öffnen aus einer Ansicht möglich ist. Falls die Revision des Modells durch die Dokumenten-Verwaltung auch auf die Zeichnung gemappt ist, geht es auch so, wie es jetzt ist.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HenryV
Mitglied
Konstrukteur, Engineering


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

Beiträge: 715
Registriert: 18.05.2005

SolidWorks 2020 x64 SP3.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 1703
Microsoft Office 365 ProPlus
Microsoft Visual Studio Enterprise 2019

erstellt am: 26. Okt. 2020 11:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für slow89 10 Unities + Antwort hilfreich

Hallo slow89

Ich habe mir einmal deinen Code angeschaut und meine das Problem liegt in diesen Zeilen.

Code:
'Dokument der Ansicht
sModelName = View.GetReferencedModelName

'Jetzt hast du einen Pfad und kannst in den geöffneten ModelDocs nach dem richtigen Suchen.
Set SwAsmModel = swApp.GetFirstDocument

'Dokumenteigenschaft
If Not SwAsmModel Is Nothing Then
index = swModel.CustomInfo("Revision")
End If


Du liest den Pfad des referenzierten Dokument aus.
Da holst du dir das erste Dokument.
Und dann liest du dir die Eigenschaft aus der Zeichnung. 

Das kann irgendwie nicht stimmen.

Müsste es nicht in etwa so aussehen?

Code:
    'Dokument der Ansicht
    Set SwAsmModel = View.ReferencedDocument

    'Dokumenteigenschaft
    If Not SwAsmModel Is Nothing Then
        index = SwAsmModel.CustomInfo("Revision")
    End If

------------------
21 ist nur die halbe Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

slow89
Mitglied
Konstrukteur

Sehen Sie sich das Profil von slow89 an!   Senden Sie eine Private Message an slow89  Schreiben Sie einen Gästebucheintrag für slow89

Beiträge: 2
Registriert: 22.10.2020

Solidworks Standard 2020 SP3

erstellt am: 26. Okt. 2020 14:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank für den Hinweis HenryV, genau da lag das Problem. Jetzt läuft es wie ich es mir vorgestellt habe.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz