Aller au contenu

Une valeur infini mais précise....


Messages recommandés

Posté(e)

J'ai pu lire qu'il était de mise de fêter ses ceintures :)

 

Alors, voilà, pour ma verte, je partage un de mes petits trucs, qui intêressera au moins les novices.

 

Lorsque l'on dessine, on doit régulièrement rentré des valeurs numériques pour créer des objets (encore que j'en ai vu dessiné à la volée, en regardant l'affichage des coordonnées :(... ).

Ainsi, telle ligne doit être dessinée à telle distance de telle autre. Tout ça, ce n'est rien que du quotidien.

Là où ça se corse, c'est lorsque l'on doit rentrer une valeur infini, par exemple 1/3, ou plus compliqué 130/7 (pensez aux calpinages...).

Pour l'instant, vous tapez sois 0.333333 (et quelques 3 de plus quand vous en avez le courage), soit vous prennez votre caculatrice, tapez l'opération, puis rentrez 18.57142857 qui est le nombre donné par l'outil.

 

J'opposerais 3 arguments à la méthode :

1)c'est imprécis (au sens des 16 décimales que gère AutoCAD)

2)on est obligé de prendre la caculatrice

3)il existe une méthode simple et exacte (au sens des 16 décimales que gère AutoCAD) :)

 

La méthode, la voici : lorsque AutoCAD atend une valeur, tapez directement au clavier la division !

Exemple avec copier :

 

Commande: c COPIER

Choix des objets: 1 trouvé(s)

Choix des objets: Spécifiez le point de base ou déplacement ou [Multiple]:0,0

Spécifiez le deuxième point de déplacement ou

déplacement>: 130/7

Commande:

 

Ceci est vrai pour toutes les commandes qui attendent une valeur numérique !

 

Par contre, cette capacité d'AutoCAD ne permet de rentrer que des divisions (pas d'autre opérations) de nombres entiers. Pour les nombres décimaux, il est très facile de contourner cette limitation : il suffit de multiplier par puissance de 10 le dividente et le diviseur. Exemple : la division 1.2/2 devra être rentrée sous la forme 12/20, la division 12/0.35 sous la forme 1200/35. Facile non ? Pour les autres opérations, il faut obligatoirement passer par le mode calculatrice lisp. Ainsi, l'opération 3x5 devra être rentrée sous la forme (* 3 5). A ce stade, je préfère utilsier la calculatrice, car je n'ai pas l'habitude du système polonais inversé :)...

 

Voilà.

J'epère que vous en servirez tout le temps maintenant :)

 

 

 

 

 

 

 

Laurent CAMPEDEL

Dans l'usage des raccourcis clavier repensés tu trouveras la voie.

Posté(e)

Bonjour,

 

si je peu me permettre d'ajouter ma contribution.

 

avec les version qui ne sont pa LT, il existe 'cal qui simule une calculette.

 

donc il est possible de faire

Commande: copier

Choix des objets: Spécifiez le coin opposé: 4 trouvé(s)

Choix des objets:
Spécifiez le point de base ou déplacement ou [Multiple]: Spécifiez le deuxième 
point de déplacement ou : 'cal
>> Expression: 50.2/3.6
13.9444

 

ou encore des formule plus complexe, comme

 

Commande: cal
>> Expression: (200*2)/3
133.333

 

voir meme utiliser des ^ pour puissance

 

Il y a aussi deja eu un sujet ou l'on est limité a 32767,

par exemple avec

Commande: cal
>> Expression: 200*200
>> Erreur: La valeur entière de l'expression n'est pas comprise entre -32768 et 
32767.

 

alors il est possible de le contourner avec

Commande: cal
>> Expression: 200.0*200
40000.0

le fait de mettre un chiffre avec une decimale fait sauter la limite

 

n'oublier pas de mettre le ' avant le cal pour l'utiliser devant pendant une commande.

 

et avec cal, il n'est plus necessaire de faire du polonais inverse a la HP.

;)

 

 

 

Posté(e)

Ca marche aussi sur LT, alors chapeau.

 

Tu n'as plus qu'à le signaler à Patrick pour qu'il le range en bonne place avec les trucs et astuces.

 

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Laurent,

 

Tout d'abord, à l'approche de Noël, je préférerais me débarrasser de ma ceinture :-). En Amérique, et peut-être en France aussi, la taille du linge de femme se calcule en age. On peut porter de la taille 0 à la taille 20.Je ne connais pas l'origine de ce système bizarre. Moi, je porte du 8. En fait, c'est que quand j'attache ma ceinture, j'ai l'air d'un 8.

 

Revenons aux chiffres après le point. Saviez-vous que le diamètre d'un atome d'hydrogène est de 1 angström, c'est-à-dire 10e-10 mètre ou 10e-7 mm. Lorsqu'on trace, on n'a pas besoin de 14 chiffres après le point. C'est pourquoi l'échelle de la fenêtre flottante est passé de la double précision à la simple précision à partir de la 2000i. Si je vous dis cela, c'est qu'on a eu des surprises avec le MVPort. Toujours pour se donner des repères, le diamètre du noyau d'hydrogène (le proton) est de 10e-12 mm.

 

Pourquoi 14 ou 16 chiffres après le point. Pour réduire les erreurs après plusieurs manipulations mathématiques. Je n'entrerai pas dans le détail des mathématiques mais il va de soi que plus le nombre de chiffres significatifs est élevé et plus on est précis, surtout dans les divisions. Toute la géométrie des objets est basée sur des calculs de matrices, qui sont en fait des tableaux de 4x4 chiffres se multipliant entre-eux.

 

Tout traitement de nombres réels (doubles) par AutoCAD se fait en double précision. Il ne faut pas se méprendre avec l'affichage du résultat sur la console qui n'est qu'en simple précision. Aussi, il faut se méfier du piège suivant : l'interpréteur d'AutoLISP retourne les résultats selon la précision la plus élevée des nombres reçus. Si on passe 2 entiers, on recevra un entier. Si on passe un double et un entier, on recevra un entier. Le calculateur (fonction en arx issue de geomcal.arx) retourne toujours les nombres en double précision.

 

Finalement, au rythme où tu participes, tu auras rejoins Tramber d'ici un an :-))

 

Serge

 

Posté(e)

Ca y est , Serge est réveillé :) !

 

J'aime bien lire des histoires de la vie au Québec, on a toujours l'impression d'être à une autre époque :). Par contre, j'ai besoin d'un cours de Québécois :) : qu'est-ce que le "ligne de femme" ? Est-ce les brassières et autres sous-vêtements, ou est-ce les habits en général ?

 

Et pour ne pas être hors de propos, je ne comprend pas ton explication sur l'interpréteur. Si on donne une division de 2 entiers, le résultat sera un entier ?

 

Laurent CAMPEDEL

Dans l'usage des raccourcis clavier repensés tu trouveras la voie.

Posté(e)

Laurent,

 

Belle coquille. On parle de courbe de femme et non de ligne. C''était écrit linge et non ligne, puisqu'on parle d'habillement et de ceinture.

 

Pour l'interpréteur, c'est exactement ce que je disais: 1/2 donne 0 parce que 2 nombres entiers donne un résultat en entier. Par contre 1.0/2 donne 0.5

 

Et tant qu'à y être, avec le calculateur, on peut écrire .5*2 qui donne 1 .0

En AutoLISP, on aurait reçu un "invalid dotted pair" à cause du zéro absent devant le point.

 

Serge

 

Posté(e)
Laurent,

 

Belle coquille. On parle de courbe de femme et non de ligne. C''était écrit linge et non ligne, puisqu'on parle d'habillement et de ceinture.

 

Tu crois que c'était un lapsus toi ? ;)

Mais dis, t'en profiterais pas pour ne pas répondre toi :). Qu'est-ce donc que le linge de femme ?

 

 

Pour l'interpréteur, c'est exactement ce que je disais: 1/2 donne 0 parce que 2 nombres entiers donne un résultat en entier. Par contre 1.0/2 donne 0.5

 

Et tant qu'à y être, avec le calculateur, on peut écrire .5*2 qui donne 1 .0

En AutoLISP, on aurait reçu un "invalid dotted pair" à cause du zéro absent devant le point.

 

Hou, je comprend beaucoup mieux !

Il ne faut donc sutout pas utiliser l'interpéteur lisp pour introduire des valeurs provenant de division..... Au hasard, c'est peut-êre bien pour ça que l'on peut rentrer directement les divisions ;) ?

 

Merci de cette précision.

 

Serge

Laurent CAMPEDEL

Dans l'usage des raccourcis clavier repensés tu trouveras la voie.

Posté(e)

Laurent,

 

Pour le linge, je vais me dérober.

 

Pour l'appel de l'interpréteur, il faut nuancer. Si on répond 1/12 sur la ligne de commande, c'est AutoCAD qui calcule. Dès qu'on entre une parenthèse, c'est AutoLISP.

 

Pour ce qui est de l'utilisation des résultats, c'est le rôle du rpogrammeur de faire ses validations. Lorsqu'il a un doute sur la nature de ses nombres, il peut toujours multiplier par 1.0.

 

Serge

Posté(e)
dérober.

Héhé, jeu de mots, jeu de mots comme disait Maître Capello :).........

http://jeuxde20h.free.fr/capelo.htm

 

Pour l'appel de l'interpréteur, il faut nuancer. Si on répond 1/12 sur la ligne de commande, c'est AutoCAD qui calcule. Dès qu'on entre une parenthèse, c'est AutoLISP.

 

Oui, j'ai bien compris.

C'est pour ça que j'émet l'hypothèse que les divisions furent rendues possible directement, parce qu'avec l'interpréteur ne pouvait les rentrer "facilement". Comment faudrait-il rentrer la valeur 1/3 avec l'interpréteur ? (/ 1.000000000000000 3) ? Pas jouable :)

 

Pour ce qui est de l'utilisation des résultats, c'est le rôle du rpogrammeur de faire ses validations. Lorsqu'il a un doute sur la nature de ses nombres, il peut toujours multiplier par 1.0.

 

Oui, en programmation je suis bien d'accord, mais sur la ligne de commande.....

 

Serge

Laurent CAMPEDEL

Dans l'usage des raccourcis clavier repensés tu trouveras la voie.

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité