DenisHen Posté(e) le 18 octobre 2006 Posté(e) le 18 octobre 2006 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)
DenisHen Posté(e) le 18 octobre 2006 Auteur Posté(e) le 18 octobre 2006 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)
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