Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  SolidWorks
  Verknüpfung zwischen Achsen zwischen Koodrinatensystemen über die API

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
  
Bechtle stärkt PLM-Geschäft mit Neugründung, eine Pressemitteilung
Autor Thema:  Verknüpfung zwischen Achsen zwischen Koodrinatensystemen über die API (750 / mal gelesen)
ChaosKonstrukteur
Mitglied



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

Beiträge: 13
Registriert: 29.01.2023

SolidWorks 2022 SP5

erstellt am: 10. Okt. 2023 08:57    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


Code_VBA.png

 
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


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

Beiträge: 426
Registriert: 15.06.2011

SWX 2023
SP 4.0
64 bit

erstellt am: 13. Okt. 2023 09:38    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 ChaosKonstrukteur 10 Unities + Antwort hilfreich

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


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

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 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 ChaosKonstrukteur 10 Unities + Antwort hilfreich

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


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

Beiträge: 299
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 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 ChaosKonstrukteur 10 Unities + Antwort hilfreich

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 >>)

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)2025 CAD.de | Impressum | Datenschutz