Aller au contenu

Geler/Libérer des calques ds une fenêtre selon l\'échelle.


Messages recommandés

Posté(e)

Bonjour à tous...

 

Bon, je poste pour la première fois, une routine (que je pense) postable

 

Je vais expliquer à quoi elle sert car j'explique très bien ! ! (Il y en a un paquet qui doivent se bidonner en ce moment ;) )

 

Certains calques contiennent des entités qui n'ont pas de "taille" comme les traits, les points.... Mais d'autres calques en comportent, textes, blocks...

 

Ces derniers peuvent avoir différentes tailles ou échelles selon leur échelle de tracé...

 

Exemple, un texte qui sera dans le calque ".....texte 200". Ce texte ne sera tracé QUE pour faire du 1/200. Donc on libèrera ce calque dans les fenêtre au 1/200 et on le gèlera dans les autres.

 

Il faut avant tout se mettre DANS la fenêtre de l'espace papier.

 

Dans le fichier menu :

 [->Echelles 1/20]^C^C(c:LayerEchP "20");
                [1/25]^C^C(c:LayerEchP "25");
                [1/50]^C^C(c:LayerEchP "50");
                [1/100]^C^C(c:LayerEchP "100");
[...........]

 

Routines Lisp :

 

;////////////////////////////////////// Gèle / Libère les calques à l'échelle d'une fenêtre
(defun c:LayerEchP (Ech / x_plan)
 (command "_.zoom" (strcat "1000/" Ech "xp"))
 (command "-calque" "e" "0" "")
 (setq x_plan (tblnext "layer" T))
 (setq Ech (rtos (arrondi (atoi Ech)) 2 0))
 (while (/= x_plan nil)
   (if (= (numberp (read (FinChaine (cdr (assoc 2 x_plan))))) T)
     (if (not (equal (FinChaine (cdr (assoc 2 x_plan))) Ech))
       (command "-calque" "g" (cdr (assoc 2 x_plan)) "")
       (command "-calque" "l" (cdr (assoc 2 x_plan)) "")
     ) ;_ Fin de if
   ) ;_ Fin de if
   (setq x_plan (tblnext "layer"))
 ) ;_ Fin de while
) ;_ Fin de defun
;////////////////////////////////////// DenisH
;////////////////////////////////////// Merci à www.cadxp.com  ;)  

 

;////////////////////////////////////// Arrondi un nombre à sa partie entière
(defun arrondi (num)
 (if (< (abs (- num (fix num)))
        (abs (- num (1+ (fix num))))
     ) ;_ Fin de <
   (fix num)
   (1+ (fix num))
 ) ;_ Fin de if
) ;_ Fin de defun
;////////////////////////////////////// Merci à (gile)  ;)  

 

;////////////////////////////////////// Recherche le dernier mot d'une chaine
(defun FinChaine (chaine / pos)
 (setq pos (strlen chaine))
 (while (and (not (equal (substr chaine pos 1) " ")) (> pos 1))
   (setq pos (- pos 1))
 ) ;_ Fin de while
 (setq chaine (substr chaine (+ pos 1) (- (strlen chaine) pos)))
) ;_ Fin de defun
;////////////////////////////////////// Merci à www.cadxp.com  ;)  

 

J'espère ne rien avoir oublié...

 

Eh ben voilà...Je suis très fière de pouvoir publier enfin une routine de ma composition (enfin presque). Je contribu maintenant à la vie de ce site et, je l'espère, de tous les Cadxpiens

 

Les remarques sont les bienvenues... Biensur que si elles me flattent ! ! :D

 

Merci à tous et à CadXP,

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Petite précision :

 

Cette routine ne touche QUE les calques se terminant par un nombre précédés d'un "espace"...

 

Ne sont pas concernés :

 

"bla bla200"

"blabla 200 B"

"200"

 

Sont concernés :

"blabla 200"

" 200"

"blabla 200.529" (mais là, chapeau pour l'échelle)

 

Denis...

 

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é