Aller au contenu

numérotation


Invité samuelM

Messages recommandés

Invité samuelM

Bonjour,

 

je souhaite revenir qui a été ouvert il y a quelques années mais où je ne peux avoir la réponse.

Voici le lien de la page de ce forum :

http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=6443#pid22965

 

je voudrai pouvoir numéroter avec un texte en plus le plus simplement possible et je crois que la fonction de "rebcao" me convient sauf que je ne sais pas comment la récupérer.

 

mon cas :

je dessine des maisons en ossatures bois et je veux pouvoir, sur mon dessin, indiquer "mur A", "mur B" ... en sélectionnant le dessin entier ou quelque chose comme ça. que ça soit plus simple que d'utiliser la fonction texte où il pet y avoir des erreurs sur la numérotation.

 

Merci à vous

Lien vers le commentaire
Partager sur d’autres sites

Je ne connais pas l'outil de rebcao, mais en lisp, l'un incrément alphanumérique peut se faire comme ceci:

 

(defun a+ (a / l) 
	(vl-list->string (reverse (cons (1+ (car (setq l (reverse (vl-string->list a))))) (cdr l)))))

 

avec un gros bug après le "z"

 

Si tu n'arrives pas à insérer ce code dans l'outil de Rebcao (j'imagine qu'il est en DIESEL, ca va donc pas être facile ;)

 

Sinon, entmod, subst, assoc, entget et entsel sont tes amies.

 

(entmod (subst 
  (cons 1 (a+ (cdr (setq ass (assoc 1 (setq ent (entget (car (entsel)))))))))
  ass
  ent))

 

 

RMQ, ce dernier code te servira toute ta vie (moyennant qques modifs :-)

 

 

[Edité le 22/4/2011 par Carboleum]

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Lien vers le commentaire
Partager sur d’autres sites

Invité samuelM

Merci pour tes réponses. mais je débute avec la programmation sur autocad. je ne suis pas encore capable de réaliser un programme.

comment j'appelle ta premiere ligne de code une fois que je l'ai chargé sur autocad?

Lien vers le commentaire
Partager sur d’autres sites

 

ok!

 

je te fais une fonction complète alors:

 

(defun c:a+ ( / a+ ass ent)
  (defun a+ (a / l) 
     (vl-list->string (reverse (cons (1+ (car (setq l (reverse (vl-string->list a))))) (cdr l)))))
  (entmod (subst 
     (cons 1 (a+ (cdr (setq ass (assoc 1 (setq ent (entget (car (entsel)))))))))
     ass
     ent)))

 

Tu charges ca, puis tu la lances en tapant "a+", alors tu cliques sur un texte.

 

Mais je vois déjà que tu vas me demander de pouvoir compter... ca arrive ;-)

 

 

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Lien vers le commentaire
Partager sur d’autres sites

Invité samuelM

Merci pour ton travail.

 

cependant voila ce que ça me met quand je selectionne un objet :(

 Commande: a+
{kk {ii -:):-,:; {jg {rn |") (1 . ":;8: {rn rn {rn {ih o {jo nmo {ij {gn 
90-(>-; _h *1410(1 |") (1 . "):-+:' {rn rn {rn {hh {gm |") (1 . ",+->687+r<*-): 
{rn rn {rn nhgqlhj lfkn kj o o n V V |") (1 . "/061+ {rn rn {rn nhgqlhj lfkn fo 
|") (1 . "<0:;8: {rn rn {rn {kg {hi {jm {hl -:):-,:; {jg {rn |") (1 . 
",+->687+r<*-): {rn rn {rn jgqlhj lfkn kj o rn o V V |") (1 . "/061+ {rn rn {rn 
jgqlhj lfkn kj |") (1 . ":;8: {rn rn {rn {jl o {hg nmo {ho {gl 90-(>-; _h 
*1410(1 |") (1 . "/061+ {rn rn {rn jgqlhj jf kj |") (1 . ",+->687+r<*-): {rn rn 
{rn jgqlhj jf fo rn o o V V |") (1 . "<0:;8: {rn rn {rn {ho {ij {in {hh 
-:):-,:; {jg {rn |") (1 . ":;8: {rn rn {rn {hg o {ih lggm {hi {gk 90-(>-; _h 
*1410(1 |") (1 . "):-+:' {rn rn {rn {hl {gj |") (1 . ",+->687+r<*-): {rn rn {rn 
nhgqlhj jf kj o o n V V |") (1 . "/061+ {rn rn {rn nhgqlhj jf fo |") (1 . 
",+->687+r<*-): {rn rn {rn nhgqlhj lfkn kj rn o o V V |") (1 . "/061+ {rn rn 
{rn nhgqlhj lfkn kj |") (1 . ",+->687+r<*-): {rn rn {rn jgqlhj jf kj n o o V V 
|") (1 . ",+->687+r<*-): {rn rn {rn nhgqlhj jf kj o n o V V |") (1 . "/061+ {rn 
rn {rn nhgqlhj jf kj |"))>1:r,*-9><: {rn rn {rn nhgqlhj lfkn kj n o o o o rn 
90-(>-;@) V V V V |") (1 . "<0:;8: {rn rn {rn {mk {mj {mi {mh 90-(>-; {f {rn 
|") (1 . "<0:;8: {rn rn {rn {mg {nn {mj {mf -:):-,:; {i {rn |") (1 . "<0:;8: 
{rn rn {rn {nn {mg {lo {ln 90-(>-; {i {rn |") (1 . "<0:;8: {rn rn {rn {lm {mi 
{nn {nf -:):-,:; {ll {rn |") (1 . ":;8: {rn rn {rn {lk rlggm {lj o {nn {li 
90-(>-; _h *1410(1 |") (1 . "9><: {rn rn {rn {lh {ll {l {rn {lg 90-(>-; ,6183: 
|") (1 . "300/ {rn rn {rn {rn {lf {nm |") (1 . "/3>1:r,*-9><: {rn rn {rn 
nhgqlhj jf kj o rn o o o rn 90-(>-;@) V V V V |") (1 . "<0:;8: {rn rn {rn {ko 
{kn {km {kl 90-(>-; {nl {rn |") (1 . "<0:;8: {rn rn {rn {kk {nj {kn {kj 
-:):-,:; {f {rn |") (1 . "<0:;8: {rn rn {rn {nj {kk {ni {mf 90-(>-; {f {rn |") 
(1 . "<0:;8: {rn rn {rn {ng {km {nj {mh -:):-,:; {ll {rn |") (1 . ":;8: {rn rn 
{rn {lj rnmo {ki o {nj {kh 90-(>-; _h *1410(1 |") (1 . "<0:;8: {rn rn {rn {nh 
{ni {kg {kf 90-(>-; {i {rn |") (1 . ":;8: {rn rn {rn {jo o {lj kj {mj {jn 
90-(>-; _h *1410(1 |") (1 . "<0:;8: {rn rn {rn {jm {lf {nh {ln -:):-,:; {mn {rn 
|") (1 . ":;8: {rn rn {rn {jl o {lk kj {nh {jk 90-(>-; _h *1410(1 |") (1 . 
"<0:;8: {rn rn {rn {km {ng {lf {jj -:):-,:; {ll {rn |") (1 . "300/ {rn rn {rn 
{rn {ng {mo |") (1 . "):-+:' {rn rn {rn {ln {ji |") (1 . "):-+:' {rn rn {rn {mf 
{jh |") (1 . ",+->687+r<*-): {rn rn {rn jgqlhj lfkn fo o n o V V |") (1 . "9><: 
{rn rn {rn {rn {jg {l {rn {jf -:):-,:; ,6183: |") (1 . "/3>1:r,*-9><: {rn rn 
{rn nngqlhj mooo fo o o n n o o 90-(>-;@) V V V V |") (1 . "<0:;8: {rn rn {rn 
{lo {io {lm {jj 90-(>-; {mn {rn |") (1 . "<0:;8: {rn rn {rn {in {ml {io {im 
-:):-,:; {nl {rn |") (1 . "<0:;8: {rn rn {rn {ml {in {mk {kj 90-(>-; {nl {rn 
|") (1 . "<0:;8: {rn rn {rn {mi {lm {ml {kl -:):-,:; {ll {rn |") (1 . ":;8: {rn 
rn {rn {ki rlggm {il o {ml {ik 90-(>-; _h *1410(1 |") (1 . "<0:;8: {rn rn {rn 
{mj {mk {ij {ii 90-(>-; {f {rn |") (1 . ":;8: {rn rn {rn {ih o {ki kj {kn {ig 
90-(>-; _h *1410(1 |") (1 . "):-+:' {rn rn {rn {kj {if |") (1 . ",+->687+r<*-): 
{rn rn {rn nhgqlhj lfkn fo n o o V V |") (1 . "<0:;8: {rn rn {rn {ij {ho {mg 
{kf -:):-,:; {jg {rn |") (1 . ":;8: {rn rn {rn {jo o {jl lggm {kg {hn 90-(>-; 
_h *1410(1 |") (1 . "):-+:' {rn rn {rn {ii {hm |") (1 . ",+->687+r<*-): {rn rn 
{rn jgqlhj lfkn kj o o n V V |") (1 . "<0:;8: {rn rn {rn {io {lo {ho {hl 
90-(>-; {mn {rn |") (1 . "):-+:' {rn rn {rn {hl {hk |") (1 . ",+->687+r<*-): 
{rn rn {rn jgqlhj jf kj o o n V V |") (1 . ":;8: {rn rn {rn {il rnmo {lk o {lf 
{hj 90-(>-; _h *1410(1 |") (1 . "/061+ {rn rn {rn jgqlhj jf fo |") (1 . "/061+ 
{rn rn {rn jgqlhj lfkn fo |") (1 . "300/ {rn rn {rn {rn {ho {lh |") (1 . 
"/3>1:r,*-9><: {rn rn {rn nngqlhj mooo kj o o n n o o 90-(>-;@) V V V V |") (1 
. "<0:;8: {rn rn {rn {lf {jm {ko {im 90-(>-; {mn {rn |") (1 . "<0:;8: {rn rn 
{rn {kn {ko {hi {hh 90-(>-; {nl {rn |") (1 . ":;8: {rn rn {rn {hg o {il kj {io 
{hf 90-(>-; _h *1410(1 |") (1 . "):-+:' {rn rn {rn {im {go |") (1 . 
",+->687+r<*-): {rn rn {rn nhgqlhj jf fo o rn o V V |") (1 . "<0:;8: {rn rn {rn 
{hi {kg

 

 

Lien vers le commentaire
Partager sur d’autres sites

Invité samuelM

Je vais expliquer plus en détail ce que je souhaiterai pouvoir faire.

 

je dessine de la maison. la maison à des murs que je crée sur des calques différents.

un mur est composé de plusieurs polyligne donc plusieurs objets.

je voudrai, par l'aide d'une fonction, accrocher à un mur (ou un objet du mur) du texte (Mur n) mais qu'il n'y est pas la possibilité d'avoir deux texte pareil. donc faire +1 à chaque fois.

 

je sais pas si je me suis bien expliqué.

 

Lien vers le commentaire
Partager sur d’autres sites

Tu avais parlé de texte, hum...

 

(defun c:a++ ( / a++)
(defun a+n (n a / l) 
	(vl-list->string (reverse (cons (+ n (car (setq l (reverse (vl-string->list a))))) (cdr l)))))
(setq *n* (cond (*n*) (1)))
(entmod (subst (cons 1 (a+n (setq *n* (1+ *n*)) (cdr (setq ass (assoc 1 (setq ent (entget (car (entsel))))))))) ass ent)))

 

Bon,

 

Tu écris un texte (pas un texte multiple), 'Mur A", tu le copie partout où tu veux, puis tu utilise la routine a++ sur chacun des textes;

 

Pour réinitiliser le comptage:

(setq *n* nil)

 

 

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Lien vers le commentaire
Partager sur d’autres sites

Invité samuelM

j'avais sélectionné une polyligne et voila ce que çà fait que je sélections un texte

 Commande: a+
Choix de l'objet: ((-1 . ) (0 . "MTEXT") (330 . d'entité: 7ef56cf8>) (5 . "564") (100 . "AcDbEntity") (67 . 0) (410 . "Model") 
(8 . "3ossature") (100 . "AcDbMText") (10 3129.78 2494.98 45.0) (40 . 50.0) (41 
. 432.612) (71 . 1) (72 . 5) (1 . "Mur C") (7 . "Standard") (210 0.0 0.0 1.0) 
(11 1.0 0.0 0.0) (42 . 233.333) (43 . 50.0) (50 . 0.0) (73 . 1) (44 . 1.0))

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Regarde le LISP Increment.lsp sur cette page, plusieurs commandes y sont définies, tu devrais bien en trouver une qui fait ton bonheur (INCTXT pour insérer un texte contenant une valeur incrémentée, INCSEL pour incrémenter une valeur dans des textes existants, INCADD pour ajouter un préfixe ou un suffixe incrémenté à des textes existants).

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Invité samuelM

Merci Gille pour cette page, en effet il y a des truc intéressant. j'ai pris inctxt et incsel mais je n'arrive pas bien à m'en servir.

 

Est ce que dans un premier temps quelqu'un peu m'aider à modifier le lisp de Carboleum pour réinitialiser le comptage avec sa ligne de code?

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

 

Si quelqu'un pouvais modifier mon lisp ;-) comme suit....

 

(defun c:a++ ( / a++ ent)
(defun a+n (n a / l) 
	(vl-list->string (reverse (cons (+ n (car (setq l (reverse (vl-string->list a))))) (cdr l)))))

(setq *n* (cond (*n*) (0)))
(initget "Init")
(if (= "Init" (setq ent (entsel "Pick text (i for initialisation): "))) (setq *n* 0 ent (entsel "Pick text: ")))	
(entmod (subst (cons 1 (a+n (setq *n* (1+ *n*)) (cdr (setq ass (assoc 1 (setq ent (entget (car ent)))))))) ass ent)))

 

Pour réinitialiser, tapes i puis au lieu de sélectionner un texte.

 

 

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Lien vers le commentaire
Partager sur d’autres sites

Invité samuelM

en faite, serai il possible d'apporter une modification? (si ça ne te prend pas trop de temps et si c'est pas trop dur)

garder le même principe que ton programme mais pouvoir faire comme l'outil "copier les propriétés".

 

je m'explique car je suis rarement clair!

après avoir édité mon texte de base, puis l'avoir copié au endroit voulu, je voudrai pour éviter de relancer toujours le programme, pouvoir le lancer une fois, et sélectionner les textes auxquels je voudrai que ça s'applique dans l'ordre que je sélectionne.

 

Est ce assez ensoleillé?

 

Lien vers le commentaire
Partager sur d’autres sites

 

 

On va mettre une petite boucle while alors:

 

(defun c:a++ ( / a++ ent)
(defun a+n (n a / l) 
	(vl-list->string (reverse (cons (+ n (car (setq l (reverse (vl-string->list a))))) (cdr l)))))

(setq *n* (cond (*n*) (0)))
(while
	(progn
		(initget "Init")
		(if (= "Init" (setq ent (entsel "Pick text (i for initialisation): "))) (setq *n* 0 ent (entsel "Pick text: ")))
		ent)
	(entmod (subst (cons 1 (a+n (setq *n* (1+ *n*)) (cdr (setq ass (assoc 1 (setq ent (entget (car ent)))))))) ass ent))))

 

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Carboleum est bien sympa d'essayer de répondre à ta demande (j'espère que ça l'amuse).

 

Je viens d'essayer sa dernière routine elle fait ce que fait INCSUF (dans Increment) avec moins d'options et sans dépasser 9.

 

Si tu prenais la peine de lire les commentaires dans le code qui décrivent les commandes de Increment et de les essayer, je serai étonné que tu ne trouves pas ce que tu cherches (voire plus).

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Carboleum est bien sympa d'essayer de répondre à ta demande (j'espère que ça l'amuse).

 

???...

 

Je viens d'essayer sa dernière routine elle fait ce que fait INCSUF (dans Increment) avec moins d'options et sans dépasser 9.

 

en fait, ca ne dépasse pas z, car c'est pour numéroter avec des lettres. Je l'avais prévenu au début.

 

Si tu prenais la peine de lire les commentaires dans le code qui décrivent les commandes de Increment et de les essayer, je serai étonné que tu ne trouves pas ce que tu cherches (voire plus).

 

t'es faché ?!??

 

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Lien vers le commentaire
Partager sur d’autres sites

???...

Je pense être assez bien placé pour savoir qu'il peut être très amusant d'écrire des routines pour répondre à des demandes. ;)

 

t'es faché ?!??

Certainement pas après toi.

Mais le fait que certains réclament du "sur mesure" à coup de modifications successives plutôt que d'essayer d'utiliser ce qui existe m'agace un peu.

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

 

Mais le fait que certains réclament du "sur mesure" à coup de modifications successives plutôt que d'essayer d'utiliser ce qui existe m'agace un peu.

 

Oui, et je ne disais rien d'autre là http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=32295 comme quoi hein! ;-)

 

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Lien vers le commentaire
Partager sur d’autres sites

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é