JUJUZAZA Posté(e) le 24 juillet 2007 Posté(e) le 24 juillet 2007 Hello Actuellement j'utilise un fichier gabarit à chaque création d'un fichier AutoCAD,(version 2002/2005)je les, personnalisé on créant 3 onglets de présentations nommé (niveau + popof.. + indice) , j'aimerai savoir si on a la possibilité avec une fonction lisp ou diesel qui me permettra de personnaliser facilement et rapidement ces onglets, actuellement je modifie le texte à chaque création et à chaque modification l' incrémentassions de l'indice Merci
Bred Posté(e) le 24 juillet 2007 Posté(e) le 24 juillet 2007 Salut,modifier le nom d'onglet est possible, mais comment veut tu procéder ?Tu lancerais une commande qui chaque fois que tu la lancerais t'incrémenterais les noms de +1 ? Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
JUJUZAZA Posté(e) le 24 juillet 2007 Auteur Posté(e) le 24 juillet 2007 Salut BRED Voilà, j'ai exactement dans chaque fichier 3 onglets, qui se nomme : 1er onglet ------------> " Niveau 1 - CFO 1 - indice A"2nd onglet -----------> " Niveau 1 - CFO 2 - indice A"3ème onglet ----------> " Niveau 1 - CFO tout - indice A" ma demande est de savoir, si on pouvait avec un lisp ou diesel , qui me permettrait de changer le niveau (par exemple: Niveau 1, en Niveau RDC, Niveau Sous-sol1, Niveau 2 ... etc) de pouvoir incrémenter l'indice :(par exemple: indice A, en indice B, indice C, indice D, indice E, ... etc) et de pouvoir modifier le texte: CFO Merci [Edité le 24/7/2007 par JUJUZAZA]
Bred Posté(e) le 24 juillet 2007 Posté(e) le 24 juillet 2007 Re,Alors, déjà, voici pour l'indice : Comme je ne savais pas le niveau d'automatisme que tu voulais, j'ai fait le code de tel sorte qu'il faut que tu sois dans l'onglet dont tu veux modifier l'indice, tu lances la commande "ind", et l'indice doit s'incrémenter.... (defun c:ind () (if (= (getvar "CVPORT") 1) (progn (setq l (vla-get-layout (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object))))) (vla-put-Name l (strcat (vl-string-right-trim (strcat "indice " (chr (vl-string-elt (vla-get-Name l) 26))) (vla-get-Name l)) " indice " (chr (1+ (vl-string-elt (vla-get-Name l) 26))))) ) (princ "\n *** Fonction non Valable en Espace Objet ***") ) (princ) ) Attention : n'est valable que pour les noms d'onglets que tu as donné (ou finissans par "indice X") Test le, si le procédé te va, on peux voir la suite...sinon dis le ! Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
JUJUZAZA Posté(e) le 25 juillet 2007 Auteur Posté(e) le 25 juillet 2007 Bonjour BRED ton lisp pour l'incrementation des indices fonctionne super bien,le seul hic, si mon indice se trouve au delas de la position 26 ou en dessous de 26, le lisp ne fonctionne plus.y 'a -il moyen de faire autrement, c-à-d- sans figer une case fixe du position de la lettre à incrémenter, Merci
Bred Posté(e) le 25 juillet 2007 Posté(e) le 25 juillet 2007 sans figer une case fixe du position de la lettre à incrémenterRe,à tester."indice X" peut se trouver n'importe où dans le nom : (defun c:ind () (if (= (getvar "CVPORT") 1) (progn (setq l (vla-get-layout (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) Name (vla-get-Name l) pos-ind (+ (vl-string-search "indice " Name) 7)) (vla-put-Name l (vl-string-subst (strcat "indice " (chr (1+ (vl-string-elt Name pos-ind)))) (strcat "indice " (chr (vl-string-elt Name pos-ind))) Name)) ) (princ "\n *** Fonction non Valable en Espace Objet ***") ) (princ) ) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
JUJUZAZA Posté(e) le 25 juillet 2007 Auteur Posté(e) le 25 juillet 2007 re, test fait ,résultat impressionnant !!! merci peux-tu me faire la partie incrémentation numérique (positive ou négative) , même principe sans tenir compte de la position du chiffre. exemple d'incrémantation:Niveau -5Niveau -4Niveau -3Niveau -2Niveau -1Niveau 0Niveau 1Niveau 2Niveau 3Niveau 4 ...etc à savoir l'onglet de mon fichier gabarit est nommé " Niveau 0 " , Merci d'être aussi disponible, pendant cette période de vacances ....
Bred Posté(e) le 26 juillet 2007 Posté(e) le 26 juillet 2007 Salut,je ne pensais pas, mais j'ai eu un peu de mal (à cause de l'incrémentation négative).Fonctionne pour Niveau -999 à Niveau 999. commande : niv+ ou niv- ;;; incrémentation +/- "Niveau" onglet présentation (defun c:niv+ () (incremente-niv +)) (defun c:niv- () (incremente-niv -)) (defun incremente-niv (val / IND IND1 IND2 IND3 L NAME POS-IND) (if (= (getvar "CVPORT") 1) (progn (setq l (vla-get-layout (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) Name (vla-get-Name l) pos-ind (+ (vl-string-search "Niveau " Name) 7) ind1 (chr (vl-string-elt Name pos-ind)) ind2 (chr (vl-string-elt Name (1+ pos-ind))) ind3 (chr (vl-string-elt Name (+ pos-ind 2)))) (if (and (> (ascii ind1) 47)(< (ascii ind1) 58)) (setq ind (atoi (strcat ind1)))) (if (and (> (ascii ind2) 47)(< (ascii ind2) 58)) (setq ind (atoi (strcat ind1 ind2)))) (if (and (> (ascii ind3) 47)(< (ascii ind3) 58)) (setq ind (atoi (strcat ind1 ind2 ind3)))) (if (< ind 0) (progn (vla-put-Name l (vl-string-subst (strcat "Niveau " (rtos (val ind 1))) (strcat "Niveau " (rtos ind)) Name)) ) (progn (vla-put-Name l (vl-string-subst (strcat "Niveau " (rtos (val ind 1))) (strcat "Niveau " (rtos ind)) Name)) ) ) ) (princ "\n *** Fonction non Valable en Espace Objet ***") ) (princ) ) J'en ai profité pour faire la même chose pour l'indice : ind+ ou ind-;;; incrémentation +/- indice onglet présentation (defun c:ind+ () (incremente-ind +)) (defun c:ind- () (incremente-ind -)) (defun incremente-ind (val / L NAME POS-IND) (if (= (getvar "CVPORT") 1) (progn (setq l (vla-get-layout (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) Name (vla-get-Name l) pos-ind (+ (vl-string-search "indice " Name) 7)) (vla-put-Name l (vl-string-subst (strcat "indice " (chr (val (vl-string-elt Name pos-ind) 1))) (strcat "indice " (chr (vl-string-elt Name pos-ind))) Name)) ) (princ "\n *** Fonction non Valable en Espace Objet ***") ) (princ) ) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
JUJUZAZA Posté(e) le 27 juillet 2007 Auteur Posté(e) le 27 juillet 2007 Tu n'y pensais pas, mais tu l'as fait !!! Eureka, tout fonctionne ... Merci :D [Edité le 27/7/2007 par JUJUZAZA]
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