Zobrazit plnou verzi příspěvku: Copy_AutoNum
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.
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
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") ))
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.