Filtr výberu dle hladin vybraných objektů
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=9833
Datum vytištění: 13.čer.2026 v 02:24
Téma: Filtr výberu dle hladin vybraných objektů
Odeslal: johny
Předmět: Filtr výberu dle hladin vybraných objektů
Datum odeslání: 24.lis.2009 v 14:27
Zdravim, dělám si jednoduchý filtr na výběr objektů. Pointa je takováto: (1) spustím filtr - (2) vyberu objekty pro určení hladin - (3) vyberu objekty pro další příkaz - (4) spustím příkaz (např. copy)
(defun C:FR ( / ss-flt hld index) (princ "\nVyber objekty pro filtr hladin <nic=aktuální>:") (setq ss-flt (ssget) index 0 hld "") (if ss-flt (progn (setq n (sslength ss-flt)) (repeat n (setq hld (strcat hld "," (cdr (assoc 8 (entget (ssname ss-flt index)))))) (setq index (+ 1 index)))) (setq hld (getvar "CLAYER"))) (cadr (sssetfirst nil (ssget (list (cons 8 hld))))) )
Ten program je obdobou prográmku dle tipu 6364 http://www.cadforum.cz/cadforum/qaID.asp?tip=6364 - http://www.cadforum.cz/cadforum/qaID.asp?tip=6364 jen chci, aby těch hladin bylo možné i víc než jedna. Program dělá co potřebuju, ale s jedním nepřirozeným detailem - že výběr v kroku 3 musím neprve ukončit (enter) a pak teprve spustit příkaz, který pracuje s tímto výberem. Asi to je jen detail, ale jednoduše je to nepřirozené... a už se vidím, kolikrát se zapomenu a nekliknu. dík
|
Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 24.lis.2009 v 14:57
|
Není to náhodou to co dělá utilita SELLAY?
Viz:
http://www.cadforum.cz/cadforum/qaID.asp?tip=5447 - http://www.cadforum.cz/cadforum/qaID.asp?tip=5447
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz emea.support.arkance.world)
|
Odeslal: johny
Datum odeslání: 24.lis.2009 v 15:30
|
Jj, pravda. Dokonce jsem ji i kdysi stáhnul a zkoušel... ale nezvykl jsem si na tu převrácenou logiku - vybírej a pak filtruj...
|
Odeslal: alfred
Datum odeslání: 24.lis.2009 v 16:04
Máte dvakrát (SSGET) Poprvé vybíráte Podruhé jste také nezadal "sel-method" tak vybíráte znovu.
Kdybyste si to projel debugrem, tak Vám je to hned jasné.
Řešení - u druhého (ssget) zadejte způsob výběru - "sel-method" . Např. (cadr (sssetfirst nil (ssget "X" (list (cons 8 hld)))))
|
Odeslal: Vladimír Michl
Datum odeslání: 24.lis.2009 v 16:08
|
Ne, v SELLAY se nefiltruje, ale rovnou vybírá hladina ukázáním na "příklady" objektů. Buď můžete objekty vybrat předem - např.:
SELLAY ... POSUN
nebo během příkazu:
POSUN 'SELLAY ...
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz emea.support.arkance.world)
|
Odeslal: johny
Datum odeslání: 24.lis.2009 v 16:28
No myslim, že to je asi správně... první výběr je jen pro určení filtrovaných hladin (těch zůstávajích) druhý pak už pro výběr objektů... na který bude aplikován filtr
sel-methodu pro druhý výběr bych nechal obyčejnou - běžně oknem
|
Odeslal: alfred
Datum odeslání: 24.lis.2009 v 16:34
|
Pak tedy nerozumim co chcete. Pokud chcete vybirat vic entit v prvnim vyberu pak je jasne, ze toto vybirani musite ukoncit odkliknutim. Pokud by jste vybiral jinou metodou - napriklad jednu entitu pak si prislusne nastavte "sel-method" u prvniho vyberu (ssget). To same pro druhou selekci.
|
Odeslal: johny
Datum odeslání: 24.lis.2009 v 17:10
To p. Michl Asi je to jenom o slovech. SELLAYS i můj program, v obou případech se vybírají příklady objektů, které pak zůstanou. Rozdíl je v pořadí. Já vyberu nejdřív příklady a pak samotné objekty (mám nad nimi aktuální vizuálni kontrolu), kdyžto SELLAYS naopak (filtr aplikuje se "naslepo").
To alfred: S prvním výběrem máte pravdu a já s tím nemám problém. Problém, který řeším souvisí s tím druhým výběrem. Tady tento bych nechtěl ukončovat entrem, páč při normální práci to taky neděláte - jednoduše se ten výběr ukončí se spuštěním následujícího příkazu (kopie, posun)...
Asi je to opravdu chiméra... jednoduše enter musí zůstat. Díky za snahu.
|
|