shergy Posté(e) le 23 octobre 2009 Posté(e) le 23 octobre 2009 Bonjour à tous, Je suis actuellement en cours de développement de tableaux de surfaces automatisés pour le calcul de surfaces de logements.Pour réaliser les tableaux je n'ai pas de problèmes.Ma question est la suivante : y a-t-il un moyen pour arrondir les surfaces à 0.05 m² près ? Merci d'avance pour votre aide. Guillaume [Edité le 23/10/2009 par shergy]
(gile) Posté(e) le 23 octobre 2009 Posté(e) le 23 octobre 2009 Salut, Tu peux utiliser cette routine.Exemples :(round 123.124 0.05) retourne 123.1(round 123.137 0.05) retourne 123.15 ;;; ROUND (gile) ;;; Arrondit à la valeur la plus proche en fonction de prec ;;; (round pi 0.01) -> 3.14 ;;; (round pi 1e-5) -> 3.14159 ;;; (round 5456.50 1) -> 5457 ;;; (round 5456.50 100.0) -> 5500.0 (defun round (num prec) (if (zerop (setq prec (abs prec))) num (* prec (fix ((if (minusp num) - +) (/ num prec) 0.5))) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
shergy Posté(e) le 23 octobre 2009 Auteur Posté(e) le 23 octobre 2009 Comment faire pour appeler la commande ?
(gile) Posté(e) le 23 octobre 2009 Posté(e) le 23 octobre 2009 Il ne s'agit pas d'une commande mais d'une fonction LISP (comme tu postes dans le forum Visual LISP...) Il faut charger la routine, puis utiliser la fonction round comme n'importe quelle fonction LISP prédéfinie.Elle requiert 2 arguments :le nombre à arrondir (entier ou réel)le facteur de précision (entier ou réel)Dans ton cas, tu fais comme dans les exemples : (round 4589.2564 0.05) retournera 4589.25(round 4589.2764 0.05) retournera 4589.3 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
shergy Posté(e) le 23 octobre 2009 Auteur Posté(e) le 23 octobre 2009 Excuse moi je ne suis peut être pas tout à fait clair car je n'y connais rien en lisp. Ce que je voudrais c'est pouvoir appeler une commande, sélectionner la ou les cellules de mon tableau où je veux arrondir les surfaces. Merci
bonuscad Posté(e) le 23 octobre 2009 Posté(e) le 23 octobre 2009 je n'y connais rien en lisp Alors tu as posté dans le mauvais forum.Pour tes champs, tout dépends comment ils ont été défini.S'ils utilisent le format sans unités, alors il te suffit d'utiliser la commande UNITS pour changer le format de précision, suivi d'une régénération pour que tous tes champs se mettent à jour. Si le format est défini dans le champ, il te faut le modifier avec l'éditeur de champ (double-click sur le champ pour rentrer dans l'éditeur de texte, mise en surbrillance du champ, puis click-droit et choisir d'éditer le champ.) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
shergy Posté(e) le 23 octobre 2009 Auteur Posté(e) le 23 octobre 2009 Peux tu m'indiquer où je dois poster ?
bonuscad Posté(e) le 23 octobre 2009 Posté(e) le 23 octobre 2009 Peux tu m'indiquer où je dois poster ? Ben dans le forum concernant ta version utilisée... En même temps ta demande d'arrondi (pas l'affichage de précision comme j'ai pu répondre au post précédent) ne peut pas être résolu en standard, l'usage d'une programmation me semble inévitable. L'introduction dans un champ dynamique de la fonction (round) me semble compliquée, mais je n'ai pas regardé de plus près. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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