Zobrazit plnou verzi příspěvku: Copy_AutoNum

Buba
16.12.2008, 15:27
Vedel a bol by ochotný niekto naprogramovať utilitku, ktorá by súčasne s kopírovaním textu tento editovala vždy o postfix 0......N.
 
Postup funkčnosti:
- vytvorím si text WL0
- spustím Copy_AutoNum
-zadám počiatočnú hodnotu (napr.: 0)
-označím SOURCE (WL0), ten prepíše na WL00
- pri každom ďalšom kliknutí sa mi postupne vkladajú okopírované texty, avšak každý nasledujúci je inkrementovaný o 1 (WL01, WL02, WL03..... až pokiaľ nestlačím inú klávesu, napríklad ENTER, alebo pravé tlačítko)
 
Ďakujem.

alfred
16.12.2008, 16:23
String na začátku budou vždy WL, tedy dva znaky?Čísla budou jen od nuly do 99?Pro čísla 0-9 musí být ta nula (01, 02...)? Nestačí WL1, WL2?

Vladimír Michl
16.12.2008, 17:19
Zkuste tuto upravenou verzi příkazu TCOUNT (z Express Tools). Soubor ACETTXT.LSP zkopírujte (přejmenujte a přepište, se zálohou) do složky Express Tools.
 
Nová volba "Copy" příkazu [CMD]TCOUNT[/CMD] pak umožní opakovaně vkládat první vybraný text a číslovat pořadí.
 
uploads/20081216_171819_acettxt2.lsp

alfred
17.12.2008, 16:12
Není tam nějaká nesrovnalost v cyklu? Když skončím kopírování pravým tlačítkem tak při prvním kliku pravým tlačítkem to nějak divně umístí ještě jeden text s číslem a při druhém kliknutí na to samé místo ještě další ale bez čísla.

Vladimír Michl
17.12.2008, 16:15
Ano, ten konec cyklu je "divný" (je to dělané jen narychlo, hrubou silou).

chlebovsky
17.12.2008, 22:46
Snad pomůže :-)
 
(defun c:Copy_AutoNum (/ ent od plus new i ttt bod)  (princ "\nVyber prvotní text ")  (if (setq ent (entsel))    (progn      (setq ent (entget (car ent)))      (if (or (= (cdr (assoc 0 ent)) "TEXT")(= (cdr (assoc 0 ent)) "MTEXT")(= (cdr (assoc 0 ent)) "ATTDEF")) (progn   (setq od (getint "\nZadej počáteční hodnotu přičítání [0] :"))   (if (not od)(setq od 0))   (setq plus (getint "\nZadej o kolik navýšit další hodnotu [1] :"))   (if (not plus)(setq plus 1))   (setq text (cdr (assoc 1 ent)))   (setq ttt od)   (setq new (entget (entmakex ent)))   (setq new (subst (cons 1 (strcat text (itoa ttt)))(assoc 1 new) new))          (entmod new)   (command "_move" (cdr (assoc -1 new)) "" (cdr (assoc 10 new)) pause)   (setq bod (getvar "lastpoint"))   (while (> (distance bod (cdr (assoc 10 new))) 0)     (setq ttt (+ ttt plus))     (setq new (entget (entmakex ent)))     (setq new (subst (cons 1 (strcat text (itoa ttt)))(assoc 1 new) new))            (entmod new)     (command "_move" (cdr (assoc -1 new)) "" (cdr (assoc 10 new)) pause)       (setq bod (getvar "lastpoint"))   )   (entdel (cdr (assoc -1 new)))        ) (alert "Vybraná entita není text ani mtext.")      )    )    (alert "Nebyl vybrán žádný text")  ))

Buba
18.12.2008, 14:34
Tak som sa po dvoch dňoch dostala opäť k PC.
Ďakujem všetkým mnohokrát.
To: chlebovsky toto presne som myslela. Ďakujem. :)

chlebovsky
19.12.2008, 12:35
není zač :-) rádo se stalo.