topfrunix2 Posté(e) le 24 novembre 2005 Posté(e) le 24 novembre 2005 BonjourJe dois programmer un paramètre de cinématique pour contrôler la vitesse de rotation d’une pièce.Le problème vient du fait que mon code n’est pas accepter par catia.Pouvez vous m’aider à corriger cette erreur ?Le seul exemple que j’ai fait était pour une vitesse constante.Merci d’avance. if `Mécanisme.1\Commandes\Commande.bras\Angle` <90deg thenMécanisme.1\KINTime` /(1s*1s*25920deg)`end if if `Mécanisme.1\Commandes\Commande.bras\Angle` >90deg and if `Mécanisme.1\Commandes\Commande.bras\Angle`<270 thenMécanisme.1\KINTime` /(1s*2160deg+90deg)`end if if `Mécanisme.1\Commandes\Commande.bras\Angle` >270deg thenMécanisme.1\KINTime` /(1s*1s*-25920deg+2160deg*1s+270deg)`end if/*Règle créé(e) par Florian 24/11/2005*/ if `Mécanisme.1\Commandes\Commande.bras\Angle` <90deg thenMécanisme.1\KINTime` /(1s*1s*25920deg)` if `Mécanisme.1\Commandes\Commande.bras\Angle` >90deg and if `Mécanisme.1\Commandes\Commande.bras\Angle`<270 thenMécanisme.1\KINTime` /(1s*2160deg+90deg)` if `Mécanisme.1\Commandes\Commande.bras\Angle` >270deg thenMécanisme.1\KINTime` /(1s*1s*-25920deg+2160deg*1s+270deg)` Le texte http://img463.imageshack.us/img463/8650/ennonc3yn.jpg Un pb avec le premier "then" http://img174.imageshack.us/img174/6068/pb13rb.jpg Un pb avec le M de Mecanisme alors que ce mot à été generé en cliquant sur le paramétre. http://img361.imageshack.us/img361/4271/pb22lz.jpg [Edité le 24/11/2005 par topfrunix2]
gawel Posté(e) le 24 novembre 2005 Posté(e) le 24 novembre 2005 Salut topfrunix2, ton problème ne vient pas exactement du "M", mais de tout le nom de ton paramètre !! en effet, tes paramètres ne sont pas renommés et ils utilisent des caratères spéciaux: é \c'est pour cela que catia utlise des ` pour tes noms:exemple: `tété\chouette.1` corrige les noms avec ce caractère ou renommes-les (ce que je te conseille !!) dans ton cas cela donne pour la ligne 4: `Mécanisme.1\KINTime` /(1s*1s*25920deg) Amicalement Gawel
topfrunix2 Posté(e) le 24 novembre 2005 Auteur Posté(e) le 24 novembre 2005 Merci pour la reponse.Je vais tester. Par contre quel est le pb avec le "then" ? tout compte fait j'ai pas reussit la modif car ça ne fonctionne tjrs pas... [Edité le 24/11/2005 par topfrunix2]
gawel Posté(e) le 25 novembre 2005 Posté(e) le 25 novembre 2005 il n'en faut pas, tout simplement, Amicalement Gawel
topfrunix2 Posté(e) le 25 novembre 2005 Auteur Posté(e) le 25 novembre 2005 Je viens de voir cette suptilitée...Il faut des "{" "}" ou c'est pas obligatoire ? Et derniere question (normalement) est-ce que ma formule est valable :(1) Mécanisme.1\KINTime` /(1s*1s*-25920deg+2160deg*1s+270deg Sans parler de la mise en forme car c'est l'ancienne , ni des valeurs mais de la forme globale. En effet je suis sur de la formule : Mécanisme.1\KINTime` /(1s*2160deg+90deg) (enfin à peut pres car j'ai traité un exemple à vitese constante mais sans decalage angulaire).Par contre je suis pas sur pour (1) qu'il faut mettre s*s+s*deg*deg pour une equation de vitesse acceleré dans catia. Je suis sur que ma question est pas clair mais c'est pour avoir une forme correcte...
topfrunix2 Posté(e) le 26 novembre 2005 Auteur Posté(e) le 26 novembre 2005 J'ai tenté de modifier le code, car le "then" n'existe pas et il faut des {}.J'ai un probleme à la ligne 3 mais je ne le voit pas. Je pense qu'il faut des expressions avec "=" afin de reversé une variable pour le kintime mais je ne sais pas comment faire...Si qq à une idée je suis preneur. if `Mécanisme.1\Commandes\Commande.bras\Angle` <90deg{ `Mécanisme.1\KINTime` /(1s*1s*25920deg)} if `Mécanisme.1\Commandes\Commande.bras\Angle` >90deg and `Mécanisme.1\Commandes\Commande.bras\Angle` <270deg{ `Mécanisme.1\KINTime` /(1s*2160deg+90deg)} if `Mécanisme.1\Commandes\Commande.bras\Angle` >270deg{ `Mécanisme.1\KINTime` /(1s*1s*-25920deg+2160deg*1s+270deg)}
gawel Posté(e) le 26 novembre 2005 Posté(e) le 26 novembre 2005 Ah oui oui oui!!! carrément fait l'impasse là-dessus ! ça fait longtemps que je n'ai pas fait de knowledge, ça se voit.....oui il faut des accolades au début et à la fin de ton calcul, c'est une condition obligatoire. par contre, pour ta formule, ça ne va pas marcher, car tes unités ne sont pas homogènes.Mécanisme.1\KINTime est de quel type d'unités exactement ? car tout ce que tu ajoutes après n'est pas de la même unité, donc cela ne peut pas marcher normalement. tu écris cela comme une équation; je ne connais pas le module de cinématique, mais cela m'étonnerait que catia accepte cela. Pour catia, Mécanisme.1\KINTime est d'une unité bien spéciale et non pas d'une somme d'unités, est-ce que je suis à peu près clair dans mes explications ?? Amicalement Gawel
topfrunix2 Posté(e) le 26 novembre 2005 Auteur Posté(e) le 26 novembre 2005 Je vois pas comment mettre l'equation.Pour les unités je sais que si j'ecrit dans l'editeur de relation (ou formule, enfin le "f") Mécanisme.1\KINTime` /(1s*2160deg) ça passe. Apres je sais pas si j'ai le droit de rajouter un angle pour effectuer un decalage. Je ne sais pas non plus comment mettre les equation de vitesse avec acceleration car les unités changes (il y a du second degré). Dans le peut de document que j'ai, les infos sont : KINTime=paramètre de temps de la simulationteta=angle caractérisant la liaison d'entrée. Pour N=3600 tours/mn; T=60/3600sec=1/60=0.0167secN=3600tours/mn=21600 degrés par sec d'ou : teta=KINTime/1sec*21600deg. J'ai essayé de ma baser sur cet exemple pour faire mon travail mais je n'y arrive pas...
gawel Posté(e) le 26 novembre 2005 Posté(e) le 26 novembre 2005 à mon avis, il te faut d'autres paramètres. Mécanisme.1\KINTime correspond à un type de paramètre, càd l'accélération si je ne me trompe pas; lorsque tu veux ajouter un décalage angulaire, il te faut d' autres paramètres pour le faire, mais qui eux n'ont pas le même type d'unité, c'est à dire qu'ils correspondent à un autre dégré dans l'équation. faudrait que je regarde comment cela fonctionne, c'est pas évident Amicalement Gawel
topfrunix2 Posté(e) le 26 novembre 2005 Auteur Posté(e) le 26 novembre 2005 J'ai tenté autre chose. Ca à l'avantage de parraitre logique.Je me pose une question de savoir si les equation restent valables.Catia ne me dit pas qu'il y a un probleme avec des unités non homogene, mais il me met un message d'erreur : "La relation Règle.2 ne peut etre activée car elle provoquerait une boucle 'due à la relation Règle.2"Comment dois-je corriger ce pb ?Voici mon code : if `Mécanisme.1\Commandes\Commande.bras\Angle` <90deg{ `Mécanisme.1\Commandes\Commande.bras\Angle` =`Mécanisme.1\KINTime`*`Mécanisme.1\KINTime` /(1s*1s)*25920deg} if `Mécanisme.1\Commandes\Commande.bras\Angle` >90deg and `Mécanisme.1\Commandes\Commande.bras\Angle` <270deg{ `Mécanisme.1\Commandes\Commande.bras\Angle` =`Mécanisme.1\KINTime` /(1s)*2160deg+90deg} if `Mécanisme.1\Commandes\Commande.bras\Angle` >270deg{ `Mécanisme.1\Commandes\Commande.bras\Angle` =`Mécanisme.1\KINTime`*`Mécanisme.1\KINTime` /(1s*1s)*(-25920deg)+(`Mécanisme.1\KINTime`/1s)*2160deg+270deg}
gawel Posté(e) le 28 novembre 2005 Posté(e) le 28 novembre 2005 Quand il y a une boucle, c'est que 2 relations rentrent en conflit. Ta règle pilote un ou des paramètres; mais, tu dois avoir aussi une formule de calcul qui pilote aussi un de ces paramètres (ou une autre règle). Tu dois choisir laquelle est la "maitresse"; c'est pour cela que catia t'affiche ce message et par défaut choisit pour toi (il prend bien sur par défaut la dernière relation écrite), sinon il ne sait pas ce qu'il faut faire et tourne en boucle et donc plantage. Pas simple le knowledge !.... mais ça vient vite quand tu connais les règles de base. Amicalement Gawel
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant