Bonjour à tous,

J'aimerais écrire une fonction que me permette de translater tous les points d'un set géométrique quelque soit leur type (coordonnées, sur courbe, sur surface, sur plan, etc), selon un vecteur défini par l'utilisateur.

A l'heure actuelle je n'arrive à obtenir ce que je souhaite:
- je peux translater les points s'ils sont de type plan ou coordonnées (boucle en dessous),
- je peux récupérer les coordonnées par rapport au repère d'origine grâce à la fonction GetCoordinates,
- SetCoordinates ne fonctionne que pour les points "coordonnées",
- et donc je ne peux pas déplacer les points de type : sur courbe, sur surface, centre du cercle , tangent sur courbe et entre selon le vecteur souhaité.

La seule solution que je vois est de remplacer les points par un des deux types qui fonctionnent (et ainsi casser les dépendances), dans l'absolue elle me convient tout à fait cependant la fonction remplacer de catia n'est à ma connaissance pas accessible via catscript et coder cette fonction me semble très fastidieux car les pointeurs de la géométrie s'appuyant sur ces points devront être changés.

Auriez vous une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        For Each HybridShape In Noeuds
            Set parameters1 = part1.Parameters.SubList(HybridShape, False)
 
 
            For Each param In parameters1 'on boucle dans les paramètres pour connaitre le type des noeuds
             test = Right(param.Name, 1)
             If test = "H" Then 'si on trouve H alors on a un noeud plan
                 Set lengthH = parameters1.Item(part1.Name & "\" & set_geo.Name & "\" & HybridBody.Name & "\" & element.Name & "\" & HybridShape.Name & "\H")
                 Set lengthV = parameters1.Item(part1.Name & "\" & set_geo.Name & "\" & HybridBody.Name & "\" & element.Name & "\" & HybridShape.Name & "\V")
                 lengthH.Value = lengthH.Value + dh
                 lengthV.Value = lengthV.Value + dv
                 Exit For 'on sort après modification, nécessaire car ces noeuds possèdent également X comme paramètre
             End If
                  If test = "X" Then 'si on trouve X alors on a un noeud définit par X Y et Z
                        Set lengthH = parameters1.Item(part1.Name & "\" & set_geo.Name & "\" & HybridBody.Name & "\" & element.Name & "\" & HybridShape.Name & "\X")
                        Set lengthV = parameters1.Item(part1.Name & "\" & set_geo.Name & "\" & HybridBody.Name & "\" & element.Name & "\" & HybridShape.Name & "\Z")
                        lengthH.Value = lengthH.Value + dh
                        lengthV.Value = lengthV.Value + dv
                    Exit For
             End If
              part1.UpdateObject HybridShape 'on modifie pas les noeuds "fraction" car la mise à jour la mise à jour de leurs références est suffisante
             Next