• Ce forum est la traduction générée par la machine de www.cad3d.it/forum1 - la communauté italienne du design. Plusieurs termes ne sont pas traduits correctement.

attributs de numérotation automatique

  • Auteur du sujet Auteur du sujet 77marco77
  • Date de début Date de début

77marco77

Guest
Bonjour.
Jusqu'à présent, pour renuméroter les attributs que j'ai exportés (txt alors pour exceller), renumérotés et réimportés (excel -> txt -> autocad). aujourd'hui j'ai trouvé ces deux discussionsla première solution avec un lisp
la seconde avec vba (dernière version de ricvba)
et j'ai trouvé ce lisp dans un autre forum (auteurs du lisp terminator + gp)
HTML:
[Bleep] [Bleep] [Pleurer] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleurer] [B
;; fonction pour augmenter la numérotation des attributs dans la balise
; ;
;;; 20/7/2011 - numéro
;;; 22/7/2011 - numérotation avec tout préfixe avant et révision générale

(defun c:attpro (/ listblocks tag number prefix listattr)
(setq blocs de liste)
(mapcar 'vlax-ename->vla-object (ssgetli (sssget '(0 . " insert")))
tag (getstring "\n étiquette à évaluer: "
nombre (cible "\num initial: "
Numéro (1- numéro)
prefix(getstring "\nprefix text: "
)
(pour chaque élément listblocks
(si (= (élément vla-get-hasattributes)
:vlax-true
)
(progrès)
(setq listattr (vlax-safearray->list)
(valeur vlax-variante-élément vla-getattributes)
)
)
(pour chaque élément1 listattr
(si (balise égale (élément vla-get-tagstring1))
(élément vla-put-textstring1 (préfixe strcat (itoa (numéro de setq (1+ nombre)))))
)
)
)
)
)
)

(principal)
"\nattpro (vers.2) - par terminateur"
)
(princier "\ndigate attpro pour lancer le lisp")
(principal)

; ; **** fonction qui transforme une liste ssget en une liste normale

(defun ssgetli (sélection / groupe)
(si) (et sélection
(sélection de type égale) '
)
(progrès)
(groupe setq
'(lambda (élément) (élément égal (élément de type) 'liste))
(mapcar 'cadr (ssnamex selection)
)
)
)
)
)
la solution avec vba je la préfère car elle permet de choisir "l'ordre" dans lequel les attributs sont numérotés, les solutions permettent un préfixe alphanumérique et cela me va malheureusement mais aucune des trois solutions ne permet d'insérer comme numéro 001 et de continuer avec 002 (i.e. je dois insérer 1, suit 2 etc.) ....
Quelqu'un saura-t-il modifier la vba ou sous-commander le code de fichier ci-dessus ?
 
Depuis Je n'ai pas d'aube vba, je change le lisp.
Code:
[Bleep] [Bleep] [Pleurer] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleurer] [B
;; fonction pour augmenter la numérotation des attributs dans la balise
; ;
;;; 20/07/2011 - numéro
;;; 22/07/2011 - numérotation avec un préfixe possible devant
;; 07/11/2023 - Révision générale

(defun c:attpro (/ listblocks tag number prefix listattr)
(vl-load-com)
(setq listblocchi (mapcar 'vlax-ename->vla-object (sssgetli ((0 " insert")))))
tag (cdr(assoc 2 (entget (car (nentsel "\nselect the attribut: ")))))
nombre (cible "\num initial: "
Numéro (1- numéro)
prefix(getstring "\nprefix text: "
Suffixe(Getstring "\nsuffisso di testo: "
)
(pour chaque élément listblocks
(si (= (élément vla-get-hasattributes)
:vlax-true
)
(progrès)
(setq listattr (vlax-safearray->list (valeur vlax-variante)))
(pour chaque élément1 listattr
(si (balise égale (élément vla-get-tagstring1))
(élément vla-put-textstring1 (préfixe strcat (strright (strcat "000" (itoa (numéro de série (1+ numéro))))) 3) suffixe))
)
)
)
)
)
)

(principal)
"\nattpro (vers.3) - par terminator-gp-confutatis"
)
(princier "\ndigate attpro pour lancer le lisp")
(principal)

; ; **** fonction qui transforme une liste ssget en une liste normale
(defun ssgetli (sélection / groupe)
(si (et la sélection (égalité ( sélection de type) 'pickset))
(vl-ssnamex)
)
)

;; fonction rpor66
(défend l'échelle droite (txt n/l)
(setq l (strlen txt)
(substr txt (1+)
)
 
Dernière édition:

Statistiques du forum

Sujets
58 521
Messages
499 056
Membres
104 110
Dernier membre
ChristianR

Membres en ligne

Aucun membre en ligne actuellement.
Retour
Haut