Aller au contenu

Lisp Numeros...besoin d\'une correction.


Messages recommandés

Posté(e)

Bonjour à tous,

 

J'utilise ce lisp assez régulièrement mais j'ai tout de même un petit soucis et j'espere que quelqu'un pourra modifier cela.

 

Lorsque je commence des série, j'aimerai que de 1 à 9 il me numerote 01 - 02 -03... (donc avec le 0) mais également avec 3 ou 4 chiffres 001-002...

 

Actuellement on ne peux pas mettre le premier chiffre à 01...c'est toujours 1.

 

Voila j'espere avoir été assez clair dans ma demande... ;)

 

Voici le lien afin de telecharger ce lisp:

 

http://www.delicad.com/autocad/cpt.php3?NomFich=numeros

 

 

MERCI DE VOTRE AIDE !! :D

 

[Edité le 31/3/2008 par bono05]

Posté(e)

Salut,

 

Il n'est pas possible de modifier ce fichier, c'est un fichier compilé (VLX).

 

Tu peux essayer incsuf, une routine polyvalente d'incrémentation (une autre version plus bas, qui ouvre systématiquement la boite de dialogue).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Merci Gile...

 

Une difference entre les deux c'est que avec incsuf c'est en cliquant sur un texte DEJA existant sur le plan. Dans mon cas le plan d'origine est toujours vide de numéros.

 

Mais avec le lisp Numeros c'est en cliquant dans le vide que l'on crée la série de numéro...

 

C'est correct ce que je dit? :casstet:

 

Merci.

 

[Edité le 31/3/2008 par bono05]

Posté(e)

HELLO

 

meme manip que le lisp "numero"

 

avec le lisp de gile ca marche impec

 

il te suffit d'ecrire ton numero avant "1" ou "01" ou "001"

de le copier autant de fois que tu veux

 

et apres tu passes le lisp de gile sur tes chiffres et ca incremente sans probleme

 

1=> 2=> 3=>4

01=> 02=>03=>04

001 => 002=>003=>004

 

les zero sont garder en premier

 

on dit quoi ?? merci Gilee

 

phil

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

Re,

 

Basé sur la même routine (incsuff), donc avec la possibilité d'incrémenter des chaînes numériques, alphabétiques ou alphanumériques, le LISP INCTXT permet l'insertion multiple d'un texte contenant une valeur incrémentée.

 

http://img398.imageshack.us/img398/4667/inctxtmw1.png

 

EDIT : correction pour la rotation dans les SCU pivotés

 

EDIT 2 : correction justification "Milieu"

 

;; INCTXT (gile) 31/03/08
;; Insertions multiples d'un texte avec un valeur incrémentée

(defun c:inctxt	(/     temp  file  dcl_id      slst  st	   jlst	 ju    ht
	 ro    dep   inc   pref	 suff  hor   vert  nor	 dlst  flag
	 pt
	)

 (defun validchar (ch)
   (or (  )

 (setq	temp (vl-filename-mktemp "Tmp.dcl")
file (open temp "w")
 )
 (write-line
   (strcat
     "IncTxt:dialog{"
     "label=\"Texte incrémenté\";"
     ":boxed_column{"
     "label=\"Mise en forme\";"
     ":row{"
     ":column{"
     ":popup_list{"
     "label=\"Style\";key=\"st\";edit_width=16;}"
     ":popup_list{"
     "label=\"Justification\";key=\"ju\";edit_width=16;}}"
     ":column{"
     ":edit_box{"
     "label=\"Hauteur\";key=\"ht\";edit_width=5;allow_accept=true;}"
     ":edit_box{"
     "label=\"Rotation\";key=\"ro\";edit_width=5;allow_accept=true;}}}}"
     ":boxed_row{"
     "label=\"Texte\";:column{"
     ":edit_box{"
     "label=\"Valeur de départ\";key=\"dep\";edit_width=5;allow_accept=true;}"
     ":edit_box{"
     "label=\"Incrément\";key=\"inc\";edit_width=5;allow_accept=true;}}"
     "spacer;:column{"
     ":edit_box{"
     "label=\"Préfixe\";key=\"pref\";edit_width=16;allow_accept=true;}"
     ":edit_box{"
     "label=\"Suffixe\";key=\"suff\";edit_width=16;allow_accept=true;}}}"
     "ok_cancel;}"
    )
   file
 )
 (close file)
 (setq dcl_id (load_dialog temp))
 (if (not (new_dialog "IncTxt" dcl_id))
   (exit)
 )
 (while (setq st (tblnext "STYLE" (not st)))
   (if	(/= (cdr (assoc 2 st)) "")
     (setq slst (cons (cdr (assoc 2 st)) slst))
   )
 )
 (setq slst (reverse slst))
 (start_list "st")
 (mapcar 'add_list slst)
 (end_list)
 (setq	jlst '("Gauche"		 "Centre"	   "Droite"
       "Milieu"		 "Haut Gauche"	   "Haut Centre"
       "Haut Droite"	 "Milieu Gauche"   "Milieu Centre"
       "Milieu Droite"	 "Bas Gauche"	   "Bas Centre"
       "Bas Droite"
      )
 )
 (start_list "ju")
 (mapcar 'add_list jlst)
 (end_list)
 (or st (setq st (getvar "TEXTSTYLE")))
 (or ju (setq ju "Gauche"))
 (or ht (setq ht (getvar "TEXTSIZE")))
 (or ro (setq ro 0.0))
 (or dep (setq dep "1"))
 (or inc (setq inc 1))
 (or pref (setq pref ""))
 (or suff (setq suff ""))
 (set_tile "st" (itoa (vl-position st slst)))
 (set_tile "ju" (itoa (vl-position ju jlst)))
 (set_tile "ht" (rtos ht))
 (set_tile "ro" (angtos ro))
 (set_tile "dep" dep)
 (set_tile "inc" (itoa inc))
 (action_tile "st" "(setq st (nth (atoi $value) slst))")
 (action_tile "ju" "(setq ju (nth (atoi $value) jlst))")
 (action_tile
   "ht"
   "(if (and (numberp (distof $value))
             (      (setq ht (distof $value))
     (progn
(alert \"Spécifiez un nombre réel strictement positif\")
(set_tile \"ht\" (rtos ht))
(mode_tile \"ht\" 2))))"
 )
 (action_tile
   "ro"
   "(if (numberp (angtof $value))
     (setq ro (angtof $value))
     (progn
(alert \"Spécifiez un angle valide\")
(set_tile \"ro\" (angtos ro))
(mode_tile \"ro\" 2))))"
 )
 (action_tile
   "inc"
   "(if (and (numberp (read $value))
             (      (setq inc (atoi $value))
     (progn
(alert \"Spécifiez un entier strictement positif\")
(set_tile \"inc\" (itoa inc))
(mode_tile \"inc\" 2))))"
 )
 (action_tile
   "dep"
   "(if (validchar (ascii (substr $value (strlen $value))))
     (setq dep $value)
     (progn
(alert \"Spécifiez un nombre et/ou des lettres\")
(set_tile \"dep\" dep)
(mode_tile \"dep\" 2))))"
 )
 (action_tile "pref" "(setq pref $value)")
 (action_tile "suff" "(setq suff $value)")
 (action_tile "accept" "(done_dialog)")
 (action_tile "cancel" "(exit)")
 (start_dialog)
 (unload_dialog dcl_id)
 (vl-file-delete temp)
 (setq	hor  (cond
       ((wcmatch ju "*Gauche") 0)
       ((wcmatch ju "*Centre") 1)
       ((wcmatch ju "*Droite") 2)
       (T 4)
     )
vert (cond
       ((wcmatch ju "Haut *") 3)
       ((wcmatch ju "Milieu *") 2)
       ((wcmatch ju "Bas *") 1)
       (T 0)
     )
nor  (trans '(0 0 1) 1 0 T)
dlst (reverse (vl-string->list dep))
flag 0
 )
 (while (validchar (car dlst))
   (setq flag (+ flag
	  (cond
	    ((		    ((		    ((		  )
       )
  dlst (cdr dlst)
   )
 )
 (while (setq pt (getpoint "\nSpécifiez le point d'insertion: "))
   (setq pt (trans pt 1 nor))
   (entmake
     (list
'(0 . "TEXT")
(cons 10 pt)
(cons 40 ht)
(cons 50
      (+ ro (angle '(0 0 0) (trans (getvar "UCSXDIR") 0 nor)))
)
(cons 7 st)
(cons 11 pt)
(cons 72 hor)
(cons 73 vert)
(cons 1 (strcat pref dep suff))
(cons 210 nor)
     )
   )
   (setq dep (incsuff dep inc flag))
 )
 (princ)
)


;;===================================================;;

;; INCSUFF (version 1.2) -Gilles Chanteau- 15/01/08
;; Incrémente le suffixe d'une chaîne de caractères de la valeur spécifiée.
;; Est pris en compte comme suffixe, l'ensemble des caractères [0-9] et/ou [A-Z]
;; et/ou [a-z] depuis la fin du texte, en fonction de la valeur de alpha
;;
;; Arguments
;; str : une chaîne avec un suffixe valide
;; inc : un entier positif
;; alpha : un entier, somme des codes binaires suivant
;; 1 pour les caractères [0-9]
;; 2 pour les caractères [A-Z]
;; 4 pour les caractères [a-z]
;;
;; Retour
;; la chaîne avec son suffixe incrémenté (ou nil si aucun suffixe valide)
;;
;; Exemples :
;; (incsuff "N°002" 12 1) = "N°014"
;; (incsuff "Dessin9" 1 1) = "Dessin10"
;; (incsuff "test_ZZ9" 1 3) = "test_AAA0"
;; (incsuff "test_ZZ9" 1 1) = "test_ZZ10"
;; (incsuff "12-" 1 1) = nil
;;
;; Modification (13/02/08) : codes binaires pour l'argument alpha

(defun incsuff (str inc alpha / lst crt pas ind dep quo ret)
 (setq lst (reverse (vl-string->list str)))
 (while
   (and
     (setq crt (car lst))
     (cond
((and (	 (setq pas 10
       ind 48
 )
)
((and (	 (setq pas 26
       ind 65
 )
)
((and (	 (setq pas 26
       ind 97
 )
)
((	 (setq crt (if (= 10 pas)
	     ind
	     (1- ind)
	   )
       lst (cons (car lst) lst)
 )
)
     )
   )
    (setq dep (- crt ind)
   quo (/ (+ dep inc) pas)
   ret (cons (+ ind (rem (+ dep inc) pas)) ret)
    )
    (if (zerop quo)
      (setq ret (append (reverse (cdr lst)) ret)
     lst nil
      )
      (if (cdr lst)
 (setq lst (cdr lst)
       inc quo
 )
 (setq lst (list ind)
       inc (if (= 10 pas)
	     quo
	     (1- quo)
	   )
 )
      )
    )
 )
 (if ret
   (vl-list->string ret)
 )
) 

[Edité le 31/3/2008 par (gile)]

 

[Edité le 31/3/2008 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Et bien maintenant si j'ai déjà des numéros à changer, j'utilise la solution INCSUF...

 

Et si je demarre d'un plan vierge ce sera la solution INCTXT..

 

Merci Gile (et les autres)!!!! :D

  • 2 semaines après...
Posté(e)

Bonjour à toutes et tous,

 

Crois-tu, (gile), que cette technique de choix par BD est possible pour ton très fameux outil "Spécial-Selection" ?

 

A ce propos, une remarque, ou constat chez moi (V2008 pleine) =>

 

SSC, aprés choix de la couleur me selectionne quasiment toutes les entités à l'écran si je selectionne un bloc ou une hachure?? (Surement fait expres,...!)

 

[Edité le 12/4/2008 par lili2006]

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Posté(e)

Salut,

 

Crois-tu, (gile), que cette technique de choix par BD est possible pour ton très fameux outil "Spécial-Selection" ?

Excuse moi, je ne comprends pas bien la demande...

 

SSC, aprés choix de la couleur me selectionne quasiment toutes les entités à l'écransi je selectionne un bloc ou une hachure??

Si l'objet sélectionné est en couleur Ducalque, tous les objets en couleur DuCalque seront sélectionnés (SSC est utile pour les couleurs forcées)

Pour une sélection plus fine, utilise SSM (ou la sélection rapide)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Re,

 

Je voulais dire, choix d'un type de selection dans le même esprit que cette BD =>

 

Si l'objet sélectionné est en couleur Ducalque, tous les objets en couleur DuCalque seront sélectionnés (SSC est utile pour les couleurs forcées)

 

Ok ! Je n'avais tous simplement pas compris son utilité,...

 

Merci encore,

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Posté(e)

Voilà,

 

(defun c:sel (/ temp file dcl_id fun)
 (setq	temp (vl-filename-mktemp "Tmp.dcl")
file (open temp "w")
 )
 (write-line
   (strcat
     "IncrInputbox:dialog{label=\"Spécial sélections\";" ":radio_column{key=\"fun\";"
     ":radio_button{"
     "label=\"SSE Type d'entité\";key=\"(c:sse)\";}"
     ":radio_button{"
     "label=\"SSL Calque\";key=\"(c:ssl)\";}"
     ":radio_button{"
     "label=\"SSC Couleur\";key=\"(c:ssc)\";}"
     ":radio_button{"
     "label=\"SSTL Type de ligne\";key=\"(c:sstl)\";}"
     ":radio_button{"
     "label=\"SSATT Valeur d'attribut\";key=\"(c:ssatt)\";}}"
     "spacer;"
     "ok_cancel;}")
   file
 )
 (close file)
 (setq dcl_id (load_dialog temp))
 (if (not (new_dialog "IncrInputbox" dcl_id))
   (exit)
 )
 (set_tile "(c:sse)" "1")
 (action_tile
   "accept"
   "(setq fun (get_tile \"fun\")) (done_dialog)"
 )
 (start_dialog)
 (unload_dialog dcl_id)
 (and fun (eval (read fun)))
 (princ)
) 

 

Personnellement, je préfère de loin les avoir dans le menu contextuel d'édition.

 

http://img406.imageshack.us/img406/3737/specselzy3.png

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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é