Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API - Fehler bei Model.GetConfigurationNames

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
  
Simulation für CAD-Konstruierende
Autor Thema:  API - Fehler bei Model.GetConfigurationNames (1051 mal gelesen)
Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 29. Sep. 2016 19: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


Flexibel-Bgr1.jpg

 
Hallo,
ich habe einen seltenen Fehler festgestellt, den ich mir nicht erklären kann.
Selten deshalb, weil er nur unter einer bestimmten Konstellation stattfindet.

Ich habe eine Unterbaugruppe mit 4 Konfigurationen.
Diese habe ich mit 2 verschiedenen Konfigs in eine Baugruppe eingefügt.
Beide Unterbaugruppen sind hier auf flexibel gestellt.

In verschiedenen Makros lese ich die Namen der Konfigurationen mit folgendem Befehl aus.

Code:
Namen = Model.GetConfigurationNames

In dem angehängten Bild könnt ihr die unterschiedlichen Anzeigen der Konfigurationen anschauen.
Das Ergebnis von Model.GetConfigurationNames seht ihr am Beispiel von Stefans  Schriftfeldmakro (mittlere Anzeige).
Auffälig ist hier, das die Konfig 0212 fehlt, dafür aber eine Konfig 0260-_flexible1 hinzugefügt ist.
Wenn man also mit diesem Ergebnis in seinem Makro weiterarbeitet, bekommt man heftige Probleme.

Läd man nur diese Unterbaugruppe ohne die Oberbaugruppe, ist alles in Ordnung.
Das Auslesen der Konfigs wird korrekt wiedergegeben.
Ist nur eine Unterbaugruppe flexibel, ist auch alles ok.

Was haltet ihr davon?

Grüße, Andi 

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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: 30. Sep. 2016 08:31    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 Andi Beck 10 Unities + Antwort hilfreich

Hallo Andi,

interessantes Phänomen, über das du da gestolpert bist. Ich hab's mir jetzt nicht nachgestellt, da ich davon ausgehe, dass du die Konfigurationsnamen der Komponente ausliest (und in dem Schriftfeldmakro, dass du angesprochen hast, wird glaube ich nur das aktive Dokument ausgelesen). Wahrscheinlich holst du dir das ModelDoc der Komponente und lässt dir dann mit GetConfigurationNames die Namen geben.

Ich vermute jetzt folgendes: damit die Komponente überhaupt flexibel dargestellt werden kann muss ja irgendwo der Zustand für diese Baugruppe initialisiert und gespeichert werden. Und das sieht so aus, als macht SolidWorks das in temporären (?) und/oder nur in dem speziellen Baugruppenzusammenhang sichtbaren abgeleiteten Konfigurationen. Meine Theorie: wenn die dazu gehörende Hauptbaugruppe nicht offen ist, bleiben die Flex-Konfigurationen "versteckt", die "Anzahl" liefert das richtige Ergebnis und das Namesarray ist okay.

Nun ist ModelDoc::GetConfigurationCount und ModelDoc::GetConfigurationNames ja auch schon seit den ersten Versionen von SolidWorks in der API und damals gab es so etwas wie flexible Komponenten noch gar nicht, es kann also durchaus sein, dass du ein komplettes Array mit allen Namen zurückbekommst, aber mit GetConfigurationCount eben die flexiblen nicht gezählt werden oder so. Dann könnten dir in deinem Beispiel zwei Konfignamen fehlen.

Aber das ist alles nur Kaffeesatzleserei von meiner Seite. Ich würde versuchen das mit einem einfachen Beispiel mitsamt Makro nachstellen zu können und das dann mit dem API Support zu klären.

Ciao,
Stefan

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

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

HenryV
Mitglied
Konstrukteur, Engineering


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

Beiträge: 813
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 30. Sep. 2016 09:14    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 Andi Beck 10 Unities + Antwort hilfreich

Hallo Andi

Wurde in SWX 2017 Beta3 gefixt.
Siehe SPR 965547

Gruss Andreas


------------------
21 ist nur die halbe Antwort.

[Diese Nachricht wurde von HenryV am 30. Sep. 2016 editiert.]

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 30. Sep. 2016 15:04    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 ihr beiden,
danke für eure Antworten.
Werde das noch weiter Beobachten.

@Andreas
Mit dem SPR meinst du doch sicherlich 2017 Beta3 und nicht 2007, oder?
Die hohe SPR Nr. lässt das zumindest vermuten.

Ich bekomme kein Ergebnis bei der Suche nach dem SPR, evtl. liegt es an dem Beta-Status oder ich mach was falsch.

SW2017 ist ja demnächst da, und dann schau ich mir das nochmal an.

Grüße, Andi 

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 02. Okt. 2016 00:59    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 Stefan,
ich habe noch ein bisschen rumgestochert und glaube auch, das deine Vermutungen richtig sind.
Momentan sollte man sich die Anzahl der Konfigs nicht über ModelDoc::GetConfigurationCount holen, sondern über UBound(swModel.GetConfigurationNames) und anschließend die flexiblen Konfigs rausfiltern, je nach Bedarf.
Hier mal ein Beispielcode:

Code:
Sub main()

    Dim swApp           As SldWorks.SldWorks
    Dim swModel         As SldWorks.ModelDoc2
    Dim Namen           As Variant
    Dim SB              As String
    Dim i               As Long
   
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
       
    Namen = swModel.GetConfigurationNames
    SB = "flexible"
   
    For i = 0 To UBound(Namen)

        Debug.Print "Konfigname:  "; Namen(i)
        Debug.Print InStr(Namen(i), SB) > 0

    Next i

End Sub


Wenn es tatsächlich in SW2017 gefixt ist, dann sehen wir weiter.

Grüße, Andi  

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

[Diese Nachricht wurde von Andi Beck am 02. Okt. 2016 editiert.]

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



Konstrukteur (m/w/d) Maschinenbau
Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen ...
Anzeige ansehenKonstruktion, Visualisierung
S777
Mitglied



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

Beiträge: 234
Registriert: 07.09.2016

Solidworks 2016

erstellt am: 05. Okt. 2016 14:01    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 Andi Beck 10 Unities + Antwort hilfreich

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