Registrujte se na 22. ročník konference CADfórum 2025 - 30.9. Zámek Valeč.
Přes 119.000 registrovaných u nás, celkem 1.099.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků.
Vyzkoušejte nový přesný Inženýrský kalkulátor a aktualizovaný Generátor čarových kódů.
Diskuzní fórum, poradna
?CAD diskuze, rady, výměna zkušeností

Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
Změna hladiny bloku podle entit, které ho tvoří |
Odpovědět ![]() |
archiv |
Autor | |
Pavel Pospíšil ![]() Nováček ![]() Přihlášen: 08.zář.2005 Stav: Offline Bodů: 6 |
![]() ![]() ![]() ![]() ![]() Zasláno: 8 hodin 15 minut zpět v 09:56 |
Dobrý den,
mám ve výkrese bloky, které jsou tvořeny entitami s nastavenou Tloušťkou čáry, Typem čáry, Barvou a Hladinou. Všechny entity v každém bloku mají tyto vlastnosti nastavené stejným způsobem. Samotné bloky jsou v hladině 0. Ve výkrese jsou nižší desítky unikátních bloků s takovými vlastnostmi, z nichž každý má větší množství duplicit. Celkové množství bloků ve výkrese je v řádu tisíců, někdy nízkých desetitisíců. Rád bych dosáhl toho, aby minimum: jedním příkazem nastavím pro každý blok takovou hladinu, jakou mají jeho entity (hromadně, pro všechny jeho duplicity současně). Dneska to dělám tak, že otevřu "Blok1" v editoru bloků, zjistím, že jeho entity jsou v hladině "28", poznamenám si to nebo si to zapamatuji, zavřu editor bloků, Rychlým výběrem vyberu ve výkresu všechny "Bloky1" a hromadně změním jejich hladinu z "0" na "28" v lepším případě: když už mám otevřený ten editor bloků, potřebuji změnit Tloušťku čáry, Typ čáry a Barvu na "DleHlad" a Hladinu entit na "0". Takže by se mi hodilo, kdybych dokázal jedním nebo dvěma příkazy změnit hladinu bloku podle entit, ze kterých se skládá a pak ty entity nastavit na výše uvedené hodnoty. Opět hromadně, pro všechny duplicity "bloku1" v dokonalém světě: úplně dokonalé by bylo udělat to pro všechny bloky ve výkrese naráz. "Blok1" má entity v hladině "28", potřebuji ho tedy dostat do hladiny "28" a jeho entity přenastavit viz výše. Ve všech jeho duplicitách. "Blok2" má entity v hladině "11", potřebuji tedy všechny "Bloky2" dostat do hladiny "11" a entity, které ho tvoří, nastavit opět na "DleHlad" a hladinu "0". A tak dále. Děkuji za případné tipy. Pavel Pospíšil. |
|
![]() |
|
Vladimír Michl ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor ![]() ![]() ARKANCE Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Implementujeme řešení Autodesk Stav: Offline Bodů: 21978 |
![]() ![]() ![]() ![]() ![]() |
Můžete vyzkoušet aktualizovanou verzi naší utility SetByBlock. Volitelně umí povýšit vlastnosti definičních entit bloku na vlastnosti reference daného bloku.
|
|
![]() |
|
Petr75 ![]() TOP uživatel ![]() Přihlášen: 16.úno.2007 Lokalita: ČR (JM) Používám: AutoCAD LT 2025 Stav: Offline Bodů: 441 |
![]() ![]() ![]() ![]() ![]() |
Myslím, že by na to stačil jednoduchý lisp program. Bez ošetřování nějakých chyb bo to mohlo být např. toto:
(defun c:Block_Layer ( / ss i n n_text en en2 enList enList2 name Layer) (setq ss (ssget "_X" (list (cons 0 "INSERT")))) (if ss (progn (setq n (sslength ss)) (setq n_text (strcat "/" (itoa n))) (setq i 0) (repeat n (setq en (ssname ss i)) (setq enList (entget en)) (setq name (cdr (assoc 2 enList))) (setq en2 (tblobjname "BLOCK" name)) (setq enList2 (entget (entnext en2))) (setq Layer (cdr (assoc 8 enList2))) (setq enList (subst (cons 8 Layer) (assoc 8 enList) enList)) (entmod enList) (setq i (1+ i)) (princ (strcat "\r" (itoa i) n_text)) ) ;repeat (princ "\r ") (setq oldSetByLayerMode (getvar "SetByLayerMode")) (setvar "SetByLayerMode" 255) (setq ss (ssget "_X")) (command-s "_.setbylayer" ss "" "_y" "_y") (setvar "SetByLayerMode" oldSetByLayerMode) )) ;if (command "._REGEN") (princ) ) ;defun Block_Layer (princ) -- Byl jsem byl o pár minut pomalejší s odpovědí a možná jsem vymýšlel něco, co už je vymyšlené. Bohužel si tipy na tomto serveru nepřečtu.
Upravil Petr75 - 4 hodin 47 minut zpět v 13:24 |
|
![]() |
|
Pavel Pospíšil ![]() Nováček ![]() Přihlášen: 08.zář.2005 Stav: Offline Bodů: 6 |
![]() ![]() ![]() ![]() ![]() |
Díky za tip, funguje. Vaší utilitou hromadně změním hladinu bloků podle potřeby (a současně entity uvnitř bloku převedu do hladiny "0") a pak příkazem AutoCADu NASTAVDLEHLAD stejně tak hromadně upravím vlastnosti entit uvnitř bloků. Mám všechny bloky ve výkrese na dva příkazy, což je paráda. Ještě jednou děkuji. Pavel Pospíšil. Upravil Pavel Pospíšil - 4 hodin 9 minut zpět v 14:02 |
|
![]() |
|
Vladimír Michl ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor ![]() ![]() ARKANCE Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Implementujeme řešení Autodesk Stav: Offline Bodů: 21978 |
![]() ![]() ![]() ![]() ![]() |
Upravil Vladimír Michl - 4 hodin 18 minut zpět v 13:53 |
|
![]() |
|
Petr75 ![]() TOP uživatel ![]() Přihlášen: 16.úno.2007 Lokalita: ČR (JM) Používám: AutoCAD LT 2025 Stav: Offline Bodů: 441 |
![]() ![]() ![]() ![]() ![]() |
Já v programu vybral všechny bloky a postupně se přesouval jednotlivé bloky do hladiny, dle první entity v bloku. Až nakonec jsem všechny bloky nastavil dlehlad.
|
|
![]() |
|
Vladimír Michl ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor ![]() ![]() ARKANCE Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Implementujeme řešení Autodesk Stav: Offline Bodů: 21978 |
![]() ![]() ![]() ![]() ![]() |
Jenomže ty definice procházíte vícekrát a už po první úpravě se definice změní (opravoval jsem v mé aplikaci stejnou chybu).
|
|
![]() |
Pro technickou podporu CAD
kontaktujte Helpdesk
Odpovědět ![]() |
|
Přejít na fórum | Oprávnění fóra ![]() Nemůžete vytvářet nová témata v tomto fóru Nemůžete odpovídat na témata v tomto fóru Nemůžete vymazávat vaše příspěvky v tomto fóru Nemůžete upravovat vaše příspěvky v tomto fóru Nemůžete vytvářet ankety v tomto fóru Nemůžete hlasovat v anketách v tomto fóru |
Stránka byla vygenerována za 0,367 sekund.