AutoLISP -I Introdução

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

CFAC: AutoLISP (I) - Introdução

AutoLISP -II Cálculos, Variáveis e Listas

AutoLISP - II Cálculos, Variáveis e Listas. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

CFAC: AutoLISP (II) - Cálculos, Variáveis e Listas

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

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

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

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

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

AutoLISP - VI Conjuntos de seleção

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

AutoLISP -V Manipulação de entidades

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

GERAÇÃO GRÁFICA DE MALHA DE ELEMENTOS FINITOS ATRAVÉS DO AUTOCAD EM 2-D

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

Programação Orientada a Objetos. Programação Funcional

Conjuntos de selecção

Porque usar um montador? Formato de uma linha de código fonte:

Ambiente de programação Visual Lisp

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

para facilitar o trabalho com listas listas Cell model Lista é representada através de uma lista de células

Docentes. JOF/João Manuel R. S. Tavares 1. Eng. Joaquim Fonseca. Prof. José Marafona. MIEM Mestrado Integrado em Engenharia Mecânica

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

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

Programação Funcional. Programação Funcional LISP. Paradigma de programação baseado em Funções Matemáticas

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

TCC 00308: Programação de Computadores I Organização de programas em Python

Programação Estruturada Aula 2 - Introdução

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

Esta pseudomáquina foi criada em homenagem ao homem de Neandertal, o antecessor do homo sapiens.

Ambiente de Programação, rastreamento e entrada de dados. MCG114 Programação de Computadores I. Interpretador de Comandos. Interpretador de Comandos

Uma Aula Prática sobre LISP

CONCEITOS DE ALGORITMOS

Algoritmos e Programação

ANEXO I. O Ambiente de desenvolvimento MpLab IDE v6.62

1.2 Organização de directórios e ficheiros A linha de comandos

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Linguagens de Programação

Ambiente de desenvolvimento

Universidade Estadual do Maranhão Curso de Engenharia da Computação Mestrado em Engenharia da Computação e Sistemas

1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 E-books PCNA. Vol. 1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 APRESENTANDO A LINGUAGEM C. Página 1

Introdução à linguagem C

Organização de programas em Python. Vanessa Braganholo

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Introdução à Engenharia ENG1000

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

Programação I A Linguagem C. Prof. Carlos Alberto

MCG114 Programação de Computadores I. Strings. Strings. Strings. Strings. Strings 3/26/18. Profa. Janaína Gomide

CFAC - MiEIG: Apresentação 2008/

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

Fundamentos de Programação

Fundamentos de Programação

Introdução ao Python. Programa Computacional

Algoritmos e Programação - Engenharia da Computação -

Concepção e Fabrico Assistido por Computador

Esta é a única declaração da aplicação

Estruturas de Repetição

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Fundamentos Programação

FORCE. João Manuel R. S. Tavares

IMPLEMENTAÇÃO D0 DESENHO AUTOMÁTICO DE CILINDROS DE DUPLO EFEITO AUTOLISP CONCEPÇÃO E FABRICO ASSISTIDOS POR COMPUTADOR ANO LECTIVO

Informática I. Aula 7. Aula 7-17/09/2007 1

MIEM Mestrado Integrado em Engenharia Mecânica

Oficina de Python Prof. Me. José Carlos Perini

Instruções. Maicon A. Sartin

Entrada/Saída, Operadores. Curso: Técnico em Informática Disciplina: Algoritmos Prof. Abrahão Lopes

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

Fundamentos de Programação

Projeto de Compiladores

Técnicas de Programação

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

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

Puca Huachi Vaz Penna

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB

Entrada e saída. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá

Introdução à Programação. João Manuel R. S. Tavares

Introdução à Programação Funcional

Oficina de Python Prof. Me. José Carlos Perini

AutoLISP Programas Exemplo. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

CFAC - MiEIG: Apresentação 2015/2016. MiEIG Mestrado integrado em Engenharia Industrial e Gestão

Introdução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin

Introdução à Programação

1º Exemplo - Rectângulo

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução à Programação

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

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Fundamentos de Programação em Python

Sub-rotinas em C. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto

Introdução à Computação

CFAC: Visual Basic: III - Procedimentos

Passo-a-passo para desenvolver um Programa usando a Linguagem Python

1 Como compilar seu código? 2 Comandos de terminal:

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

Organização e Arquitetura de Computadores I

3.1 - Funções para manipular dados de entrada e saída padrão

Transcrição:

AutoLISP -I Introdução João Manuel R. S. Tavares Joaquim Oliveira Fonseca Bibliografia Programação em AutoCAD, Curso Completo Fernando Luís Ferreira, João Santos FCA Programando em AutoLISP Kramer, W. e Kramer MAKRON Books do Brasil Editora Ltda Domine a 110% AutoCAD 13 Pedro Leão Neto FCA Programando em AutoLISP R. C. Ruschel, DCC-FEC-UNICAMP http://www.fec.unicamp.br/~regina/alisp0.html 2 2011@JST/JOF JST/JOF 1

AutoLISP o que é? O AutoLisp é baseado na linguagem de programação LISP (List Processing); de aprendizagem simples, porém poderosa. O AutoCAD tem um interpretador de Lisp embebido, que permite a digitação de expressões/funções AutoLisp na linha de comando e a sua interpretação automática. O AutoCAD incluí rotinas AutoLisp bastante úteis nos subdirectórios sample e support. 3 2011@JST/JOF Aplicações em AutoLisp São armazenadas em arquivos ASCII com extensão.lsp. Devem ser previamente carregadas para o ambiente do AutoCAD para serem executadas. Como carregar: na linha de comando; pelo menu Tools, opção AutoLISP...; de forma automática incluindo-a no arquivo acad.lsp. 4 2011@JST/JOF JST/JOF 2

Aplicações em AutoLisp Carregamento de programas em autolisp pela opção Load... do submenu AutoLISP existente no menu Tools. 5 2011@JST/JOF Visual Lisp Editor O AutoCAD incluí um editor de programas em AutoLISP: o Visual Lisp Editor executado a partir do submenu Autolisp do menu Tools. 6 2011@JST/JOF JST/JOF 3

Lisp A linguagem de programação Lisp é: da mesma época do Fortran; diferente de outras linguagens de programação, por exemplo, dados e programas são tratados da mesma forma (tudo como listas) e são colocados no mesmo espaço de memória do computador; linguagem interpretada; isto é, toda vez que o programa é executado o código fonte é avaliado; muito utilizada em programação na área da inteligência artificial. O Lisp utiliza a notação infixa (operador seguido dos operandos): 1 + 2 (+ 1 2) 7 2011@JST/JOF Listas - composição Cada instrução em Lisp inicia com (, termina com ) e é composta por átomos, que podem ser: um número inteiro; um número real; uma cadeia de caracteres (uma string); um símbolo: nome de função interna ou definida pelo utilizador; uma variável: um símbolo que representa o nome de um dado; 8 2011@JST/JOF JST/JOF 4

Listas - composição um nil: valor nulo (vazio); um apontador para um arquivo (file descritor); uma sub-rotina: nome de funções internas e externas do AutoLisp; um nome de entidade: código numérico associado ao objeto numa sessão de trabalho; conjunto de seleção: conjunto de objetos selecionados. 9 2011@JST/JOF Listas - Exemplos Exemplos de listas de dados: (2.0 3.5 7.6) ("paola" (11 06 1996) 3.150 51) (sub lista) 10 2011@JST/JOF JST/JOF 5

Listas - Exemplos Lista de programa (primeiro elemento é um nome de função ou uma subrotina): (setq A 21) setq é uma função, A é um símbolo (nome de variável) (list 2 3 4) list é uma função (defun vistalatdir () (command "vpoint" "1,0,0")) defun e command são funções (vistalatdir) vistalatdir é um símbolo (nome de função). 11 2011@JST/JOF Avaliando expressões em Lisp O interpretador do Lisp é denominado avaliador. Toda a entrada em Lisp é processada por meio do avaliador. Tudo dentro do AutoLisp em relação ao avaliador retorna um valor como resultado, por exemplo: quando um elemento de dado é apresentado ao avaliador, o valor atribuído ao elemento é retornado; quando um símbolo é apresentado, o valor da ligação atual do símbolo é retornado; quando uma lista de programa, é apresentada, essa é executada e o valor final da execução é retornado. 12 2011@JST/JOF JST/JOF 6

Avaliando listas de programa Se o primeiro elemento da lista for o nome de uma subrotina ou de uma função definida, a subrotina ou a função é executada; o restante da lista é usado como parâmetros (para a subrotina ou para a função em questão). Se o primeiro elemento da lista não for uma função ou subrotina, obtém-se uma mensagem de erro: bad function (função incorreta). 13 2011@JST/JOF Exemplos de avaliação de listas de programa (list 1 2 3) - constrói uma lista de 3 números inteiros; retorna (1 2 3); (2.0 3.0 6.6) - retorna erro: bad function; (setq a 1.0) - retorna o valor 1.0 atribuído à variável a; (set 'a 1.0) - idem mas usando o símbolo '; (set (quote a) 1.0) - idem mas usando a subrotina/função interna quote. 14 2011@JST/JOF JST/JOF 7

AutoLisp na linha de comando do AutoCAD É possível avaliar expressões em AutoLisp e até funções na linha de comando do AutoCAD. Este recurso é muito utilizado para experimentação e teste. Basta digitar na linha de comando a expressão ou função desejada, por exemplo: Command: (setq A 2.0) 2.0 Retorno Command: (setq B 3.0) 3.0 Retorno 15 2011@JST/JOF AutoLisp na linha de comando do AutoCAD Command: (setq C (+ A B)) 5.0 Command:!C 5.0 Command: (setq p1 (list 1 2)) (1 2) Command: (setq p2 (list 10 20)) (10 20) Escrever valor de C 16 2011@JST/JOF JST/JOF 8

AutoLisp na linha de comando do AutoCAD Command: (command "line" p1 p2 "") line From point: to point: to point: Command: nil Chamada de um comando do AutoCAD Command: (defun vistalatdir() (command "vpoint" "1,0,0")) VISTALATDIR Command: (vistalatdir) 17 2011@JST/JOF Carregar programas AutoLisp no AutoCAD Na linha de comando digitar: (load unidade-dedisco:\\sub-diretório\\nome-do-promaga-comextensão ), por exemplo: Command: (load "c:\\trab\\programa1.lsp") Na opção Load Application... do menu Tools indicar o arquivo a ser carregado, procurando sua localização com auxílio do botão File, e depois carregá-lo acionando o botão Load. 18 2011@JST/JOF JST/JOF 9

Exemplo - isomets.lsp Conteúdo do arquivo isomets.lsp: ;;;Vista isometrica lat-dir, fundo, por-cima (defun c:iso1() (command "vpoint" "1,1,1")) Comando Autocad ;;;Vista isometrica lat-esq, fundo, por-cima (defun c:iso2() (command "vpoint" "-1,1,1")) ;;;Vista isometrica lat-dir, frente, por-cima (defun c:iso3() (command "vpoint" "1,-1,1")) ; = início de comentário 19 2011@JST/JOF Exemplo - isomets.lsp Carregar o arquivo isomets.lsp e executar as funções: Command: (load "c:\\trab\\isomets.lsp") ISO3 Última função carregada Command: iso1 vpoint Rotate/ <0.0000 0.0000 1.0000>: 1,1,1 Regenerating drawing Command: nil 20 2011@JST/JOF JST/JOF 10

Exemplo - media.lsp Conteúdo do arquivo media.lsp: ;;;Programa principal (defun c:mediatestes() (setq t1 (getreal "\nnota teste-1: ")) (setq t2 (getreal "\nnota teste-2: ")) (setq nota (soma-e-divide)) (princ "\nmedia dos testes = ") (princ nota) (princ) ) ;;;funcao soma-e-divide (defun soma-e-divide() (/ (+ t1 t2) 2.0) ) (Para não aparecer Command: nil.) 21 2011@JST/JOF Exemplo - media.lsp Carregar o arquivo media.lsp e executar a função mediatestes: Command: (load "c:\\trab\\media.lsp") SOMA-E-DIVIDE Command: mediatestes Nota teste-1: 15.0 Nota teste-2: 17.0 Media dos testes = 16.0 Command: 22 2011@JST/JOF JST/JOF 11