Diálogo Control Language - Dialog Control Language

Diálogo Control Language (DCL) é uma linguagem de descrição de alto nível e intérprete dentro de AutoCAD para a criação de caixas de diálogo gráficas simples. AutoLISP extensões de usá-lo para interagir com o usuário no ambiente AutoCAD.

Recursos e uso

Ao contrário de outras APIs principais da GUI, DCL não é uma completa GUI kit de ferramentas para programação de aplicações. Destina-se apenas para fornecer diálogos simples dentro de AutoCAD. Ele inclui elementos do formulário básicas, tais como caixas de texto, botões, caixas e caixas de listagem. DCL é orientada para o objecto ; que permite a reutilização através de herança e composição.

Sintaxe DCL é baseada na definição e uso de 'azulejos'. A 'telha' representa um widget de GUI, como uma caixa de texto ou um rótulo de texto. Telhas também representam widgets que detêm outros widgets, como colunas, grupos de botões de rádio e os próprios diálogos. DCL fornece telhas embutidos para todos os principais widgets, e novas telhas pode ser definido por meio de herança e composição de outras telhas.

DCL permite interações com o diálogo em tempo de execução pelo código Lisp. Alguns widgets podem ter ações associadas a eles, nomeando um AutoLISP função a ser executada, e os valores a serem passados para ele. Ao contrário de outros tipos de interfaces gráficas de usuário, diálogos DCL não pode ser alterado substancialmente em tempo de execução. O conteúdo de determinados widgets, tais como caixas de texto e caixas de listagem pode ser alterado, mas elementos não pode ser removido ou adicionado à caixa de diálogo.

Exemplo

Aqui está um arquivo DCL (e acompanha exemplo AutoLISP arquivo) demonstrando as principais características da DCL.

name_button : button {
 label = "Submit name";
 action = "(change-name)"; 
}

hello : dialog {
 label = "DCL Example";
 
 : edit_box {
 label = "Name: ";
 key = "name";
 }

 : name_button {
 key = "submit-name";
 }

 : text {
 key = "greeting";
 }

 ok_only;
}

O diálogo é criada por herança da telha 'diálogo' built-in. Propriedades são definidas na caixa de diálogo e outros widgets em pares nome / valor. As telhas podem ser colocados no interior do diálogo apenas nomeando-os, ou nomeando-os e especificando propriedades adicionais. Uma nova telha ( 'name_button') é definida para utilização nomeando-o e especificando propriedades para ele.

; DCL is saved as "hello.dcl"
(defun change-name ()
  (set_tile "greeting" (strcat "Hello, " (get_tile "name") "!")))

(setq hello-dcl (load_dialog "hello.dcl"))
(new_dialog "hello" hello-dcl)
(start_dialog)
(unload_dialog hello-dcl)

Uma caixa de diálogo DCL é instanciado, chamando uma série de funções em um arquivo AutoLisp. As telhas podem chamar de volta para AutoLISP código em certos eventos, e Lisp podem manipular o conteúdo de telhas enquanto o diálogo está em execução.

tecnologias alternativas

Para a criação de GUIs mais gerais e outras extensões dentro de CAD, a Autodesk oferece várias outras opções. O ObjectARX API para C ++ permite extensões para ser construído como dentro do Microsoft Visual Studio. VBA permite a programação de arrastar-e-soltar para AutoCAD como para Microsoft Office e outras aplicações.

A partir do AutoCAD 2007 e, mais tarde, AutoLISP ou programas de Visual-LISP pode chamar rotinas escritos em Visual Studio .NET (VB ou C #). Os programadores podem agora criar diálogos em VB ou C # que têm toda a gama de controles encontrados no API .NET Formulários e podem ser chamados e acessados ​​a partir de Visual-LISP.

links externos