Flamk Posté(e) le 18 décembre 2012 Posté(e) le 18 décembre 2012 Bonjour à tous, Je fais suite à une discussion parallèle engagée dans ce sujet : Bryce m'avait expliqué comment désactiver cette variable qui me parasitait l'écran, sans que je comprenne le pourquoi du comment elle s'était activée ("toute seule" !). Or, depuis, elle s'est réactivée deux autres fois (toute seule),et il me semble que c'est en lien avec l'utilisation d'un lisp que fredbross m'a fait passé (ici). A chaque fois que je le lance, blipmod se réactive . Comme je ne fais que betement appliquer le programme sans en comprendre le pourquoi du comment, quelqu'un aurait-il une explication ?
-Olivier- Posté(e) le 18 décembre 2012 Posté(e) le 18 décembre 2012 Bonjour Flamk, Dans un premier temps tu peux toujours modifier la ligne (setvar "BLIPMODE" 1) en fin de code par (setvar "BLIPMODE" 0) Je regarde ce soir (sauf si quelqu'un d'autre est déjà passé par là !) pour remmetre le code plus propre avec l'ajout d'une gestion d'erreur. Olivier
-Olivier- Posté(e) le 18 décembre 2012 Posté(e) le 18 décembre 2012 Voilà le code légèrement modifié. ; ******************************************************************************** ; Programme de déssin de profils à partir d'un fichier texte du type suivant : ; ******************************************************************************** ; PROFIL 1 ; PC 398 ; COUCHE TN ; -8.57 404 ; -5.5 403.02 ; -2.97 401.05 ; 0 400.97 ; 3.76 400.88 ; COUCHE PROJET ; -4.5 399 ; -3.25 399 ; 0 399 ; 3.45 399 ; FIN ; PROFIL 2 ; PC 397 ; COUCHE TN ; -7.15 403.12 ; -3.08 399.97 ; -2.65 400.05 ; 0 400.03 ; 7.08 400.58 ; COUCHE PROJET ; -4.6 398 ; -3.35 398 ; 0 398 ; 3.8 398 ; FIN ; ******************************************************************************** (defun c:prof (/ *error* accro echo blip fich ech f1 xmax xmin numcouche coor dy pc nbprof echelle tail1 tail2 ecart decal decal2 decal3 decal4 decal5 import lon i mot1 mot2 carac nbpt x y couche) (defun *error* (errmsg) (setvar "osmode" accro) (setvar "cmdecho" echo) (setvar "blipmode" blip) (princ errmsg) ) (setq echo (getvar 'cmdecho) blip (getvar 'blipmode) fich (getfiled "Fichier de profil à charger" "" "*" 2) ech (getreal "\nEchelle des profils : ") f1 (open fich "r") xmax 0 xmin 0 numcouche 0 coor nil dy 0 pc 0 nbprof 0 ) (command "_-layer" "n" "texte" "") (setq accro (getvar "osmode") echelle (/ ech 1000) tail1 (* 2.5 echelle) tail2 (* 1.7 echelle) ecart (* 10 echelle) decal (* ecart 0.1) decal2 ecart decal3 (* 35 echelle) decal4 (* 32 echelle) decal5 (* 18 echelle) ) (setvar "osmode" 0) (setvar "CMDECHO" 0) (command "-style" "PROFIL" "txt" 0 1 0 "N" "N" "N") (while (setq import (read-line f1)) (setq lon (strlen import) i 1 mot1 "" mot2 "") (while (<= i lon) (if (and (/= (setq carac (substr import i 1)) ",") (/= (setq carac (substr import i 1)) "\t") (/= (setq carac (substr import i 1)) ";") (/= (setq carac (substr import i 1)) " ")) (setq mot2 (strcat mot2 carac)) (setq mot1 mot2 mot2 "") ) (setq i (+ 1 i)) ) (cond ((or (= mot1 "FIN") (= mot2 "FIN")) (entmake '((0 . "SEQEND"))) (command "_-layer" "ch" "texte" "") (command "_pline" (list (- 0 decal2) (- dy (* numcouche ecart))) (list (+ xmax decal2) (- dy (* numcouche ecart))) "") (command "_pline" (list (- 0 decal3) (- dy (* (+ numcouche 1) ecart))) (list (+ xmax decal2) (- dy (* (+ numcouche 1) ecart))) "") (command "_pline" (list (- 0 decal3) dy) (list (- 0 decal3) (- dy (* (+ numcouche 1) ecart))) "") (command "_pline" (list (- 0 decal2) dy) (list (- 0 decal2) (- dy (* (+ numcouche 1) ecart))) "") (command "_pline" (list (+ xmax decal2) dy) (list (+ xmax decal2) (- dy (* (+ numcouche 1) ecart))) "") (command "texte" "aucun" (list (- 0 decal4 ) (+ (- dy (* numcouche ecart) tail1) decal)) tail2 "100" couche) (command "texte" "aucun" (list (- 0 decal5 ) (+ (- dy (* numcouche ecart)) tail1 decal)) tail2 "100" "Dist.") (command "texte" "aucun" (list (- 0 decal5 ) (+ (- dy (* (+ numcouche 1) ecart)) tail1 decal)) tail2 "100" "Alt.") (command "texte" "aucun" (list (- 0 decal4 ) (+ dy tail2)) tail1 "100" (strcat "PC : " (rtos pc 2 2))) (command "texte" "aucun" (list (- 0 decal4 ) (+ dy ecart)) tail2 "100" (strcat "Echelle 1:" (rtos ech 2 0))) (command "texte" "aucun" (list (- 0 decal4 ) (+ dy (* 2 ecart))) tail1 "100" (strcat "PROFIL : " profil)) ) ((= mot1 "PC") (setq pc (atof mot2)) ) ((= mot1 "PROFIL") (setq dy (- dy (* 0.21 ech)) xmax 0 xmin 0 profil mot2 numcouche -1 nbpt 0 nbprof (+ 1 nbprof)) ) ((= mot1 "COUCHE") (entmake '((0 . "SEQEND"))) (command "_-layer" "ch" "texte" "") (if (> numcouche -1) (progn (command "_pline" (list (- 0 decal2) (- dy (* numcouche ecart))) (list (+ xmax decal2) (- dy (* numcouche ecart))) "") (command "_pline" (list (- 0 decal3) (- dy (* (- numcouche 1) ecart))) (list (+ xmax decal2) (- dy (* (- numcouche 1) ecart))) "") (command "_pline" (list (- 0 decal3) (- dy (* (+ numcouche 1) ecart))) (list (+ xmax decal2) (- dy (* (+ numcouche 1) ecart))) "") (command "texte" "aucun" (list (- 0 decal4 ) (+ (- dy (* numcouche ecart) tail1) decal)) tail2 "100" couche) (command "texte" "aucun" (list (- 0 decal5 ) (+ (- dy (* numcouche ecart)) tail1 decal)) tail2 "100" "Dist.") (command "texte" "aucun" (list (- 0 decal5 ) (+ (- dy (* (+ numcouche 1) ecart)) tail1 decal)) tail2 "100" "Alt.") )) (setq numcouche (+ 2 numcouche) couche mot2) (if (= 1 nbprof ) (command "_-layer" "n" mot2 "ch" mot2 "") (command "_-layer" "ch" mot2 "")) (entmake '((0 . "POLYLINE"))) ) (t (setq coor (list (atof mot1) (atof mot2)) x (nth 0 coor) y (nth 1 coor) nbpt (+ nbpt 1)) (if (and (= numcouche 1) (= nbpt 1)) (setq xmin x)) (setq coor (list 10 (- x xmin) (- (+ y dy) pc) 0)) (entmake (list '(0 . "VERTEX") coor)) (command "_pline" (list (- x xmin) dy) (list (- x xmin) (- (+ y dy) pc)) "") (command "_-layer" "ch" "texte" "") (command "texte" "aucun" (list (- x xmin) (+ (- dy (* numcouche ecart)) decal)) tail2 "0" (rtos x 2 2)) (command "texte" "aucun" (list (- x xmin) (+ (- dy (* (+ numcouche 1) ecart)) decal)) tail2 "0" (rtos y 2 2)) (command "_-layer" "ch" couche "") (if (> (- x xmin) xmax) (setq xmax (- x xmin))) ) ) ) (command ^c) (close f1) (command "_-layer" "ch" "0" "") (command "_ZOOM" "_Ex") (setvar "osmode" accro) (setvar "BLIPMODE" blip) (setvar "cmdecho" echo) (prin1) ) Olivier EDIT le 19/12/2012
Flamk Posté(e) le 19 décembre 2012 Auteur Posté(e) le 19 décembre 2012 Merci, beaucoup beaucoup, ça marche nickel !!! Je reste toujours béate devant ces lignes de code qui s'apparentent à du chinois pour moi, un jour peut-être... Encore merci !
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