DCL Dialog Control Language: Introdução

Documentos relacionados
Concepção e Fabrico Assistido por Computador

EM GESTÃO E ENGENHARIA INDUSTRIAL Disciplina de Concepção e Fabrico Assistidos por Computador

Elbow flange coupling

Faculdade de Engenharia da Universidade do Porto Concepção e Fabrico Assistido por Computador. Relatório

UNIVERSIDADE DO PORTO

Exemplo: ; ver exemplo de aplicação abaixo com mapcar. ; retorna uma lista formada pelos elementos indicados. ; retorna o número de elementos na lista

AutoLISP - III Funções de repetição e condicionais, Obter e converter informação. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

Função condicional - if. AutoLISP - III Funções de repetição e condicionais, Obter e converter informação

CFAC: AutoLISP (I) - Introdução

@2007 João Manuel R. S. Tavares FEUP/DEMEGI/SDI. CFAC Concepção e Fabrico Assistidos por Computador

AutoLISP -I Introdução

AutoLISP - I Introdução. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

AutoLISP - IV Ambiente de programação Visual Lisp. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

VBA Visual Basic for Applications. APROG - Civil

Conjuntos de selecção

Progress DCA Desenvolvendo Aplicações Caracter Parte 1

Funções Geométricas, de Strings, de Listas e de Manipulação de Arquivos

Construção de Interfaces Gráficas Programa/Utilizador

AutoLISP -VII Funções Geométricas, de Strings, de Listas e de Manipulação de Arquivos

Módulo 1a: Introdução ao Visual Basic for Applications (VBA)

Instituto Superior Técnico Licenciatura em Arquitectura Desenho Assistido por Computador II Ano lectivo 2005/06, 2 ano

Objectos Gráficos 1. APROG (Civil) Aula 4

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO 9º PERÍODO. Profª Danielle Casillo

Fundamentos Programação

HTML BÁSICO E TEMPLATE VIEW. Gabrielle Amorim Porto

Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (perte I)

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Informática II Cap. 4-4

CFAC: Introdução ao AutoCAD - I. Capitulo I: Iniciação ao AutoCAD

Ambiente de programação Visual Lisp

Aplicações de Programação CNC/ISO com Microcomputador. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

Programação em MATLAB

Recursos Complementares (Tabelas e Formulários)

Utilizar atributos de blocos

Aplicações e Serviços de Internet

LISP - Introdução. Existem vários dialectos de LISP: COMMON LISP (o mais sofisticado e mais utilizado) Outros: MAC LISP, INTERLISP, XLISP

AutoLISP - VI Conjuntos de seleção

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO 11ºANO

Tutorial para Phred/Phrap/Consed Tutorial

COMPUTAÇÃO E PROGRAMAÇÃO

CFAC: Programação em FORTRAN - I

Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (parte II)

Programação em FORTRAN - I. João Manuel R. S. Tavares

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA total e disjuntiva.

Capítulo 4. Programação em ASP

Guia e Utilização do Visual Studio.NET 2003

Controles de entrada : caixas de seleção, botões de opção, listas suspensas, caixas de lista, botões, alternar, campos de texto, campo de data

Computação e Programação 2009 / 2010

Módulo 1a: Introdução ao Visual Basic for Applications (VBA) - Eventos, Gráficos e Interfaces gráficas -

COMPUTAÇÃO E PROGRAMAÇÃO

Introdução à linguagem C++

Computação II MAB EPT/EP1. Interface Gráfica - Tkinter. Brunno Goldstein.

Introdução ao AutoCAD Capitulo VI: Adicionar texto

Visual Basic. III Procedimentos. CFAC Concepção e Fabrico Assistidos por Computador. João Manuel R. S. Tavares

Introdução ao Sistema Operativo Windows. Informática

VGM. VGM information. ALIANÇA VGM WEB PORTAL USER GUIDE June 2016

CFAC: Visual Basic: III - Procedimentos

Tarefa Orientada 4 Aplic. Manutenção de Produtos - ComboBox

Cartão de Referência do GNU Emacs. Iniciando o Emacs. Procura Incremental. Saindo do Emacs. Arquivos. Movimento. Pedindo Ajuda.

Introdução à Programação Funcional. Conteúdo

Visual Basic.NET. Buttons, Checkboxes, Radio Buttons, Panels e Group Boxes. Professor: Danilo Giacobo

COMPUTAÇÃO E PROGRAMAÇÃO

20/02/2014. <HTML> Introdução </HTML> Web

Computação e Programação

Tabelas. Tabelas. Iniciando a construção... Atributos <table> Tag <table></table> 05/06/2011

Printer Driver UP-D898MD UP-X898MD. Antes de utilizar este controlador de impressora, leia o ficheiro Readme. Antes de utilizar este software

Introdução ao IDE Netbeans (Programação Java)

Saiba mais Scribd Carregar um documento Pesquisar Documentos Explorar. gersonjpl

Delphi 7 Aula 03 Progressão Geométrica

1 - Ambiente de desenvolvimento

Painel Administrativo Westlock

AMBIENTE URBANO E TRANSPORTES Sistemas de Informação Geográfica

Trabalho de AMSR. Especificação e Verificação de uma Câmara Fotográfica Digital. Problema a Resolver FEUP/MRSC/AMSR MPR. » Problema a concurso

Aplicações - VBA. Programação Interna

Este controlo tem de estar ligado a um campo, senão deve-se utilizar outro tipo de controlo.

Editor Eclipse para Programas F

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica

O Uso do Inglês para Resolver Tarefas

Visual Basic for Applications

Progress DCA Desenvolvendo Aplicações Caracter Parte 3

DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos. Interfaces Gráficas. Aula Francisco Regateiro 1

Integração por Web Services

Introdução ao ASP.NET

Guia de procedimentos para construir um programa java no IDE Sun One Studio 4 update 1, Community Edition

Manipulação de strings e conversão entre tipos de dados

INTRODUÇÃO AO DESENVOLVIMENTO FRONT-END COM HTML, CSS E JAVASCRIPT

HyperText Markup Language HTML. Formulário

Editor Eclipse para Programas F

How to use the system. Meike Borstelmann

1 o Ano - 1 o Semestre de 2017/2018 Série 9 (11/12/2017)

Sumário. DreamWeaver 8

Computação e Programação

Trabalho 2 - Engenharia Elétrica

2. Configurações Básicas

Volnys Bernal. Introdução à linguagem HTML. Introdução à linguagem HTML. Visão geral. Visão geral. Visão geral. Visão geral.

INTRODUÇÃO. JavaScript PROF. ME. HÉLIO ESPERIDIÃO

NOVO SISTEMA DE CORREIO ELETRONICO PARA OS DOMINIOS ic.uff.br & dcc.ic.uff.br

FORCE. João Manuel R. S. Tavares

ThinTemplates Parte 1

Transcrição:

DCL Dialog Control Language: Introdução João Manuel R. S. Tavares 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 2 João Manuel R. S. Tavares 1

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 3 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 : Ci Criação de um diálogo: Sintaxe: nome : dialog { conteúdo 4 João Manuel R. S. Tavares 2

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 Introdução (cont. Exemplo (ficheiro hello.lsp: (Defun c:hello ( (setq dcl_id (load_dialog "hello.dcl" (if (not (new_dialog "hello" dcl_id (exit ; o file é carregado ; verifica se existe o ficheiro ; se não existe saí (start_dialog dialogo (unload_dialog dcl_id ; é mostrada a caixa de ; retira a recém-criada caixa 6 João Manuel R. S. Tavares 3

Introdução (cont. Definição de um controlo (tile: nome : item1 [ : item2 : item3 ] { atributo = valor ; Referência a um controlo predefinido: : nome { atributo = valor ; 7 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 8 João Manuel R. S. Tavares 4

Introdução (cont. Exemplo (ok_cancel.dcl ex_cancel : dialog { // é dado o nome "ex_cancel" à // caixa de diálogo label = "Exemplo Ok_Cancel"; // título a aparecer na caixa spacer_0; // espaçamento ok_cancel; // botões "ok" e "cancel" // predefinidos 9 Introdução (cont. Exemplo (ficheiro hello1.lsp: (Defun c:hello ( (setq dcl_id (load_dialog "hello1.dcl" (if (not (new_dialog "hello" dcl_id (exit ; o ficheiro é carregado ; verifica se existe o ficheiro ; se não existe saí (start_dialog (unload_dialog dcl_id ; é mostrada a caixa de diálogo ; retira a recém-criada caixa 10 João Manuel R. S. Tavares 5

Controlos Predefinidos Exit Buttons e Error Tiles ok_only ok_cancel ok_cancel_help ok_cancel_help_errtile ok_cancel_help_info errtile Predefined Active Tiles button edit_box list_box popup_list radio_button toggle slider image_button Decorative e Informative Tiles image text spacer spacer_0 spacer_1 Text Clusters ncatenation paragraph text_part 11 Controlos Predefinidos (cont. Tile Clusters boxed_column boxed_radio_column boxed_radio_row boxed_row column dialog radio_column radio_row row 12 João Manuel R. S. Tavares 6

Atributos de Controlos Globais alignment fixed_height fixed_width id 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 Atributos de Controlos (cont. Tile Clusters children_alignment children_fixed_height _ children_fixed_width Aplicam-se a: row; column; radio_row; radio_column; boxed_row; boxed_column; boxed_radio_row; boxed_radio_column Specific Tiles allow_accept Aplicam-se a: edit_box; image_button; list_box aspect_ration Aplicam-se a: image; image_button big_increment Aplicam-se a: slider 14 João Manuel R. S. Tavares 7

Atributos de Controlos (cont. Specific Tiles (cont. color Aplicam-se a: image; image_button edit_limit Aplicam-se a: edit_box edit_width Aplicam-se a: edit_box; popup_list fixed_width_font Aplicam-se a: edit_box; popup_list initial_focus Aplicam-se a: dialog is_cancel Aplicam-se a: button 15 Atributos de Controlos (cont. Specific Tiles (cont. is_default Aplicam-se a: button label Aplicam-se a: boxed_row; boxed_column; boxed_radio_row; boxed_radio_column; button; dialog; edit_box; list_box; popup_list; radio_button; text; toggle layout Aplicam-se a: slider list Aplicam-se a: list_box; popup_list max_value Aplicam-se a: slider min_value Aplicam-se a: slider 16 João Manuel R. S. Tavares 8

Atributos de Controlos (cont. Specific Tiles (cont. multiple_select Aplicam-se a: list_box password_char Aplicam-se a: edit_box small_increment Aplicam-se a: slider tabs Aplicam-se a: list_box; popup_list tab_truncatetruncate Aplicam-se a: list_box; popup_list value Aplicam-se a: text; todos active tiles (excepto buttons e image_buttons 17 Funções AutoLISP para diálogos DCL (load_dialog ficheiro.dcl ; carrega file (new_dialog nome dcl_id acção ecrã ; carrega diálogo (start_dialog _ ; mostra diálogo (done_dialog saida ; fecha diálogo e retorna saída (term_dialog ; fecha todos diálogos abertos (unload_dialog dcl_id ; descarrega diálogo (action_tile key expressão ; estabelece acção para tile key (get_attr key atributo ; obter valor do tile key (string (get_tilet til key ; obter valor do tile key (string ti (set_tile key valor ; atribuir valor para o tile key (string (mode_tile key modo ; define modo (0 - activa, 1 - desactiva, 2 - destaca, 3 - selecciona conteúdo, 4 - muda destaque de uma imagem 18 João Manuel R. S. Tavares 9

Funções AutoLISP para diálogos DCL (cont. (start_list key operação indice ; inicia lista (add_list string ; adiciona string numa lista (end_list d ; termina lista (start_image key ; inicia criação de imagem (dimx_tile key ; dimensão de imagem em x (dimy_tile key ; dimensão de imagem em y (vector_image xini yini xfim yfim cor ; desenha vector (fill_image xini yini larg alt cor ; desenha rectângulo (slide_image xini yini larg alt nomeslide ; inserir slide (end_image ; termina criação de imagem 19 Funções AutoLISP para diálogos DCL (cont. 20 João Manuel R. S. Tavares 10

Funções AutoLISP para diálogos DCL (cont. 21 Funções AutoLISP para diálogos DCL (cont. 22 João Manuel R. S. Tavares 11

Funções AutoLISP para diálogos DCL (cont. 23 Funções AutoLISP para diálogos DCL (cont. 24 João Manuel R. S. Tavares 12

Funções AutoLISP para diálogos DCL (cont. 25 Funções AutoLISP para diálogos DCL (cont. 26 João Manuel R. S. Tavares 13

Exemplo: file TEST_DCL1.DCL //DCL CODING STARTS HERE test_dcl1 : dialog { label = "Test Dialog No 1"; : text // controlo de texto { label = "This is a Test Message"; alignment = centered; : button // definição de um botão { key = "accept"; // nome do botão label = "Close"; // etiqueta do botão is_default = true; // controlo por defeito fixed_width = true; alignment = centered; // alinhamento //DCL CODING ENDS HERE 27 Exemplo: file TEST_DCL1.LSP ; AUTOLISP CODING STARTS HERE (prompt "\ntype TEST_DCL1 to run..." ; indicação no prompt do autocad após load do programa (defun C:TEST_DCL1 ( (setq dcl_id (load_dialog dialog "test_dcl1.dcl dcl" ; load do ficheiro de definição (if (not (new_dialog "test_dcl1" dcl_id ; carregamento do diálogo em memoria (exit ; if (action_tile "accept" "(done_dialog" ; action_tile quando carrega no botão, fecha o diálogo (start_dialog ; mostrar diálogo (unload_dialog dcl_id ; descarregar o diálogo da memoria (princ ; defun (princ ; AUTOLISP CODING ENDS HERE 28 João Manuel R. S. Tavares 14

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 29 Exemplo: file TEST_DCL2.DCL 30 //DCL CODING STARTS HERE test_dcl2 : dialog { label = "Test Dialog No 2"; : edit_box { label = "Enter Your Name :"; mnemonic = "N"; // char sublinhado key = "name"; alignment = centered; edit_limit = 30; // max. 30 chars edit_width = 30; : edit_box { label = "Enter Your Age :"; mnemonic = "A"; key = "age"; // larg. max. 30 chars alignment = centered; edit_limit = 3; // input max. 3 chars edit_width = 3; // largura max. 3 chars value = ""; // valor inicial : button { key = "accept"; label = "OK"; is_default = true; fixed_width = true; alignment = centered; : errtile // para mensagem de erro { width = 34; //DCL CODING ENDS HERE João Manuel R. S. Tavares 15

Exemplo: file TEST_DCL2.LSP 31 ; AUTOLISP CODING STARTS HERE (prompt "\ntype TEST_DCL2 to run..." (defun C:TEST_DCL2 (/ dcl_id (setq dcl_id (load_dialog "test_dcl2.dcl" (if (not (new_dialog "test_dcl2" dcl_id (exit ; if (set_tile "name" "Enter Name Here" ; define conteúdo em run-time (mode_tile "name" 2 ; permite override (action_tile "name" "(setq name $value" ; após selecção atribui valor à variável name (action_tile "age" "(setq age $value" ; após selecção atribui valor à variável age (action_tile "accept" "(val1" ; após selecção chama subprograma (start_dialog ; mostra dál diálogo (unload_dialog dcl_id (alert (strcat "Your name is " name ; message box "\nand you are " age " years of age." Exemplo: file TEST_DCL2.LSP (cont. 32 (princ ; defun ;----------------------- (defun val1 ( (if (= (get_tile "name" "Enter Name Here" ; receber valor no controlo (progn (set_tile "error" "You must enter a name!" ; por valor no controlo (mode_tile "name" 2 ; progn (val2 ; chama subprograma ; if ; defun ;------------------- (defun val2 ( (if (< (atoi (get_tile "age" 1 ; receber valor no controlo (progn (set_tile "error" "Invalid Age - Please Try Again!!" ; por valor no controlo (mode_tile "age" 2 João Manuel R. S. Tavares 16

Exemplo: file TEST_DCL2.LSP (cont. ; progn (done_dialog ; fecha diálogo ; if ; defun (princ ;AUTOLISP CODING ENDS HERE 33 Exemplo: file TEST_DCL3.DCL 34 afra : dialog { label = "A" ; : column { : row { : button { label = "OK"; key = "accept"; mnemonic = "O"; alignment = centered; width = 12; is_default = true; // tem de existir um // default : button { label = "Cancel"; key = "cancel"; mnemonic = "C"; alignment = centered; width = 12; : row { : button { label = "Save"; key = "save"; mnemonic = "S"; alignment = centered; width = 12; : button { label = "Load"; key = "load"; mnemonic = "L"; alignment = centered; width = 12; João Manuel R. S. Tavares 17

Exemplo: file TEST_DCL3.DCL (cont. : row { : button { label = "Help..."; key = "help"; mnemonic = "H"; alignment = centered; width = 12; : button { label = "About..."; key = "About"; mnemonic = "H"; alignment = centered; width = 12; 35 Exemplo: file TEST_DCL3.LSP ; AUTOLISP CODING STARTS HERE (prompt "\ntype TEST_DCL3 to run..." (defun C:TEST_DCL3 (/ dcl_id (setq dcl_id (load_dialog " TEST_DCL3.DCL" (if (not (new_dialog "afra" dcl_id (exit ; if (start_dialog ; sai do diálogo quando seleccionar o botão OK (unload_dialog d l dcl_id d (princ ; defun 36 João Manuel R. S. Tavares 18

Exemplo: file TEST_DCL4.DCL samp : dialog { //dialog name label = "Structural Holes" ; //give it a label : row { //define row : boxed_radio_column { //define radio column label = "Type" ; //give it a label : radio_button { //define radion button key = "rb1" ; //give it a name label = "Bolt Holes &Site" ; //give it a label value = "1" ; //switch it on //end definition : radio_button { //define radio button key = "rb2" ; //give it a name label l = "Bolt Holes Sho&p" ; //give it a label l //end definition : radio_button { //define radio button key = "rb3" ; //give it a name label = "Bolt Holes &Hidden" ; //give it a label //end definition 37 Exemplo: file TEST_DCL4.DCL (cont. 38 : radio_button { //define radio button key = "rb4" ; //give it a name label = "Bolt Holes &Ctsnk" ; //give it a label //end definition : radio_button { //define radio button key = "rb5" ; //give it a name label = "Bolt Holes &Elevation" ; //give it a label //end definition : radio_button { //define radion button key = "rb6" ; //give it a name label = "Bolt Holes &Slotted" ; //give it a label //end definition //end radio column : boxed_column { //define boxed column label = "&Size"; //give it a label : popup_list { //define popup list key = "selections"; //give it a name value = "5 ; //initial value João Manuel R. S. Tavares 19

Exemplo: file TEST_DCL4.DCL (cont. //end boxed column //end row : edit_box { //define edit box key = "eb1" ; //give it a name label = "Slot &Length (O/All Slot" ; //give it a label edit_width = 6 ; //6 characters only //end edit box : slider { //defin slider key = "myslider" ; //give it a name max_value = 100; //upper value min_value = 0; //lower value value = "50"; //initial value //end slider : boxed_row { //*define boxed row : toggle { //*define toggle key = "tog1"; //*give it a name label = "Ortho On/Off"; //*give it a label 39 Exemplo: file TEST_DCL4.DCL (cont. 40 : toggle { //*define toggle key = "tog2"; //*give it a name label = "Snap On/Off"; //*give it a label //*end definition //*end boxed row ok_cancel ; //predifined OK/Cancel : row { //define row : image { //define image tile key = "im" ; //give it a name height = 1.0 ; //and a height width = 1.0 ; //and now a width //end image : paragraph { : text_part { //define paragraph //define text label = "Designed and Created"; //give it some text //end text : text_part { //define more text label = "by Kenny Ramage"; //some more text //end text João Manuel R. S. Tavares 20

Exemplo: file TEST_DCL4.DCL (cont. //end paragraph //end row //end dialog 41 Exemplo: file TEST_DCL4.LSP (defun C:samp ( ; define function (setq lngth 50.0 ; preset slot length (setq hole "site" ; preset hole type (setq siz "M20" ; preset hole size (setq NAMES '("M6" "M8" "M10" "M12" "M16" "M20" "M24" "M30 ; define list (setq ; setq dcl_id (load_dialog " TEST_DCL4.DCL" ; load dialog (if (not (new_dialog "samp" dcl_id ; test for dialog ; not (exit ; exit if no dialog ; if (setq w (dimx_tile "im" ; get image tile width h (dimy_tile "im" ; get image tile height ; setq 42 João Manuel R. S. Tavares 21

Exemplo: file TEST_DCL4.LSP (cont. (start_image "im" ; start the image (fill_image 0 0 w h 5 ; fill it with blue (end_image ; end image (start_list "selections" ; start the list box (mapcar 'add_list NAMES ; fill the list box (end_list ; end list (set_tile "eb1" "50" ; put dat into edit box (mode_tile "eb1" 1 ; disable edit box (mode_tile "myslider" 1 ; disable slider (setq orth (itoa (getvar "orthomode" ; *get orthomode value (set_tile "tog1" orth ; *switch toggle on or off (setq sna (itoa (getvar "snapmode" ; *get snap value (set_tile "tog2" sna ; *switch toggle on or off (action_tile "myslider" ; if user moves slider "(slider_action $value $reason" ; pass arguments to slider_action 43 Exemplo: file TEST_DCL4.LSP (cont. (action_tile "eb1" ; is user enters slot length "(ebox_action $value $reason" ; pass arguments to ebox_action (defun slider_action (val why ; define function (if (or (= why 2 (= why 1 ; check values (set_tile "eb1" val ; update edit box (defun ebox_action (val why ; define function (if (or (= why 2 (= why 1 ; check values (set_tile "myslider" val ; update slider (action_tile "tog1" "(setq orth $value" ; *get ortho toggle value (action_tile "tog2" "(setq sna $value" ; *get snap toggle value (action_tile "rb1" "(setq hole \"site\"" ; store hole type (action_tile "rb2" "(setq hole \"shop\"" ; store hole type 44 João Manuel R. S. Tavares 22

Exemplo: file TEST_DCL4.LSP (cont. (action_tile "rb3" "(setq hole \"hid\"" ; store hole type (action_tile "rb4" "(setq hole \"ctsk\"" ; store hole type (action_tile "rb5" "(setq hole \"elev\"" ; store hole type (action_tile "rb6" "(setq hole \"slot\" ; store hole type (mode_tile \"eb1\" 0 ; enable edit box (mode_tile \"myslider\" 0 ; enable slider (mode_tile \"eb1\" 2" ; switch focus to edit box (action_tile "cancel" ; if cancel button pressed "(done_dialog d (setq userclick nil" ; close dialog, set flag ; action_tile (action_tile "accept" ; if O.K. pressed (strcat ; string 'em together "(progn 45 Exemplo: file TEST_DCL4.LSP (cont. (setq SIZ (atof (get_tile \"selections\"" ; get list selection "(setq lngth (atof (get_tile \"eb1\"" ; get slot length "(setvar \"orthomode\" (atoi orth" ; *ortho on/off "(setvar \"snapmode\" (atoi sna" ; *snap on/off " (done_dialog(setq userclick T" ; close dialog, set flag ; strcat ; action tile (start_dialog ; start dialog (unload_dialog dcl_id ; unload (if userclick ; check O.K. was selected (progn (setq SIZ (fix SIZ ; convert to integer (setq SIZ (nth SIZ NAMES ; get the size ; progn 46 ; if userclick (princ ; defun C:samp (princ João Manuel R. S. Tavares 23