a placé le code qui s'est amélioré, je le trouve important pour l'impression 3d et les rendus.
Je réponds parce que.
dans ce type de dessins, il est nécessaire que les points utilisés par ces programmes, s'ils doivent être
égal ils sont vraiment, tandis que le cad, après les opérations en virgule mobile (généralement rotations) compromet son intégrité.
également ici sur le forum j'ai lu le sujet qui a signalé le problème pour des éléments avec une coïncidence non parfaite.
Je vais vous expliquer, dans un maillage
x = 13,7865000 n'est pas égal du tout
13.7864999, généré dans le cad par les opérations mobiles des virgules, et si le programme d'impression ou de le rendre les trouve correctement différents, il peut tirer des conclusions erronées sur l'intégrité du maillage.
mon problème n'était pas seulement cela, mais aussi (voir le titre du sujet) n'ayant pas de notation exponentielle, que cad propitine parfois sur l'écriture de fichiers, même quand avec rtos je déclare que
Je ne veux pas.. (première option déclarée à "deux" (note finale).
la seule façon d'éviter cela était de déplacer temporairement la virgule de trois places. Si j'ai déplacé 4, avec le *10000 puis est retourné à /10000, rien pour faire la notation "et" s'est distingué.
Je classe donc le flotteur (en utilisant le * et / seulement à 1000) exactement à trois décimales, mais que je suis certainement assez, tous les deux sur les travaux d'impression 3d, où mon
Unité pour mesurer l'assume au millimètre, à la fois pour l'architecture, où je prends le compteur, et je ne me soucie certainement pas du dixième de millimètre.
mais il y a une autre question, la solution tronquée autolisée, pas ronde.
J'ai plutôt réduit à trois décimales après la virgule que je veux approximation de l'arrondi
plus prèsEt ne fais pas court. et j'ai donc ajouté les routines que je crois appropriées puisque la fonction ronde dans l'autolisp classique n'est pas là.
Donc cette fonction... qui pour l'instant semble agir sans erreur.
C'est probablement redondant, mais je préfère, et d'ailleurs je ne sais pas si j'ai bien compris le concept, mais il me touche "pour reprendre" l'argument que j'ai passé à la fonction d'une variable interne à la fonction, parce que (je ne sais pas si j'ai tort) mais le défi garde seulement
en région Les changements que je lui fais faire faire sur le sujet que j'ai vécu.
Quand je sors des morts, je le trouve comme tel et comme je l'ai passé à l'origine. d'ici, c'est pourquoi je prends du "entre" dans les morts la nouvelle valeur traitée localement. et je dois le donner au sujet.
C'est une sorte de désordre, mais je ne sais pas ce que tu peux faire de plus élégant. au cas où il y aurait une méthode du type le plus envoyé merci...
Je veux dire du type mort I call(x) ... et out x contiendra la nouvelle valeur que j'ai calculée à mon nom..
Je n'ai pas réussi, les variations x restent toujours locales à la fonction. . . .
Code:
(pourfun propre(a)
(entre a)
(entre (* entre 1000)
(setq entre (fixe entre)
(setq hh (rtos entre 2 et 3))
(entre (en hh)
(entre (/ entre 1000)
; procédure ronde
(si) entre 0 et positif
(progrès)
(setq diff (- entre)
(si)
(entre (+ 0,001))
)
)
(progrès)
(setq diff (- entre)
(si (< diff -0.000)
(entre (- entre 0,001))
)
)
)
); fin défun propre
dans le principal, chaque valeur traitée, après l'appel aux morts, je dois le récupérer de "tra", traité dans la fonction sur une copie de ax, et le réaffecter au sujet
(Hache propre)
(setq ax entre)
mais comme je l'ai dit, je ne peux rien faire d'autre, parce que l'argument ax est modifié par la fonction, mais seulement en tant que variable locale.