Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro Änderung PDF Speichern

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: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
SOLIDWORKS im Browser: Das neue SOLIDWORKS Cloud Offer
Autor Thema:  Makro Änderung PDF Speichern (1179 mal gelesen)
schnibbi
Mitglied



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

Beiträge: 42
Registriert: 14.01.2008

SWX 2019

erstellt am: 18. Aug. 2020 09:49    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

Guten morgen liebe Community,
ich versuche mich aktuell daran ein paar Abläufe zu automatisieren und das ganze natürlich mittels Makro.
Nach einiger Suche habe ich auch ein sehr schönes Beispiel gefunden, welches ich jetzt an meine Vorgaben versuche anzupassen.

Da ich leider doch sehr begrenzte VBA Kenntnisse besitze, scheitert es bei mir leider shcon an den einfachsten Änderungen.
Vielleicht kann mir jemand sagen, wo bei meiner Version der Bock sitzt:

Dim swApp          As SldWorks.SldWorks
Dim swModel        As SldWorks.ModelDoc2
Dim swDraw          As SldWorks.DrawingDoc
Dim Filepath        As String
Dim Filepath2      As String
Dim FileName        As String
Dim boolstatus      As Boolean
Dim longstatus      As Long
Dim longwarnings    As Long
Dim swCustPrpMgr    As SldWorks.CustomPropertyManager
Dim Value          As String

Sub main()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc


If (swModel Is Nothing) Or (swModel.GetType <> swDocDRAWING) Then

swApp.SendMsgToUser ("To be used for drawings only, Open a drawing first and then TRY!")


Exit Sub

End If

Set swDraw = swModel

Filepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))

If Dir(Filepath & "PDF", vbDirectory) = "" Then ' Change Sub folder Name here
MkDir Filepath + "PDF" ' Change Sub folder Name here
End If

Filepath = Filepath + "PDF\" ' Change Sub folder Name here
Filepath2 = "C:\Users\XY\Desktop\TEST"

Set swCustPrpMgr = swModel.Extension.CustomPropertyManager("")
  swCustPrpMgr.Get3 "Revision", False, "", Value 'Change here the var revision "Revision"

FileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)
FileName = Left(FileName, Len(FileName) - 7) & "_" & Value & ".pdf" 'Unterstrich hinter LEN

swDraw.SaveAs3 Filepath & FileName & "", 0, 0
swDraw.SaveAs3 Filepath2 & FileName & "", 0, 0

Hierbei geht es um 2 Sachen:

1. Die Zeichnung soll als PDF sowohl im aktuellen Verzeichnis der Zeichnung abgelegt werden, als auch auf einem definierten Ordner im Netzlaufwerk (habe hier versucht es lokal abzulegen, aber auch das hat nicht geklappt)

2. aktuell wird die Revision aus der Zeichnung herangezogen, da aber sämtliche Revisionen bei uns in den Teilen vergeben werden würde ich gerne die Information aus dem Teil, welches auf der Zeichnung herangezogen ist, verwenden.

Wenn jemand eine Idee hat, wie man das umsetzen kann, wäre ich fürVorschläge sehr dankbar.

------------------
Wissen ist macht, nichts wissen macht nichts...

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

schnibbi
Mitglied



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

Beiträge: 42
Registriert: 14.01.2008

SWX 2019

erstellt am: 18. Aug. 2020 11:17    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

Okay, das mit dem Speicherpfad konnte ich dann lösen, dank der ganzen Dateien auf meinem Desktop !

------------------
Wissen ist macht, nichts wissen macht nichts...

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 18. Aug. 2020 11:46    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 schnibbi 10 Unities + Antwort hilfreich

Hallo schnibbi,

du musst auf das Referenzierte Dokument für die Zeichnung zugreifen wenn du an die Information des Teiles möchtest und für diesen den Propertymanger holen.
An das Referenzierte Dokument kommst du z.B. über das Beispiel "Get Document Referenced by Drawing View Example (VBA)" + GetFirstView Method (IDrawingDoc).

Falls du nicht klar ommst kannst du ja noch mal nachfragen.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

schnibbi
Mitglied



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

Beiträge: 42
Registriert: 14.01.2008

SWX 2019

erstellt am: 18. Aug. 2020 11:56    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

Dachte ich mir schon, dass ich da die richtige Methode für brauche.
Vielen dank schonmal für den Hinweis.

Das probier ich gleich mal aus !

Komme ich damit auch an die Benutzerdefinierten Eigenschaften , was ja Revision wäre ?!


Edit: Aus dem Beispiel
Sub main()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swSelMgr As SldWorks.SelectionMgr
    Dim swView As SldWorks.View
    Dim swDrawModel As SldWorks.ModelDoc2
    Dim sModelName  As String
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swSelMgr = swModel.SelectionManager
    Set swView = swSelMgr.GetSelectedObject6(1, -1)
    Set swDrawModel = swView.ReferencedDocument
    sModelName = swView.GetReferencedModelName
    Debug.Print "File                      = " & swModel.GetPathName
    Debug.Print "  View                    = " & swView.Name
    Debug.Print "    Referenced model name = " & sModelName
    Debug.Print "    Model path            = " & swDrawModel.GetPathName
   
End Sub

Glaube ich zu verstehen, dass er erstmal versucht das modell der ersten zeichenansicht auszuwählen und dann ab der Zeile sModelName = .... quasi die Eigenschaften des Modells heranzieht, ist das so richtig ?

Könntest du mir sagen wie dann der Befehl für die benutzerdefinierte Eigenschaft "Revision" aussehen müsste ?

------------------
Wissen ist macht, nichts wissen macht nichts...

[Diese Nachricht wurde von schnibbi am 18. Aug. 2020 editiert.]

[Diese Nachricht wurde von schnibbi am 18. Aug. 2020 editiert.]

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 18. Aug. 2020 13:41    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 schnibbi 10 Unities + Antwort hilfreich

Hallo,

dieses Beispiel holt dir das Modell von einer vorher Selektierten Ansicht, daher noch die Methode mit GetFirstView / GetNextView für ein Zeichnungsdokument, das Beispiel holt dir auch nur das Object mit dem du arbeiten musst, also nicht explizit die Eigenschaften, aber wie du an die kommst hast du in deinem Code schon drin musst es eben nur auf ein anderes Object anwenden (oder wie ich das Object vorher ändern).
Wenn du in deinem Code den Teil

Code:

Set swCustPrpMgr = swModel.Extension.CustomPropertyManager("")
swCustPrpMgr.Get3 "Revision", False, "", Value 'Change here the var revision "Revision"

so ergänzst sollte es klappen
Code:
Dim swView As SldWorks.View

Set swView = swDraw.GetFirstView 'First View ist das Blatt
Set swView = swView.GetNextView 'der zweite View ist die erste Zeichnungsansicht
Set swModel = swView.ReferencedDocument
Set swCustPrpMgr = swModel.Extension.CustomPropertyManager("")
swCustPrpMgr.Get3 "Revision", False, "", Value 'Change here the var revision "Revision"


Die Dim Anweisung kannst du auch nach oben in den Definitionsbereich packen.
Die Variante ist aber Quick and Dirty   .

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete  

[Diese Nachricht wurde von bk.sc am 18. Aug. 2020 editiert.]

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

schnibbi
Mitglied



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

Beiträge: 42
Registriert: 14.01.2008

SWX 2019

erstellt am: 18. Aug. 2020 16:09    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

Super, ich denke damit kann ich arbeiten, die Erklärung was da genau passiert ist Gold wert!


Vielen Dank für die Unterstützung

------------------
Wissen ist macht, nichts wissen macht nichts...

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)2024 CAD.de | Impressum | Datenschutz