Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API Objekte

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
  
InnovateNext 26. in Berlin, eine Veranstaltung am 20.11.2025
Autor Thema:  API Objekte (440 mal gelesen)
Jürgen33
Mitglied


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

Beiträge: 2
Registriert: 07.08.2003

erstellt am: 07. Aug. 2003 10:40    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

Hallo an alle,

ich habe ein kleines (oder großes) APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)-Verständnis-Problem. Ich möchte gerne die Dateieigenschaften (Datei->Eigenschaften->Benutzerdefiniert) von allen Teilen einer Baugruppe auslesen.

Mein Ziel ist es, lackierte Teile nach Kundenwunsch einzufärben, nicht aber Kaufteile oder anders beschichtete Teile. Dazu habe ich in den Dateieigenschaften der Lackierten Teile einen Vermerk eingetragen, um diese zu erkennen.

Für das "Durchkämmen" der Baugruppe habe ich schöne Beispiele bei solidworks.cad.de und in der Solidworks-Online-Hilfe gefunden (Traverse...). Danach habe ich folgendes ausprobiert:

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
Set Configuration = Part.GetActiveConfiguration()
Set RootComponent = Configuration.GetRootComponent()
Children = RootComponent.GetChildren()
For i=0 to UBound(Children)
  Set Child = Children(i)
  Infos = Child.GetCustomInfoNames <-- ...unterstützt diese Methode nicht
  Lackieren = Infos(0)
  If Lackieren = "Farbe1" Then
    ...
  End If
Next i

...und bin bei Child.GetCustomInfoNames gescheitert.

Was gibt die Methoden ModelDoc2::GetChildren zurück ...Eine Liste von Objekten, aber was für Objekte? Brauchen würde ich ein ModelDoc2-Objekt für die Methode ModelDoc2::GetCustomInfoNames2.

Kann mir jemand helfen?

Vielen Dank,
Euer Jürgen

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 07. Aug. 2003 11:07    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 Jürgen33 10 Unities + Antwort hilfreich

Hi Jürgen,

Du bist schon ganz dicht dran.
Hier eine korrigierte Version Deines Makros:

[---snip---]
Sub main()

Dim swApp As Object
Dim part As ModelDoc2
Dim configuration As configuration
Dim rootcomponent As Component2
Dim child As Component2
Dim doc As ModelDoc2
Dim configname As String

Set swApp = CreateObject("SldWorks.Application")
Set part = swApp.ActiveDoc
Set configuration = part.GetActiveConfiguration()
Set rootcomponent = configuration.GetRootComponent()
Children = rootcomponent.GetChildren()
For i = 0 To UBound(Children)
  Set child = Children(i)
  Set doc = child.GetModelDoc
  If doc.GetCustomInfoCount2("") > 0 Then
    infos = doc.GetCustomInfoNames2("")
    MsgBox (infos(0))
  End If
Next i


End Sub
[---snap---]

Zur Erläuterung:
ModelDoc2.ActiveConfiguration liefert ein Configuration-Objekt.
Configuration.GetRootComponent liefert ein Component-Objekt.
Component.GetModelDoc liefert ein ModelDoc2-Objekt.

Gruß,
  Danny

------------------
Danny Reinhold
Reinhold Software & Services

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: 07. Aug. 2003 13:07    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 Jürgen33 10 Unities + Antwort hilfreich

Hallo Jürgen,

Danny hat dir schon das Makro so aufgebohrt, wie du es brauchst, deswegen nur noch eben explizit auf deine Frage geantwortet:

> Was gibt die Methoden ModelDoc2::GetChildren zurück ...Eine Liste
> von Objekten, aber was für Objekte?

Du bekommst ein Feld von Component-Objekten zurück, und du mußt dir dann eben noch von der Komponente mit .GetModelDoc das dazu passende ModelDoc holen. Dann hast du ja selbst schon gesehen, kommst du weiter.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite
http://solidworks.cad.de

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



Anzeige:Infos zum Werbeplatz >>

speedyPDM CAD APP für Andere, Datenaustausch, Allgemeine Werkzeuge

speedyPDM ist das führende technische Dokumenten- und Produktdatenmanagementsystem für Solidworks, Solid Edge, Inventor, AutoCAD, ZWCAD, BricsCAD, Office und Email inklusive Revisionsmanagement.

Jürgen33
Mitglied


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

Beiträge: 2
Registriert: 07.08.2003

erstellt am: 07. Aug. 2003 13:44    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

Vielen Dank an Danny und Stefan (Prima Sache, Das :-) !). So komme ich gut weiter! Ich hoffe nur, dass ich auch mal helfen kann, und nicht immer nur Infos brauche.

Gruß
Euer Jürgen

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