Zobrazit plnou verzi příspěvku: prepis makra do LISPu
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.
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)
)
Diky moc. Presne tohle jsem potreboval, funguje super. Mohu mit smely dotaz co dela parametr "_p" a "" za prikazem draworder?
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.