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

Documentos relacionados
Faculdade de Engenharia Universidade do Porto RELATÓRIO CFAC Trabalho em Autolisp

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

AutoLISP Programas Exemplo

1º Exemplo - Rectângulo

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

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

Elbow flange coupling

Caixa de Velocidades. Índice

RELATÓRIO CFAC Ano lectivo

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

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

Concepção e Fabrico Assistido por Computador

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

C.F.A.C. Concepção e Fabrico Assistido por Computador

2. LAYERS UTILIZADAS E APLICAÇÕES

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

UNIVERSIDADE DO PORTO

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

CFAC: 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

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

Concepção e Fabrico Assistidos por Computador

AutoLISP - VI Conjuntos de seleção

Conjuntos de selecção

(Concepção e Fabrico Assistido por Computador) Ano lectivo: 2001/2002

AutoLISP -V Manipulação de entidades

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO DEPARTAMENTO DE ENGENHARIA MECÂNICA E GESTÃO INDUSTRIAL C.F.A.C. 2002/03

Relatório de CFAC Concepção e Fabrico Assistido por Computador

Licenciatura em Gestão e Engenharia Industrial CFAC

Programação e Computação para Arquitectura 2007/2008

Faculdade de Engenharia da Universidade do Porto (FEUP) Departamento de Engenharia Mecânica e Gestão Industrial (DEMEGI)

Licenciatura em Engenharia Mecânica. Concepção e Fabrico Assistidos por Computador ( C. F. A. C. ) 2001 / Secção de Desenho Industrial

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

Trabalho: Desenho 3D de um Molde de Injecção em

DEMEGI Departamento de Engenharia Mecânica e Gestão Industrial. SDI Secção de Desenho Industrial

Programação e Computação para Arquitectura 2010/2011

CFAC: AutoLISP (I) - Introdução

Desenho e Projeto Assistido por Computador

AutoLISP -I Introdução

Modelação Geométrica e Visualização de Edifícios 2007/2008

Pró-Reitoria de Graduação Curso de Engenharia Civil Trabalho de Conclusão de Curso

Desenho 3D de uma trompa de harmonia Software: Solidworks 2004

Desenho Técnico Moderno

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

DESENHO TÉCNICO. Conceitos Gerais

Concepção e Fabrico Assistido por Computador

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

Implementação de Desenhos Automáticos Elemento Hidráulico Normalizado. Concepção e Fabrico Assistidos por Computador Programação VBA

Exercícios de Programação e Computação para Arquitectura. António Menezes Leitão

Modelação Tridimensional

Concepção e Fabrico Assistidos por Computador 3ºano 1º semestre. Licenciatura em Engenharia Mecânica. Professor: João Manuel R. S.

Concepção e Fabrico Assistido por Computador

Dupla Projeção Ortogonal / Método de Monge

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO DEPARTAMENTO DE ENGENHARIA MECÂNICA E GESTÃO INDUSTRIAL C.F.A.C.

Concepção e Projecto Assistidos por Computador

UARCA-E.U.A.C. Escola Universitária de Artes de Coimbra

João Carlos Neves Costa 4º Ano LGEI

DESENHO BÁSICO AULA 12

Exemplos de Programas para Tratamento de Ficheiros DXF. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

Introdução ao SolidWorks

Prof: Heni Mirna Cruz Santos

MIEM Mestrado Integrado em Engenharia Mecânica

DESENHO TÉCNICO MECÂNICO I

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

Introdução à Programação Funcional

1 - Objectivo do Trabalho. 2 - Elementos de Base

Aplicação da Programação CNC a um Eléctrodo com Forma de uma Cruzeta

Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004

Conjuntos mecânicos IV

Cálculo a Várias Variáveis I - MAT Cronograma para P2: aulas teóricas (segundas e quartas)

Manufatura Assistida por Computador

Desenvolvimento de um Protótipo e de Metodologias de Controlo de uma Cadeira de Rodas Inteligente

Determine o ponto de intersecção I da recta vertical v com o plano de rampa ró.

EXAME NACIONAL DO ENSINO SECUNDÁRIO

Equações Paramétricas e Coordenadas Polares. Copyright Cengage Learning. Todos os direitos reservados.

Cabeça do motor e árvore de cames

Informática para as Ciências e Engenharias - 2º semestre 2016/2017

UNIVERSIDADE ESTADUAL DE SANTA CRUZ DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS COLEGIADO DE ENGENHARIA ELÉTRICA

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2002/ Valores

EXAME NACIONAL DO ENSINO SECUNDÁRIO

2º Laboratório de Sistemas e Sinais (LEIC Alameda 2008/09)

Exercícios de Programação e Computação para Arquitectura. António Menezes Leitão

Introdução ao Desenho de Construção Mecânica

Exercícios Práticos de Modelação 3D em SolidWORKS

UNIVERSIDADE ESTADUAL DE SANTA CRUZ UESC. 1 a Avaliação escrita de Cálculo IV Professor: Afonso Henriques Data: 10/04/2008

CFAC: Visual Basic: VII - Ficheiros Sequenciais. VII Ficheiros Sequenciais

Visual Basic. VII Ficheiros Sequenciais. CFAC Concepção e Fabrico Assistidos por Computador João Manuel R. S. Tavares

CARDANS. Trabalho realizado por: C.F.A.C. 2003/2004. Ricardo de Barros Monteiro

MOLDE PARA PRODUÇÃO DE CABIDES

TRUELOK GUIA DE REFERÊNCIA DE PEÇAS

Laboratórios Integrados II LECom (1 o ano)

Mesas de Seno e Placas Magnéticas com Mesas de Seno. Ficha Técnica

ANÁLISE MATEMÁTICA III A TESTE 2 31 DE OUTUBRO DE :10-16H. Duração: 50 minutos

Concepção de um modelo de um motor de Radiomodelismo

Introdução ao SolidWorks (III): Fundamentos para Conjuntos. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

Testes e Exames do Desenho Assistido por Computador Teste

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

5 - PROPRIEDADES RESISTENTES DOS SOLOS. τ - resistência ao corte c - coesão σ - tensão normal total φ - ângulo de atrito interno

Transcrição:

CONCEPÇÃO E FABRICO ASSISTIDOS POR COMPUTADOR ANO LECTIVO 001-00 IMPLEMENTAÇÃO D0 DESENHO AUTOMÁTICO DE CILINDROS DE DUPLO EFEITO AUTOLISP MARIA JOÃO TAVARES DE CASTRO SANTOS COSTA MARIA TERESA VITERBO SEIXAS DE CASTRO MARTINS FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

CONCEPÇÃO E FABRICO ASSISTIDOS POR COMPUTADOR ANO LECTIVO 001-00 ENG. JOÃO TAVARES ENG. DUARTE MARAFONA 3M IMPLEMENTAÇÃO D0 DESENHO AUTOMÁTICO DE CILINDROS DE DUPLO EFEITO AUTOLISP MARIA JOÃO TAVARES DE CASTRO SANTOS COSTA MARIA TERESA VITERBO SEIXAS DE CASTRO MARTINS FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

I - OBJECTIVOS O trabalho tem por objectivo demonstrar a consolidação da matéria leccionada nas aulas de CFAC durante o decorrido semestre. Para tal propusemos implementar um desenho automático elaborado em AutoLISP de duas vistas (lateral e fontral a partir de um desenho que nos foi fornecido de dois cilindros de accionamento pneumático linear do tipo: DGO-16/ PPV-A.

II REALIZAÇÃO DE UM PROGRAMA EM AUTOLISP O enunciado que nos foi apresentado resultou no esboço de duas vistas distintas do cilindro de duplo efeito cujo diâmetro poderia tomar os valores de 16mm ou mm. O programa elaborado poderá resultar no desenho de uma vista frontal (1 ou de uma vista lateral (: (1 Vista Frontal ( Vista Lateral O trabalho que apresentamos como solução ao enunciado que nos foi fornecido, contem duas partes distintas: começa por ser definida uma subrotina de rotação em torno de um ponto pt0 e segundo um angulo Alfa que apresentamos de seguida; a segunda parte é constituída pelo programa principal que é explicado de seguida e apresentado, por inteiro, em anexo.

Subrotina de Rotação: (defun rot(ptc / dx dy seno cosse xx yy ptn (setq dx (- (car ptc (car pt0 dy (- (cadr ptc (cadr pt0 seno (sin alfa cosse (cos alfa xx ( - (* cosse dx (* seno dy yy (+ (* seno dx (* cosse dy ptn (list (+ xx (car pt0 (+ yy (cadr pt0 O programa principal é constituído, podendo ser dividido em diversas partes. De seguida apresentam-se cada uma das etapas que fazem parte do programa principal: Início: (defun c:teste( Gravação dos modos aquando do momento do início do programa: (setq oblip (getvar "blipmode" ;modo de colocação de cruzes nos pontos oecho (getvar "cmdecho" ;modo de projecção dos comandos olay (getvar "clayer" ;layer corrente oosnap (getvar "osmode" ;modo osnap actual Anulação dos modos iniciais: (setvar "blipmode" 0;desliga a colocação de cruzes nos pontos (setvar "cmdecho" 0;desliga a projecção dos comandos (setvar "osmode" 0;desliga qualquer modo osnap Leitura de valores introduzidos pelo utilizador: Leitura do ponto central da peça: (initget 1;nao admite resposta nula (setq pt0 (getpoint "\ndefina o ponto de localização do cilindro:" (1 Marcações dos pontos centrais pt0 - nas vistas Leitura do eixo para direccionamento da peça angulo Alfa: (initget 1;nao admite resposta nula (setq alfa (getangle pt0 "\ndefina a direcção do eixo: "

Leitura da vista a representar frontal (1 ou lateral (: (initget "1 " (setq ilog (getkword "Vista frontal(1, Vista lateral (: " (setq ilog (atoi ilog Abertura do ficheiro de dados: (setq linha nil listd nil i -1 (while (= linha nil ;ciclo while para leitura dos valores da tabela (setq f (open "cilindro.dat" "r" dif 0 ierro 0 (if (= f nil (progn (prompt "\nficheiro cilindro.dat não encontrado!" (setq lixo (getstring "\nintroduza ENTER:" ierro 1 ;ficheiro nao existe linha "1" (progn ;vai processar (initget (+ 1 4 ;admite apenas as resposta nao vazias, nulas ou negativas (setq d (getreal "\nintroduza o diametro do embolo que pretende de 16mm(16 ou mm(:" (while (and (/= d dif (= ierro 0 (setq linha (read-line f (if (and (/= linha nil (= ierro 0 ; entao (setq dif (atof (substr linha 1 3 listd (append listd (list dif ;guarda diâmetro lido i (+ i 1 (setq dif d ; senão ierro ;diâmetro não encontrado (close f (if (= ierro (progn ;entao (setq j 0 (prompt "\ndiametro ERRADO. No ficheiro existem:" (while (<= j i (princ (nth j listd (princ "," (setq j (+ j 1 (setq listd nil i -1 dif 0.0 ;escreve os diâmetros lidos no ficheiro ;final do ciclo if do erro ;fim do progn de processamento ;fim do ciclo if f=nil ;fim do ciclo while para leitura dos valores da tabela

Leitura dos valores do ficheiro de dados cilindro.dat: (if (= ierro 0 (progn ;define os restantes parâmetros (setq B1 (atof (substr linha 3 (setq B (atof (substr linha 9 3 (setq D3 (atof (substr linha 13 7 (setq D4 (atof (substr linha 1 3 (setq D (atof (substr linha (setq D6 (atof (substr linha 8 (setq D7 (atof (substr linha 34 (setq E1 (atof (substr linha 37 (setq H1 (atof (substr linha 43 3 (setq J1 (atof (substr linha 47 3 (setq K1 (atof (substr linha 1 3 (setq K (atof (substr linha 3 (setq L1 (atof (substr linha 9 4 (setq L (atof (substr linha 64 3 (setq L3 (atof (substr linha 68 4 (setq L4 (atof (substr linha 73 3 (setq L (atof (substr linha 77 3 (setq L6 (atof (substr linha 81 4 (setq L7 (atof (substr linha 86 4 (setq L8 (atof (substr linha 91 3 (setq L9 (atof (substr linha 9 (setq L10 (atof (substr linha 101 3 (setq L11 (atof (substr linha 10 (setq L1 (atof (substr linha 111 3 (setq L13 (atof (substr linha 11 4 (setq T1 (atof (substr linha 10 3 (setq C1 (atof (substr linha 14 Tabela do enunciado que deu origem ao ficheiro de dados cilindro.dat: E B B D 3 D D D 6 D E 1 H J K 1 K L 1 L L 3 L L L 6 L 7 L L 9 L 1 L 11 L 1 L 1 T C 1 m 1 4 7 1 1 4 8 0 3 1 16 8 1 M16 X1, 0 M 17,3 6 M 0 4 0 6 39 1 16 14 9 17 8 181 18 9 9 49, 6 3 4 1 8 4 11 16 M X1, 7 M 6 6, 8 R ⅛ 3 6 0 0 8 19 0 8 0 6 1 9 1 7 36 34, 0 1 0 10 3 Ficheiro de dados cilindro.dat: 16,8,1,14.376,0,,17.3,6,,0,40,6,39,1,16,149,17,8,181,189,9,49.,6,3,4,1,8,4,11,16,0.376,7,6,6.,8,9.73,,,36,0,0,8,190,,8,06,19,1,7,36,34.,0,10,10,3 Definição de constantes necessárias ao desenho: (setq pi (/ pi (setq pi6 (/ pi 6 (setq e (/ C1 (cos pi6 (setq fl (/ (- e C1 (setq fl (* fl (/ (sin pi6 (cos pi6 (setq ra (* (/ e 4 (/ e 4 (setq ra (+ ra (* fl fl (setq ra (/ ra (* fl (setq a (* D3 D3 (setq b (* B B

(if (= ilog 1 (progn Desenho da vista Frontal: (command "layer" "m" "tg" "" ;Definição da Layer a utilizar - Traço Grosso ;caixa (setq pt1 (polar pt0 (/ pi (/ K (setq pt (polar pt1 pi (/ L13 (setq pt3 (polar pt (- pi K (setq pt4 (polar pt3 0 (/ L13 4 (setq pt (polar pt4 (- pi (- H1 (/ K (setq pt6 (polar pt 0 (/ L13 4 (setq pt91 (polar pt pi (/ K (setq pt93 (polar pt91 pi (setq pt9 (polar pt91 pi (command "line" (rot pt1 (rot pt "" (setq ent (entlast (command "line" (rot pt (rot pt3 (rot pt4 (rot pt (rot pt6 "" "line" (rot pt (rot pt91 "" "arc" (rot pt91 "c" (rot pt93 (rot pt9 "" (command "mirror" (while (/= ent nil (command ent (setq ent (entnext ent (command "" (command (rot pt6 (rot pt1 "" ;avanço (setq pt7 (polar pt0 pi (/ L13 (setq pt8 (polar pt7 pi (/ D6 (setq pt9 (polar pt7 (- pi (/ D6 (setq pt16 (polar pt7 pi (/ L 8 (setq pt17 (polar pt16 pi (/ D4 (setq pt18 (polar pt16 (- pi (/ D4 (setq pt10 (list (+ (car pt7(*3 (/ (- (car pt16(car pt7(cadr pt0 (setq pt11 (polar pt10 pi (/ D6 (setq pt1 (polar pt10 (- pi (/ D6 (setq pt13 (list (+ (car pt10 (/ (- (car pt16(car pt10 (cadr pt0 (setq pt14 (polar pt13 pi (/ D3 (setq pt1 (polar pt13 (- pi (/ D3 (command "line" (rot pt8 (rot pt11 "" (setq ent (entlast (command "line" (rot pt11 (rot pt1 (rot pt9"" "line" (rot pt17 (rot pt18 "" "line" (rot pt11 (rot pt14 (rot pt17"" "line" (rot pt1 (rot pt1 (rot pt18"" "line" (rot pt14 (rot pt1"" (command "mirror" (while (/= ent nil (command ent (setq ent (entnext ent (command "" (command (rot pt6 (rot pt1 ""

;até à porca (setq pt19 (list (- (car pt8 L (+ (cadr pt8 (/ (- D4 D6 (setq pt0 (polar pt19 (- pi D4 (setq pt1 (polar pt19 (- pi (/ (- D4 D3 (setq pt (polar pt1 (- pi D3 (setq pt31 (polar pt7 pi (- L11 L8 (setq pt3 (polar pt31 pi (/ D3 (setq pt4 (polar pt3 (- pi D3 (setq pt3 (polar pt31 pi (- L8 (* (/ (/ (- L11 L 3 (setq pt (polar pt3 pi (/ D3 (setq pt6 (polar pt (- pi D3 (setq pt7 (polar pt (- pi (/ D3 4 (setq pt8 (polar pt7 (- pi (/ D3 (setq pt33 (polar pt31 pi L8 (setq pt46 (polar pt7 pi (+ L11 (/ D7 (setq pt40 (polar pt46 pi (/ D3 (setq pt41 (polar pt40 (- pi D3 (setq pt4 (polar pt40 (- pi (/ D7 (setq pt43 (polar pt41 pi (/ D7 (setq pt9 (polar pt40 0 (/ D7 (setq pt30 (polar pt9 (- pi D3 (setq pt34 (polar pt9 (- pi (/ D7 (setq pt38 (polar pt7 pi 0.7 (setq pt36 (polar pt38 pi (/ D7 (setq pt44 (polar pt7 pi (/ D7 (setq pt4 (polar pt8 (- pi (/ D7 (setq pt3 (polar pt30 pi (/ D7 (setq pt37 (polar pt4 pi 0.7 (setq pt39 (polar pt37 pi (/ D7 (command "line" (rot pt17 (rot pt19 "" (setq ent (entlast (command "line" (rot pt19 (rot pt1 (rot pt3 (rot pt4 (rot pt (rot pt0 (rot pt18 "" "line" (rot pt1 (rot pt (rot pt7 "" "line" (rot pt (rot pt6 (rot pt8 "" "circle" (rot pt33 "d" D7 "" "line" (rot pt7 (rot pt38 (rot pt34 (rot pt4 "" "line" (rot pt44 (rot pt36 (rot pt9 (rot pt40 "" "line" (rot pt9 (rot pt34 "" "line" (rot pt38 (rot pt36 "" "line" (rot pt8 (rot pt39 (rot pt3 (rot pt43 "" "line" (rot pt4 (rot pt37 (rot pt30 (rot pt41 "" "line" (rot pt30 (rot pt3 "" "line" (rot pt39 (rot pt37 "" (command "mirror" (while (/= ent nil (command ent (setq ent (entnext ent (command "" (command (rot pt6 (rot pt1 "" ;porca (setq pt47 (polar pt33 pi (+ (/ D7 B1; ponto inicio da porca (setq pt48 (polar pt47 0 B1 (setq pt49 (polar pt48 pi (/ e (setq pt0 (polar pt49 pi B1 (setq pt1 (polar pt0 (- pi e (setq pt (polar pt1 0 B1

(setq pt3 (polar pt49 pi fl (setq pt4 (polar pt0 0 fl (setq pt (polar pt1 0 fl (setq pt6 (polar pt pi fl (setq pt7 (polar pt3 (- pi (/ e 4 (setq pt8 (polar pt4 (- pi (/ e 4 (setq pt9 (polar pt pi (/ e 4 (setq pt60 (polar pt6 pi (/ e 4 (setq pt61 (polar pt49 (- pi (/ e 8 (setq pt6 (polar pt0 (- pi (/ e 8 (setq pt63 (polar pt1 pi (/ e 8 (setq pt64 (polar pt pi (/ e 8 (command "arc" (rot pt8 (rot pt6 (rot pt4 (setq ent (entlast (command "arc" (rot pt8 "e" (rot pt9 "r" ra "arc" (rot pt (rot pt63 (rot pt9 "line" (rot pt (rot pt6 "" "arc" (rot pt6 (rot pt64 (rot pt60 "arc" (rot pt60 "e" (rot pt7 "r" ra "arc" (rot pt7 (rot pt61 (rot pt3 "line" (rot pt4 (rot pt3 "" "line" (rot pt60 (rot pt9 "" "line" (rot pt7 (rot pt8 "" "line" (rot pt6 (rot pt63 "" "line" (rot pt61 (rot pt64 "" (command "mirror" (while (/= ent nil (command ent (setq ent (entnext ent (command "" (command (rot pt6 (rot pt1 "" ;cabeça final (setq pt70 (polar pt7 pi L1 (setq pt64 (list (car pt70 (cadr pt8 (setq pt6 (list (car pt70 (cadr pt9 (setq pt68 (list (car pt47 (cadr pt8 (setq pt69 (list (car pt47 (cadr pt9 (setq pt66 (list (car pt70 (- (cadr pt64 (- (cadr pt6 (cadr pt68 (setq pt67 (list (car pt70 (+ (cadr pt6 (- (cadr pt6 (cadr pt68 (command "line" (rot pt6 (rot pt64 "" (setq ent (entlast (command "line" (rot pt64 (rot pt6 (rot pt63 "" "line" (rot pt69 (rot pt67 "" "line" (rot pt68 (rot pt66 "" (command "mirror" (while (/= ent nil (command ent (setq ent (entnext ent (command "" (command (rot pt6 (rot pt1 ""

;orifício (setq pt90 (list (- (car pt16 3 (+ (cadr pt0 (/ D4 4 (setq pt84 (polar pt90 (- pi (setq pt8 (polar pt84 0 (setq pt86 (polar pt8 pi (setq pt87 (polar pt86 pi 4 (setq pt88 (polar pt8 pi 4 (setq pt89 (polar pt84 pi 4 (command "line" (rot pt87 (rot pt88 (rot pt8 (rot pt86 "" "arc" (rot pt86 (rot pt89 (rot pt87 "" (command "layer" "m" "ti" "" ;Definição da Layer a utilizar Traço ;Interrompido (setq pt71 (polar pt6 pi (/ L10 (setq pt76 (polar pt71 0 (/ D (setq pt77 (polar pt76 pi T1 (setq pt80 (polar pt71 pi (/ D (setq pt81 (polar pt80 pi T1 (setq pt7 (polar pt71 0 (/ (- D (* 1.08 0.8 (setq pt78 (polar pt7 pi T1 (setq pt79 (polar pt71 pi (/ (- D (* 1.08 0.8 (setq pt8 (polar pt79 pi T1 (setq pt83 (polar pt0 pi (/ D6 (setq pt74 (polar pt83 (- pi D6 (command "line" (rot pt7 (rot pt78 "" (setq ent (entlast (command "line" (rot pt76 (rot pt77 (rot pt81 (rot pt80"" "line" (rot pt79 (rot pt8 "" "line" (rot pt83 (rot pt8"" "line" (rot pt74 (rot pt9 "" (command "mirror" (while (/= ent nil (command ent (setq ent (entnext ent (command "" (command (rot pt6 (rot pt1 "" (command "layer" "m" "tm" "" ;Definição da Layer a utilizar - Traço Misto (setq pt7 (polar pt71 (- pi (setq pt73 (polar pt71 pi (+ T1 (command "line" (rot pt73 (rot pt7 "" (setq ent (entlast (command "mirror" (while (/= ent nil (command ent (setq ent (entnext ent (command "" (command (rot pt6 (rot pt1 "" (setq pt111 (polar pt0 pi (+ (/ L1 (setq pt11 (polar pt111 0 (+ L1 10 (command "line" (rot pt111 (rot pt11 ""

;roscados E1 (command "layer" "m" "tm" "" ;Definição da Layer a utilizar - Traço Misto (setq pt94 (polar pt19 0 L (setq pt9 (polar pt94 pi (setq pt96 (polar pt94 (- pi (+ 7.4 (setq pt109 (polar pt94 (- pi (setq pt110 (polar pt109 (- pi.4 (command "line" (rot pt9 (rot pt96 "" (setq ent (entlast (command "mirror" (while (/= ent nil (command ent (setq ent (entnext ent (command "" (command (rot pt6 (rot pt1 "" (command "layer" "m" "ti" "" ;Definição da Layer a utilizar Traço ;Interrompido (if (= d 16 (progn (setq pt97 (polar pt94 pi (/ 10 (setq pt100 (polar pt97 0 10 (setq pt10 (polar pt109 pi (/ (- E1 (* 1.08 0.8 (setq pt107 (polar pt109 0 (/ (- E1 (* 1.08 0.8 (if (= d (progn (setq pt97 (polar pt94 pi (/ (* 1.1 E1 (setq pt100 (polar pt97 0 (* 1.1 E1 (setq pt10 (polar pt109 pi (/ 8.7 (setq pt107 (polar pt109 0 (/ 8.7 (setq pt98 (polar pt97 (- pi (setq pt99 (polar pt100 (- pi (setq pt101 (polar pt109 pi (/ E1 (setq pt103 (polar pt109 0 (/ E1 (setq pt10 (polar pt101 (- pi.4 (setq pt104 (polar pt103 (- pi.4 (setq pt106 (polar pt10 (- pi.4 (setq pt108 (polar pt107 (- pi.4 (command "line" (rot pt97 (rot pt98 "" (setq ent (entlast (command "line" (rot pt98 (rot pt99 (rot pt100 "" "line" (rot pt101 (rot pt10 "" "line" (rot pt10 (rot pt106 "" "line" (rot pt107 (rot pt108 "" "line" (rot pt103 (rot pt104 "" (command "mirror" (while (/= ent nil (command ent (setq ent (entnext ent (command "" (command (rot pt6 (rot pt1 ""

Desenho da vista Lateral: (if (= ilog (progn (command "layer" "m" "tg" "" ;Definição da Layer a utilizar - Traço Grosso (command "circle" pt0 "d" C1 (setq pt1 (polar pt0 (/ pi (/ e (setq pt (polar pt0 (* (/ pi 6 (/ e (command "line" (rot pt1 (rot pt "" (setq ee1 (entlast (command "array" ee1 "" "p" pt0 6 360 "" (command "circle" pt0 "d" D3 (command "circle" pt0 "d" K (command "circle" pt0 "d" e (setq pt3 (polar pt0 pi (/ K (setq pt4 (polar pt0 0 (/ K (setq pt (list (+ (car pt3 1 (- (cadr pt3 H1 (setq pt6 (list (- (car pt4 1 (- (cadr pt4 H1 (setq pt7 (list (- (car pt0(/ B (- (cadr pt0 (SQRT (/ (- a b 4 (setq pt8 (list (- (car pt0(/ B (+ (cadr pt0 (SQRT (/ (- a b 4 (setq pt9 (list (+ (car pt0(/ B (+ (cadr pt0 (SQRT (/ (- a b 4 (setq pt10 (list (+ (car pt0(/ B (- (cadr pt0 (SQRT (/ (- a b 4 (command "line" (rot pt3 (rot pt (rot pt6 (rot pt4 "" "line" (rot pt7 (rot pt8 "" "line" (rot pt10 (rot pt9 "" (command "layer" "m" "tf" "" ;Definição da Layer a utilizar - Traço Fino (setq pt11 (list (+ (car pt0 (/ B (+ (cadr pt10 1 (setq pt1 (list (- (car pt0 (/ B (+ (cadr pt7 1 (setq pt13 (list (+ (car pt0 (/ B (- (cadr pt9 1 (setq pt14 (polar pt0 (+ pi pi6 (- D3 (* 1. 1.08 (command "arc" (rot pt13 "c" pt0 (rot pt14 "" "arc" (rot pt1 "c" pt0 (rot pt11 "" (command "layer" "m" "ti" "" ;Definição da Layer a utilizar - Traço ;Interrompido (setq pt4 (list (- (car pt0 (/ K1 (- (cadr pt0 H1 (setq pt1 (polar pt4 pi (/ D (setq pt16 (polar pt1 0 0. (setq pt18 (polar pt4 0 (/ D (setq pt17 (polar pt18 pi 0. (setq pt19 (polar pt1 pi T1 (setq pt0 (polar pt16 pi T1 (setq pt1 (polar pt17 pi T1 (setq pt (polar pt18 pi T1 (setq pt3 (polar pt4 pi (+ T1 (setq pt34 (polar pt4 0 K1 (setq pt (polar pt34 pi (/ D (setq pt6 (polar pt 0 0. (setq pt8 (polar pt34 0 (/ D (setq pt7 (polar pt8 pi 0. (setq pt9 (polar pt pi T1 (setq pt30 (polar pt6 pi T1 (setq pt31 (polar pt7 pi T1 (setq pt3 (polar pt8 pi T1 (setq pt33 (polar pt34 pi (+ T1 (setq pt39 (polar pt4 (- pi (setq pt40 (polar pt34 (- pi

(command "line" (rot pt1 (rot pt19 "" "line" (rot pt16 (rot pt0 "" "line" (rot pt17 (rot pt1 "" "line" (rot pt18 (rot pt "" "line" (rot pt (rot pt9 "" "line" (rot pt6 (rot pt30 "" "line" (rot pt7 (rot pt31 "" "line" (rot pt8 (rot pt3 "" (command "layer" "m" "tm" "" ;Definição da Layer a utilizar - Traço Misto (setq pt3 (polar pt0 (- pi (+ H1 (setq pt36 (polar pt4 0 (setq pt37 (polar pt0 pi (+ H1 (setq pt38 (polar pt3 pi (command "line" (rot pt36 (rot pt38 "" "line" (rot pt3 (rot pt37 "" "line" (rot pt39 (rot pt3 "" "line" (rot pt40 (rot pt33 "" Restauro dos modos que gravamos inicialmente: (command "layer" "m" olay "" (setvar "osmode" oosnap (setvar "blipmode" oblip (setvar "cmdecho" oecho Final do programa: O programa foi concebido com o auxilio de diversas fontes: - Sebenta de Concepção e Fabrico Assistidos por Computador; Programa (4ºExemplo Cabeça de parafuso hexagonal (em anexo - Página Web da disciplina; www.fe.up.pt/~tavares/ensino/cfac/cfac.html Programa porcad.lsp (em anexo Programa furosca.lsp (em anexo - Livro Desenho Técnico Básico Simões Morais; Programa (4ºExemplo Cabeça de parafuso hexagonal (em anexo Para a representação das vistas na sua totalidade foi necessário recorrer a outras fontes para a determinação mais precisa de certos valores (dos orificios de entradas de ar no cilindro roscados E1 - e orifício.

III - CONCLUSÃO Com este trabalho podemos percepcionar e ultrapassar certas dificuldades na elaboração de uma projecto em AutoLISP contribuindo assim, para uma melhor aprendizagem da matéria e um alargar de horizontes no que diz respeito à área de projecto de máquinas. Com base neste trabalho tornar-se-á fácil a implementação de um outro qualquer desenho automático tendo por base a sua vista e uma base de dados com as medidas normalizadas a usar. Como conclusão podemos salientar o facto de nos termos esforçado para o cumprimento do objectivo proposto no seu melhor.

IV - ANEXOS Enunciados; Vista do enunciado ampliada; Localização dos pontos necessários à execução da vista Frontal; Localização dos pontos necessários à execução da vista Lateral; Programa fonte cilindro.lsp; Ficheiro de dados cilindro.dat; Programa porcad.lsp; Programa (4ºExemplo Cabeça de parafuso hexagonal; Programa furosca.lsp; Figuras resultantes: Cilindro 16mm angulo Alfa nulo Vista Frontal; Cilindro 16mm angulo Alfa nulo Vista Lateral; Cilindro mm angulo Alfa arbitrário Vista Frontal; Cilindro mm angulo Alfa arbitrário Vista Lateral.