| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| SOLIDWORKS 3D CAD Grundlagen E-Learning (SOLIDWORKS) |
Autor
|
Thema: SolidWorks API: Bezugshinweis (491 / mal gelesen)
|
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 23. Feb. 2024 13:04 <-- editieren / zitieren --> Unities abgeben:
Mahlzeit! Es geht eigentlich um ein relativ einfaches Problem. Ich versuche, innerhalb einer Montagezeichnung einen Bezugshinweis zu untersuchen, der als Beschriftung an irgendeine dargestellte Komponente angedockt ist. Ziel ist es, die angedockte Komponente zu identifizieren. Der Bezugshinweis ist eine Note, das Interface dazu ist eine Annotation. Die Annotation verfügt über die Methode GetAttachedEntities3() mit der ich die gesuchten Komponenten erfassen kann. Soweit, so gut. Bei einem neu erstellten Bezugshinweis mit einem einfachen geraden Leader funktioniert das. Der Debug.Print zeigt dann: Annotation.GetAttachedEntityCount3(): 1 Füge ich dem Leader einen weiteren Knickpunkt hinzu, funktioniert es nicht mehr. Anzahl der Elemente wird dann 0. Lösche ich den Knickpunkt wieder, bleibt das so. Ich halte das inzwischen für einen Bug. Ich habe mehrere Workarounds probiert, um die Komponente anders zu identifizieren, aber mir gehen langsam die Ideen aus. Hat jemand vielleicht einen Einfall, wie das Problem zu lösen wäre? Testmakro anbei, swp ist Version 2023 und auch darauf getestet. Die *.bas ist Klartext. Gruß, Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 26. Feb. 2024 11:23 <-- editieren / zitieren --> Unities abgeben: Nur für Torsten Niemeier
Hallo Torsten, ich halte das auch für einen Bug. Was komisch ist, wenn Du den Stil der Hinweislinie auf "Spline" umstellst, erkennt das Makro die Komponente. Ev. wäre das ein Workaround, den Stil temporär auf Spline zu ändern und dann wieder zurück.
------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 26. Feb. 2024 11:36 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von nahe: Hallo Torsten,ich halte das auch für einen Bug. Was komisch ist, wenn Du den Stil der Hinweislinie auf "Spline" umstellst, erkennt das Makro die Komponente. Ev. wäre das ein Workaround, den Stil temporär auf Spline zu ändern und dann wieder zurück.
Hallo Heinz, danke für die Antwort. Wenn man auf Hinweislinie ohne Knicke zurückstellt, geht es auch wieder. Das temporäre Ändern ist leider kein Workaround, da ich nach dem Ändern nicht mehr zur ursprünglichen Form eines abgeknickten Leaders zurückkomme, die Knickpunkte sind dann weg. Vielleicht geht es mit Ändern - Komponente auslesen - EditUndo? Ich probiere mal weiter... Gruß, Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
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: 26. Feb. 2024 11:38 <-- editieren / zitieren --> Unities abgeben: Nur für Torsten Niemeier
Bei meinen Tests hab ich festgestellt, dass es nur mit dem Typ swSelNOTES (SldWorks.Note) geht und mit dem Typ swSelLEADERS (SldWorks.MultiJogLeader) nicht. ------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 26. Feb. 2024 11:49 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von HenryV: Bei meinen Tests hab ich festgestellt, dass es nur mit dem Typ swSelNOTES (SldWorks.Note) geht und mit dem Typ swSelLEADERS (SldWorks.MultiJogLeader) nicht.
Ja, das ganze Makro funktioniert quasi nicht, wenn man einen Leader selektiert. Wobei man mit einem selektiertem Leader aber IMHO auch so gar nichts weiter anfangen kann, oder?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 26. Feb. 2024 15:35 <-- editieren / zitieren --> Unities abgeben:
|
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 26. Feb. 2024 17:45 <-- editieren / zitieren --> Unities abgeben:
So. Zwischenstand: Ich suche mir die zugehörigen Components jetzt über ein SelectByID2. Bei den normalen Leadern benutze ich die attachPos der Note. Bei den Multijog-Leadern nehme ich die Position des ArrowHead. So geht es erstmal. Und es war ein ziemlich harter Ritt bis hierher. Danke an alle, die mitüberlegt haben! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 04. Mrz. 2024 16:00 <-- editieren / zitieren --> Unities abgeben:
Klappt doch nicht. Die ArrowHead-Position ist hochgradig unzuverlässig. Ok, meistens ist sie scheinbar einfach nur falsch. Und das Ergebnis von SelectByID2 ist abhängig davon, wie nah man gerade an die Suchkoordinaten herangezoomt hat. Alles etwas traurig gerade. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Projektleiter Engineering (m/w/d) | Technologischer Fortschritt gelingt nur, wenn Visionen zur Realität werden. Dazu bringen wir bei FERCHAU als eine der führenden europäischen Plattformen für Technologie-Dienstleistungen die smartesten und innovativsten Köpfe mit Unternehmen verschiedenster Branchen zusammen. Wir suchen Sie: als ambitionierte:n Projektleiter:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir ... | Anzeige ansehen | Projektmanagement |
|
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 05. Mrz. 2024 18:18 <-- editieren / zitieren --> Unities abgeben:
Es bleibt beim Fehler, wie ich ihn im ersten Post beschrieben habe. Mache ich aus dem Leader einen MultiJogLeader, verliert die Annotation ihre attached Entity. Muss schon ewig so sein, ich habe das Problem in 2016 und in 2023. Merkwürdig finde ich, dass ich scheinbar der Einzige bin, dem das tatsächlich Schwierigkeiten macht. In der 'normalen' Bedienung kann ich das Problem einfach lösen, indem ich im Property-Manager des Bezughinweises einmal auf ungeknickten Leader schalte und dann ein Ctrl+Z mache. In meinem Makro würde ich diesen Ablauf am liebsten einfach immer vorschalten, aber genau das scheint per API nicht möglich zu sein. Mir gehen hier langsam die Ideen aus. Gruß, Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |