2017-09-13 4 views
0

J'essaie de créer un modèle de connaissances, de sorte que lorsque je choisis une valeur de chaîne dans une liste déroulante d'un paramètre à valeurs multiples, la réaction se déclenche en fonction de la sélection. Par exemple, si je sélectionne "aucune coupe", aucune fonctionnalité de poche n'est créée. (ou supprimé si elles existent déjà) Si je sélectionne "coupe supérieure", une esquisse prédéfinie est utilisée pour piloter la fonction de poche. Cependant, là où je suis coincé, c'est que je veux définir une "coupe du bas" en changeant l'orientation d'une esquisse positionnée. J'imagine comme ceci:Comment changer l'orientation de l'esquisse dans CATIA en utilisant VB/Knowledgeware?

  1. « cut bas » sélectionné dans la liste déroulante
  2. changement soutien croquis serait lancé
  3. « V inversé » serait sélectionné
  4. croquis serait retourné autour Le plan xy
  5. Si "coupe haut et bas" est sélectionné, l'esquisse revient en position haute (décochez "Inverser V") et reflète la poche résultante autour de XY

J'ai réussi à accomplir tout sauf le "Reverse V" de "Change Sketch Support". Aucune idée du tout quelle est la meilleure façon d'accomplir cela. Jusqu'à présent, j'ai créé à la fois des actions Knowledgeware et des actions VB. Ouvert à toutes les suggestions sur celui-ci.

Merci.

+0

Bienvenue à SO - veuillez fournir le code approprié. – bated

+0

Je ne peux pas fournir le code approprié. L'API pour cette opération n'est pas exposée. Le mieux que je peux donner est un algorithme ci-dessus, et j'espère que quelqu'un connaît la méthode pour y parvenir. Merci pour l'accueil. – Mhan7

Répondre

0

En ce qui concerne cette API pour les retournements de l'orientation des objets ne sont pas disponibles, je vous suggère de baser votre orientation croquis sur une fonctionnalité qui peut être facilement renversé:

  • Créer une ligne basée sur deux points « coordonnées »
  • Utilisez l'esquisse positionnée et spécifiez le plan de support, le point d'origine et l'orientation pour la direction V en utilisant la ligne créée précédemment
  • Vous pouvez désormais contrôler les coordonnées des points pour modifier l'orientation de la ligne, et l'esquisse suivra.

Le code sera simple, et la solution est très stable.

En supposant que la ligne de référence est basé sur deux points {0,0,0} et {x, 0,0}, le code serait

if TopOrientation 
{ 
    GeoSet1\RefPoint\X=1mm 
} 
else 
{ 
    GeoSet1\RefPoint\X=-1mm 
} 

J'espère que cela vous aidera.

+0

C'est une approche intéressante. Je vais essayer ceci, mais au lieu d'utiliser une ligne, je vais essayer d'inverser une normale d'un avion. Rendra compte. Je vous remercie. – Mhan7