Vytisknout stránku | Zavřít okno

Přiřazení obrázku nebo bloku textu

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: AutoCAD
Popis fóra: Otázky kolem aplikací AutoCAD a AutoCAD LT, AutoCAD 360, prohlížečů, DWG a DWF, Design Review, Navisworks, nadstavby, 123D, A360 a cloud Autodesk 360
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=30146
Datum vytištění: 25.kvě.2026 v 08:52


Téma: Přiřazení obrázku nebo bloku textu
Odeslal: sumi
Předmět: Přiřazení obrázku nebo bloku textu
Datum odeslání: 06.bře.2020 v 09:30
Poprosím Vás o radu viz. níže.
Je možné přiřadit v Autocadu LT konkrétnímu textu předem definovaný blok, nebo obrázek?
Například:
Mám specifický text v referenci bloku např. obrazek_#1 a jakmile napíšu tento text do reference bloku, tak autocad automaticky nahradí tento text blokem, nebo obrázkem.

Účel: Mám ve výkresu stovky různých textů a chtěl bych automaticky přiřadit textu i zmenšený obrázek, nebo blok.

Nebo Vás napadá jiný způsob automatického přiřazení?



Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 06.bře.2020 v 09:36
To je stejná situace jako u podobného dotazu:
https://www.cadforum.cz/forum/forum_posts.asp?TID=30124&title=vymena-textu-za-blok-autocad - https://www.cadforum.cz/forum/forum_posts.asp?TID=30124&title=vymena-textu-za-blok-autocad
V AutoCADu LT prakticky žádnou automatizaci tohoho typu nezařídíte. V plné verzi AutoCADu celkem snadno.


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: sumi
Datum odeslání: 06.bře.2020 v 10:11
Děkuji Vám za velmi rychlou reakci.
Tento "program" funguje, ale "pouze" na jednotlivý text. 
Je možné použít obdobu tohoto "programu", ale aby byl funkční i na text uložený jako atribut v bloku?
Je možné aby tuto funkci vykonal "program" automaticky bez označení?


Odeslal: Vladimír Michl
Datum odeslání: 06.bře.2020 v 10:18
Nerozumím přesně požadavku. Ten program převádí texty na bloky. Pokud chcete pracovat s hodnotou atributu, je zdrojem naopak blok - co je pak cílem převodu? Označení všech textů bez ptaní (v původní verzi) je jednoduché:

(setq ss (ssget "_X" '((0 . "*TEXT"))))


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: sumi
Datum odeslání: 06.bře.2020 v 10:31
"Program" je napsán tak, že když označím text, tak ho změní na definovaný blok.
Ale já bych potřeboval aby byl funkční, když označím blok, ve kterém je pomocí atributů přiřazen text a změnit ho na definovaný blok.




Odeslal: Vladimír Michl
Datum odeslání: 06.bře.2020 v 10:44
Přesně takto to nejde. Reference bloku odkazují jednu společnou definici bloku - v ní se může individuálně měnit jediná věc - hodnoty proměnných textových atributů. Zbytek bloku je pořád tentýž. Různé obrázky by musely znamenat různé definice bloku, už by to nemohly být reference stejného bloku.

Šlo by ale např. vložit poblíž reference bloku obrázek daného jména.


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: sumi
Datum odeslání: 06.bře.2020 v 10:52
Napadá mě tedy "rozbít" bloky s referencí se zachováním textu pomocí příkazu "burst".
Jakým způsobem vepsat do programu tuto funkci, tak aby našel jen konkrétní bloky s konkrétním názvem ty "rozbil" a následně by "program" pokračoval v nahrazení textu za blok?


Odeslal: Vladimír Michl
Datum odeslání: 06.bře.2020 v 12:32
Pokud vám nevadí ve výsledku rozbité reference bloků, nebo pokud se původní blok má úplně smazat a nechat tam místo něj (nebo vedle něj) jen obrázek, nebude to složité.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: sumi
Datum odeslání: 06.bře.2020 v 12:38
Poradíte prosím jak tento příkaz (rozbít jen bloky s konkrétním názvem) dostat do "programu"?


Odeslal: Vladimír Michl
Datum odeslání: 06.bře.2020 v 13:10
Zkuste tento LISP - je potřeba přednastavit proměnné na jeho konci - název bloku, název atributu, složku s obrázky, jejich typ/příponu.

uploads/9/BlkAtt2img_2020-03-06_13-10-41.lsp" rel="nofollow - uploads/9/BlkAtt2img_2020-03-06_13-10-41.lsp


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: sumi
Datum odeslání: 08.bře.2020 v 11:58
Bohužel nefunguje.

Vytvořil jsem pro zkoušku blok, který se jmenuje 0011, text v atributu je 0011, obrázek v adresáři images se jmenuje 0011.png

 (defun C:BlkAtt2Img ( / blkname tagname imgfolder imgext imgscale)
  (vl-load-com)
  (setq blkname "0011") ; block name
  (setq tagname "0011") ; attribute tag
  (setq imgfolder "images") ; folder with images
  (setq imgext "0011.png") ; image extension/type
  (setq imgscale 10.0) ; image scale
  (ProcessAtt2Img blkname tagname)
  (princ)
 )


Odeslal: Vladimír Michl
Datum odeslání: 08.bře.2020 v 19:46
Vidím zde několik nedorozumění - tagname je Název atributu, nikoliv jeho hodnota, ta se předpokládám mění. A imgext neměňte, to jen typ souboru, přípona.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: sumi
Datum odeslání: 08.bře.2020 v 21:41
Ano máte pravdu, děkuji.
Upravil jsem a je to funkční. Je možné nahradit obrázek blokem?


Odeslal: sumi
Datum odeslání: 10.bře.2020 v 18:58
Tak jsem se snažil "program" upravit, tak aby místo obrázku byl umístěn blok. Ale jsem teprve v začátcích pochopení jazyku.
Poprosím Vás tedy znovu o radu.


Odeslal: Vladimír Michl
Datum odeslání: 10.bře.2020 v 21:37
Upravit lze leccos, ale je potřeba vědět přesnou představu. Blok už to je, v něm je atribut. Na jeho místě je teď vkládán obrázek. Jak jsem psal, blok nemůže obsahovat proměnný obrázek. Jaký blok tam tedy chcete vkládat?

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: sumi
Datum odeslání: 10.bře.2020 v 22:02
Teď program " https://www.cadforum.cz/forum/uploads/9/BlkAtt2img_2020-03-06_13-10-41.lsp - - BlkAtt2img_2020-03-06_13-10-41.
Např.: 
Mějme bloky s vyplněnými atributy např.: "+10", "+11", "+40"
a
vytvořené bloky s názvem "+10", "+11", "+40" program najde text v bloku atributu a přiřadí na stejné souřadnice vytvořené bloky jako je text.

Rozumím tomu, že text zůstane v bloku původní a nelze ho nahradit jiným blokem, ale pokusím se vytvořit takový blok, který "překryje" text v bloku. Nebo úplně ideálně, tedy pokud je to možné vybrané texty viz výše (např. "+10",.... ) navíc přesune do vybrané hladiny, která bude následně vypnuta/zmražena. Pokud není možné přesunout do vybrané hladiny, tak alespoň označí vybranou barvou, která bude nastavena při tisku jako "netisknutelná" a ve výkresové části, takovou barvou, která bude prakticky "neviditelná".




Odeslal: Vladimír Michl
Datum odeslání: 11.bře.2020 v 10:15
Pokud jsem správně pochopil požadavek, pak to koliduje s principem bloků - blok je "jedna a tatáž geometrie" (nejvýš s proměnným textem) pro mnoho výskytů. Zde by se pro každý "zdrojový" blok vytvářel nový "blok s obrázkem". Proč potřebujete, aby to byl blok?

Pokud jde jen o skrytí původního textového atributu, to není problém zařídit.


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: sumi
Datum odeslání: 11.bře.2020 v 21:11
Znázornil jsem původní popis graficky.




Odeslal: Vladimír Michl
Datum odeslání: 11.bře.2020 v 21:15
Ano, takto jsem to pochopil. Toto udělat není problém, ale onen obrázek pak není blokem, pouze se vloží na místo původního (skrytého nebo skrytelného) atributu. Obrázek nemůže být atributem bloku.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: Vladimír Michl
Datum odeslání: 11.bře.2020 v 21:45
Tato verze přesouvá úspěšně nahrazené atributy do zadané hladiny (ta musí předem existovat).

https://www.cadforum.cz/forum/uploads/9/BlkAtt2img_2020-03-11_21-45-00.lsp - uploads/9/BlkAtt2img_2020-03-11_21-45-00.lsp



-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: Vladimír Michl
Datum odeslání: 11.bře.2020 v 22:29
Teď mne ještě napadlo, jestli si pod pojmem "obrázek" náhodou nepředstavujete spíš onen symbol (ve skutečnosti asi blok). Nicméně na tom omezení "bloku v bloku" by se nic nezměnilo.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: sumi
Datum odeslání: 11.bře.2020 v 22:46
Pochopil jsem, že není možné doplnit blok do bloku resp. nahradit vyplněný text v referenci.

Není třeba doplnit symbol přímo do bloku, ale "pouze" na pozici textu. Tj. nebude součástí bloku, ale bude umístěn blok na bloku. 



Vytisknout stránku | Zavřít okno