Invité samuelM Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 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
Carboleum Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 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
Invité samuelM Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 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?
Carboleum Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 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
Invité samuelM Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 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
Invité samuelM Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 Enfin sans les smils!!! que dois je faire?
didier Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 coucou c'est quoi ce délire !!!ce que tu nous montres est le résultat d'un entget sur un objet SOLIDE :( amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Carboleum Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 Chez moi, ca marche,il faut sélectionner un textequ'est ce que tu sélectionne comme objet ? Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog
Invité samuelM Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 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é.
Carboleum Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 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
Invité samuelM Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 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))
Carboleum Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 un texte, pas un texte multiple! un texte fait avec la commande _TEXT(quoique dans ce cas, ca aurait du marcher) [Edité le 22/4/2011 par Carboleum] Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog
Invité samuelM Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 Merci c'est super. merci de ton aide. il faut maintenant que j'arrive à le réinitialiser avec ton code.encore merci
(gile) Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 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 - GitHub Développements sur mesure pour AutoCAD
Invité samuelM Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 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
Carboleum Posté(e) le 22 avril 2011 Posté(e) le 22 avril 2011 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
Invité samuelM Posté(e) le 26 avril 2011 Posté(e) le 26 avril 2011 merci ça fonctionne comme je veux. merci encore
Invité samuelM Posté(e) le 26 avril 2011 Posté(e) le 26 avril 2011 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é?
Carboleum Posté(e) le 26 avril 2011 Posté(e) le 26 avril 2011 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
(gile) Posté(e) le 26 avril 2011 Posté(e) le 26 avril 2011 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 - GitHub Développements sur mesure pour AutoCAD
Carboleum Posté(e) le 26 avril 2011 Posté(e) le 26 avril 2011 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
(gile) Posté(e) le 26 avril 2011 Posté(e) le 26 avril 2011 ???... 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 - GitHub Développements sur mesure pour AutoCAD
Carboleum Posté(e) le 27 avril 2011 Posté(e) le 27 avril 2011 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
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