| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| 3DEXPERIENCE Conference 2023 | Darmstadt |
Autor
|
Thema: Dateieigenschaft als Dateiname nutzen (1098 mal gelesen)
|
Dirkschr Mitglied Konstrukteur
Beiträge: 70 Registriert: 23.08.2006 Windows 10 Pro for Workstations HP Z4 G4 Workstation Intel Xeon CPU W-2133 3,6GHz 32GB RAM Grafik NVIDIA Quattro P4000 Space Pilot SolidWorks Premium 2019 SP5.0 mit PDM Enterprise 2019
|
erstellt am: 07. Sep. 2007 08:03 <-- editieren / zitieren --> Unities abgeben:
Hallo Wir setzen Keytech Pro mit SolidWorks ein und ich möchte ein Macro schreiben/aufzeichnen, welches eine Step Datei eines Einzelteil´s in ein definiertes Verzeichnis schreibt. Das Verzeichnis kann ich fest einstellen, da sich dies ja nicht mehr ändern soll. Allerdings habe ich bei dem Dateinamen ein Problem. Es soll eine Eigenschaft aus den Dateieigenschaften dazu genutzt werden. Die Eigenschaft lautet PDB_Name. Ich kriege diese Eigenschaft nicht ins Macro übergeben. Weiß jemand wie soetwas geht?
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. Sep. 2007 08:23 <-- editieren / zitieren --> Unities abgeben: Nur für Dirkschr
Hallo Dirkschr, das müsste eigentlich mit
Code: WertDerEigenschaft = ModelDoc2.CustomInfo2 ("", PDB_Name)
funktionieren, wenn es eine allgemeine Dateieigenschaft ist und nicht eine konfigurationsspezifische. Ansonsten als ersten Parameter den Namen der Konfiguration einsetzen.Ciao, Stefan PS: bei Fragen zu API oder Makros ist es immer praktisch, den betreffenden Teil aus den Makros als Code hier zu sehen, dass macht die Sache wesentlich einfacher und wir können alle noch was dabei lernen ------------------ 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. Sep. 2007 09:07 <-- editieren / zitieren --> Unities abgeben: Nur für Dirkschr
Zitat: Original erstellt von StefanBerlitz: ... PS: bei Fragen zu API oder Makros ist es immer praktisch, den betreffenden Teil aus den Makros als Code hier zu sehen, dass macht die Sache wesentlich einfacher und wir können alle noch was dabei lernen ...
Und am besten noch ein "API:" oder "VBA:" oder ähnliches vor den Beitragstitel schreiben, damit jeder weiß, dass es sich um eine Programmierfrage handelt. Ciao ------------------ Klaus www.al-ko.com | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dirkschr Mitglied Konstrukteur
Beiträge: 70 Registriert: 23.08.2006 Windows 10 Pro for Workstations HP Z4 G4 Workstation Intel Xeon CPU W-2133 3,6GHz 32GB RAM Grafik NVIDIA Quattro P4000 Space Pilot SolidWorks Premium 2019 SP5.0 mit PDM Enterprise 2019
|
erstellt am: 07. Sep. 2007 11:37 <-- editieren / zitieren --> Unities abgeben:
Hallo Vielen Dank für die schnelle Hilfe, aber ich komme leider nicht sehr weit damit. Ich bin absoluter Anfänger bei den Makro´s. Ich erhalte immer einen Laufzeitfehler Nr. 424 Objekt erforderlich Da komme ich nicht weiter. Hier ist das Makro
' ****************************************************************************** ' C:\DOKUME~1\SCHROE~1\LOKALE~1\Temp\swx3552\Macro1.swb - macro recorded on 09/07/07 by schroeder ' ****************************************************************************** Dim swApp As Object Dim Part As Object Dim SelMgr As Object Dim WertDerEigenschaft As String Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim Feature As Object Sub main() Set swApp = Application.SldWorks WertDerEigenschaft = ModelDoc2.CustomInfo2("", PDB_Name) <-- hier liegt anscheinend der Fehler, ist gelb markiert Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc Set SelMgr = Part.SelectionManager Part.ShowNamedView2 "*Trimetrisch", 8 swApp.SetUserPreferenceToggle 26, 1 Part.SaveAs2 "D:\DXF\ (Wert der Eigenschaft) .STEP", 0, True, False End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkkk Mitglied
Beiträge: 105 Registriert: 04.03.2005
|
erstellt am: 07. Sep. 2007 11:45 <-- editieren / zitieren --> Unities abgeben: Nur für Dirkschr
|
mkkk Mitglied
Beiträge: 105 Registriert: 04.03.2005
|
erstellt am: 07. Sep. 2007 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für Dirkschr
besser so: Dim swApp As Object Dim Part As Object Dim SelMgr As Object Dim WertDerEigenschaft As String 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 WertDerEigenschaft = part.CustomInfo2("", PDB_Name) 'Set SelMgr = Part.SelectionManager Part.ShowNamedView2 "*Trimetrisch", 8 swApp.SetUserPreferenceToggle 26, 1 Part.SaveAs2 "D:\DXF\" & Wert der Eigenschaft & ".STEP", 0, True, False End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dirkschr Mitglied Konstrukteur
Beiträge: 70 Registriert: 23.08.2006 Windows 10 Pro for Workstations HP Z4 G4 Workstation Intel Xeon CPU W-2133 3,6GHz 32GB RAM Grafik NVIDIA Quattro P4000 Space Pilot SolidWorks Premium 2019 SP5.0 mit PDM Enterprise 2019
|
erstellt am: 07. Sep. 2007 11:57 <-- editieren / zitieren --> Unities abgeben:
Hallo mkkk Ich bekomme jetzt zwar keine Fehlermeldung mehr, aber eine Datei wird auch nicht erzeugt. Irgendwie ist alles Kakke heute Hast Du vielleicht noch einen Tip für mich. Ich habe mal eine Datei mit der Eigenschafr angefügt, vielleicht hilft das. Danke
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dirkschr Mitglied Konstrukteur
Beiträge: 70 Registriert: 23.08.2006 Windows 10 Pro for Workstations HP Z4 G4 Workstation Intel Xeon CPU W-2133 3,6GHz 32GB RAM Grafik NVIDIA Quattro P4000 Space Pilot SolidWorks Premium 2019 SP5.0 mit PDM Enterprise 2019
|
erstellt am: 07. Sep. 2007 11:59 <-- editieren / zitieren --> Unities abgeben:
|
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. Sep. 2007 12:17 <-- editieren / zitieren --> Unities abgeben: Nur für Dirkschr
A bissi was zur Erklärung: Hiermit wird Solidworks aktiviert: Set swApp = Application.SldWorks Dann schreibst du WertDerEigenschaft = ModelDoc2.CustomInfo2("", PDB_Name) Hier wird das Objekt ModelDoc2 benötigt, das hast du aber noch nicht definiert Dann kommt nochmal Set swApp = Application.SldWorks Wozu? Und nun kommt - richtigerweise - Set Part = swApp.ActiveDoc Damit wird dem Objekt Part (nicht ModelDoc2, wie in der Hilfe steht) das aktuell in SWX geöffnete Modell bzw. die Zeichnung zugewiesen, erst jetzt kannst du in VBA was damit machen. Von da ab geht's - wie mkkk geschrieben hat - weiter: WertDerEigenschaft = part.CustomInfo2("", PDB_Name) ... ... ...
Das mit dem "Part" und "ModelDoc2" ist a bisserl blöd, weil hier in der Hilfe was anderes steht, als der Macro-Recorder macht. ModelDoc bedeutet aber nur, dass es sich um ein SolidWorks-Modell- oder Zeichnungs-Objekt handelt, ModellDoc2 bedeutet, dass sich hier in der API was geändert hat, die Beschreibung zu ModelDoc ist damit veraltet. Wie du dieses ModelDoc-Objekt in deinem Macro nennst, bleibt dir überlassen, der Macro-Rekorder nennt das immer "Part". Äh..ich hoffe, das war verständlich, wenn nicht, versuchen wirs nochmal Ciao
------------------ Klaus www.al-ko.com | mein Gästebuch | privat... PS: Zitat: Original erstellt von Dirkschr: Da die datei anscheinend fehlerhaft ist, hier nocheinmal.
Die Datei war nicht fehlerhaft, aber Dateien mit Umlauten etc. im Namen können nicht hochgeladen werden. [Diese Nachricht wurde von KMassler am 07. Sep. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkkk Mitglied
Beiträge: 105 Registriert: 04.03.2005
|
erstellt am: 07. Sep. 2007 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für Dirkschr
aber jetzt: option explicit Dim swApp As Object Dim Part As Object Dim SelMgr As Object Dim WertDerEigenschaft As String 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 WertDerEigenschaft = part.CustomInfo2("", "PDB_Name") 'Set SelMgr = Part.SelectionManager Part.ShowNamedView2 "*Trimetrisch", 8 swApp.SetUserPreferenceToggle 26, 1 Part.SaveAs2 "D:\DXF\" & WertDerEigenschaft & ".STEP", 0, True, False End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dirkschr Mitglied Konstrukteur
Beiträge: 70 Registriert: 23.08.2006 Windows 10 Pro for Workstations HP Z4 G4 Workstation Intel Xeon CPU W-2133 3,6GHz 32GB RAM Grafik NVIDIA Quattro P4000 Space Pilot SolidWorks Premium 2019 SP5.0 mit PDM Enterprise 2019
|
erstellt am: 07. Sep. 2007 13:37 <-- editieren / zitieren --> Unities abgeben:
|