Zobrazit plnou verzi příspěvku: Lze vylepšit FIXBLOCK?
rychetsky
22.10.2009, 12:08
Dobrý den.
Chci se zeptat nějakého LISPového mága...
Docela často používám fixblock, nicméně teď mám rozdělaný projekt kde je spousta externích výkresů, které obsahují spoustu bloků a díky tomu má projekt skoro 600 hladin. Pro mojí potřebu jsou ovšem tyto externí hladiny zbytečné. Když použiji Fixblock, tak mi to sice blok převede do hladiny "0", ale pokud jsou v bloku vnořené další bloky v jiných hladinách, tak se jich jednoduše nezbavím. A editovat několik set až tisíc bloků ručně by zabralo nehorázné množství času.
Proto se ptám, existuje něco jako Fixblock ale s tím, že by převedl do hladiny "0" úplně všechny bloky, které se ve výkrese nachází bez ohledu na úroveň jejich vnoření?
Vladimír Michl
22.10.2009, 22:09
Není potřeba nic vylepšovat - vestavěný příkaz [CMD]NASTAVDLEHLAD[/CMD] to zařídí - viz:
http://www.cadforum.cz/cadforum/qaID.asp?tip=2426
rychetsky
26.10.2009, 11:51
Vestavěný příkaz to sice zařídí, ale přesně tak jak jsem popsal výše. Bloky, které jsou ve výkrese uvede do hladiny "0", ale nedej bože, aby byly v bloku vnořené bloky další.
Potřebuji převést úplně všechny bloky ve výkrese do jedné hladiny a potom si je přiřadit ke svým vlastním.
Ve výkrese je několik tisíc bloků a pokud jsou vnořeny v nějakém bloku, tak s tím ani fixblock ani NASTAVDLEHLAD nic neudělají.
Pokud si myslíte, že ano, tak si vytvořte blok v hladině „X“ vložte do něj jiný blok v hladině „Y“ a ten ať zároveň obsahuje blok v hladině „Z“. Pokud Váš tip dokáže všechny bloky převést do hladiny „0“ tak něco dělám špatně.
Ale obávám se, že vaše tipy prostě neberou v potaz případné vnoření bloků.
Já potřebuji jedním příkazem převést naprosto všechny bloky do jedné hladiny, nehledě na úroveň jejich vnoření.
Zkoušel jsem příkazem Rychle vybrat... vybrat všechny bloky ve výkrese a pak použít NASTAVDLEHLAD. Příkaz proběhl, ale bloky vnořené v blocích zůstali v původních hladinách.
rychetsky2009-10-26 11:52:46
Martin Bielina
26.10.2009, 13:24
Zkuste tuhle variantu Fixblocku. Možná to váš problém vyřeší.uploads/20091026_132058_fixblock.lsp
Vladimír Michl
26.10.2009, 13:27
Máte pravdu, nepřečetl jsem si to pořádně - NASTAVDLEHLAD neřeší váš problém, ale problém explicitně přiřazených vlastností (barev). To je něco jiného.
Přiřazení hladin blok/bloků do hladiny 0 ale řeší jiná LISP utilita - BL0 (taktéž na Download). Umí i vnořené bloky.
rychetsky
26.10.2009, 13:50
Tu jsem zkoušel a nevím, jestli je to tím, že mám ACAD 2010...ale když jí použiju, tak sice blok převede bez problému, ale pak to rozhází vnořené bloky do šílené vzdálenosti.
Viz obrázek>
rychetsky
26.10.2009, 13:56
Je zajímavé, že něco podobného co jsem nakousnul já, se na fóru už kdysi řešilo, ale nedořešilo > viz link
http://www.cadforum.cz/forum/forum_posts.asp?TID=2692
Martin Bielina
26.10.2009, 13:59
Tak to je opravdu zvláštní chování, protože ten LSP manipuluje pouze s vlastnostmi "hladina" a "barva". Nemohlo by to být třeba různými jednotkami bloků (metry, milimetry, palce atd.)? Ty ten LSP ale taky nemění, to jsem si jistý. Už mě napadá to pouze vyzkoušet sám přímo na vašem souboru. Můžete mi poslat třeba jen nějaký slepý výřez na PM?
rychetsky
26.10.2009, 14:23
Mám zajímavý poznatek.
Pokud vložím blok do nového dwg, tak vše proběhne jak má...ikdyž některé entity změní svojí polohu v řádech desítek cm.
Problém je v layoutu ve kterém je tento blok vložen. Tak když spustím Bl0 tak začne tento blok postupně mizet, až se nakonec "rozsype" okolo původního umístění.
Dotyčný blok bych Vám zaslal, ale v PM nemohu dát přílohu a striktní zabezpečení naší sítě mi neumožňuje nahrát blok někam ven...
Martin Bielina
26.10.2009, 14:50
Bl0 by to dělat mohl, protože ten manipuluje mimo jiné i s měřítky. Zkusil jste ten LSP, který jsem Vám nabídnul já. Je to skoro neznámá varianta FIXBLOCK, která když místo výběru konkrétního stisknete enter, opraví všechny bloky ve výkresu tak jako by to udělal původní FIXBLOCK jen s jediným vybraným blokem a tedy i s vnořenými bloky.Není úplně doladěná, takže výpis pokynů na příkazovém řádku nejsou takové jak bych si to představoval, ale bohužel nemám čas všechno doladit až do úplného konce a tenhle kód je bezezbytku přejatý. Neudělal jsem v něm jedinou úpravu, ale funguje na 100%.
rychetsky
26.10.2009, 15:09
Paráda...vše proběhlo bez problémů.
Děkuji za pomoc...tohle je to, co jsem potřeboval.
rychetsky
26.10.2009, 15:15
Takhle to dopadá, když máte zapnuté dynamické zadání a nečtete si pro sichr příkazový řádek .
Děkuji