vinch Posté(e) le 24 août 2005 Posté(e) le 24 août 2005 Bonjours a vous tous... Je vous explique mon probleme...J'ai cree une table de famille de goupille avec un parametre "designations" qui est goupille_d0xd1 ( ou d1 est le diam et d0 est la longeur).Donc qud on choisit le generic la designation indique celle du generic...pas de probleme. Mais qud on choisit une instance il indique aussi la designation du generic...probleme.Ont cree donc une relation du type "designation="goupille_"+itos(d0)+"x"+itos(d1)" pour que pour chaque instance il va chercher le d0 et le d1 qui va bien...Cependant la commande itos permer effectivement de chercher le d0 et le d1 mais elle l'arrondie a un nombre entier !!!! Par exemple :pour un goupille de diametre 1.5 et de longeur 5....la designation sera "goupille_2x5" et non pas "goupille_1.5x5"...Moi je veut la valeur exact de d0 et d1... Donc ma question est : connaissez vous une commande (autre que itos) permettant de recupere la valeur exact de d0 et d1 merci a vous tous..
hoppla Posté(e) le 24 août 2005 Posté(e) le 24 août 2005 A priori il n'y a pas d'autre commande que "itos" pour transformer du numérique en texte.En général dans les familles on met directement la désignation dans ta table sans passer par une relation, ça évite une régénération inutile puisque les éléments sont std ( donc l'utilisateur n'est pas censé en modifier la taille mais en choisir une autre instance en cas de besoin ). Ceci dit il existe une manip pour extraire les décimales avec "itos" : multiplier la valeur par 10 et lui soustraire sa valeur entière divisée par 10... Le plus simple est de prendre un exemple. J'ai la valeur LONGUEUR = 15,4 donc itos ( LONGUEUR ) = "15" DECIMALE1 = LONGUEUR x 10 - FLOOR ( LONGUEUR ) x 10 = 154 - 150 = 4 donc itos ( DECIMALE1 ) = 4 DESIGNATION = GOUPILLE + itos ( LONGUEUR ) + "," + itos ( DECIMALE1 ) Voilà... un peu chiant à écrire, mais comme c'est tout le temps la même logique on peut s'en garder un exemplaire dans un fichier texte et faire du copier/coller Ceci dit je reviens sur mon conseil initial => mettre les désignations sans relation directement dans la table. Avec quelques milliers de vis, rondelles, goupilles, etc.. le temps de régénération sera meilleur.
vinch Posté(e) le 24 août 2005 Auteur Posté(e) le 24 août 2005 A priori il n'y a pas d'autre commande que "itos" pour transformer du numérique en texte.En général dans les familles on met directement la désignation dans ta table sans passer par une relation, ça évite une régénération inutile puisque les éléments sont std ( donc l'utilisateur n'est pas censé en modifier la taille mais en choisir une autre instance en cas de besoin ). Ceci dit il existe une manip pour extraire les décimales avec "itos" : multiplier la valeur par 10 et lui soustraire sa valeur entière divisée par 10... Le plus simple est de prendre un exemple. J'ai la valeur LONGUEUR = 15,4 donc itos ( LONGUEUR ) = "15" DECIMALE1 = LONGUEUR x 10 - FLOOR ( LONGUEUR ) x 10 = 154 - 150 = 4 donc itos ( DECIMALE1 ) = 4 DESIGNATION = GOUPILLE + itos ( LONGUEUR ) + "," + itos ( DECIMALE1 ) Voilà... un peu chiant à écrire, mais comme c'est tout le temps la même logique on peut s'en garder un exemplaire dans un fichier texte et faire du copier/coller Ceci dit je reviens sur mon conseil initial => mettre les désignations sans relation directement dans la table. Avec quelques milliers de vis, rondelles, goupilles, etc.. le temps de régénération sera meilleur. okmerci c vraix que j'ai pas pense a ca....Par contre je trouve ca super utile comme relation ca ca evite d'ecrire 200x la designation correspondante.. je vais tester
hoppla Posté(e) le 25 août 2005 Posté(e) le 25 août 2005 Tu peux garder la relation... c'est ton choix, et si tu ne manipules pas des milliers de composants ça n'aura pas de conséquence. Par contre n'oublie pas de mettre tout de même le paramètre DESIGNATION dans la table de famille, il se remplira tout seul lorsque les instances seront régénérées pour la 1ère fois. Si tu ne le fais pas et que tu charges plusieurs instances différentes dans un même assemblage tu risques d'avoir des désignations identiques puisque s'il n'est pas dans la table le paramètre est partagé.
fhughes Posté(e) le 27 septembre 2005 Posté(e) le 27 septembre 2005 On peut encore améliorer ces relations pour éviter qu'un ZERO non significatif n'apparaisse dans le cas d'une valeur entière : ex : 15 donne 15,0. Pas beau! Pour cela, on testera la valeur de la partie fractionnelle avant de l'ajouter à la partie entière :De plus, le parametre "DECIMALES" permet dans mon exemple de faire varier le nombre de décimales.Ici, nous avons : D0 -> cote, TEXTE -> resultat DECIMALES=1 IF D0-(FLOOR(D0)) <>0FRAC=ITOS((D0-(FLOOR(D0)))*10^DECIMALES)INT=ITOS(D0-(D0-(FLOOR(D0))))TEXTE=INT + "," + FRACELSETEXTE=ITOS(D0)ENDIF bye Changer ses habitudes, c'est déjà innover...
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