| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Baugruppen-Handling mit 3DEXPERIENCE SOLIDWORKS |
Autor
|
Thema: SW-Dateieigenschaft und API (2506 mal gelesen)
|
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. Jun. 2004 12:16 <-- editieren / zitieren --> Unities abgeben:
hmm...wie soll ich das jetzt sagen.... Man kann z.B. in Beschriftungen mit $PRP:"SW-Blattname(Sheet Name)" SWX-Eigenschaften einfügen (Blattnr, Blattformat usw.) Man kann mit CustomInfo2 benutzerdefinierte Dateieigenschaften mit VB auslesen. Soweit so gut. Wie kann ich aber die SW-Eigenschaften per API auslesen? Gibt es da einen Befehl dazu? Ich habe nichts gefunden bisher. Ciao
------------------ Klaus Massler www.al-ko.de privat... KLAMM? Was ist KLAMM? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberparleiter Mitglied Konstrukteur
Beiträge: 706 Registriert: 06.06.2000
|
erstellt am: 08. Jun. 2004 13:02 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
Hallo Ist eigentlich ganz einfach. Werkstoff = Chr$(34) & "SW-Material@" & Titel & ".sldprt" & Chr$(34) ergibt: "SW-Material@Teil1.sldprt" dummy = Part.addcustominfo("Werkstoff", "Text", Werkstoff) jetzt noch eintragen Wichtig ist das CHR$(34) die zusätzlichen Gänsefüsschen genau so steht der Wert in den Dateieigenschaften (siehe Bild).
------------------ Gruss Frank 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: 08. Jun. 2004 13:02 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
|
Oberparleiter Mitglied Konstrukteur
Beiträge: 706 Registriert: 06.06.2000
|
erstellt am: 08. Jun. 2004 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
Achja auslesen. Müsste dann so aussehen: ' Material auslesen MatIDName = Part.MaterialIDName ;ergibt "solidworks materials|Aisi304" Dim i For i = 1 To Len(MatIDName) If Mid(MatIDName, i, 1) = "|" Then GoTo endnext Next endnext: MatIDName = Right(MatIDName, Len(MatIDName) - i) cmbSFWerkstoff.Text = MatIDName ; ergibt "Aisi304" Ist vielleicht umständlich programmiert aber es Funktioniert. Der Text der über "Part.MaterialIDName" ausgelesen wird lautet: "solidworks materials|Aisi304" Nach der Formatierung lautet er: "Aisi304". ------------------ Gruss Frank [Diese Nachricht wurde von Oberparleiter am 08. Jun. 2004 editiert.] 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. Jun. 2004 14:03 <-- editieren / zitieren --> Unities abgeben:
Hmm...also so wirklich klar komme ich damit noch nicht. Ich suche zwar generell die Möglichkeit, diese SW-Eigenschaften per API auszulesen. Im Moment geht es mir speziell um die Blattnr. und eventuell das Format. Bisher behelfe ich mir, indem ich die Blattnr. aus dem Fenstertitel extrahiere, das klemmt aber, wenn die Zeichnung auf einem System in einer anderen Sprache erstellt wurde. Dann heißt es eben nicht "Zeichnung1 - Blatt1" sondern "Drawing1 - sheet1" oder sonst wie...und wenn ich das "sonst wie" im Programm nicht schon vorgesehen habe, bekomme ich eben die Blattnr. nicht. @Frank: Das mit dem "SW-Material@teil1.sldprt" funktioniert bei mir nicht, da bekomme ich als Ergebnis in Werkstoff nur "SW-Material@Teil1.sldprt" Das mit dem "MatIDName = Part.MaterialIDName" funktioniert- nützt mir bloß leider hier nichts, denn ausgerechnet das Material brauche ich gerade nicht Ach ja, das mit dem Auswerten von MaterialIDName geht ein bischen einfacher (damit ich nicht ganz dumm da stehe ): DIM Result as Variant DIM Material as String ... Result = Split(MatIDName, "|") Material = Result(1) ... Wo hast du das mit dem Part.MaterialIDName eigentlich gefunden? Auf jeden Fall danke erst mal...vielleicht fällt ja noch jemandem was ein. Ciao ------------------ Klaus Massler www.al-ko.de privat... KLAMM? Was ist KLAMM? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberparleiter Mitglied Konstrukteur
Beiträge: 706 Registriert: 06.06.2000
|
erstellt am: 08. Jun. 2004 14:38 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
Ohhh cool man lernt nie aus. Mit "retval = DrawingDoc.GetSheetNames( )" kommst du an das Blatt hin. Edit Zu dem eintragen noch mal. Der Text muss in 2 Gänsefüsschen geschrieben werden ""SW-Material@Teil1.sldprt"" deshalb auch der CHR$(34) am Anfang und am Ende End Edit ------------------ Gruss Frank
[Diese Nachricht wurde von Oberparleiter am 08. Jun. 2004 editiert.] 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. Jun. 2004 15:05 <-- editieren / zitieren --> Unities abgeben:
Das mit den Gänsefüschen hatte ich schon verstanden, das klappt (bis jetzt) trotzdem nicht. Muss ich morgen nochmal versuchen. Und mit dem DrawingDoc.GetSheetNames( ) bekomme ich als Ergebnis auch nur einen Text wie "Blatt1", "Blatt2" etc. aber nicht die reine Blattnr. Das ist im Prinzip genauso gut oder schlecht, wie wenn ich die Blattnr. aus dem Fenstertitel extrahiere. Trotzdem Danke...und für heute Ciao ------------------ Klaus Massler www.al-ko.de privat... KLAMM? Was ist KLAMM? 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: 08. Jun. 2004 15:29 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
Hallo Klaus, um nur die Blattnummer des aktuellen Blattes zu bekommen klapperst du alle Blattnamen ab und vergleichst den mit dem Namen des aktiven Blattes:
Code:
Dim SwApp As Object Dim DrawingDoc As Object Dim Sheet As ObjectDim i As Long Dim SheetName As String Dim Sheets As Variant Const swDocDRAWING = 3 Sub main() Set SwApp = CreateObject("SldWorks.Application") Set DrawingDoc = SwApp.ActiveDoc If (DrawingDoc.GetType <> swDocDRAWING) Then ' wenn keine Zeichnung aktiv wird das Makro wieder beendet MsgBox "Nur für Zeichnungen geeignet" Exit Sub End If ' Name des aktuellen Blattes merken Set Sheet = DrawingDoc.GetCurrentSheet SheetName = Sheet.GetName ' die Anzahl der Blätter holen, und dann in der Schleife ' eines nach dem anderen abklappern und Namen vergleichen Sheets = DrawingDoc.GetSheetNames For i = 0 To UBound(Sheets) If (SheetName = Sheets(i)) Then MsgBox "Blatt Nummer " & i + 1 End If Next i End Sub
Ich hoffe, damit kommst du weiter Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de KLAMM? Was ist KLAMM? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
u.clemens Mitglied Konstrukteur
Beiträge: 964 Registriert: 04.07.2000 engineer's law o cheap o fast o good check only two !
|
erstellt am: 08. Jun. 2004 17:53 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
Zitat: Original erstellt von KMassler: Wie kann ich aber die SW-Eigenschaften per API auslesen?
hallo, vielleicht hilft Dir ja die angehängte Übersicht ... (Der Unterschied zwischen Blattgröße des aktive Blattformates und Vorlagengröße der Zeichenvorlage hat sich mir allerings noch nicht erschlossen) ------------------ mfg uc 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: 09. Jun. 2004 08:19 <-- 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: 24. Sep. 2004 12:09 <-- editieren / zitieren --> Unities abgeben:
|