(action_tile key action-expression) |
|
Argumenty: |
|
key
|
- řetězec určující prvek dialogového boxu (atribut key
v popisu dialogového boxu). Pozor argument je case-sensitive |
|
action-expression
|
- řetězec (sekvence) vykonaný, když je vybrán prvek dialogu
|
|
|
- může odkazovat na: |
|
|
$value
|
- aktuální hodnotu dialogového prvku |
|
|
$key
|
- jméno |
|
|
$data
|
- aplikačně-specifická data (jako množinu nastavenou pomocí
client_data_tile) |
|
|
$reason
|
- návratovou hodnotu |
|
|
$x a $y
|
- souřadnice obrázku (v případě, že prvek je image_button) |
|
Popis: |
|
- přiřadí akci, která bude vyvolána při aktivaci specifikovaného
prvku v dialogovém boxu |
|
- akce přiřazená pomocí action_tile převezme standardní akci
(přiřazenou pomocí new_dialog) nebo pomocí atributu dialogového prvku
- action, pokud jsou tyto specifikovány |
|
Pozor: |
|
- z funkce action_tile nelze vyvolat funkci command |
|
Návratové hodnoty: |
|
- T |
|
Příklady: |
|
Předpokládejme, že máme dialogový box, který obsahuje prvek
text_box se jménem edit1. Dále v obslužném programu AutoLISPu
se nachází následující volání funkce action_tile, která bude vyvolána
po opuštění prvku text box: |
|
(action_tile "edit1" "(setq ns $value)") |
|
|
vrací: po opuštění prvku text box (edit1) bude vyvolán
kód v těle funkce action_tile |
(add_list string) |
|
Argumenty: |
|
string
|
- řetězec |
|
Popis: |
|
- přidá nebo modifikuje řetězec v seznamu právě aktivního
dialogového boxu |
|
- před použitím add_list, musíme nejprve otevřít a
inicializovat seznam pomocí volání funkce start_list. Funkce start_list
určuje zda bude řetězec string přidán nebo nahradí aktuální položku seznamu |
|
Návratové hodnoty: |
|
- řetězec přidaný do seznamu - proběhlo-li vše v pořádku |
|
- nil - v opačném případě |
|
Příklady: |
|
Předpokládejme, že právě aktivní DCL soubor obsahuje popup_list
nebo list_box s klíčem longlist. Následující sekvence
kódu inicializuje seznam a přidá do něj položky ze seznamu hodnot llist: |
|
(setq llist '("first line" "second line" "third line"))
|
|
(start_list "longlist") |
|
(mapcar 'add_list llist) |
|
(end_list) |
|
|
- definice položek zobrazených v dialogových prvcích popup_list
nebo list_box |
|
|
|
Změna druhé položky v dialogovém prvku: |
|
(start_list "longlist" 1 0) |
|
(add_list "2nd line") |
|
(end_list) |
(done_dialog [status]) |
|
Argumenty: |
|
status
|
- kladné celé číslo, které vrací funkce
start_dialog namísto 1 pro OK nebo 0 pro
Cancel |
|
|
- všechny hodnoty argumentu status
větší než 1 je možné využít ve vaší aplikaci |
|
Popis: |
|
- ukončí dialogový box |
|
Poznámka: |
|
- musíte zavolat funkci done_dialog
zevnitř výrazu nebo funkce zpětného volání (podívej se na
action_tile) |
|
Návratové hodnoty: |
|
- 2D souřadnice
bodu - určují pozici dialogového boxu, když ho uživatel opustil |
|
Poznámky k použití: |
|
Pokud potřebujete zajistit návrat pro tlačítko jehož klíč je
"accept" nebo "cancel" (zpravidla se jedná o tlačítka OK a Cancel), musí
být zpětné volání done_dialog explicitní. Pokud tomu tak není, uživatel
může být uvězněn v dialogovém boxu. |
|
Pokud nepotřebujete explicitně volat
tyto tlačítka a používáte standardní návratové tlačítko, AutoCAD je
obslouží automaticky. |
|
Kromě toho, explicitní akce AutoLISPu
pro tlačítko "accept" musí být specifikována hodnotou status = 1 (nebo
aplikací definovanou hodnotou); v opačném případu, vrací start_dialog
standardní hodnotu, 0, která signalizuje, že dialogový box byl
stornován |
(fill_image x1 y1 width height
color) |
|
Argumenty: |
|
x1
|
- x-ová souřadnice levého horního rohu
obdelníku umístěného v (x1, y1). Musí být
kladná hodnota. |
|
y1
|
- y-ová souřadnice levého horního rohu.
Musí být kladná hodnota. |
|
width
|
- šířka vyplněné oblasti (v pixelech),
relativně k x1. |
|
height
|
- výška vyplněné oblasti (v pixelech),
relativně k y1. |
|
color |
- číslo barvy v AutoCADu, nebo jedno z
následujících logických čísel barev z tabulky: |
|
|
Číslo
barvy |
aDI
mnemonicky |
Popis |
|
|
-2 |
BGLCOLOR |
aktuální pozadí grafické obrazovky AutoCADu. |
|
|
-15 |
DBGLCOLOR |
aktuální barva pozadí dialogového boxu. |
|
|
-16 |
DFGLCOLOR |
aktuální barva popředí (textu) dialogového boxu |
|
|
-18 |
LINELCOLOR |
aktuální barva čar v dialogovém boxu. |
|
Popis: |
|
- nakreslí vyplněný obdelník v aktivním
prvku image v dialogovém boxu |
|
- první (levý-horní) roh obdelníku je
umístěn v bodu se souřadnicemi (x1, y1) a druhý (pravý-dolní) roh je
umístěn v relativní vzdálenosti (width, height) od prvního rohu |
|
- počátek (0, 0) je levý-horní roh
obrázku |
|
Poznámka: |
|
- funkce fill_image musí být použito mezi voláním funkcí
start_image a end_image |
|
- AutoLISP umožňuje získat souřadnice
pravého-dolního rohu pomocí volání funkcí dimx_tile a dimy_tile |
|
Návratové hodnoty: |
|
- celé
číslo - reprezentující barvu výplně |
|
Příklad: |
|
Příklad vyplnění obdelníku v dialogovém
boxu barvou s kódem -2: |
|
(setq color -2)
;; barva pozadí obrazovky AutoCADu |
|
(fill_image
|
|
|
0 |
|
|
|
0 |
|
|
|
(dimx_tile
"slide_tile") |
|
|
(dimy_tile
"slide_tile") |
|
|
color
|
|
) |
|
(end_image)
|
(initdia [dialogflag]) |
|
Argumenty: |
|
dialogflag |
- celé číslo. |
|
|
- není-li argument uveden nebo je roven nenulové hodnotě, další
použití příkazu zobrazí dialogový box (místo zadání v příkazovém řádku) |
|
|
- je-li argument roven 0, všechny předchozí volání funkce jsou
vymazány, obnoví se standardní chování rozhraní příkazové řádky |
|
Popis: |
|
- zobrazí dialogový box pro zadání hodnot místo dotazů v příkazové
řádce |
|
- následující příkazy mohou používat funkci initdia: |
|
|
- aTTDEF |
- aTTEXT |
- BHaTCH |
|
|
- BLOCK |
- COLOR |
- IMaGE |
|
|
- IMaGEaDJUST |
- INSERT |
- LaYER |
|
|
- LINETYPE |
- MTEXT |
- PLOT |
|
|
- RENaME |
- STYLE |
- TOOLBaR |
|
|
- VIEW |
|
|
|
Návratové hodnoty: |
|
- nil |
|
Příklady: |
|
Ukázka výsledku volání příkazu PLOT bez použití funkce initdia: |
|
Příkaz: (command "_.PLOT") |
|
|
plot |
|
|
Enter a layout name : nil |
|
|
Enter a layout name : |
|
- AutoCAD se bude dotazovat na zadání jednotlivých parametrů
pomocí příkazové řádky |
|
|
|
Použijete-li před voláním příkazu PLOT funkci initdia
(viz následující příklad), otevře se dialogový box PLOT: |
|
|
(initdia) |
|
|
(command "_.PLOT") |
(load_dialog dclfile) |
|
Argumenty: |
|
dclfile
|
- řetězec specifikující DCL soubor,
který se má nahrát.Pokud není uvedena koncovka, je automaticky přidána
koncovka .dcl |
|
Popis: |
|
- nahraje DCL soubor (soubor s popisem
dialogového boxu) |
|
- funkce hledá soubor ve vyhledávací
cestě AutoCADu |
|
- tato funkce je doplňková funkce k
funkci unload_dialog |
|
- pomocí vícenásobného volání funkce load_dialog je možné nahrát vícenásobné DCL
soubory |
|
Návratové hodnoty: |
|
- kladné celé
číslo (dcl_id) - pokud proběhne vše v pořádku |
|
- záporné celé
číslo - pokud load_dialog nemůže otevřít
soubor |
|
Poznámka: |
|
- dcl_id je
použito jako ukazatel v subsekvenci volání funkcí new_dialog a unload_dialog |
(new_dialog dlgname dcl_id
[action [screen-pt]]) |
|
Argumenty: |
|
dlgname |
- řetězec specifikující dialogový
box |
|
dcl_id |
- identifikátor DCL souboru, získaný
funkcí load_dialog |
|
action |
- řetězec obsahující výrazy AutoLISPu -
implicitní akce |
|
|
- pokud nepotřebujete definovat
implicitní akci, musíte uvést prázdný řetězec ("") |
|
|
- argument action je vyžadován v
případě použití argumentu screen-pt |
|
|
- tento argument se používá pro
přiřazení akce dialogovému prvku, který nemá odchycené zpětné volání
pomocí funkce action_tile nebo v DCL souboru |
|
screen-pt |
- seznam 2D bodu - souřadnice (X,Y) -
umístěnní dialogového boxu na obrazovce. |
|
|
- tento bod reprezentuje levý-horní roh
dialogového boxu |
|
|
- pokud jsou souřadnice rovné (-1, -1)
je otevřený dialogový box umístěn do středu grafické obrazovky
AutoCADu |
|
Popis: |
|
- začne používat nový dialogový box, zobrazí ho a může také
specfikovat implicitní akci |
|
Návratové hodnoty: |
|
- T - vše
proběhlo v pořádku |
|
- nil - v
opačném případě |
(slide_image x1 y1 width height
sldname) |
|
Argumenty: |
|
x1 |
- x-ová vzdálenost od levého horního
rohu prvku v pixelech. Musí být kladná hodnota. |
|
y1 |
- y-ová vzdálenost od levého horního
rohu prvku v pixelech. Musí být kladná hodnota. |
|
width |
- šířka obrázku (v pixelech) |
|
height |
- výška obrázku (v pixelech) |
|
sldname |
- identifikátor slidu |
|
|
- argument může být soubor se slidem
(.sld) nebo slide v slide library (.slb) |
|
|
- formát argumentu sldname: |
|
|
|
sldname - případ souboru se slidem |
|
|
|
libname(sldname) - případ slide library |
|
Popis: |
|
- zobrazí slide AutoCADu v právě
aktivním dialogovém prvku image |
|
Návratové hodnoty: |
|
- řetězec obsahující sldname |
|
Příklady: |
|
Příklad zobrazení slidu ze souboru "myslide": |
|
(slide_image
|
|
|
0 |
|
|
0 |
|
|
(dimx_tile
"slide_tile") |
|
|
(dimy_tile
"slide_tile") |
|
|
"myslide"
|
|
) |
|
(end_image)
|
(start_dialog) |
|
Popis: |
|
- zobrazí dialogový box a začne akceptovat vstup
od uživatele |
|
- nejdříve se musí inicializovat dialogový box
pomocí volání funkce new_dialog |
|
- otevřený dialog zůstane aktivní až do volání
funkce done_dialog |
|
- funkce done_dialog je obvykle svázána prvkem,
který má klíč key = "accept" - většinou tlačítko OK a prvkem, který má klíč
key = "cancel" - většinou tlačítko "cancel" |
|
Návratové hodnoty: |
|
- start_dialog vrací nepovinný stav poslaný funkci done_dialog |
|
- výchozí hodnota je 1 - uživatel zmáčkl OK |
|
- 0 pokud uživatel zmáčkl Cancel |
|
- -1 pokud všechny dialogové boxy jsou ukončeny pomocí term_dialog |
|
- pokud je funkci done_dialog předána hodnota status > 1, funkce start_dialog
vrátí tuto hodnotu. Tuto hodnotu je možné poté zpracováno v aplikaci. |
(start_list key [operation
[index]]) |
|
Argumenty: |
|
key |
- řetězec specifikující prvek
dialogového boxu. argument je case-sensitive. |
|
operation |
- celé číslo, indikující typ operace se
seznamem. Jsou možné následující hodnoty: |
|
|
|
1 |
- změní obsah vybraného seznamu |
|
|
|
2 |
- přídá nový prvek do seznamu |
|
|
|
3 |
- vymaže starý seznam a vytvoří nový (implicitní hodnota) |
|
index |
- číslo identifikující měněnou položku
seznamu voláním funkce add_list |
|
|
- první položka v seznamu má index
rovný 0 |
|
|
- není-li specifikovaná hodnota indexu,
bere se implicitní hodnota = 0 |
|
|
- argument index je ignorován v
případě, že start_dialog nevykonává operaci
změny (argument operation = 2, nebo 3) |
|
Popis: |
|
- spustí zpracování seznamu v
dialogovém prvku list_box nebo popup_list |
|
- po volání funkce start_list jsou volány funkce add_list a end_list.
Poslední jmenovaná funkce ukončuje zpracování seznamu (je doplňkem k
funkci start_list) |
|
Návratové hodnoty: |
|
- jméno
spuštěného seznamu |
|
Poznámka: |
|
- nepoužívejte funkci set_tile mezi voláním funkcí start_list a end_list
|
(vector_image x1 y1 x2 y2
color) |
|
Argumenty: |
|
x1
|
- x-ová souřadnice prvního bodu. |
|
y1
|
- y-ová souřadnice prvního bodu. |
|
x2 |
- x-ová souřadnice druhého bodu. |
|
y2 |
- y-ová souřadnice druhého bodu.. |
|
color
|
- číslo barvy v AutoCADu, nebo jedno z
následujících logických čísel barev z tabulky: |
|
|
Číslo
barvy |
aDI
mnemonicky |
Popis |
|
|
-2 |
BGLCOLOR |
aktuální pozadí grafické obrazovky AutoCADu. |
|
|
-15 |
DBGLCOLOR |
aktuální barva pozadí dialogového boxu. |
|
|
-16 |
DFGLCOLOR |
aktuální barva popředí (textu) dialogového boxu |
|
|
-18 |
LINELCOLOR |
aktuální barva čar v dialogovém boxu. |
|
Popis: |
|
- nakreslí vektor v aktivním prvku
image v dialogovém boxu |
|
- nakreslený vektor začíná v bodě (x1,
y1) a končí v bodě (x2, y2) |
|
- počátek (0, 0) je levý-horní roh
obrázku |
|
Poznámka: |
|
- funkce vector_image musí být použito mezi voláním funkcí
start_image a end_image |
|
- AutoLISP umožňuje získat souřadnice
pravého-dolního rohu pomocí volání funkcí dimx_tile a dimy_tile |
|
Návratové hodnoty: |
|
- celé číslo
reprezentující barvu vektoru |
|
Příklad: |
|
Příklad nakreslení vektoru v dialogovém
boxu barvou s kódem -2: |
|
(setq color -2)
;; barva pozadí obrazovky AutoCADu |
|
(vector_image
|
|
|
0 |
|
|
|
0 |
|
|
|
(dimx_tile
"slide_tile") |
|
|
(dimy_tile
"slide_tile") |
|
|
color
|
|
) |
|
(end_image)
|