Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  SW-Dateieigenschaft und API

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
  
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...



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

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 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

hmm...wie soll ich das jetzt sagen....

Man kann z.B. in Beschriftungen mit $PRP:"SW-Blattname(Sheet Name)" SWXSolidWorks-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 APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) 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


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

Beiträge: 706
Registriert: 06.06.2000

erstellt am: 08. Jun. 2004 13:02    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 KMassler 10 Unities + Antwort hilfreich


Dateieigenschaften.jpg

 
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)



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

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 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 KMassler 10 Unities + Antwort hilfreich

Hallo Klaus,

du kannst diese "Eigenschaften" nicht so direkt auslesen (zumindest weiß ich nicht wie), aber alle diese Informationen stehen ja per APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) zur Verfügung. Zum Beispiel den Blattnamen des aktuellen Blattes bekommst du über Sheet.GetName ...

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

Oberparleiter
Mitglied
Konstrukteur


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

Beiträge: 706
Registriert: 06.06.2000

erstellt am: 08. Jun. 2004 13: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 Nur für KMassler 10 Unities + Antwort hilfreich

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...



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

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 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

Hmm...also so wirklich klar komme ich damit noch nicht.

Ich suche zwar generell die Möglichkeit, diese SW-Eigenschaften per APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) 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


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

Beiträge: 706
Registriert: 06.06.2000

erstellt am: 08. Jun. 2004 14:38    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 KMassler 10 Unities + Antwort hilfreich

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...



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

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 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

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)



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

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 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 KMassler 10 Unities + Antwort hilfreich

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 Object

Dim 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


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

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 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 KMassler 10 Unities + Antwort hilfreich


SW-PropertiesbyAPI.pdf

 
Zitat:
Original erstellt von KMassler:
Wie kann ich aber die SW-Eigenschaften per APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) 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...



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

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 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

Wow!
Herzlichen Dank ihr 2- das hilft mir jetzt auf jeden Fall.
   

Trotzdem ist es eigentlich schade - und auch unverständlich - dass die SWXSolidWorks-Eigenschaften, die innerhalb SWXSolidWorks mit "$PRP:...." abgerufen werden können, nicht direkt per APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) ausgelesen werden können.
Naja, aber so gehts dann ja auch

Ciao

------------------
Klaus Massler

www.al-ko.de
privat...
KLAMM? Was ist KLAMM?

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...



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

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 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

Zitat:
Original erstellt von Oberparleiter:
...
    ' Material auslesen
    MatIDName = Part.MaterialIDName                   ;ergibt "solidworks materials|Aisi304"
...


Danke nochmal! Heute habe ich das brauchen können 

------------------
Klaus Massler

www.al-ko.de
privat...
ForumsChat: Schau doch mal hier rein, wenn ihr Zeit habt...

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