matmat Posté(e) mardi à 18:39 Posté(e) mardi à 18:39 Bonjour à tous, jusqu'à maintenant je dessinais en "mètres" et via une polyligne et un lisp, je pouvais en extraire le ml de celui ( utile pour des calculs de coton et autres ) Aujourd'hui je dessine en "millimètre" beaucoup plus pratique pour de la fabrication et une concordance via d'autre société, sauf que voilà lors de l'extraction je me retrouve avec un ml en millimètre ce qui me donne de grande donnée. J'aimerais que celui ci continue à me donner les résultats en ml en mètre je vous joint le lisp actuellement utilisés et je ne vois pas ou est ce que je pourrais modifier la commande Si quelqu'un peut m'aider, je lui en serais très reconnaissant. ;********************************************* ; Calcule la longueur des laize de moquette du calque spécifié ;********************************************* ;;; C:LONG_PLINE Calcule la longueur des laize de moquettes du calque spécifié (defun c:long_pline (/ val_dxf longobjt clq js cnt tot nb_pl lo_pl) ;; Retourne la valeur du code dxf (defun val_dxf (code ent) (cdr (assoc code (entget ent))) ) ;; LONGOBJT Retourne le périmètre d'un objet (ename) (defun LONGOBJT (ent) (vl-load-com) (vla-get-length (vlax-ename->vla-object ent)) ) (if (setq clq (entsel "\nSélectionnez un objet sur le calque ou < Nom >: " ) ) (setq clq (val_dxf 8 (car clq))) (setq clq (getstring "\nNom du calque: ")) ) (if (tblsearch "LAYER" clq) (progn (setq js (ssget "_X" (list '(0 . "LWPOLYLINE") (cons 8 clq))) nb_pl 0 lo_pl 0.0 ) (repeat (sslength js) (setq ent (ssname js (+ nb_pl))) (cond ((= (val_dxf 0 ent) "LWPOLYLINE") (setq nb_pl (1+ nb_pl) lo_pl (+ lo_pl (LONGOBJT ent)) ) ) ) ) (setq descr (strcat "\nNom de calque..........\t" clq "\nNombre de Laize...\t" (itoa nb_pl) "\nLongueur total de Laize..\t" (rtos lo_pl) "\n" ) ) (textscr) (princ descr) (initget "Oui Non") (if (= (getkword "\nEnregistrer dans un fichier ? [Oui/Non] < Non >: " ) "Oui" ) (progn (setq file (open (getfiled "Créez ou sélectionnez un fichier" "" "xls" 33) "a" ) ) (princ descr file) (close file) ) ) (graphscr) ) (princ "\nNom de calque invalide.") ) (princ) ) Citer
Olivier Eckmann Posté(e) il y a 22 heures Posté(e) il y a 22 heures Bonjour, Essayer en remplaçant cette ligne lo_pl (+ lo_pl (LONGOBJT ent)) par lo_pl (+ lo_pl (* 0.001 (LONGOBJT ent))) Olivier Citer
(gile) Posté(e) il y a 22 heures Posté(e) il y a 22 heures J'ai répondu à la même demande ici. Citer Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Messages recommandés