Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Bedingungen per Skript erzeugen

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
Autor Thema:  Bedingungen per Skript erzeugen (531 / mal gelesen)
WMA HSU
Mitglied
WMA


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

Beiträge: 22
Registriert: 31.03.2020

erstellt am: 10. Feb. 2021 15:27    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


CATIAForum.JPG

 
Hallo liebes CAD-Forum (und besonders Bernd  ),

Ich habe mal wieder ein Problem, bei dem ich eure Hilfe brauche. Ich möchte mit einem Skript automatisiert Constraints setzen, aber CATIA weigert sich beharrlich, mir weiterzuhelfen. Ich habe mir also eine Testumgebung gebaut, um die Constraints besser zu verstehen, aber auch das hat mir nicht weitergeholfen.
Für meinen Demofall habe ich folgende Situation gebaut (Bild)
Ich möchte jetzt die beiden Punkte übereinanderlegen. Von Hand wäre das recht einfach über die "Coincide" Funktion. Der Makrorecorder liefert leider nur "CreateReferenceFromName", das sich nur schlecht automatisieren lässt.
Kann mir jemand erklären, wie ich "CreateReferenceFromName" hier benutzen kann?
Quelltext (Quick and Dirty):

Code:

Dim tempPoint1 = CATIA.ActiveDocument.Selection.Item(1).Value
        Dim tempPoint2 = CATIA.ActiveDocument.Selection.Item(2).Value
        Dim Prod As ProductStructureTypeLib.Product = CATIA.ActiveDocument.Product
        Dim Party As Part = selection1.Item(1).Value.Parent.Parent.Parent.Parent
        Dim tempref As Reference = Party.CreateReferenceFromObject(tempPoint1)
        MsgBox(TypeName(tempref))
        MsgBox(tempref.DisplayName)
        Dim Porty As Part = selection1.Item(2).Value.Parent.Parent.Parent.Parent
        Dim tempref2 = Porty.CreateReferenceFromObject(tempPoint2)
        Dim constraints1 As Constraints = CATIA.ActiveDocument.Product.Connections("CATIAConstraints")
        Dim constraint1 = constraints1.AddBiEltCst(CatConstraintType.catCstTypeOn, tempref, tempref2)

Vielen Dank für Euer Interesse, ich hoffe, Ihr kennt eine Lösung 

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 10. Feb. 2021 15:42    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 WMA HSU 10 Unities + Antwort hilfreich

Servus

IMHO musst du CreateReferenceFromName nutzen und dir den String des Pfads selbst zusammenstellen. zB RootProductName/InstanceName/GeoSetName/!GeoElementName
Dabei hast du zB die Möglichkeiten Parent, bei einer Selektion auch LeafProduct und eventuell GetNameToUseInRelation nutzen um die einzelnen Elemente des Strings zu ermitteln (siehe auch Forensuche)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

WMA HSU
Mitglied
WMA


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

Beiträge: 22
Registriert: 31.03.2020

erstellt am: 16. Feb. 2021 11:21    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

Moin Bernd,

Danke für deine Antwort 

Das hatte ich befürchtet, dass ich doch die CreateReferenceFromName nutzen muss. Mein Plan ist jetzt eine Rekursion zu schreiben, die vom jeweiligen Element nach oben durch den Strukturbaum wandert und daraus den Namen zusammensetzt.
Wenn es klappt, poste ich hier mal die Lösung.

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