Zobrazit plnou verzi příspěvku: Automaticke cislovani

PeterCAD
16.08.2005, 11:06
Nevim, zda to v cadu jde, priklad:
rada dilu vedle sebe a kazdy ma svoje cislo od xx do yy. Jak je jednoduse ocisluju, aniz bych u kazdeho prepisoval cislo. Funguje neco jako 'tahni' v excelu??

Chlebník
16.08.2005, 11:22
Jednou jsem řešil vkládání bodů a u každého napsat číslo a jinou barvou.
Pokud se trochu vyznáte v Lispu tak určitě pochopíte a upravíte. Pokud né tak napište a něco s tím uděláme.
Lisp :
(defun c:body (/ bod bod_old s_body x y sou i)  (setq x 1 y 1)  (while (setq bod (if bod_old (getpoint bod_old "\nVyber další bod")(getpoint "\nVyber první bod")))    (entmake (list (cons 0 "POINT")(cons 8 "0")(cons 62 x)(cons 10 bod)))    (entmake (list (cons 0 "TEXT") (cons 8 "0")(cons 62 x)(cons 10 bod)(cons 11 bod)(cons 40 0.3)(cons 1 (itoa y))(cons 50 0.0)(cons 41 1.0)(cons 51 0.0)(cons 71 0)(cons 72 0)(cons 73 0)))    (setq s_body (append s_body (list bod)))    (setq bod_old bod x (1+ x) y (1+ y))    (if (> x 256)(setq x 1))  )  (setq file (getfiled "Vyber kam uložit body" "Body" "TXT" 1))  (if file    (progn      (setq sou (open file "w"))      (setq i 0)      (repeat (length s_body) (write-line (strcat (itoa (1+ i)) "\t" (rtos (car (nth i s_body)) 2 4)"\t" (rtos (cadr (nth i s_body)) 2 4)"\t" (rtos (caddr (nth i s_body)) 2 4)) sou) (setq i (1+ i))      )      (close sou)    )  ))

Rostislav Říha
16.08.2005, 11:30
[QUOTE=PeterCAD]Funguje neco jako 'tahni' v excelu??[/QUOTE]
pekna predstava:))) - nejde to, da se to nicmene obejit bud pouzitim nejake lispove utility (tech je na www kopec) nebo se to da udelat i jednoduchym dieselovym retezcem v menu a pak to bude fungovat i v LTcku

Machacek
16.08.2005, 12:03
Pro LTecko jsem mel kdysi udelana takovato uzivatelska tlacitka:
1. tlacitko nastavovalo format cisla (opakujici se zanky pred cislem nebo za nim)
^C^Csetenv;PRED;\setenv;HODNOTA;\setenv;ZA;
 
2. tlacitko bylo pro 2 mistne cislo
^C^C_-layer;_s;AG_ZAS_CISLA;;_-mtext;\_H;$M=$(*,$(getvar,DIM TXT),$(getvar,DIMSCALE));_J;_BL;_R;\@;$M=$(IF,$(<,$(strle n,$(getenv,PRED)),4),$(getenv,PRED))$M=$(IF,$(<,$(getenv, HODNOTA),10),0)$M=$(getenv,HODNOTA)$M=$(IF,$(<,$(strlen,$ (getenv,ZA)),4),$(getenv,ZA));;setenv;HODNOTA;$M=$(+,1,$(get env,HODNOTA));
 
3. tlacitko bylo pro 3 mistne cislo
^C^C_-layer;_s;AG_ZAS_CISLA;;_-mtext;\_H;$M=$(*,$(getvar,DIM TXT),$(getvar,DIMSCALE));_J;_BL;_R;\@;$M=$(IF,$(<,$(strle n,$(getenv,PRED)),4),$(getenv,PRED))$M=$(IF,$(<,$(getenv, HODNOTA),100),0)$M=$(IF,$(<,$(getenv,HODNOTA),10),0)$M=$( getenv,HODNOTA)$M=$(IF,$(<,$(strlen,$(getenv,ZA)),4),$(ge tenv,ZA));;setenv;HODNOTA;$M=$(+,1,$(getenv,HODNOTA));

Rostislav Říha
16.08.2005, 12:10
[QUOTE=Machacek]Pro LTecko jsem mel kdysi udelana takovato uzivatelska tlacitka:^C^Csetenv;PRED;\setenv;HODNOTA;\setenv;ZA;[/QUOTE]
dobre, jen bych doporucil z duvodu kompatibility s velkym academ nepouzivat setenv a getenv, velky acad zna jen setvar a getvar - lze pouzit bud uzivatelske promenne userr, useri, nebo nejakou mene frekventovanou...

PeterCAD
16.08.2005, 13:26
to je sice pekne, verim ze to i funguje, ale jsem opravdu jen 'novacek'
Predpokladam tedy,ze ve velkem cadu nic takoveho neni, pokud si jej neupravim...

Chlebník
16.08.2005, 13:28
napište přesně co to má dělat a nějak to dáme dokupy.

Machacek
16.08.2005, 13:36
neni na tom nic sloziteho, jenom si nadefinujte svoje vlastni uzivatelska tlacitka a do jejich funkce si zkopirujte uvedene retezce.
1.TLC = nejdrive se vas opta na retezec opakujicich se znaku na zacatku (pokud zadate vic jak 4 znaky tak se pri cislovani nebude toto predcisli zobrazovat), pak nasleduje vyzva k zadani cisla od ktereho se zacne pocitat, a  nakonec je tam zase  opakujici se retezec na konci cisla (plati pro nej stejne pravidlo jako pro predcisli)
kdyz si to nastavite tak uz jenom mackate tlacitko 2 nebo 3 a nebo pouzijete opakovani prikazu pres mys

PeterCAD
16.08.2005, 15:12
Chlebnik:
mam napr. radu kancelari vedle sebe a musim je ocislovat, napr. od 001 do 036.
Taxem si predstavoval,ze zadam neco jako 'pole' s tim, ze se mi vypisou tato cisla (vcetne posloupnosti), pokud mozno i s umistenim tak jako u prikazu pole...
nebylo by spatne zadat parametry jako:
1-pocatecni cislo, 2-krok, 3-pocet cisel, (dalsi hodnoty umisteni dle pole, tj. sloupce/radky)
dik moc za snahu

Chlebník
16.08.2005, 16:30
Vytvořte si soubor třeba        cisilka.lsp
otevřete si ho třeba v notepadu a nakopírujte do něj toto :
 
(defun c:cisilka (/ first kam pocet point i dist x y z vyska text rotace)  (setq first 1)  (if (not (setq first (getint (strcat "\nZadej první pořadové číslo : ["(substr "00" (strlen (itoa first)))(itoa first)"] "))))(setq first 1))  (initget 0 "Rada Sloupec")  (if (not (setq kam (getkword "\nKam kopírovat Rada/Sloupec [Rada] ")))(setq kam "Rada"))  (initget 2)  (if (= kam "Rada")(setq dist (getdist "\nZadej vzdálenost mezi sloupci : ")))  (if (= kam "Sloupec")(setq dist (getdist "\nZadej vzdálenost mezi řadami : ")))  (initget 2)  (setq pocet (getint "\nZadej počet čísel : "))  (initget 1)  (setq point (getpoint "\nZadej počáteční bod vykreslování"))  (setq i 0)  (setq x (car point) y (cadr point) z (caddr point))  (setq vyska 10.0) ;;; tady je napsaná výška výsledného textu lze jí jakkoliv změnit  (setq rotace 0.0) ;;; tady je napsaná rotace výsledného textu lze jí jakkoliv změnit (v radiánech)  (repeat pocet    (setq x (+ x (if (= kam "Rada") dist 0)))    (setq y (+ y (if (= kam "Sloupec") dist 0)))    (setq text (strcat (substr "00" (strlen (itoa (+ first i)))) (itoa (+ first i))))    (entmakex (list (cons 0 "TEXT")      (cons 100 "AcDbEntity")      (cons 67 0)      (cons 410 "Model")      (cons 8 "0") ;;; tady je napsaná hladina do které kreslit (možno smazat celý řádek)      (cons 100 "AcDbText")      (cons 10 (list x y z))      (cons 40 vyska)      (cons 1 text)      (cons 50 0.0)      (cons 41 1.0)      (cons 51 0.0);;;      (cons 7 "Standard")  font      (cons 71 0)      (cons 72 0)      (cons 11 (list 0.0 0.0 0.0))      (cons 210 (list 0.0 0.0 1.0))      (cons 100 "AcDbText")      (cons 73 0)))    (setq i (1+ i))  ))
 
včetně závorek, uvozovek všeho. Pak soubor uložte a zavřete.
Spusťte si autocad a soubor jednoduše přetáhněte na kreslící plochu (popř zapište do appload)
 
tím se soubor načte.
Pak stačí napsat dole na příkazové řádce cisilka a vše by mělo fungovat.
 
Dále je tam možno volit výšku textu, natočení a další - je tam poznámka
 
Kdyby to nějak nešlo napište.

Vladimír Michl
16.08.2005, 16:36
Také by šlo použít naši utilitu MakeTable. Používá tabulky a dynamické hodnoty buněk (takže jen pro A2006), takže můžete číslo v řadě následně kdykoliv upravit a zbytek řady se automaticky přečísluje, můžete upravovat rozteč řady čísel, styly, atd.Jen to dělané jen narychlo, očekává to že máte předem ručně nastaven aktuální styl tabulky s vypnutým záhlavím i nadpisem (a asi i ohraničeními buněk). Spouští se pouhým načtením.
2005-08-16_163456_MakeTable.VLX

Augur
17.08.2005, 09:13
V express tools v je prikaz Automatic text numbering. Pomocou pola sa vygeneruje text (napr. A A A A A) a potom sa necha pomocou tohoto prikazu prepisat. Dokonca sa da ocislovat predpona, alebo pripona (napr. okno1, okno2.....oknox)

Vladimír Michl
17.08.2005, 17:03
ano, buď použijte TCOUNT nebo naši utilitu NumTable (vylepšený MakeTable)
viz http://www.cadforum.cz/cadforum/qaID.asp?tip=4587