Aller au contenu

BLIPMODE


Messages recommandés

Posté(e)

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 ?

Posté(e)

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

Posté(e)

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

Posté(e)

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 !

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é