ARKANCE - globální Platinum partner Autodesk ARKANCE | KONTAKT - CZ | SK | EN | DE
Již 10.000+ CAD tipů. Přes 118.500 registrovaných u nás, celkem 1.093.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků. Vyzkoušejte nový přesný Inženýrský kalkulátor. Kompletní příkazy AutoCADu a proměnné AutoCADu 2026.
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

?
CAD diskuze, rady, výměna zkušeností

CAD Fórum - Homepage Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion, 3ds Max, Vault a s dalšími CAD/BIM/PDM aplikacemi. Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoVyplnanie titulneho bloku automaticky

 Odpovědět Odpovědět Stránka  <12 archiv
Autor
Sedláček Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 15.dub.2005
Lokalita: Czech Republic
Používám:
AutoCad 2024 LT
Stav: Offline
Bodů: 384
Přímý odkaz na tuto zprávu Zasláno: 05.led.2010 v 10:18
Pro náhradu textů fungoval tento LISP (byl součástí nějaké prehistorické verze AutoCadu, dnes by to šlo řešit asi elegantněji):
 
(defun C:CHGTEXT ( / p l n e os as ns st s nsl osl sl si test chm olderr)
   (setq olderr  *error*             ; Initialize variables
         *error* chgterr
         chm     0)
   (setq p (ssget))                  ; Select objects
   (if p (progn                      ; If any objects selected
      (while (= 0 (setq osl (strlen (setq os (getstring t "\nOld string: ")))))
            (princ "Null input invalid")
      )
      (setq nsl (strlen (setq ns (getstring t "\nNew string: "))))
      (setq l 0 n (sslength p))
      (while (< l n)                 ; For each selected object...
         (if (= "TEXT"               ; Look for TEXT entity type (group 0)
                (cdr (assoc 0 (setq e (entget (ssname p l))))))
            (progn
               (setq test nil si 1)
               (setq s (cdr (setq as (assoc 1 e))))
               (while (= osl (setq sl (strlen
                             (setq st (substr s si osl)))))
                  (if (= st os)
                      (progn
                        (setq s (strcat (substr s 1 (1- si)) ns
                                        (substr s (+ si osl))))
                        (setq test "t") ; Found old string
                        (setq si (+ si nsl))
                      )
                      (setq si (1+ si))
                  )
               )
               (if test (progn        ; Substitute new string for old
                  (setq e (subst (cons 1 s) as e))
                  (entmod e)         ; Modify the TEXT entity
                  (setq chm (1+ chm))
               ))
            )
         )
         (setq l (1+ l))
      )
   ))
   (princ "Changed ")                ; Print total lines changed
   (princ chm)
   (princ " text lines.")
   (terpri)
   (setq *error* olderr)             ; Restore old *error* handler
   (princ)
)
 
 
 
 
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 05.led.2010 v 10:20
Soubor SRXTEXT.VLX a SRXTEXT2.VLX mam stazeny nekdy od roku 2006. Nepamatuji se, jestli jsem je stahoval z VIP a nebo v te dobe byly ke stazeni free. V zadnem pripade jsem je ale v te dobe neplatil - mozna je to nejaka starsi free verze. Pokud vim, tak fungovaly bez omezeni.

Nicmene pokud by slo o to zamenit jeden text za druhy  v celem vykresu a nebylo by nutne se zabyvat s regulernimi vyrazy, tak by snadno slo upravit jeden muj skriptik. Snadno se zedituje a dopise se zamenovany par. Pozor, skript prochazi databazi vykresu - tedy i zmrazene hladiny!

http://alfredcadpage.wz.cz/download/replace_unicode_v_textech.zip


Upravil alfred - 05.led.2010 v 10:22
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 05.led.2010 v 10:28
Původně odeslal(a) Sedláček Sedláček napsal(a):

Původně odeslal(a) martiner33 martiner33 napsal(a):

Prikaz insertobj mi vsak otvori len win okno s moznostami.

Možná by šlo vytvořit blok (_WBLOCK) s oním OLE obrázkem a do výkresů vkládat ten (_-INSERT)


A nebo vkladejte obrazek jako rastr - prikazem -OBRÁZEK (_-IMAGE)
Samozrejme si nastavte promennou FILEDIA na 0 a pak zpet na 1
Zpět nahoru
martiner33 Zobrazit panel
Nováček
Nováček

Přihlášen: 03.led.2010
Lokalita: Slovensko
Používám:
AUTOCAD2009
Stav: Offline
Bodů: 9
Přímý odkaz na tuto zprávu Zasláno: 05.led.2010 v 11:40
srxtext funguje pekne priamo v prikazovom riadku Autocadu ale v lispe ani za svet. v autocade si program pyta nasledovne:
Search - Regular expression/Exact string/<Substring>:
Enter the searched text: male
Enter the replace text: female
Search Layer/<All>:
Search Selected/<All>:
Number of searched entities: 258
male-->female
Replace/Dont ask - yes/Exit/<Next>: dont
Number of found/replaced entities: 1/1

takze ako uzivatel zadavam 6x vstup pre program preto by aj v LISPe malo fungovat nasledovne:
(command "srxtext" "Substring" "male" "female" "All" "All" "Dont")
vysledok je nasledujuci
Příkaz: REPLACE_TEXT
Neznámý příkaz "SRXTEXT".  Stiskněte F1 pro nápovědu.
Neznámý příkaz "SUBSTRING".  Stiskněte F1 pro nápovědu.
Neznámý příkaz "MALE".  Stiskněte F1 pro nápovědu.
Neznámý příkaz "FEMALE".  Stiskněte F1 pro nápovědu.
Neznámý příkaz "ALL".  Stiskněte F1 pro nápovědu.
Neznámý příkaz "ALL".  Stiskněte F1 pro nápovědu.
Neznámý příkaz "DONT".  Stiskněte F1 pro nápovědu.

Avsak ak tam dam
(srxtext "Substring" "male" "female" "All" "All" "Dont")
tak mi vypise ze tam mam prilis mnoho argumentov. ak som ich tam dal 4 ako ste pisali tak program nespravi nic
(srxtext "Substring" "male" "female" "spravna volba")

Troska som sa zamotal ale nechapem preco to nefunguje.

Co sa tyka programu SRXTEXTCSV. Tam zadava uzivatel tiez viacero vstupov. Pri druhom vyskoci okno load file, da sa tato volba nahradit?

Myslim tym
(srxtextcsv "Substring" "cesta k suboru csv/pripadne nieco ako prikaz load" "...." "...." )
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 05.led.2010 v 12:02
Nevim, pouzil jsem to pred par lety v jednom lispu presne podobnem pripade - soucasne s SCRIPTMAKER.LSP.

Mozna mam opravdu nejakou historickou verzi...
Jinak ja v lispu pouzivam SRXTEXT2.VLX - krome toho take jeste mam stazene SRXTEXT.VLX, ale to pro pouziti v LISPu nelze pouzit.
Oba soubory jsou z roku 2006.

Pokud by mi nekdo z XANADU v diskusi potvrdil, ze to sem muzu dat, tak Vam klidne tu historickou verzi poslu...


Nicmene zpet k Vasemu problemu - chapu to tak, ze nepotrebujete nejaky text smazat a jinde tvorit novy (jak jste puvodne planoval), ale postaci zamena retezce? Pokud pri tom nepotrebujete regulerni vyrazy, tak Vam v nejhorsim postaci nejake jine zamenovani (viz vyse nebo na webu nebo vlastni tvorba)....


Zpět nahoru
martiner33 Zobrazit panel
Nováček
Nováček

Přihlášen: 03.led.2010
Lokalita: Slovensko
Používám:
AUTOCAD2009
Stav: Offline
Bodů: 9
Přímý odkaz na tuto zprávu Zasláno: 05.led.2010 v 13:19
Neviem co si pod pojmom retazec predstavujete, jaj mam na mysli text ktory oznacuje napriklad nazov vykresu - teda retazec. Tento retazec xcem nahradit novym retazcom. Chcem to riesit pomocou suradnic, teda na konkretnych suradniciach sa zmaze obsah a nahradi sa to novym retazcom. Mam spraveny csv subor kde v prvom stlpci je TITLE vykresu a v druhom DATE, pricom sa daju dalsie doplnat.
Mojou snahou je teda spravit LISP skript ktory mi nahradi retazec na konkretnych suradniciach.
Co sa tyka obrazka na to mam spraveny zvlast LISP script.
Tot vsjo.
Ako ste to mysleli ze SRXTEXT.VLX nefunguje v LISPe?

Kde momentalne stagnujem? Momentalne sa mi nedari rozbehat srxtext.vlx. Nefunguje mi ked ho zakomponujem to svojho LSP skriptu, pricom v AutoCADe samotnom bezi v pohode. Vid moj komentar vyssie.
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 05.led.2010 v 13:42
Retezec - mam na mysli "textovy retezec", string, proste text.

Nahrazeni textu lze dvema zpusoby:
-editaci jedne entity a pouhou zamenou obsahovaneho textu (retezce). To dela SRXTEXT.VLX . Podobnych utilit najdete hromadu. Specialita SRXTEXT.VLX je ze umi hledat regulerni vyrazy
-smazanim jedne entity a vytvorenim nove entity

SRXTEXT.VLX nefunguje v lispe - tedy alespon ta moje prastara verze. Proste pokud napisu :
(srxtext "Substring" "xxx" "yyy" "ALL")

tak to nefunguje, musim pouzit (nacist) jiny soubor, ktery se u me jmenuje SRXTEXT2.VLX. Kde jsem ho ale stahnul uz nevim.

Zpět nahoru
martiner33 Zobrazit panel
Nováček
Nováček

Přihlášen: 03.led.2010
Lokalita: Slovensko
Používám:
AUTOCAD2009
Stav: Offline
Bodů: 9
Přímý odkaz na tuto zprávu Zasláno: 05.led.2010 v 14:17
Nuz pan Google nenasiel ani mastny mak, mam na mysli SRXTEXT2.VLX.

Ten druhy system sa mi pozdava viac nakolko umiestnenie konkretneho retazca je v kazdom vykrese rovnake. V kazdom vykrese su dva retazce. Ak by som prepisoval v kazdom vykrese napriklad datum, tak to bude jednoduche nakolko datum bude vsade rovnaky. Ja sa pokusam vsak do kazdeho suboru dat iny TITLE. Poradie v zozname vykresov bude rovnake ako poradie novych udajov v CSV/XLS subore.

Teda ani by som nemusel pouzit ziaden SRXTEXT.VLX/SRXTEXT2.VLX.

(defun c:vymaz_text ()
(setvar "clayer" "Drawing_title")
(command "_-layer" "Odemkni" "Drawing_title" "")
(initget 1)
(setq coordinate1 '(348.7742 39.9479))
(command "_erase" coordinate1 "")
(princ)
)

Program odomkne hladinu a na suradniciach 348.7742 39.9479 zmaze objekt.
Pridat by som xcel prikaz ktory pri kazdom vykrese zapise udaje z jedneho riadku CSV/XLS subora. Riadok zodpoveda jednemu vykresu, stlpec jednej polozke.

Idem teda surfovat ako drak, ak niekoho z vas napadne nejaka featurina budem rad.

Zatial vrele diiiiki ...
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21900
Přímý odkaz na tuto zprávu Zasláno: 05.led.2010 v 16:15

Starší verze srxText byly free kompletně, několik novějších verzí (s řadou oprav a doplnění) je také free, kromě speciálního režimu CSV (Excel), ten je třeba nejprve aktivovat (např. pomocí bezplatného generátoru kódů na vip.xanadu.cz).

Starší verze srxText si mj. neporadí s novějšími typy entity (podobně jako výše uvedená Alfredova utilita) a obsahovaly několik drobnějších chyb, takže je nedoporučujeme už používat.
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 05.led.2010 v 18:41
Tak v poradku. Pokud by martiner33 potreboval starsi verzi utility poslat tak muji poslu treba e-mailem. Pokud tedy budete mit zajem, ozvete se mi pres soukromou zpravu.
Zpět nahoru
Sedláček Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 15.dub.2005
Lokalita: Czech Republic
Používám:
AutoCad 2024 LT
Stav: Offline
Bodů: 384
Přímý odkaz na tuto zprávu Zasláno: 07.led.2010 v 15:16
 
Měl jsem chvilku na experimentování tak posílám pro inspiraci.
Pro vygenerování scriptu jsem použil Exel, kde v buňkách B-I jsou jednotlivé příkazy a jejich parametry. V buňce A jsou pak tyto příkazy sloučeny (pomocí "&").
 
Sloupec A je pak v Notepadu překopírován (přes schránku) do vykr.scr
 
V novějších verzích Autocdu to nemusí být funkční - nevím zda byla zachována posloupnost parametrů jednotlivých příkazů.
 
Místo "Enter" jsou použity "Mezery" a tak je zápis dost nepřehledný.
 
(script by měl ve všech výkresech vymazat kružnici a text "ddddd" nahradit dle sloupce I ve vykres_11.xls)
 


Upravil Sedláček - 07.led.2010 v 15:49
Zpět nahoru
Sedláček Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 15.dub.2005
Lokalita: Czech Republic
Používám:
AutoCad 2024 LT
Stav: Offline
Bodů: 384
Přímý odkaz na tuto zprávu Zasláno: 07.led.2010 v 15:48

Připojené souboryzipuploads/20100107_154657_script_ukazka.zip
Zasílám ještě jednou - v předchozím příspěvku jsem měl vzorové výkresy už po aplikování scriptu.
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 2320:Jak automaticky přidávat odkazy/popisy do vkládaných symbolů?
Tip 11006:Kde se ve výkresu berou bloky typu AnonymousCell123?
Tip 11707:Jak převést texty na atributy bloků (referencí)?
Tip 8858:Přesun všech bloků obsahujících určitou hladinu do této hladiny.
Tip 5383:Jak vložit blok do všech vrcholů (nebo koncových bodů) zvolené křivky?
Tip 4067:Jak zčitelnit natočené texty a atributy bloků ve výkresu?


 Odpovědět Odpovědět Stránka  <12 archiv

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 0,362 sekund.