TECHSOFT s.r.o., Podtatranská 4931/23, 05801 Poprad, Slovak Republic, http://www.techsoft.sk
CAD HELP
$M Vnútri makra môžete použíť príkaz $M=, ktorý predchádza makru vytvorenému v jazyku DIESEL. AutoCAD vyhodnotí časť makra za $M= a výsledok je opäť spracovaný ako makro.
Formát je: $M=výraz
kde $M= určuje AutoCADu, že má vyhodnotiť reťazec ako výraz DIESELu a výraz je výraz DIESELu.
Príklad:
[Vyplnit Ano/Ne]FILLMODE $M= $(-,1,$(getvar,fillmode))
Položka nastaví hodnotu FILLMODE tak, že odčíta aktuálnu hodnotu FILLMODE od 1 a vráti výsledok systémovej premennej FILLMODE. Tento spôsob môžete použíť pri prepínaní hodnoty systémových premenných medzi 0 a 1.
Poznámka:
Všimnite si, že výraz $M= sa nachádza len na začiatku príkazu na odčítanie. Vnútri príkazu ak sa používa ďalší príkaz DIESELu (v tomto prípade $(getvar,fillmode)) - už príkaz $M= nepoužívajte).
^Z Ak za výrazom následuje ^Z, AutoCAD nepridá za makro ENTER.
Ak použijete DIESEL pre vyhodnocovanie testov "if-then", môžete vložiť podmienku tam, kde by normálne bola medzera alebo stredník. Rovnako ako pri ďalších riadiacich znakoch, ^Z je reťazec zložený zo znaku strieška (^) a Z, nie CTRL + Z.
V následujúcich príkladoch je ^Z použité ako ukončenie makra.
[Modelový priestor]^C^C$M=$(if,$(=,$(getvar,tilemode),0),$S=mview _mspace )^Z
[Výkresový priestor]^C^C$M=$(if,$(=,$(getvar,tilemode),0),$S=mview _pspace )^Z
Ak by tieto makrá nekončili ^Z, AutoCAD by automaticky doplnil na koniec riadkov ENTER, čo by spôsobilo zopakovanie posledného príkazu.
+(Súčet)
$(+, hodnota1 [, hodnota2, ..., hodnota9])
Vráti súčet čísel hodnota1, hodnota2, ..., hodnota9.
Ak je aktuálna hrúbka 5, následujúci výraz vráti 15.
$(+, $(getvar,thickness),10)
-(Rozdiel)
$(-, hodnota1 [, hodnota2, ..., hodnota9])
Vráti rozdiel čísel hodnota2 až hodnota9 od hodnoty1.
*(súčin)
$(*, hodnota1 [, hodnota2, ..., hodnota9])
Vráti súčin čísel hodnota1, hodnota2, ..., hodnota9.
/(podiel)
$(/, hodnota1 [, hodnota2, ..., hodnota9])
Vráti výsledok delenia čísla hodnota1 číslami hodnota2, ..., hodnota9.
=
$(=, hodnota1, hodnota2)
Ak je číslo hodnota1 rovné číslu hodnota2, funkcia vráti 1, inak vráti 0.
<
$(<, hodnota1, hodnota2)
Ak je číslo hodnota1 menšie ako číslo hodnota2, funkcia vráti 1, inak vráti 0.
Následujúci výraz vezme aktuálnu hodnotu HPANG; Ak je táto hodnota menšia než hodnota uložená v systémovej premennej USERR1, vráti 1. Ak je v premennej USERR1 hodnota 10.0 a aktuálne nastavenie HPANG je 15.5, následujúci výraz vráti 0.
$(<, $(getvar,hpang),$(getvar,userr1))
>
$(>, hodnota1, hodnota2)
Ak je číslo hodnota1 väčšie ako číslo hodnota2, funkcia vráti 1, inak vráti 0.
!=
$(>, hodnota1, hodnota2)
Ak číslo hodnota1 nie je rovné číslu hodnota2, funkcia vráti 1, inak vráti 0.
<=
$(>, hodnota1, hodnota2)
Ak je číslo hodnota1 menšie, alebo rovné číslu hodnota2, funkcia vráti 1, inak vráti 0.
>=
$(>, hodnota1, hodnota2)
Ak je číslo hodnota1 väčšie, alebo rovné číslu hodnota2, funkcia vráti 1, inak vráti 0.
and
$(and, hodnota1 [, hodnota2, ..., hodnota9])
Vráti výsledok logickej operácie AND medzi argumentami hodnota1 až hodnota9.
angtos
$(angtos, hodnota [, režim, presnosť])
Vráti veľkosť uhlu v zadanom formáte a so zadanou presnosťou.
Upraví zadanou hodnotu hodnota ako uhol vo formáte zadanom argumentami režim a presnosť podobne ako funkcia AutoLISPu. (Hodnoty pre argument režim sú uvedené v následujúcej tabuľke.) Ak hodnoty režim a presnosť nie sú uvedené, funkcia použije aktuálne nastavenie príkazu _units.
Hodnoty uhlových jednotiek
Hodnota režim Formát reťazca
0 Stupne
1 Stupne/Minúty/Sekundy
2 Gradyány
3 Radiány
4 Zemepisné jednotky
edtime
$(edtime, čas, vzor)
Vráti dátum a čas v zadanom formáte podľa vzoru.
Upraví hodnotu čas AutoCADu v juliánskom formáte (ktorú možno získať napr. pomocou výrazu $(getvar,date) ) podľa formátu v argumente vzor. Vzor obsahuje formátovacie reťazce, ktoré sú nahradené odpovedajúcími hodnotami dátumu a času. Ostatné znaky vo formátovacom reťazci nie sú vyhodnotené a sú skopírované do výsledného reťazca. Formátovacíe znaky sú uvedené v následujúcej tabuľke. Predpokladajme aktuálny dátum Pondelok, 7. augusta 2000 4:53:17.506.
Formátovacie znaky edtime
Formát Výstup Formát Výstup
D 7 H 4
DD 07 HH 04
DDD Mon MM 53
DDDD Monday SS 17
M 7 MSEC 506
MO 07 AM/PM AM
MON Aug am/pm am
MONTH August A/P A
YY 00 a/p a
YYYY 2000
Zadajte celý výraz AM/PM, tak, ako je ukázané v predchádzajúcej tabuľke; ak použijete len AM, A bude vyhodnotené ako písmeno a M vráti aktuálny mesiac.
Ak sa vo vzore objaví AM/PM, výrazy H a HH upravia čas v 12-ásť hodinovom formáte (12:00-12:59 1:00-11:59) namiesto 24 hodinového formátu (00:00-23:59).
Nasledujúci príklad používa dátum a čas podľa predchádzajúcej tabuľky. Všimnite si, že čiarka musí byť uzatvorená v úvodzovkách, pretože inak by bola vyhodnotená ako oddelovač argumentov.
$(edtime, $(getvar,date),DDD"," DD MON YYYY - H:MMam/pm)
Vráti nasledujúce:
Mon, 7 Aug 2000 – 4:53dop
Ak čas je rovný 0, použije sa dátum a čas vyhodnotenia výrazu. Tým sa vyhnete zbytočnému volaniu funkcie $(getvar,date) a je tým zaručené, že rôzné reťazce predané $(edtime) zobrazia rovnaký čas.
eq
$(eq, hodnota1, hodnota2)
Ak sú reťazce hodnota1 a hodnota2 totožné, vráti táto funkcia 1, inak 0.
Nasledujúcí výraz získa názov aktuálnej hladiny; ak tento názov je zhodný s hodnotou uloženou v systémovej promennej USERS1, vráti 1. Predpokladajme, že v premennej USERS1 je uložený reťazec "PART12" a aktuálna hladina má rovnaký názov.
$(eq, $(getvar,users1),$(getvar,clayer)) Vráti 1
eval
$(eval, reťazec)
Predá reťazec vyhodnocovaču DIESELu a vráti výsledok.
fix
$(fix, hodnota)
Prevedie reálne číslo hodnota na celé číslo tak, že odreže časť za desatinnou čiarkou.
getenv
$(getenv, názov_premennej)
Vráti hodnotu premennej prostredia so zadaným názvom názov_premennej.
Ak premenná neexistuje, vráti prázdny reťazec.
getvar
$(getvar, názov_premennej)
Vráti hodnotu systémovej premennej so zadaným názvom názov_premennej.
if
$(if, výraz, keď_pravda [,keď_nepravda])
Podľa podmienky vyhodnotí výraz.
Ak je výraz nenulový, vyhodnotí výraz keď_pravda a vráti jeho výsledok. Inak vyhodnotí a vráti výsledok výrazu keď_nepravda. Všimnite si, že zátvorky sa nepožadujú, keď výraz nevyhodnotí.
index
$(index, ktorý, reťazec)
Vráti zadaný prvok (ktorý) z reťazca oddeleného čiarkami.
Predpokladá, že argument reťazec obsahuje jednu alebo viac hodnôt oddelených čiarkami. Argument ktorý určuje poradie vrátenej hodnoty, pričom index prvej hodnoty je 0. Táto funkcia sa najčastejšie používa pre získanie X, Y a Z súradníc z hodnoty vrátenej funkciou $(getvar).
linelen
$(linelen)
Vráti dĺžku (v znakoch) najdlhšej stavovej riadky, ktorú je možné zobraziť.
Túto funkciu môžete použiť pre rôzne formátovanie stavovej riadky, v závislosti na kapacite displeja. Táto funkcia je užitočná len pre konfiguráciu stavovej riadky pomocou premennej MODEMACRO.
Priestor dostupný pre MODEMACRO je aktuálne obmedzený na 240 znakov. Funkcia $(linelen) vždy vráti 240. Táto funkcia nemusí byť dostupná v budúcich verziách AutoCADu.
nth
$(nth, ktorý, arg0 [, arg1,..., arg7])
Vyhodnotí a vráti argument určený argumentom ktorý.
Ak je ktorý rovný 0, nth vráti arg0 atd. Všimnite si rozdielu mezi $(nth) a $(index). $(nth) vracia jeden z argumentov funkcie, zatiaľ čo $(index) získa hodnotu z čiarkami oddelených položiek v jedinom reťazci. Argumenty, ktoré nie sú vybrané argumentom ktorý, sa nevyhodnocujú.
or
$(or, val1 [, val2,..., val9])
Vráti logickú operáciu OR medzi celočíselnými hodnotami val1 až val9.
rtos
$(rtos, hodnota [, formát, presnosť])
Vráti reálne číslo v zadanom formáte a presnosti.
Upraví zadanú hodnotu ako reálne číslo v zadanom formáte a so zadanou presnosťou, podobne ako funkcia AutoLISPu. Ak nie je zadaný formát a presnosť, použije aktuálne nastavenie podľa príkazu _units.
strlen
$(strlen, reťazec)
Vráti počet znakov v reťazci.
substr
$(substr, reťazec, počiatok [, dĺžka])
Vráti časť reťazca určenú argumentami počiatok a dĺžka. Argument dĺžka určuje počet znakov, ktoré budú z reťazca prečítané.
Znaky v reťazcisú číslované od 1. Ak nie je zadaný parameter dĺžka, vracia reťazec od počiatku až do konca daného reťazca.
upper
$(upper, reťazec)
Vráti reťazec prevedený na veľké písmená podľa pravidel aktuálneho jazyka.
xor
$(xor, hod1 [, hod2, ..., hod9])
Vrátí logickú operáciu XOR medzi celočíselnými hodnotami hod1 až hod9.
Obecne, ak urobíte ve výraze DIESELu chybu, je to na prvý pohled zrejmé. V závislosti na povahe chyby vloží DIESEL indikáciu chyby do výstupného prúdu.
Chybové hlásenia DIESELu
Chybové hlásenie Popis
$? Syntaktická chyba (obvykle chýbajúca pravá zátvorka alebo reťazec)
$(func,??) Neplatné argumenty pre funkciu
$(func)?? Neznáma funkcia
$(++) Príliš dlhý výstupný reťazec, vyhodnotenie bolo skrátené