Zobrazit plnou verzi příspěvku: Kopírování obsahu textu

genesis
10.07.2006, 11:43
Mám na výkrese vedle sebe dva jednořádkové texty (dvě entity). Jak jednoduše mohu co nejrychleji zkopírovat obsah textu z jedné entity do druhé. Kopírování vlastností tuto službu neřeší. Jedná se mi čistě o obsah textu.
Díky

Balda
10.07.2006, 11:49
Použijte jednu z funkcí Express Tools:
1. Expres>Text>Convert text  to Mtext
2. vyberte texty
3. upravte velikost odstavcového textu a příkazem Rozlož převeďte Odstavcový text (Mtext) na řádkový text

Balda



Seiner
10.07.2006, 12:10
Diaedit - označit požadovaný text - Ctrl-C - Enter - vybrat druhý text - Ctrl-V
 Seiner2006-7-10 12:55:41

Mantlík
10.07.2006, 12:33
Nechci vypadat jako hnidopich, ale s ohledem na nováčka (genesis) si dovolím opravit překlep
Příkaz je správně DIAEDIT (cz verze), popřípadě _DDEDIT  (nikoliv diedit)

Seiner
10.07.2006, 12:55
Souhlas a omluva

Buba
10.07.2006, 12:56
Ešte k tomu pridajte Shift+Home (označenie po začiatok), resp. Shift+End (označenie po koniec), alebo aj Ctrl+šípka (po slovách)
a budete: rychlý jako šíp. :-)

Vladimír Michl
10.07.2006, 13:13
Nemusíte ani nic označovat (zkoušeno v A2007):
1) poklepat na zdrojový text (spustí se editor)2) Ctrl+C3) poklepat na cílový text (spustí se editor)4) Ctrl+V
 

genesis
10.07.2006, 13:14
Tak jsem se opět dostal k PC. Postup přes CTRL+C a CTRL+V je pro mne velmi zdlouhavý. V konkrétním případě nemám dvě entity, ale dobrejch cca 4000 ks. V ACADu dělám již 10 let. Rychlostí by mi vyhovoval postup přes kopii vlastností, ale obsah textu zde nelze kopírovat. Představuji si, že na vyžádání označím zdrojový text a následně bez ptaní cílový text, tak jako to jde u kopírování písma, šrafů, barvy, atd.

Seiner
10.07.2006, 13:21
to p. Michl - předpokládal jsem, že jde jen o určitou část textu. jinak souhlas.
to genesis - nojo, ale ptal jste se na 2 entity. Trochu mi uniká smysl - zřejmě se tedy nebude jednat o 2 texty na jednom výkrese (4000?). Pak asi jedině napsat něco v lispu?

genesis
10.07.2006, 13:44
Tak toho jsem se obával, že musím do Lispu. No nic jiného mi asi nezbude. Pro každý případ Vám mockrát děkuji za příspěvky a naschle.
Pro informaci : Pro vysvětlení odkud pramení můj dotaz : tvořím blokové schéma elektrické požární signalizace (EPS) na jednu velkou stavbu a z mnoha výkresů půdorysů z různých míst musím přenést mnoho textíku (adres hlásičů EPS)  do jednoho výkresu do konkrétního místa. Využití CTRL+C a CTRL+V mi zabere cca 5 dní místo uvažovaného 1 dne.
Ještě jednou Díky
genesis

Rudolf Vyhnalek
10.07.2006, 13:45
pokud se jedna o nekolik desitek entit textu (ne mtextu) staci zkopirovat obsah textu, ktery ma byt ve vsech techto entitach obsazen do schranky a potom pres filtr vybrat vsechny texty najednou a v panelu vlastnosti v polozce text/obsah pres ctrl+v text ze schranky vlozit. tim se vam prepise uplne vse najednou...

Mantlík
10.07.2006, 14:00
KONEČNĚ HLAVIČKA OTEVŘENÁ A FUNGUJÍCÍ I V TOM HORKU !
Tolikrát jsem to použil a teď si na to nevzpomenu
 
Taky je tu ještě jedna možnost. Pokud nemáte ty texty v mnoha směrech, je jednodušší si je několikrát zkopírovat a patřičně otočít a pak už jen kopírovat, kopírovat, kopírovat na příslušná místa

Seiner
10.07.2006, 14:18
No jestli tazateli stačí postup "Příkaz - |:Click - Click - Enter :|" , pak snad:
(defun C:prepistext(/ PRVNI DRUHY TXT USPECH)(setq uspech 0)(while (= uspech 0)(prompt "\n Vyber kopírovaný text  ")(command "_SELECT" "_SINGLE" pause) (setq prvni(ssname(setq v(ssget "P"))0))(if (= "TEXT" (cdr(assoc 0(entget prvni))))(setq uspech 1)))(setq TXT (cdr(assoc 1(entget prvni))))
(setq uspech 0)(while (= uspech 0)(prompt "\n Vyber přepisovaný text  ")(command "_SELECT" "_SINGLE" pause) (setq druhy(ssname(setq v(ssget "P"))0))(if (= "TEXT" (cdr(assoc 0(entget druhy))))(setq uspech 1)))
(entmod  (subst (cons '1 TXT)(assoc '1 (entget Druhy))(entget druhy))))
Ale dělat 4000krát bych to stejně nechtěl... Pro lepší radu ale nemám dost informací.

vbehun
10.07.2006, 15:18
Dobrý den,pokud kreslíte blokové schema EPS, pak předpokládám, že na půdorysech máte příslušné značky jako bloky s atributy (číslo, typ).Pak stačí vyexportovat atributy.Jiné řešení je bohužel málo produktivní.[QUOTE=genesis]
Pro informaci : Pro vysvětlení odkud pramení můj dotaz : tvořím blokové schéma elektrické požární signalizace (EPS) na jednu velkou stavbu a z mnoha výkresů půdorysů z různých míst musím přenést mnoho textíku (adres hlásičů EPS)  do jednoho výkresu do konkrétního místa. Využití CTRL+C a CTRL+V mi zabere cca 5 dní místo uvažovaného 1 dne.
Ještě jednou Díky
genesis[/QUOTE]

Seiner
10.07.2006, 16:22
Ač se to zdá nepochopitelné, tak to asi jako atributy nemá. Píše jasně o řádkovém textu. Stejně nevím, jakým algoritmem by se měly ty texty přenášet.Kdyby to byly atributy, tak je vyexportuje a co dál? Jak je dostane na správná "cílová místa"?   Buď  to má nějakou logiku a je možné ji použít, nebo je algoritmus těžko uchopitelný (třeba stejný text na druhém konci drátu - nejsem elektrikář) a pak opravdu zbývá zobací systém. A do budoucna přemýšlet, jak takové hrůze zabránit. (Atributy, Excel, databáze ???)   Na zobání by se dal snad navržený kód použít. Ještě by se to dalo celé dát do cyklu, aby se ušetřil 1 Enter.

musil
11.07.2006, 06:38
Jen tak mimochodem zkoušel někdo vypsat všechny texty pomocí "_list" a následně upravit v textové podobě. Potom vrátit text zpět do výkresu.

vbehun
11.07.2006, 07:23
Dobrý den,zpravidla to nějakou logiku má - čidla jsou podle adresy navlečena na lince za sebou jako korálky na šňůře.VB[QUOTE=Seiner]Ač se to zdá nepochopitelné, tak to asi jako atributy nemá. Píše jasně o řádkovém textu. Stejně nevím, jakým algoritmem by se měly ty texty přenášet.Kdyby to byly atributy, tak je vyexportuje a co dál? Jak je dostane na správná "cílová místa"?   Buď  to má nějakou logiku a je možné ji použít, nebo je algoritmus těžko uchopitelný (třeba stejný text na druhém konci drátu - nejsem elektrikář) a pak opravdu zbývá zobací systém. A do budoucna přemýšlet, jak takové hrůze zabránit. (Atributy, Excel, databáze ???)   Na zobání by se dal snad navržený kód použít. Ještě by se to dalo celé dát do cyklu, aby se ušetřil 1 Enter.[/QUOTE]

Buba
11.07.2006, 07:52
Mám lispík textout aj textin. Dostala som sa k nemu prostredníctvom tohto fóra. Funguje podobne ako expotr atribútov v Express tools.

Pajas
11.07.2006, 11:47
možná použijete tohle :)

(defun C:KOPIRUJTEXT (/ sel text blky jb te s_jba at atr) ;TE
  (while (not sel)
    (princ "\n*** Vyberte kopírovaný text: ")
    (setq sel (entget (car (entsel))))
    (if    (and (/= (cdr (assoc 0 sel)) "TEXT")
         (/= (cdr (assoc 0 sel)) "MTEXT")
         (/= (cdr (assoc 0 sel)) "ATTDEF")
    )
      (progn
    (prompt
      "\n*** Vybraná entita není text, mtext ani atribut."
    )
    (setq sel nil)
      )
      sel
    )
  )
  (if (or (= (cdr (assoc 0 sel)) "TEXT")
      (= (cdr (assoc 0 sel)) "MTEXT")
      )
    (setq text (cdr (assoc 1 sel)))
    (setq text (cdr (assoc 2 sel)))
  )
;;;Výběr atributů
  (princ
    "\n*** Vyberte položky pro nakopírování nového textu: "
  )
  (setq    blky (ssget
           '((-4 . "<OR")
         (0 . "TEXT")
         (0 . "MTEXT")
         (0 . "ATTDEF")
         (-4 . "OR>")
        )
         )
  )
  (setq nt 0)
  (repeat (sslength blky)
    (setq jb (ssname blky nt)
      te (cdr (assoc '0 (entget jb)))
      nt (1+ nt)
    )
    (if    (or (= "TEXT" te) (= "MTEXT" te) (= "ATTDEF" te))
      (setq s_jba (append s_jba (list (list jb jb)))
          ;;seznam entit
      )
    )
  )
  (princ (strcat "*** Nalezeno "
         (itoa (length s_jba))
         " přepisovatelných položek."
     )
  )
;;;Číslování
  (setq nt 0)
  (while (< nt (length s_jba))
    (setq atr (cdr (assoc '0 (entget (cadr (nth nt s_jba))))))
    (if    (or (= atr "TEXT") (= atr "MTEXT"))
      (setq at
         (subst
           (cons 1 text)
           (assoc '1 (entget (cadr (nth nt s_jba))))
           (entget (cadr (nth nt s_jba)))
         )
      )
      (setq at
         (subst
           (cons 2 text)
           (assoc '2 (entget (cadr (nth nt s_jba))))
           (entget (cadr (nth nt s_jba)))
         )
      )
    )
    (entmod at)
    (entupd (car (nth nt s_jba)))
    (setq nt (1+ nt))
  )
  (princ)
)
;;;Konec Okopírování textu

Mantlík
11.07.2006, 12:02
Vypadá to dobře  a může se to hodit (někomu dokonce velmi)

Vladimír Michl
11.07.2006, 14:06
ano, užitečná utilitka - dovolil jsem si ještě nepatrně upravit aby zdrojový text šlo vybrat i z xrefu nebo bloku, ke stažení na: http://www.cadforum.cz/cadforum/default.asp?tab=4&file=K opirujText

Robo
11.07.2006, 14:33
Dobry den,dakujeme za upravu, ale nefunguje mi to pri atributovych blokoch. Pri vybere atributoveho bloku (napr. vyskova kota) mi vypise hlasku *** Vybraná entita není text, mtext ani atribut.neda sa osetrit este tento problem?Dakujem

Vladimír Michl
11.07.2006, 14:55
Dá - viz nyní aktualizovaná verze na stránce Download (navíc ještě vypíše "přečtený" text)

Robo
11.07.2006, 15:38
Dakujem

PaloC
12.07.2006, 13:10
Možno som uplne nepochopil čo pán genesis potrebuje, ale nepomohlo by jednoduché "najdi" a "nahraď" ?

Robo
12.07.2006, 14:12

[QUOTE=PaloC]Možno som uplne nepochopil čo pán genesis potrebuje, ale nepomohlo by jednoduché "najdi" a "nahraď" ?[/QUOTE]pomohlo len je to podstatne zdlhavejsie

genesis
12.07.2006, 16:46
E=Vladimír Michl]ano, užitečná utilitka - dovolil jsem si ještě nepatrně upravit aby zdrojový text šlo vybrat i z xrefu nebo bloku, ke stažení na:http://www.cadforum.cz/cadforum/default.asp?tab=4&file=K opirujText[/QUOTE]
Velice děkuji, to je přesně to co jsem potřeboval. S touto utilitou konkrétně v mém případě ušetřím cca 5 dní. To je přesně ono.
Ostatním velice děkuji za pomoc. Vím, čím je lépe výkres tvořen, tím jsou s ním později menší problémy. Mnoho rad jsem si vyslechnul o atributech atd. atd. atd. V praxi však při průběhu stavby se (troufám si tvrdit) z 99% setkáte s výkresy, které vytvořil někdo jiný a tak bohužel nějaké chystání výkresu zde není možné. To je tvrdá realita. Kdo skutečně profesionálně projektuje, musí se potýkat s každodeními problémy ohledně editace výkresů. Mimochodem jednořádkový text je opravdu zcela jednoduchá záležitost, ale jeho kouzlo spočívá v opravdové spolehlivosti při transportech do jiných SW, na druhá PC s jiným prostředím atd. Ještě jednou mnohokráte děkuji za utilitku.

Radim Cech
14.07.2006, 16:46
Občas se stane, že někdo použije také MTEXT, což přenese také "balast" kolem samotného obsahu. Nedalo by se ještě zařídit, aby při vybrání MTEXTu převzal jen ten text? A při víceřádkovém MTEXTu by to ještě mohl převést na jednotlivé texty seřazené pod sebou.

artap
15.07.2006, 08:08
[QUOTE=musil] Jen tak mimochodem zkoušel někdo vypsat všechny texty pomocí "_list" a následně upravit v textové podobě. Potom vrátit text zpět do výkresu.[/QUOTE]

Něco podobného jsem řešil, když jsem v mapě závodu potzřeboval hromadně převést cca 7500 výškových kót z výškového systému Jadran do B.p.v. Ještě, že mám MAP a tak pomocí dotazu jsem si vyexportoval vyfiltrované texty včetně vkládacího bodu X,Y. Načetl si výsledek do EXCELu, upravil hodnoty výškových kót a jednoduše jsem si vygeneroval SCR soubor, který mi texty zpět načetl do výkresu.

Vladimír Michl
17.07.2006, 09:05
Na to se dá použít naše nedávno zmíněná utilita TEXT2ELEV (nebo Excellink).