Děkujeme za účast na konferenci CADfórum 2025 - podívejte se na reportáž
Přes 119.900 registrovaných u nás, celkem 1.104.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků.
Vyzkoušejte nový přesný Inženýrský kalkulátor a
proměnné prostředí AutoCADu.
Diskuzní fórum, poradna
?CAD diskuze, rady, výměna zkušeností
Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion, 3ds Max, Vault a s dalšími CAD/BIM/PDM aplikacemi.
Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
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 |
Téma: b.lspZaslá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 |
Zasláno: 25.dub.2008 v 08:57 |
|
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 |
Zasláno: 25.dub.2008 v 12:38 |
|
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 |
Zasláno: 20.kvě.2008 v 09:09 |
|
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 |
Zasláno: 20.kvě.2008 v 09:24 |
|
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 |
Zasláno: 20.kvě.2008 v 10:00 |
|
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 |
Zasláno: 20.kvě.2008 v 10:00 |
|
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 |
Zasláno: 20.kvě.2008 v 10:13 |
|
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 |
Zasláno: 30.kvě.2008 v 14:52 |
|
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 |
Zasláno: 02.čer.2008 v 06:59 |
|
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 |
Zasláno: 03.čer.2008 v 15:48 |
|
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 |
Zasláno: 03.čer.2008 v 15:54 |
|
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 |
Zasláno: 04.čer.2008 v 08:09 |
|
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 |
Zasláno: 04.čer.2008 v 09:18 |
|
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,586 sekund.




b.lsp
Možnosti tématu


