Vytisknout stránku | Zavřít okno

AutoLisp

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=3578
Datum vytištění: 19.čer.2026 v 09:04


Téma: AutoLisp
Odeslal: I.Kroutil
Předmět: AutoLisp
Datum odeslání: 07.pro.2006 v 11:37
Dobrý den, jelikož programuji v Lispu jen ojediněle, obracím se na vás s touto prosbou. Dělám prográmek obsahující výběrový filtr a potřeboval bych poradit, jakým způsobem lze provést následující.

(setq a_sez) má hodnotu (8 . "TEXT")
(setq b_sez) má hodnotu (62 . 256)
(setq c_sez) má hodnotu (7 . "Isocp")
(setq d_sez) má hodnotu (40 . 3.5)

dále by mohlo následovat
(ssget (list a_sez b_sez c_sez d_sez)) má hodnotu
(ssget ((8 . "TEXT") (62 . 256) (7 . "Isocp") (40 . 3.5)) a bude fungovat

Já ale potřebuji dosáhnout dotatečného doplnění nebo jiného obsahu v seznamu. Jednotlivé hodnoty proměnných jsou závislé na vybrání v dialogovém panelu. Takže může dojít k následujícímu

(setq a_sez) má hodnotu (8 . "TEXT")
(setq b_sez) má hodnotu (62 . 256)
(setq c_sez) má hodnotu (7 . "Isocp")
(setq d_sez) má hodnotu nil (nebyla vybrána)

a v takovém případě
(ssget ((8 . "TEXT") (62 . 256) (7 . "Isocp") nil) samozřejmě končí.
Zatím jsem nebyl schopen dosáhnout postupného přidáváni jednotlivých hodnot do seznamu podle pravdivých hodnot proměnných.
Pokud by měl někdo radu, předem děkuji.



Odpovědi:
Odeslal: pavelstyl
Datum odeslání: 07.pro.2006 v 13:13
Pisi z hlavy:
(setq seznam nil)
(if a_sez (setq seznam (append (seznam (list a_sez)))))
(if b_sez (setq seznam (append (seznam (list b_sez)))))
(if c_sez (setq seznam (append (seznam (list c_sez)))))
...
...
(ssget seznam)
 
Pavel Styl


Odeslal: I.Kroutil
Datum odeslání: 07.pro.2006 v 14:17
Ano, to je ono. Po menší úpravě dle vašeho návrhu mohu zvolat heuréka. Děkuji, moc jste mi pomohl. S pozdravem I.Kroutil



Vytisknout stránku | Zavřít okno