| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | SOLIDWORKS Electrical Schematic Schulung, ein Seminar am 23.06.2025
|
Autor
|
Thema: API: Assoziierte Annotations (813 mal gelesen)
|
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 04. Feb. 2009 08:43 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen zusammen, es ist mal wieder so weit, ich komme nicht weiter und hoffe auf eure Hilfe. Ich möchte die Annotations (also alle Bemaßungen, Bezugshinweise, Symbole, … einer Zeichnung überprüfen. Dabei geht es mir darum nicht assoziierte Annotations zu ermitteln, also solche die in SolidWorks bräunlich dargestellt werden. In den beiden Bildern sieht man dies an der Gewindebemaßung "M8" und an dem Bezugshinweis "Testbezug". Als erstes habe ich mir mit der Methode Annotation.GetAttachedEntities3 beholfen und dachte schon: „Das ist es!“. Allerdings gibt diese Methode nur Entities also Flachen, Kanten, Punkte und Skizzensegmente zurück. Bei der Annotation in den Bildern handelt es sich um eine Annotation die an einem Gewinde (CThread) assoziiert ist. Dies hat zur Folge das GetAttachedEntities3 bei dieser Annotation immer Nothing zurück gibt, egal ob diese assoziiert oder nicht. Deshalb kann die GetAttachedEntities3 Methode nicht allgemein dazu verwenden werden um festzustellen ob eine Annotation noch assoziiert ist oder nicht. Meine Frage ist also ob jemand eine andere API Methode oder einen kleinen Trick kennt um dies zu ermitteln. Ich hoffe ich konnte mein Problem verständlich erklären und jemand hat eine Antwort für mich.
------------------ Mfg Daniel www.MySldWorks.de - SolidWorks API Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
INKN Mitglied Consulant/Softwareentwickler
 
 Beiträge: 277 Registriert: 22.08.2001
|
erstellt am: 04. Feb. 2009 10:26 <-- editieren / zitieren --> Unities abgeben:          Nur für tbd
|
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 04. Feb. 2009 10:31 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von INKN: Wird Dir zwar nicht helfen, ...
Stimmt! Aber meine Hoffnung sinkt wenn es in 2009 einen neuen Befehl gibt! Dieser Befehl wurde nicht ohne Grund hinzugefügt. Wahrscheinlich weil es in älteren Versionen keine Möglichkeit gab dies per API zu ermitteln ------------------ Mfg Daniel www.MySldWorks.de - SolidWorks API Snippets [Diese Nachricht wurde von tbd am 04. Feb. 2009 editiert.] 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: 04. Feb. 2009 12:02 <-- editieren / zitieren --> Unities abgeben:          Nur für tbd
|
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 04. Feb. 2009 12:24 <-- editieren / zitieren --> Unities abgeben:         
Hallo Clemens, diesen und auch andere Beiträge, wo die Methoden GetAttachedEntities3 und GetAttachedEntityTypes behandelt werden hatte ich bei meiner Suche schon gefunden. Wie ich schon in meiner Frage beschrieben habe bringt mich die Methode bei einer Gewindebemaßung nicht weiter. Beide Methoden liefern in einem solchen Fall immer Nothing. Das funktioniert nur bei Annotations, die mit einer Kante, Fläche, Skizzensegmente, u.s.w. verknüpft sind. Ich währe ja schon glücklich wenn ich ermitteln könnte das es sich um eine Gewindebemaßung handelt, aber leider unterscheidet swDimensionType_e nicht so weit. Ich werde noch verrückt! ------------------ Mfg Daniel www.MySldWorks.de - SolidWorks API Snippets [Diese Nachricht wurde von tbd am 04. Feb. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 04. Feb. 2009 15:39 <-- editieren / zitieren --> Unities abgeben:         
Ich hab was gefunden. Zwar nicht 100%ig wasserdicht, aber immerhin. Ich dachte mir wenn SolidWorks erkennt das die Beschriftung freisteht und darauf die Farbe der Beschriftung ändert, warum nicht einfach diese Farbe abfragen. Den Codeschnippsel führe ich aus wenn ich von den Methoden GetAttachedEntities3 und/oder GetAttachedEntityTypes mitgeteilt bekomme, das es keine Entities zu der Beschriftung gibt:
Code:
Dim oSwDisplayData As sldworks.DisplayData oSwDisplayData = CType( _ oSwAnnotation.GetDisplayData, sldworks.DisplayData) 'Die Farbe der Linien ermitteln If oSwDisplayData.GetLineCount > 0 Then Dim oLineInfoDummy As Object Dim dLineInfoArray() As Double oLineInfoDummy = oSwDisplayData.GetLineAtIndex3(0) dLineInfoArray = CType(oLineInfoDummy, Double()) 'Index 0 ist die Farbe der Beschriftung, 'dies wird jetzt mit der Option verglichen If Me.MySldWorks.UserPreferenceInteger( _ swconst.swUserPreferenceIntegerValue_e. swSystemColorsDanglingDimension) = _ dLineInfoArray(0) Then 'Die Farben stimmten überein. 'Es wird davon ausgegangen das die Beschriftung freistehend ist bFreistehend = True End If Else 'Ein Vergleich der Farbe war nicht möglich bFreistehend = True End If
------------------ Mfg Daniel www.MySldWorks.de - SolidWorks API Snippets [Diese Nachricht wurde von tbd am 04. Feb. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |