| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | Flexibel statt verpflichtend: SOLIDWORKS Kauflizenzen und neue Wege der Lizenzierung, ein Webinar am 25.07.2025
|
Autor
|
Thema: API Befehl: Eigenschaft vom Teil in Macro Zeichnung auslesen (1061 mal gelesen)
|
Peter_Pan Mitglied Dipl. Ing. (FH) Maschinenbau

 Beiträge: 16 Registriert: 08.10.2002 Win 7 x64 SWX 2011 SP4.0 Premium
|
erstellt am: 31. Mrz. 2006 15:28 <-- editieren / zitieren --> Unities abgeben:         
Hallo Macrospezialisten! Bin leider in der Programmierung von Macros nicht so fit! Habe folgendes Problem: Die Benutzerdefinierte Eigenschaft "Revision" im Teil oder Baugruppe will ich auf der Zeichnung auslesen. Das muss ja gehen, weil ich diese Eigenschaft auch im Zeichnungskopf auslesen kann. Wie ist die Befehlszeile??? Bin für Eure Hilfe sehr dankbar!! ------------------ Viele Grüße Peter 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: 31. Mrz. 2006 15:45 <-- editieren / zitieren --> Unities abgeben:          Nur für Peter_Pan
Erstelle ein Textfeld und schreibe folgendes: $PRP:"Revision" Tip für die Zukunft: benutze doch wenigstens einmal die Funktion SUCHEN.  [EDIT] Muss es denn ein Makro sein? [/edit] [Diese Nachricht wurde von G. Dawg am 31. Mrz. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter_Pan Mitglied Dipl. Ing. (FH) Maschinenbau

 Beiträge: 16 Registriert: 08.10.2002 Win 7 x64 SWX 2011 SP4.0 Premium
|
erstellt am: 31. Mrz. 2006 16:00 <-- editieren / zitieren --> Unities abgeben:         
Hallo G. Die Darstellung der Eigenschaft auf der Zeichnung ist nicht gemeint. Ich muss den Wert im Macro auslesen um ihn weiterverarbeiten zu können. Erklärung: Ich will den Revisionsstand (Benutzerdefinierte Eigenschaft im Teil) an den Zeichnungsnamen anhängen und diese Zeichnung dann als PDF abspeichern. Ich hoffe, jetzt ist die Anwendung klar! Übrigens, die Suchfunktion kenne und benutze ich!!
------------------ Viele Grüße Peter 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: 31. Mrz. 2006 16:07 <-- editieren / zitieren --> Unities abgeben:          Nur für Peter_Pan
OK! Sorry für das Missverständnis!! Versuche es doch mal mit dem Makro Schriftfeldausfüllen. Dort müsste eigentlich alles drin sein was Du brauchst! Code:
Option Explicit Dim strDateipfad As String Dim i As Integer Dim Name As String Dim vDummy As Variant Dim typ As Integer Dim Pos As Integer Public Sub Dateieigenschaften_auslesen()
'Auf SW zugreifen Set swApp = Application.SldWorks 'An aktives Dokument anklinken Set Zeichnung = swApp.ActiveDoc If Zeichnung Is Nothing Then 'MsgBox "Kein Dokument geöffnet!" End End If 'Prüfen, ob Zeichnung geöffnet ist typ = Zeichnung.GetType() If typ <> swDocDRAWING Then 'MsgBox "Aktives Dokument ist keine Zeichnung!" End End If 'bereits vorhandene Werte aus Zeichnung auslesen und in Formular einsetzen 'Daten von Feintool Schriftfeld 'Materialdaten strDateipfad = Zeichnung.GetPathName() If strDateipfad = "" Then MsgBox "Sie müssen die Datei zuerst speichern!" End 'Exit Sub End If Do vDummy = InStr(strDateipfad, "\") strDateipfad = Right(strDateipfad, Len(strDateipfad) - vDummy) Loop While vDummy <> 0 If UCase(Right(strDateipfad, 7)) = ".SLDPRT" Or UCase(Right(strDateipfad, 7)) = ".SLDASM" Or UCase(Right(strDateipfad, 7)) = ".SLDDRW" Then Name = Left(strDateipfad, Len(strDateipfad) - 7) Else Name = strDateipfad End If Do vDummy = InStr(Name, "-") Name = Right(Name, Len(Name) - vDummy) Loop While vDummy <> 0 Formular.Materialnummer.Caption = Name If Zeichnung.CustomInfo("MARA_TEXT_DE") <> " " Then Formular.Bezeichnung.Value = Zeichnung.CustomInfo("MARA_TEXT_DE") End If Formular.Bemerkung.Value = Zeichnung.CustomInfo("Z_BEMERK") 'Erstellung If Zeichnung.CustomInfo("Z_KONSTR") <> "" Then Formular.Konstruiert_Name.Value = Zeichnung.CustomInfo("Z_KONSTR") Else Call Benutzernamen.Benutzer Formular.Konstruiert_Name.Value = User End If If Zeichnung.CustomInfo("Z_KONSTR_DATUM") <> "" Then Formular.Konstruiert_Datum.Value = Zeichnung.CustomInfo("Z_KONSTR_DATUM") Else Formular.Konstruiert_Datum.Value = Date End If If Zeichnung.CustomInfo("GEZNAM") <> "" Then Formular.Gezeichnet_Name.Value = Zeichnung.CustomInfo("GEZNAM") End If If Zeichnung.CustomInfo("GEZDAT") <> " " Then Formular.Gezeichnet_Datum.Value = Zeichnung.CustomInfo("GEZDAT") End If If Zeichnung.CustomInfo("PRUNAM") <> " " Then Formular.Geprüft_Name.Value = Zeichnung.CustomInfo("PRUNAM") End If If Zeichnung.CustomInfo("PRUDAT") <> " " Then Formular.Geprüft_Datum.Value = Zeichnung.CustomInfo("PRUDAT") End If 'Werkstoffdaten If Zeichnung.CustomInfo("MAT_NR_ROH") <> " " Then Formular.Rohmaterial.Value = Zeichnung.CustomInfo("MAT_NR_ROH") End If If Zeichnung.CustomInfo("MARA_GEWICHT") <> " " Then Formular.Masse.Value = Zeichnung.CustomInfo("MARA_GEWICHT") End If 'Blattanzahl If Zeichnung.CustomInfo("Bezeichnung") <> " " Then Formular.Blatt_Einzel.Value = Zeichnung.CustomInfo("Bezeichnung") End If If Zeichnung.CustomInfo("Bezeichnung2") <> " " Then Formular.Blatt_Gesamt.Value = Zeichnung.CustomInfo("Bezeichnung2") End If 'Sonstiges If Zeichnung.CustomInfo("MARA_ALTE_NR") <> " " Then Formular.Alte_Nummer.Value = Zeichnung.CustomInfo("MARA_ALTE_NR") End If If Zeichnung.CustomInfo("DRAW_VERSION") <> " " Then Formular.Version.Value = Zeichnung.CustomInfo("DRAW_VERSION") End If If Zeichnung.CustomInfo("DRAW_NR") <> " " Then Formular.Dokumentnummer.Value = Zeichnung.CustomInfo("DRAW_NR") End If 'Änderungshistorie For i = 0 To 3 If Zeichnung.CustomInfo("ECM_N" & i + 1) <> " " Then Formular.Historie.AddItem Zeichnung.CustomInfo("ECM_N" & i + 1) 'Index If Zeichnung.CustomInfo("ECM_A" & i + 1) <> " " Then Formular.Historie.List(i, 1) = Zeichnung.CustomInfo("ECM_A" & i + 1) 'Änderung If Zeichnung.CustomInfo("ECM_D" & i + 1) <> " " Then Formular.Historie.List(i, 2) = Zeichnung.CustomInfo("ECM_D" & i + 1) 'Datum If Zeichnung.CustomInfo("ECM_U" & i + 1) <> " " Then Formular.Historie.List(i, 3) = Zeichnung.CustomInfo("ECM_U" & i + 1) 'Name Next i End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Ex-Mitglied | |