Vytisknout stránku | Zavřít okno

Vnořené bloky

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=2585
Datum vytištění: 19.čer.2026 v 08:51


Téma: Vnořené bloky
Odeslal: Papiko
Předmět: Vnořené bloky
Datum odeslání: 17.kvě.2006 v 08:24

Dobrý den,

jak mohu zjistit pomocí VBA ze kterých vnořených bloků se mi skládá nadřazený blok v ACAD2004.  

V kolekci Blocks zjistím pouze použité bloky a jednotlivé Items v ModelSpace mi vrácí pouze nadřazené bloky.

Díky P

 




Odpovědi:
Odeslal: Chop
Datum odeslání: 19.kvě.2006 v 05:48

Možná se mýlím, ale tuto cestu bych raději co nejrychleji opustil. Používání vnořených bloků je sice možné, ale není příliš výhodné. Raději zkuste používat grupování nebo nějaký jiný postup protože:

1. v kolekci Blocks jsou zapsány čisté definice bloku, které se ve výkresové databázi vyskytují právě jen zde.

2. v modelovém prostoru se nacházejí odkazy na tyto bloky tj. BlockReference a to je trochu jiný objekt.

Pokud vnoříte blok do bloku a pak jej do modelového prostoru vložíte vícekrát, tak správně dostanete jen odkaz na vybranou BlockReferenci, která má samostatné HANDLE. Pokud teď načtete ve VBA a nebo LISPU definici vybrané reference z kolekce Blocks (třeba podle názvu), tak získáte přístup pouze k jednotlivým objektům této definice, ale u těch se neliší HANDLE. Tj. pokud teď změníte vnořený objekt, projeví se to ve všech nadřízených BlockReferencích (to lze např. využít při konverzi importovaných bloků z DGN do hladiny 0 apod.).

Autocad neumožní editovat jednotlivé podřízené objekty - pravděpodobně si je dočasně převede na PRIVATE a uvolní je až po rozbití nadřízeného bloku. Možná existuje nějaká pokročilá technika k přístupu k nim, ale nemyslím, že by to bylo něco jednoduchého a schůdného.



Odeslal: Papiko
Datum odeslání: 19.kvě.2006 v 08:13

Díky za odpověd,

po zkoušení a odpovědí z vedlejší diskuze jsem zjistil ,že to to je slepá ulička. Bohužel tato možnost by mi trošku zlehčila život.

 




Vytisknout stránku | Zavřít okno