Vytisknout stránku | Zavřít okno

ikona vs. lisp

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=7551
Datum vytištění: 13.čer.2026 v 07:00


Téma: ikona vs. lisp
Odeslal: Ferdinand
Předmět: ikona vs. lisp
Datum odeslání: 13.lis.2008 v 10:02
Lze někde najít koncepci sestavení řetězců (pravidla + vysvětlení syntaxu) pro ikony? Pro tento případ bych potřeboval "přeložit" do lispu:
$M=$(if,$(getvar,cmdactive),_all,^P_ai_selall ^P)
V Helpu jsem našel (v tématu Use Special Control Characters in Menu Macros) pouze vysvětlení pro ^P - Turns MENUECHO on or off
Pokud chci použít v lispu příkaz _AI_SELALL např.
(command "_move" _AI_SELALL "" "0,0" "1000,1000")
tak odezva na p.ř. je
_move
Select objects:
Command: _AI_SELALL Unknown command "AI_SELALL".  Press F1 for help.
Command: 0,0 Unknown command "0,0".  Press F1 for help.
Command: 1000,1000 Unknown command "1000,1000".  Press F1 for help.
Command: nil
Je to někdy potřeba, protože "obyčejný" výběr ... "_All" "" ... "nechytne" úplně všechny entity ve výkresu (samozřejmě při rozmražených/odemknutých/zviditelněných hladinách).
 
 


-------------
-FerTh-



Odpovědi:
Odeslal: Seiner
Datum odeslání: 13.lis.2008 v 12:36
No, trochu smíchaný dotaz ;-)
 
Syntaxi hledejte v části nápovědy věhované DIESELu
Důvod je IMHO ten, že AI_SELALL je definovaný lispem v souboru Acad2008doc.lsp (nebo odpovídající verze). Takto definované příkazy. domnívám se, nejdou volat příkazem command lispu. Pokud to chcete mermomocí do lispu, okopírujte si to z toho Acad2***doc.lsp. Není to nic složitého.


-------------
Vítězslav Seiner

Chrudim


Odeslal: Ferdinand
Datum odeslání: 13.lis.2008 v 16:45
Nefunguje mi to ani když před použitím načtu acad2004doc.lsp...

-------------
-FerTh-


Odeslal: Seiner
Datum odeslání: 14.lis.2008 v 08:37
A nebude. Já se domnívám, že příkazy definované v lispu nejdou přímo volat lispem pomocí command.
Já jsem Vám doporučil okopírovat do Vašeho lispu těch pár řádek, ktreré provádějí příkaz.

-------------
Vítězslav Seiner

Chrudim


Odeslal: Ferdinand
Datum odeslání: 19.lis.2008 v 13:47
Jasně. Jinak pokud volám v lispu externě (tj. zvlášť, v samostatném lispu nadefinovaný vlastní) PRIKAZ, tak píšu
(C:PRIKAZ)
a PRIKAZ se vykoná. Dělám to běžně a bez problému to funguje - proto jsem předpokládal, že pokud acad2004doc.lsp načtu do výkresu, mohu volat kteroukoli jeho funkci... V acad2004doc.lsp je ai_selall sice jen na 20 řádků (s komentářem 23), ale odkazuje to na další funkci ai_notrans...
 


-------------
-FerTh-


Odeslal: Seiner
Datum odeslání: 19.lis.2008 v 14:33
Nojo - ten odkaz jsem přehlédnul - tím se to komplikuje :-(
Taky mi něco říká, že by mělo jít volat funkci definovanou v lispu, ale jistý si nejsem.


-------------
Vítězslav Seiner

Chrudim


Odeslal: Vladimír Michl
Datum odeslání: 20.lis.2008 v 10:11
Pokud chcete z LISPu jen vybrat všechny objekty, stačí (ssget"_X").
 
Pro inspiraci výběru objektů (uvnitř příkazu a samostatně/grips) z LISPu se můžete podívat na naši funkci SelLay (viz Download).


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)



Vytisknout stránku | Zavřít okno