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.098.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
|
Odpovědět ![]() |
archiv |
Autor | |
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() Zasláno: 24.dub.2008 v 17:01 |
Vracím se k lispu b.lsp (od Pavla). Potřebuji zakomponovat do lispu, ve kterém používám vygenerovaný script z b.lsp, výběr pouze některých bloků. V b.lsp je to řešeno ručním výběrem, což v mém případě nejde - chtěl bych tam dostat výběrovou množinu bloků se specifickou částí názvu - tj. aby ten výběr byl možný bez ručního zásahu (bez dialogu). Abych byl konkrétní:
;;vyber vsech Bloku s retezcem "_C" v nazvu
(setq B_C (ssget "X"(list(cons 0 "INSERT")(cons 2 "*_C")))) nyní script je ve tvaru
;;puv.barva=6(magenta), nova.barva=ByBlock
(block_edit 2 6 0 0 "" "" 0 "" "")
což se provede na celý výkres...
|
|
-FerTh-
|
|
![]() |
|
pavelstyl ![]() Zasloužilý člen ![]() Přihlášen: 06.říj.2004 Lokalita: Czech Republic Používám: AutoCAD Mech 2025, SolidEdgeE 2025 Stav: Offline Bodů: 229 |
![]() |
Jestli tomu dobře rozumím, tak by jste chtěl funkci
Jestli ano, tak to bude mít jeden háček. Představ te si, že máte ve výkrese vložen jeden blok dvakrát. A do toho výběru zahrnete jenom jednu instanci. Potom ten program ale změní obě dvě, protože obě ty instance mají stejnou definici.
Pavel Štyl
|
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
To je OK - to by mi nevadilo, ale mne zajímá, zda to lze takhle provést (tj. konkrétně na výb. mn. B_C)?
|
|
-FerTh-
|
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
Jde o to, že chci v blocích zachovat 3 druhy čar a 3 barvy, kterými jsou charakteristické typové bloky s názvem obsahujícím příponu _C. Pokud na to pustím ten lisp, tak ten provede změnu všech entit najednou - a to mi nevyhovuje. Chtělo by to tam vpašovat výběrový filtr dle vlastnosti entit... Příklad: Chci změnit vlastnosti pouze těch entit bloku, které jsou nakresleny typem čáry Center a mají barvu buď ByLayer anebo ByBlock (tj. blok má i další entity s jinými vlastnostmi) a to tak, aby pak výsledné vlastnosti byly Linetype=ByBlock, Color=ByBlock.
|
|
-FerTh-
|
|
![]() |
|
Martin Bielina ![]() Zasloužilý člen ![]() Přihlášen: 04.led.2007 Lokalita: ČR (Pha) Používám: AutoCAD True view 2016 Stav: Offline Bodů: 100 |
![]() |
Já používám třeba takovýto způsob filtrování v lispu
;výběr entit k záměně (úsečka ležící v jedné ze tří určených hladin) (setq ent_sel (ssget "_X" '((-4 . "<AND") (0 . "LINE") (-4 . "<OR") (8 . "HLADINA 1") (8 . "HLADINA 2") (8 . "HLADINA X...") (-4 . "OR>") (-4 . "AND>") ) ) ) Kombinovat se dají i jiné typy požadavků (barva, název entity, souřadnice atd. viz referenční příručka nápovědě). Toto je jen příklad, který přímo Váš problém nevyřeší, bude to potřeba trochu upravit na konkrétní požadavky. |
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
To je OK, filtrované výběry samostatních entit (mimo blok) běžně používám taky. Ale jak na ty bloky? V podstatě jde o jakýsi přepis dialogového příkazu refedit do lispové podoby (což už jsme probírali v jiném mnou založeném tématu myslím že se to jmenovalo hromadný refedit) - vzešlo z toho skvělá pomůcka od Pavla a zda by ji o tuto možnost (pokud je to možné) rozšířil.
Upravil Ferdinand - 20.kvě.2008 v 10:07 |
|
-FerTh-
|
|
![]() |
|
pavelstyl ![]() Zasloužilý člen ![]() Přihlášen: 06.říj.2004 Lokalita: Czech Republic Používám: AutoCAD Mech 2025, SolidEdgeE 2025 Stav: Offline Bodů: 229 |
![]() |
Dobrý den, Pavel Štyl
|
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
Projeví se to nějak i v dialogu / ve skriptu ?
|
|
-FerTh-
|
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
Potřebuji pomoct s provedením následujících (pro sjednocení vzhledu bloků v naší nadstavbové databázi - cca. 1200 souborů) - tj. aplikovat "hromadný" _refedit :
1- najdi v akt. výkresu bloky, které mají ve svém názvu řetězec *_C-*
- vyber jejich entity, které mají současně tyto vlastnosti:
-- mají barvu "ByBlock"
-- mají typ čáry "center"
- změň vlastnosti těchto entit na:
-- barva=ByBlock
-- typ čáry=ByBlock
- nastav vlastnosti těchto bloků na:
-- barva=6
-- typ čáry=center 2- najdi v akt. výkresu bloky, které neobsahují ve svém názvu řetězec *_C-*
- vyber jejich entity s těmito vlastnostmi:
-- mají barvu "ByLayer"
-- mají typ čáry "ByLayer"
- změň vlastnosti těchto entit na:
-- barva=ByBlock
-- typ čáry=ByBlock
- nastav vlastnosti těchto bloků na:
-- barva=ByBlock
-- typ čáry=ByBlock Potíž je v tom, že Pavlův program b.lsp řeší vlastnosti všech bloků, a to globálně. |
|
-FerTh-
|
|
![]() |
|
pavelstyl ![]() Zasloužilý člen ![]() Přihlášen: 06.říj.2004 Lokalita: Czech Republic Používám: AutoCAD Mech 2025, SolidEdgeE 2025 Stav: Offline Bodů: 229 |
![]() |
No vždyť kvůli tomu jsem posílal tu funkci "block_edit_ss", jejíž první parametr je výběrová množina. Potom to přebarvení se provede jenom na bloky v té výběrové množině.
Podle mě by stačilo něco jako:
PS: Jestli plácám nesmysly, tak se omlouvám. Právě jsem se vrátil z dovolené :-)
Pavel Štyl
|
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
Je to nějak zacyklovaný - pořád to dělá ten 1 a samý výkres (v uzavřeném cyklu) a CAD musím sestřelit TaskManagerem...
|
|
-FerTh-
|
|
![]() |
|
Seiner ![]() CAD/BIM manager ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (PA) Používám: Mechanical 2017, Inventor 2017 a starší Stav: Offline Bodů: 1662 |
![]() |
Omlouvám se, nesledoval jsem. Ale jak chcete otevírat další výkresy? V lispu to já teda neumím. Na to požívám scripty (demo) a generátor scriptů.
|
|
Vítězslav Seiner
Chrudim |
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
Je to řešeno formou
(defun S::STARTUP ()
(již jsem o tom psal v minulosti na jiném místě...)
pak se sestaví seznam dwg v akt. adresáři a pak z něj se berou výkres za výkresem (je to práce kolegy, takže podrobnosti musím vynechat). Upravil Ferdinand - 04.čer.2008 v 08:10 |
|
-FerTh-
|
|
![]() |
|
Seiner ![]() CAD/BIM manager ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (PA) Používám: Mechanical 2017, Inventor 2017 a starší Stav: Offline Bodů: 1662 |
![]() |
No to jste mi toho moc nesdělil. Pak (se) nechtějte radit. Předpokládám, že máte nějakou uživatelskou funkci, která dělá, co chcete. Je celkem zbytečné dělat ji jako startatup. Jestliže ji odladíte na jednom výkrese a funguje, je druhým krokem aplikovat to na nějaký seznam výkresů. A já jsem toho názoru, že tady je cesta jen přes script. A ten není nutné psát ručně, ale je možné použít generátor.
Já používám svůj generátor a tajnosti s ním nedělám http://www2.chrudim.cz/seiner/programy/Davka.zip
|
|
Vítězslav Seiner
Chrudim |
|
![]() |
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,297 sekund.