Zobrazit plnou verzi příspěvku: prepis makra do LISPu

honzic
29.04.2009, 12:27
Dobry den,
 
     chtel bych si vytvorit klavesovou zkratku na prikaz prenest dospod. Makro tohoto prikazu vypada nasledovne :
^C^C^P(ai_draworder "_b") ^P
Jak by mel sparvne vypadat zapis v LISPu? Zatim jsem zkousel nasledujici, ale nefunguje mi spravne. Nevim jak tam zakomponovat parametr "_b"?
 
;Přenést dospod(defun C:PD()     (command "_draworder" "_b")     (princ)
)
 
Diky za rady
Honzic
 

Vladimír Michl
29.04.2009, 13:03
Funkce AI_DRAWORDER není totéž jako příkaz [CMD]_DRAWORDER[/CMD]. Ten se nejprve ptá na výběrovou množinu, pak teprve jestli dospod nebo navrch.

johny
30.04.2009, 08:55
Neni to až tak jednoduche... a jestli chcete jen klavesoubou zkratku, tak se na to necha použití normální cadovky prikazy a v prostedi CUI (napsat do prikazoveho radku) tomu priradit klavesouvou zkratku... tedy pokud nemate nejaky stary cad... jinak příkaz command má tu výhodu, že je shodny (až na vyjímky, ktere vzdy s prekvapenim objevuji) s tim, co zadavate bežne v prikazovam radku... tak se to da i testovat... jinak k vašemu... asi nejjedodušši je (defun C:PD()     (command "_select" pause)     (command "_draworder" "_p" "" "_b")     (princ)
)

honzic
30.04.2009, 12:29
Diky moc. Presne tohle jsem potreboval, funguje super. Mohu mit smely dotaz co dela parametr "_p"  a "" za prikazem draworder?

johny
30.04.2009, 13:27
Jak jsem psal... prostě ty příkazy si pište do příkazového řádku cadu a přesně uvidíte - podle komentářů která vám cad píše - co děláte. Co potřebujete vědět navíc je, že "pause" dělá to, že vyčká na příkaz uživatele a "" odpovídá zmáčknutí Enteru. Jo a zkuste si pak dát místo "_p" (jako previous) a "" jen pause... nebo pause pause  tím i odhalíte důvod, proč tam je předřazené "_select" ... protože to neumožní víc jen žeden vstup.