| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | |  | InnovateNext 26. in Dortmund, eine Veranstaltung am 28.10.2025
|
Autor
|
Thema: Verknüpfung zwischen Achsen zwischen Koodrinatensystemen über die API (757 / mal gelesen)
|
ChaosKonstrukteur Mitglied

 Beiträge: 13 Registriert: 29.01.2023 SolidWorks 2022 SP5
|
erstellt am: 10. Okt. 2023 08:57 <-- editieren / zitieren --> Unities abgeben:         
Hi, Ich will derzeit ein Makro schreiben, das über die API Koordinatensysteme untereinander verknüpft. Ich möchte hierbei nicht die gesamten Koordinatensysteme mit gleicher Achsausrichtung verknüpfen, sondern die einzelnen Achsen der Koordinatensystem miteinander. Grund dafür ist, das eine Rotation/Spiegelung einzelner Komponenten, die nicht über "Anti-align" abzudecken ist, benötigt wird. Leider ist die Auswahl einer Koordinatenachse über "SelectByID2" mit dem Typ "COORDSYS" nicht möglich (obwohl das die Aufnahme über den Makrorekorder zeigt). Auch die Auswahl über den Typ "AXES" oder ähnliches ist ebenfalls nicht möglich. (Siehe Bild) Skurril ist, dass das ganze im manuellen Prozess möglich ist, allerdings die Auswahl bei einer flexiblen Programmierung (ohne genaue Positionsangabe des Koordinatensystems) scheitert. D.h. Problem ist nicht das Verknüpfen der Elemente, sondern das Auswählen der Entity. Kann mir hierzu jemand weiterhelfen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
swx-cad-nutzer Mitglied Konstr
 
 Beiträge: 427 Registriert: 15.06.2011 SWX 2023 SP 4.0 64 bit
|
erstellt am: 13. Okt. 2023 09:38 <-- editieren / zitieren --> Unities abgeben:          Nur für ChaosKonstrukteur
Das sagt die KI dazu: Es scheint, dass Sie Schwierigkeiten haben, die Achsen eines Koordinatensystems in Ihrem Makro auszuwählen und zu verknüpfen. Wenn das Auswählen über "SelectByID2" mit dem Typ "COORDSYS" nicht möglich ist, können Sie versuchen, die Achsen direkt auszuwählen, indem Sie die Achsentypen verwenden. Hier ist ein allgemeines Beispiel, wie Sie die Achsen eines Koordinatensystems in SolidWorks auswählen und verknüpfen könnten: Sub VerknupfeKoordinatenachsen() Dim swApp As Object Dim swModel As Object Dim swFeature As Object Dim swAxis As Object Dim swAxis2 As Object Dim axisName As String ' Verbindung zur SolidWorks-Anwendung herstellen Set swApp = Application.SldWorks ' Aktives Modell abrufen Set swModel = swApp.ActiveDoc ' Namen des ersten Koordinatensystems axisName = "DeinKoordinatensystemName1" ' Koordinatensystem-Feature anhand des Namens auswählen Set swFeature = swModel.FeatureByName(axisName) ' Prüfen, ob das Feature gefunden wurde If Not swFeature Is Nothing Then ' Erste Achse des Koordinatensystems auswählen (z. B. X-Achse) Set swAxis = swFeature.GetSpecificFeature2("X Axis") ' Namen des zweiten Koordinatensystems axisName = "DeinKoordinatensystemName2" ' Koordinatensystem-Feature anhand des Namens auswählen Set swFeature = swModel.FeatureByName(axisName) ' Prüfen, ob das Feature gefunden wurde If Not swFeature Is Nothing Then ' Zweite Achse des Koordinatensystems auswählen (z. B. Y-Achse) Set swAxis2 = swFeature.GetSpecificFeature2("Y Axis") ' Überprüfen, ob beide Achsen ausgewählt wurden If Not swAxis Is Nothing And Not swAxis2 Is Nothing Then ' Hier können Sie die beiden Achsen miteinander verknüpfen ' Zum Beispiel: ' swModel.Extension.SelectByID2 swAxis.Name, "AXIS", 0, 0, 0, False, 0, Nothing, 0 ' swModel.Extension.SelectByID2 swAxis2.Name, "AXIS", 0, 0, 0, True, 0, Nothing, 0 ' Die Verknüpfungsfunktionen hängen von Ihren genauen Anforderungen ab. ' Sie können Rotationen und Spiegelungen in Abhängigkeit von den ausgewählten Achsen durchführen. End If End If End If End Sub ----------- In diesem Beispiel wird angenommen, dass Sie die Achsen anhand ihrer Namen auswählen. Stellen Sie sicher, dass Sie die Namen Ihrer Koordinatensysteme und Achsen entsprechend anpassen. Die Kommentare im Code zeigen, wo Sie die Verknüpfungsfunktionen einfügen können, die Ihren Anforderungen entsprechen. Bitte beachten Sie, dass Sie diesen Code entsprechend Ihren spezifischen Bedürfnissen anpassen müssen. Es kann auch erforderlich sein, zusätzliche Fehlerüberprüfungen und Sicherheitsmaßnahmen hinzuzufügen, um sicherzustellen, dass Ihr Makro stabil und sicher funktioniert. ----------- Ob Dir was hilft? ------------------ https://www.radiobob.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Baumjäger Mitglied CAD/PDM Administrator
 
 Beiträge: 340 Registriert: 21.06.2006 SW2017 - S5.0 AutoCAD Mechanical 2018 Win10 Intel Xeon E3-1240 V2 3,4GHz 16GB RAM NVIDIA Quadro 4000
|
erstellt am: 13. Okt. 2023 09:41 <-- editieren / zitieren --> Unities abgeben:          Nur für ChaosKonstrukteur
Hallo, ich habe mal versucht das nachzustellen: boolstatus = Part.Extension.SelectByID2("Koordinatensystem1@_530062-1 Adapterplatte-2@Baugr1", "COORDSYS", 0, 0, 0, False, 0, Nothing, 0) bei mir funktioniert die Auswahl problemlos. - Kann also an der Version liegen (hier 2021 SP5.1) - Die Bezeichnung mit /X könnte ich mir noch als Problem vorstellen. - Bin mir nicht sicher was genau der Unterschied ist, der letzte Parameter definiert die "SelectOption", vielleicht hier mal noch die 0 probieren.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
RBE Mitglied TechSupport; Bechtle PLM Deutschland GmbH
 
 Beiträge: 300 Registriert: 11.02.2002 HP ZBook 17 G5 Core i9 2.9GHz 32GB RAM Quadro P4200 Win11 SolidWorks2025 SP2
|
erstellt am: 07. Dez. 2023 11:41 <-- editieren / zitieren --> Unities abgeben:          Nur für ChaosKonstrukteur
Es geht m.E. um die Achsen des Koordinatensystems, nicht um das Koordinatensystem selbst. Bei mir funktioniert die Selektion der Achsen / Ebenen des KOS per API definitiv nicht. ChatGPT scheint zwar eine theoretische Lösung gefunden zu haben, diese funktioniert aber (noch) nicht. Vielleicht ist die KI ja sogar so richtig intelligent und sagt damit voraus, was in SOLIDWORKS 2025 funktionieren wird. ------------------ Grüße, RBE ----------
[Diese Nachricht wurde von RBE am 07. Dez. 2023 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |