Aller au contenu

Personnaliser les Onglets


Messages recommandés

Posté(e)

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

Posté(e)

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...

Posté(e)

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]

Posté(e)

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...

Posté(e)

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

 

Posté(e)
sans figer une case fixe du position de la lettre à incrémenter

Re,

à 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...

Posté(e)

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 -5

Niveau -4

Niveau -3

Niveau -2

Niveau -1

Niveau 0

Niveau 1

Niveau 2

Niveau 3

Niveau 4 ...etc

 

à savoir l'onglet de mon fichier gabarit est nommé " Niveau 0 " ,

 

 

Merci d'être aussi disponible, pendant cette période de vacances ....

 

 

 

 

Posté(e)

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...

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é