Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Bibliografia
Material disponível no AfraLisp.net em http://www.afralisp.net
Programação em AutoCAD, Curso Completo
Fernando Luís Ferreira, João Santos
FCA
Sistema de ajuda do AutoCAD
Introdução
A Dialog Control Language permite criar interfaces gráficas (caixas de
diálogo e de mensagens) para aplicações em AutoLISP/Visual Lisp
Cada caixa de diálogo deve ser definida (dialog definition) em ficheiros
de definição com a extensão dcl
Cada controlo de um diálogo necessita ser definido (tile definition) e é
referenciado no código lisp pelo seu nome (key)
Cada propriedade (property) de um controlo (tile) é designada por
atributo do diálogo (attribute)
Cada método de um controlo é designado por expressão de acção
(action expression)
O Visual Lisp Editor possibilita a previsão de um diálogo definido num
ficheiro dcl (em Tools, Interface Tools)
Introdução (cont.)
No ficheiro base.dcl do AutoCAD existem definições e estruturas úteis que
podem ser usadas (para usar, incluir @include "base.dcl" no ficheiro
respectivo)
Na definição dos diálogos (ficheiros dcl):
São usados { } em vez de ( )
Para definir propriedades usa-se o sinal =
As linhas de atributos terminam com ;
Comentários são indicados com // ou /* */
As definições são iniciadas com :
Criação
C i ã dde um diál
diálogo:
Sintaxe: nome : dialog { conteúdo }
Introdução (cont.)
Exemplo (ficheiro hello.dcl):
hello : dialog { // é dado o nome "hello" à
// caixa de diálogo
label = "Primeira Caixa de Diálogo"; // título a aparecer na caixa
: text { // início de zona de texto
label = "Hello, world"; // texto a aparecer
} // fim da zona de texto
: button { // é criado um botão OK para terminar
key = "terminado"; // o valor da tecla
label = "OK"; // o nome da tecla
is_default = true; // declara que este é o botão por omissão
} // fim do botão "ok"
}
5 CFAC: DCL - Dialog Control Language: Introdução 2009@João Tavares
Introdução (cont.)
Exemplo (ficheiro hello.lsp):
(Defun c:hello ()
(start_dialog)
d l ; é mostrada
d a caixa de
d
dialogo
(unload_dialog dcl_id) ; retira a recém-criada caixa
)
Introdução (cont.)
Definição de um controlo (tile):
nome : item1 [ : item2 : item3 …]
{ atributo = valor ; … }
Referência a um controlo predefinido:
: nome {
atributo = valor ;
…
}
Introdução (cont.)
Exemplo (ficheiro hello1.dcl):
hello : dialog { // é dado o nome "hello" à
// caixa de diálogo
label = "Primeira Caixa de Diálogo"; // título a aparecer na caixa
: text { // início de zona de texto
label = "Hello, world"; // texto a aparecer
} // fim da zona de texto
ok_only; // botão "ok" predefinido
}
Introdução (cont.)
Exemplo (ok_cancel.dcl)
ex_cancel : dialog { // é dado o nome "ex_cancel" à
// caixa
i dde diál
diálogo
label = "Exemplo Ok_Cancel"; // título a aparecer na caixa
spacer_0; // espaçamento
ok_cancel; // botões "ok" e "cancel"
// predefinidos
}
Introdução (cont.)
Exemplo (ficheiro hello1.lsp):
(Defun c:hello ()
(setq dcl_id (load_dialog "hello1.dcl")) ; o ficheiro é carregado
(if (not (new_dialog "hello" dcl_id)) ; verifica se existe o ficheiro
(exit) ; se não existe saí
)
Controlos Predefinidos
Exit Buttons e Error Tiles Decorative e Informative Tiles
ok_only
image
ok_cancel
text
ok_cancel_help
ok cancel help
ok_cancel_help_errtile spacer
ok_cancel_help_info spacer_0
errtile spacer_1
Predefined Active Tiles Text Clusters
button
ncatenation
edit_box
list_box paragraph
popup_list text_part
radio_button
toggle
slider
image_button
Atributos de Controlos
Globais
alignment
fixed_height
fixed_width
fi d id h
height
width
Aplicam-se a: All Tiles
Action Tiles
action
is_enabled
is_tab_stop
key
mnemonic
Aplicam-se a: button; edit_box; image_button; list_box; popup_list;
radio_button; slider; toggle; radio_column; radio_row
13 CFAC: DCL - Dialog Control Language: Introdução 2009@João Tavares
Exemplo: Notas
Cada linha de atributo no ficheiro de definição do diálogo
termina com ;
Comentários indicados com //
Sensível a maiúsculas e a minúsculas
Sequência de utilização:
Load do ficheiro do diálogo
Load da definição do diálogo
Executar instrução(ões)
ç ( ) action_tile
Iniciar o diálogo
Descarregar o diálogo da memória
) ; if userclick
(princ)
) ; defun C:samp
(princ)
46 CFAC: DCL - Dialog Control Language: Introdução 2009@João Tavares