Concepção e Fabrico Assistido por Computador

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

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

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

Elbow flange coupling

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

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

AutoLISP Programas Exemplo

1º Exemplo - Rectângulo

UNIVERSIDADE DO PORTO

Caixa de Velocidades. Índice

DCL Dialog Control Language: Introdução

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

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

2. LAYERS UTILIZADAS E APLICAÇÕES

RELATÓRIO CFAC Ano lectivo

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

Conjuntos de selecção

AutoLISP - VI Conjuntos de seleção

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

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

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

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

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

Tecnologias da Informação e Comunicação: Sistema Operativo em Ambiente Gráfico

Curso de AutoCAD 2D. Instrutor : Mauro Pio Dos Santos Junior Monitor : Thainá Souza. Aula anterior...

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

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

Figura Uso de coordenadas polares

Universidade de Lisboa Faculdade de Letras Departamento de História

Desenho e Projeto Assistido por Computador

1 - Ambiente de desenvolvimento

Praça do Município Braga Tel Fax

Trabalho realizado por: João Ricardo Brito de Castro Ferreira em02082 (150h de trabalho)

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

Módulo I. Desejamos boa sorte e bom estudo! Em caso de dúvidas, contate-nos pelo site Atenciosamente Equipe Cursos 24 Horas

Prof: Heni Mirna Cruz Santos

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

Curso de AutoCAD Fundação Gorceix 30/05/2017. Curso de AutoCAD 2D. Instrutor : Mauro Pio Dos Santos Junior Monitor : Brenda Mara Marques

CFAC: AutoLISP (I) - Introdução

Concepção e Fabrico Assistidos por Computador

Importação de dados de geometria a partir de um ficheiro DXF

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

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

A execução de modelos que apresentam furos, rasgos, espigas, canais, partes arredondadas etc., requer a determinação do centro desses elementos.

4 - APLICAÇÕES DE PROGRAMAÇÃO CNC/ISO COM MICROCOMPUTADOR

PLACA DE CIRCUITO IMPRESSO 01 CIRCUITO DE SINALIZAÇÃO E COMANDO

Concepção e Fabrico Assistido por Computador

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

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

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

SOLID EDGE ST6 TUTORIAL 3 MODELANDO UM PISTÃO

AutoLISP -I Introdução

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

CONTEÚDO DA AULA AULA 8 AUTOCAD ABA PRINCIPAL PROPRIEDADES ABA PRINCIPAL PROPRIEDADES 24/04/2019

O manuseamento e a localização no programa das novidades estão descritas no manual de Novidades da versão 2010.

Cotagem é a indicação das medidas da peça em seu desenho conf. a norma NBR Para a cotagem de um desenho são necessários três elementos:

Desenho auxiliado por computador

SEM DESENHO TÉCNICO MECÂNICO I

SEM DESENHO TÉCNICO MECÂNICO I

Projeção ortográfica de modelos com elementos diversos

Projeção ortográfica de modelos com elementos diversos

Desenho Técnico e CAD CAD e Sistemas de Coordenadas. Limits. Units. Define o tamanho da área de trabalho do desenho. Define as unidades do sedenho.

Guia Prático para Emissão de Plantas de Localização Online

Ferramentas Web, Web 2.0 e Software Livre em EVT

Apostila de Desenho Técnico II

CFAC: Introdução ao AutoCAD - V. Capitulo V: Construções geométricas

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

Ferramentas Web, Web 2.0 e Software Livre em EVT

Introdução ao AutoCAD Capitulo IV: Comandos de modificação

AULA 3 DESENHO ORTOGRÁFICO

Pilotagem Squeak no computador Magalhães. Projecto: Geometria Básica

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

Curso de AutoCAD 2D. Instrutor : Mauro Pio Dos Santos Junior Monitor : Thainá Souza

SUMÁRIO DESENHANDO A PLANTA BAIXA DO PAVIMENTO TÉRREO. Desenhando Escada Inserindo Blocos Inserindo Hachuras Dimensionando

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA MECÂNICA CRIANDO LAYERS. Professor: João Carmo

Ferramentas Web, Web 2.0 e Software Livre em EVT

Concepção e Fabrico Assistido por Computador

2) Considere a figura abaixo. Foi efetuado um corte em desvio à 90º. Com o comando MASSPROP no AutoCAD 2000 encontramos a tela ao lado.

Manual de utilizador

Apostila de desenho técnico elétrico Progecad

CONCEPÇÃO E FABRICO ASSISTIDO POR COMPUTADOR

Escola EB 2,3 do Viso. Ficha de Trabalho nº 21 Processador de Texto

Objetivos. Sistema Operativo em Ambiente Gráfico. Introdução às Tecnologias de Informação e Comunicação

VISU-schéma Ajuda em linha Junho de AJUDA VISU-Schéma

Criar um recurso para QIM com ActivInspire - Studio

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

Apostila de Desenho Técnico II

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

(73) Titular(es): (72) Inventor(es): (74) Mandatário:

Autodesk Inventor 9 DocTec4 Construção de um Modelo Tridimensional Parte 1

Ferramentas Web, Web 2.0 e Software Livre em EVT

MAPA GERAL. As principais funcionalidades do Mapa são as seguintes:

Revisão Center Configuration Conteúdo

Aula 07 - Tutorial 05 Modelando o Girabrequim

Transcrição:

Concepção e Fabrico Assistido por Computador Implementação do desenho automático de variadas placas molde da marca HASCO e o seu desenho de conjunto em empilhamento Luís Alberto Marques Anjos João de Deus Santos Silva Faculdade de Engenharia da Universidade do Porto

Objectivos: O trabalho proposto tem como objectivo principal a representação do desenho automático de variadas placas molde de um catálogo da empresa HASCO. Procedimentos e considerações: Assim, executando o programa será possível desenhar não só as vistas de cima e em corte destas placas, como também o desenho de conjunto do sey empilhamento em variadas combinações. Todas as opções são pedidas ao utilizador em caixas de diálogo, o que não só limita estas opções, como também torna o ambiente de trabalho bastante mais agradável. A titulo de exemplo pedagógico, fizemos a modelação 3D de uma das placas molde (k15 para uma maior valorização do trabalho. Layers utilizados: TG (traço grosso contornos principais (vermelho continous TM (Traço misto linhas de eixo (amarelo dashed Hatch (tracejado cortes (azul cyan continuous 0-layer inicial (ATENÇÃO: se estas layers não estiverem já previamente definidas na folha de desenho do autocad, o programa vai desenhar as entidades pretendidas mas sem qualquer diferenciação de cores das ultimas. Aconselhamos o uso da folha de desenho previamente definida - A://ay4.dwt - para evitar estes problemas.

Ficheiro de dados: Para elaborar o ficheiro de dados tivemos que fazer diversas opções porque cada variável podia por vezes tomar dois ou mais valores consoante o material em que fosse construído o molde, ou a sua característica particular. Listagem das variáveis usadas: K41 K71 K71 -comprimento comprimento da referencia das peças -largura largura da referncia das placas -interfc distância entre furos exteriores ào comprimento -interfintc distância entre furos interiores ào comprimento -interfl distância entre furos à largura -raiopeq raio dos círculos exteriores (distam interfc entre os centros -raiopeq2 raio dos circulos exteriores aos círculos exteriores antes referidos -raioint raio dos circulos interiores (distam interfintc entre os centros -raiointi raio dos circulos interiores aos circulos interiores antes referidos -s espassura da peça -interpl distância entre pilares à largura (aparece em placas como K40 K41 -interpc - distância entre pilares ào comprimento (aparece em placas como K40 -apl distância do apêndice à largura (aparece em placas como K60, K61, K70 e -apc - distância do apêndice ào comprimento (aparece em placas como K61 e Assim para uma melhor compreensão das varáveis em questão deixamos de seguida um esquema-tipo de um dos desnhos realizados pelo programa.

Interface com o utilizador Ao longo do programa o utilizador é confrontado com um conjunto de caixas DCL,que lhe permitem fazer as escolhas necessárias para obter o desenho pretendido.assim, de seguida,faremos uma breve exposição onde mostraremos quais as caixas de diálogo utilizadas assim como o código DCL que as caracteriza. Vistas Esta é a primeira opção que o utilizador terá que fazer,esta caixa DCl vai determinar qual o desenho que o programa vai executar. Código DCL vista:dialog{ label = "Vistas" ; : boxed_radio_column { //Define o Início de Uma Área de Botões Radio label= "Qual das vistas pretende desenhar?" ; // Label da caixa de botões radio :radio_button{ label="vista de cima de uma placa molde á escolha "; key="vistam"; value="1";} :radio_button { label="vista de cima-vista com vista lateral em corte de uma placa molde á escolha "; key="vistac"; value="0";} :radio_button { label="vista em corte de um desenho de conjunto de várias placas molde empilhadas "; key="empilha"; value="0";}

:radio_button { label="vista da placa k15 a 3D "; key="vista3d"; value="0";} } ok_only; } Referencia da placa molde a desenhar: Esta é a caixa de diálogo que permite ao utilizador escolher as dimensões genéricas da placa molde a desenhar. Código DCL n_referencia:dialog { label="referencias largura-comprimento das placas molde:"; :popup_list { label="referencia (ex: largura=100 comprimento=130 ---> Referencia=100130 :"; key="referencia"; value="0.0"; edit_width=15; list= " 9595 \n 100130 \n 156156 \n 218296"; } ok_cancel; }

Posicionamento do desenho De seguida estão representadas as caixas DCL que pedem o posicionamento da peça ao utilizador: Código DCL centro:dialog{ label="posicionamento do desenho"; :text{ label="pique um ponto para definir centro da placa "; } :button{ key="terminado"; label="pique"; is_default = true; } }

Código DCL base:dialog{ label="posicionamento do desenho"; : text{ label="pique um ponto para definir o centro do desenho de conjunto das placas:"; } :button{ key="terminado"; label="pique"; is_default = true; } }

Referencia das placas Caixa DCL que permite ao utilizador escolher a placa-molde a desenhar Código DCL lista_ks:dialog { label="referência das placas"; :popup_list { label="referência da placa molde: "; key="ref"; value="0.0"; list= " k10 \n k11 \n k15 \n k16 \n k20 \n k30 \n k40 \n k41 \n k60 \n k61 \n k70 \n k71"; edit_width=8; } ok_cancel; }

Tipos de empilhamento no desenho de conjunto Código DCL tipo_empilhamento:dialog { label="tipos de desenho de conjunto de várias placas (ordenadas de baixo para cima"; :popup_list { label="sequências possíveis de placas desenhadas em conjunto:"; key="empilha"; value="0.0"; edit_width=45; list = "k11 - k40 - k70 - k60 - k30 - k20 - k10 \n k11 - k41 - k71 -k61 - k30 - k20 - k10 \n k16 - k40 - k70 - k60 - k30 - k20 - k15 \n k16 - k41 - k71 - k61 - k30 - k20 - k15"; } ok_cancel; }

Objectivos cumpridos e não cumpridos Neste aspecto temos pouco a dizer, achamos que cumprimos todos os objectivos propostos pelo professor responsável pelo projecto.implementamos não só o desenho de cada uma das placas em vistas diferentes,como também fizemos o desenho de conjunto do empilhamento de várias destas placas e ainda a modelação 3D da placa K15 com o intuito de uma maior valorização do trabalho. Melhoramentos futuros ao programa realizado Para melhorar o programa realizado sugerimos uma restruturação do programa de modo a que este possa contemplar todas as dimensões possíveis no catálogo. Seria então não só necessária uma reformulação do ficheiro de dados, como também do programa principal que teria de permitir ao utilizador escolher opções como o tipo de material a utilizar, e algumas dimensões particulares da placa molde em questão.no catálogo aparecem algumas placas específicas de determinadas dimensões,algo a ser também implementado num trabalho futuro. Finalmente a modelação de todas as placas a 3 dimensões seria o seguinte passo a tomar. Concluida esta etapa conseguiriamos reduzir um extenso e pesado catálogo ao tamanho de uma diskete o que não só significaria uma redução de custos para a empresa,como também simplificaria a consulta do catálogo por parte do cliente.

Listagem do programa Como todo o programa se apresenta muito bem comentado achamos que não nos devemos alongar mais neste relatório.deixamos de seguida a listagem do programa que deverá ser fácil compreensão ; Trabalho em Autolisp ; Realizado por: Luis Anjos & Joao Silva (defun c:geral ( (setq oblip (getvar "blipmode" oecho (getvar "cmdecho" ;guarda o modo de colocação ; de cruzes nos pontos ;guarda o modo de projecção ; dos comandos olayer (getvar "clayer" oosnap (getvar "osmode" ;guarda o layer corrente ;guarda o modo osnap actual (setvar "blipmode" 0 (setvar "cmdecho" 0 (setvar "osmode" 0 ; desliga a colocação de cruzes nos pontos ; desliga a projecção dos comandos ; desliga qualquer modo osnap ;***************************************************** ;caixa dcl que nos pede qual a vista a desenhar (setq vista 1.0 (setq dcl_id (load_dialog "a:/caixas/vista.dcl" (if (not (new_dialog "vista" dcl_id (exit

(action_tile "vistam" "(setq vista 1.0" ;accao que o deve executar ao premir o button ;\\key (action_tile "vistac" "(setq vista 2.0" (action_tile "empilha" "(setq vista 3.0" (action_tile "vista3d" "(setq vista 4.0" (action_tile "accept" (strcat "(done_dialog (setq UserClick T" (start_dialog ;chama a caixa de diálogo (unload_dialog dcl_id ; descarrega a caixa de diálogo ;****************************************************** ;:***************************************************** ;caixa dcl que nos pede qual a referencia de base (setq dcl_id (load_dialog "a:/caixas/n_referencia.dcl" (if (not (new_dialog "n_referencia" dcl_id (exit (action_tile "cancel" "(done_dialog (setq UserClick nil"

(action_tile "accept" ; Botão Cancelar (strcat "(progn (setq nreferencia (atof (get_tile \"referencia\"" ; Botão OK "(done_dialog (setq UserClick T" (start_dialog (unload_dialog dcl_id ;****************************************************** (if (= UserClick nil (progn (exit (if Userclick (progn referencias retornou (if (= nreferencia 0.0 (setq ref (atof "9595" (if (= nreferencia 1.0 (setq ref (atof "100130" (if (= nreferencia 2.0 (setq ref (atof "156156" ;userclick variável que controla a acçao de ;"click" do utilizador ;trata a informação que a caixa de texto de

(setq linha nil ;inicializa a parte de leitura do ficheiro (while (= linha nil ;leitura da tabela (setq f (open "a:/dados.dat" "r" dif 0.0 (if (= f nil (progn (alert "ATENÇÃO: Ficheiro de dados não encontrado" (setq f (Getfiled "Abertura do ficheiro de dados" "dados" "dat" 2 ;Comando GETFILED abre uma janela para procurar ;a localização do ficheiro para o caso de não ;ser encontrado (progn ;vai processar (while (/= ref dif (setq linha (read-line f (if (/= linha nil (setq dif (atof (substr linha 1 7 ; guarda a referencia lida ;fecha o progn ;fecha o if

;////////////////////////////////////////////////////////////////////////////////////////////////////////////////// (if (= vista 3 (progn ;************************************************************* ;caixa dcl que pede o ponto ptref (setq dcl_id (load_dialog "a:/caixas/base.dcl" (if (not (new_dialog "base" dcl_id (exit (start_dialog (unload_dialog dcl_id ;:************************************************************ (setq ptref (getpoint "" (setq largura (atof (substr linha 17 5 ;:**************************************************************** ;caixa dcl que define o tipo de empilhamento (setq dcl_id (load_dialog "a:/caixas/tipo_empilhamento.dcl" (if (not (new_dialog "tipo_empilhamento" dcl_id (exit (action_tile "cancel" "(done_dialog (setq UserClick nil" ; Botão Cancelar (action_tile "accept" (strcat "(progn (setq tipoempilha (atof (get_tile \"empilha\"" ; Botão OK "(done_dialog (setq UserClick T" (start_dialog

(unload_dialog dcl_id ;************************************************************* ;tratamento da informação proveniente da caixa tipo de empilhamento (if (= UserClick nil (progn (exit (if Userclick (progn ;userclick variável que controla a acçao de ;"click" do utilizador (if (= tipoempilha 0.0 (setq baseinf 11.0 suportes 40.0 baseject 70.0 eject 60.0 intermed 30.0 placamolde 20.0 basesup 10.0 (if (= tipoempilha 1.0 (setq baseinf 11.0 suportes 41.0 baseject 71.0 eject 61.0 intermed 30.0 placamolde 20.0 basesup 10.0 (if (= tipoempilha 2.0 (setq baseinf 16.0 suportes 40.0 baseject 70.0

eject 60.0 intermed 30.0 placamolde 20.0 basesup 15.0 (if (= tipoempilha 3.0 (setq baseinf 16.0 suportes 41.0 baseject 71.0 eject 61.0 intermed 30.0 placamolde 20.0 basesup 15.0 ;inicio de um conjunto de instruções que vai desenhar o empilhamento (setq referencia baseinf (if (= referencia 11 (progn (k11lat ptref ;chama subrotina definida abaixo (setq s (atof (substr linha 76 4 ;fecha o progn ;fecha o if

(if (= referencia 16 (progn (k16lat comprimento largura ptref (setq s (atof (substr linha 86 4 ;fecha o if (setq ptref (list (car ptref (+ (cadr ptref s (setq referencia suportes (if (= referencia 40 (k40lat comprimento largura ptref ;fecha o if (if (= referencia 41 (k41lat comprimento largura ptref ;fecha o if (setq sp s (setq referencia baseject (if (= referencia 70 (progn (k70lat comprimento largura ptref (setq sl (atof (substr linha 123 3 ;fecha o if (if (= referencia 71 (progn (k71lat comprimento largura ptref (setq sl (atof (substr linha 127 3 ;fecha o if

(setq ptref (list (car ptref (+ (cadr ptref sl (setq referencia eject (if (= referencia 60 (progn (k60lat comprimento largura ptref (setq s (atof (substr linha 115 3 ;fecha o if (if (= referencia 61 (progn (k61lat comprimento largura ptref (setq s (atof (substr linha 119 3 ;fecha o if (setq ptref (list (car ptref (+ (cadr ptref (- sp sl (setq referencia intermed (if (= referencia 30 (k30lat comprimento largura ptref ;fecha o if (setq s (atof (substr linha 101 3 (setq ptref (list (car ptref (+ (cadr ptref s

(setq referencia placamolde (if (= referencia 20 (k20lat comprimento largura ptref (setq s (atof (substr linha 91 4 ;espessura do k20 (setq ptref (list (car ptref (+ (cadr ptref s (setq ptref (list (car ptref (+ (cadr ptref (+ 20 s;incremento do espaço vazio entre placas (k20latrot comprimento largura ptref (setq s (atof (substr linha 91 4 ;espessura do k20 (setq ptref (list (car ptref (+ (cadr ptref s (setq referencia basesup (if (= referencia 10 (progn (k10lat ptref (setq s (atof (substr linha 71 4 ;fecha o if (if (= referencia 15 (progn (k15lat comprimento largura ptref (setq s (atof (substr linha 81 4

;fecha o if ;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// (if (or (= vista 2 (= vista 1 (progn ;************************************************************* ; caixa Dcl que pede ao utilizador para picar um ponto (setq dcl_id (load_dialog "a:/caixas/centro.dcl" (if (not (new_dialog "centro" dcl_id (exit (start_dialog (unload_dialog dcl_id ;:************************************************************* (setq pt (getpoint "" (setq comprimento (atof (substr linha 11 5 (setq largura (atof (substr linha 17 5 (setq pt1 (list (- (car pt (/ largura 2 (- (cadr pt (/ comprimento 2

;*********************************************************************** ******** ;caixa de texto que permite ao utilizador escolher qual a placa molde a desenhar (setq dcl_id (load_dialog "a:/caixas/lista_ks.dcl" (if (not (new_dialog "lista_ks" dcl_id (exit (action_tile "cancel" "(done_dialog (setq UserClick nil" ; Botão Cancelar (action_tile "accept" (strcat "(progn (setq nref (atof (get_tile \"ref\"" ; Botão OK "(done_dialog (setq UserClick T" (start_dialog (unload_dialog dcl_id ;***************************************************************** ;"retorno" da caixa Dcl (if (= UserClick nil (progn (exit (if Userclick (progn (if (= nref 0.0 (setq referencia 10.0 (if (= nref 1.0 (setq referencia 11.0 (if (= nref 2.0 (setq referencia 15.0 (if (= nref 3.0 (setq referencia 16.0 (if (= nref 4.0 (setq referencia 20.0

(if (= nref 5.0 (setq referencia 30.0 (if (= nref 6.0 (setq referencia 40.0 (if (= nref 7.0 (setq referencia 41.0 (if (= nref 8.0 (setq referencia 60.0 (if (= nref 9.0 (setq referencia 61.0 (if (= nref 10.0 (setq referencia 70.0 (if (= nref 11.0 (setq referencia 71.0 ;fecha o progn ;fecha o if ;intruções para desenhar as vistas cima-lado das placas molde "chamando" as subrotinas definidas abaixo (if (= referencia 10 (k10 pt1 s vista (if (= referencia 11 (k11 pt1 s vista

(if (= referencia 15 (k15 comprimento largura pt1 s vista (if (= referencia 16 (k16 comprimento largura pt1 s vista (if (= referencia 20 (k20 comprimento largura pt1 s vista (if (= referencia 28 (k28 comprimento largura pt1 s vista (if (= referencia 30 (k30 comprimento largura pt1 s vista (if (= referencia 40 (k40 comprimento largura pt1 s vista (if (= referencia 41 (k41 comprimento largura pt1 s vista (if (= referencia 60 (k60 comprimento largura pt1 s vista (if (= referencia 61 (k61 comprimento largura pt1 s vista (if (= referencia 70 (k70 comprimento largura pt1 s vista

(if (= referencia 71 (k71 comprimento largura pt1 s vista ;fecha o progn do vista = 1 ou 2 ;fecha o if ;//////////////////////////////////////////////////////////////////////////////////////////////////////////////// (if (= vista 4 (progn ;************************************************************* ;caixa dcl que pede o ponto do centro da placa (setq dcl_id (load_dialog "a:/caixas/centro.dcl" (if (not (new_dialog "centro" dcl_id (exit (start_dialog (unload_dialog dcl_id ;:************************************************************* (k153d ;chama a subrotina que vai desenhara placa a 3D

;instruções que repoem os paramentros iniciais do autocad (setvar "blipmode" oblip (setvar "osmode" oosnap (setvar "cmdecho" oecho (command "layer" "m" olayer "" ;fecha o programa ; ;**************************************** ; funções que o programa vai utilizar ;**************************************** ;-------------------------------------------------------------------------------------- (Defun k10 (pt1 s vista (command "layer" "m" "tg" "" (setq comprimento (atof (substr linha 145 5 (setq largura (atof (substr linha 145 5 (setq s (atof (substr linha 71 4 (setq interfc (atof (substr linha 23 5 (setq interfl (atof (substr linha 29 4 (setq interfintc (atof (substr linha 34 4 (setq raiopeq (atof (substr linha 49 3 (setq raiogra (atof (substr linha 151 3 (setq raioint (atof (substr linha 63 3

(setq raiointi (atof (substr linha 67 3 (setq pt2 (list (+ (car pt1 largura (+ (cadr pt1 comprimento (command "rectang" pt1 pt2 ;vai dasenhar os contornos da peça (setq c1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c1 raiopeq raiopeq ;vai desenhar um cirdulo exterior de raio (setq ci1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfintc 2 (command "circle" ci1 raioint (command "circle" ci1 raiointi ;vai desenhar o circulo interior ;vai desenhar o circulo interior ao interior (setq c2 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c2 raiopeq raiopeq ;vai desenhar um cirdulo exterior de raio (setq c2i (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfintc 2 (command "circle" c2i raioint (command "circle" c2i raiointi ;vai desenhar o circulo interior ;vai desenhar o circulo interior ao interior (setq c3 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2

(command "circle" c3 raiopeq raiopeq ;vai desenhar um cirdulo exterior de raio (setq c3i (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfintc 2 (command "circle" c3i raioint (command "circle" c3i raiointi ;vai desenhar o circulo interior ;vai desenhar o circulo interior ao interior (setq c4 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c4 raiopeq raiopeq ;vai desenhar um cirdulo exterior de raio (setq c4i (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfintc 2 (command "circle" c4i raioint (command "circle" c4i raiointi ;vai desenhar o circulo interior ;vai desenhar o circulo interior ao interior (command "circle" (list (+ (car pt1 (/ largura 2 (+ (cadr pt1 (/ comprimento 2 ;vai desenhar o circulo central de raio raiogra raiogra ;a partir de aqui vamos fazer a vista lateral (if (= vista 2 (progn (setq ptl1 (list (car pt1 (- (cadr pt1 (+ 80 s

(setq ptl2 (list (+ (car ptl1 largura (+ (cadr ptl1 s (setq ptl32 (polar ptl1 (/ pi 2 s;ponto de referencia para hatch (setq ptl33 (polar ptl2 (/ (* pi 3 2 s;ponto de referencia para hatch (command "layer" "m" "tg" "" (command "rectang" ptl1 ptl2 ;rectângulo que define as extremidades da peça (setq ptl3 (list (+ (car ptl1 (/ (- largura interfl 2 (- (cadr ptl1 10 (setq ptl4 (polar ptl3 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl3 ptl4 *cancel*;linha de eixo para o furo desenhado a seguir ;;;;;;;;;;;;;vai fazer a caixa para o parafuso;;;;;;;;; (command "layer" "m" "tg" "" (setq ptl5 (polar ptl3 (/ pi 2 10;ponto de referencia para parte de baixo da caixa (setq ptl6 (polar ptl5 pi raioint (setq ptl7 (polar ptl6 (/ pi 2 8.4 (setq ptl8 (polar ptl7 0 (* raioint 2 (setq ptl9 (polar ptl5 0 raioint (command "line" ptl6 ptl7 ptl8 ptl9 *cancel*;desenha a parte de baixo da caixa (setq ptl10 (polar ptl4 (/ (* 3 pi 2 10;ponto de referencia para parte de cima da caixa (setq ptl11 (polar ptl10 pi raiointi (setq ptl12 (polar ptl11 (/ (* 3 pi 2 (- s 8.4 (setq ptl13 (polar ptl10 0 raiointi (setq ptl14 (polar ptl13 (/ (* 3 pi 2 (- s 8.4

(command "line" ptl11 ptl12 *cancel*;vai desenhar a parte de cima da caixa (command "line" ptl13 ptl14 *cancel*;vai desenhar a parte de cima da caixa ;;;;;;;;;;aqui termina a caixa do parafuso;;;;;;; (setq ptl15 (list (+ (car ptl1 (/ (+ largura interfl 2 (- (cadr ptl1 10 (setq ptl16 (polar ptl15 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl15 ptl16 *cancel*;eixo do furo cego da direita ;;;;;;;;;;;;;;;;vai fazer o furo cego que pode depois ser aberto;;;;; (command "layer" "m" "tg" "" (setq ptl17 (polar ptl16 (/ (* 3 pi 2 10 (setq ptl18 (polar ptl17 pi raiopeq (setq ptl19 (polar ptl18 (/ (* 3 pi 2 7 (setq ptl20 (polar ptl19 0 (* 2 raiopeq (setq ptl21 (polar ptl17 0 raiopeq (command "line" ptl18 ptl19 ptl20 ptl21 *cancel*;vai desenhar o furo cego (setq ptl22 (polar ptl17 (/ (* 3 pi 2 10 (setq ptl23 (list (- (car ptl22 3 (+ (cadr ptl22 3 (setq ptl24 (list (+ (car ptl22 3 (+ (cadr ptl22 3 (command "line" ptl23 ptl22 ptl24 *cancel*;vai desenhar a ponta de broca do furo ;;;;;;;;;;;;termina o desenho do furo cego;;;;;;;;;;;;;;;;;;;;;;;;; (setq ptl25 (list (+ (car ptl1 (/ largura 2 (- (cadr ptl1 10

(setq ptl26 (polar ptl25 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl25 ptl26 *cancel*;linha de centro da peça ;;;;;;;;;;;;;vai fazer o furo cego central;;;;;;;;; (command "layer" "m" "tg" "" (setq ptl27 (polar ptl26 (/ (* 3 pi 2 10 (setq ptl28 (polar ptl25 (/ pi 2 10 (setq rn1 (distance ptl28 ptl9 (setq rn2 (distance ptl27 ptl18 (setq ptl29 (polar ptl9 (/ pi 2 4 (setq ptl30 (polar ptl29 0 (+ rn1 rn2 (setq ptl31 (polar ptl30 (/ (* 3 pi 2 4 (command "line" ptl29 ptl30 ptl31 *cancel* ;;;;;;;;;;;;termina o desenho do furo;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (command "layer" "m" "hatch" "" (command "hatch" "u" "45" "4" "n" "" "n" ptl1 ptl6 ptl7 ptl12 ptl11 ptl32 ptl1 "" "" ;primeira area (command "hatch" "u" "45" "4" "n" "" "n" ptl29 ptl30 ptl31 ptl33 ptl2 ptl21 ptl20 ptl24 ptl22 ptl23 ptl19 ptl18 ptl13 ptl14 ptl8 ptl29 "" "" ;segunda area ;fecha o progn ;fecha o if

;fecha a função k10 ----------- ;-------------------------------------------------------------- (Defun k11 (pt1 s vista (command "layer" "m" "tg" "" (setq comprimento (atof (substr linha 145 5 (setq largura (atof (substr linha 145 5 (setq s (atof (substr linha 71 4 (setq interfc (atof (substr linha 23 5 (setq interfl (atof (substr linha 29 4 (setq interfintc (atof (substr linha 34 4 (setq raiopeq (atof (substr linha 49 3 (setq raioint (atof (substr linha 63 3 (setq raiointi (atof (substr linha 67 3 (setq pt2 (list (+ (car pt1 largura (+ (cadr pt1 comprimento (command "rectang" pt1 pt2;vai desenhar o contorno da peça (setq c1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c1 raiopeq;vai desenhar um circulo exterior (setq ci1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfintc 2 (command "circle" ci1 raioint;vai desenhar um circulo interior (command "circle" ci1 raiointi;vai desenhar um circulo interior a um circulo interior (setq c2 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c2 raiopeq;vai desenhar um circulo exterior

(setq c2i (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfintc 2 (command "circle" c2i raioint;vai desenhar um circulo interior (command "circle" c2i raiointi;vai desenhar um circulo interior a um circulo interior (setq c3 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c3 raiopeq;vai desenhar um circulo exterior (setq c3i (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfintc 2 (command "circle" c3i raioint;vai desenhar um circulo interior (command "circle" c3i raiointi;vai desenhar um circulo interior a um circulo interior (setq c4 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c4 raiopeq;vai desenhar um circulo exterior (setq c4i (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfintc 2 (command "circle" c4i raioint;vai desenhar um circulo interior (command "circle" c4i raiointi;vai desenhar um circulo interior a um circulo interior ;a partir de aqui vamos fazer a vista lateral

(if (= vista 2 (progn (setq ptl1 (polar pt1 (/ (* 3 pi 2 (+ 80 s (setq ptl2 (list (+ (car ptl1 largura (+ (cadr ptl1 s (setq ptl27 (polar ptl1 (/ pi 2 s ;ponto de referencia para hatch (setq ptl28 (polar ptl2 (/ (* pi 3 2 s ;ponto de referencia para hatch (command "layer" "m" "tg" "" (command "rectang" ptl1 ptl2 ;define o rectangulo da peça (setq ptl3 (list (+ (car ptl1 (/ (- largura interfl 2 (- (cadr ptl1 10 (setq ptl4 (polar ptl3 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl3 ptl4 *cancel* ;linha de eixo do furo para parafuso ;;;;;;;;;;;;;;;;;;;;;;;;;furo para parafuso raioint e raiointi (setq ptl5 (polar ptl4 (/ (* pi 3 2 10 ;ponto de referencia para desenhar a parte de cima do furo (setq ptl6 (polar ptl5 pi raiointi (setq ptl7 (polar ptl6 (/ (* pi 3 2 (- s 8.4 (setq ptl8 (polar ptl5 0 raiointi (setq ptl9 (polar ptl8 (/ (* pi 3 2 (- s 8.4 (command "layer" "m" "tg" "" (command "line" ptl6 ptl7 *cancel* ;parte de cima do furo (command "line" ptl8 ptl9 *cancel* ;;;;;;;;;;;;;;;;;;;;;;

(setq ptl10 (polar ptl4 (/ (* pi 3 2 (+ s 10 ;ponto de referencia para desenhar a parte de baixo do furo (setq ptl11 (polar ptl10 pi raioint (setq ptl12 (polar ptl11 (/ pi 2 8.4 (setq ptl13 (polar ptl12 0 (* raioint 2 (setq ptl14 (polar ptl10 0 raioint (command "layer" "m" "tg" "" (command "line" ptl11 ptl12 ptl13 ptl14 *cancel* ;parte de baixo do furo ;;;;;;;;termina aqui o furo para parafuso;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setq ptl15 (list (+ (car ptl1 (/ largura 2 (- (cadr ptl1 10 (setq ptl16 (polar ptl15 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl15 ptl16 *cancel* ;linha de centro da peça (setq ptl17 (list (+ (car ptl1 (/ (+ largura interfl 2 (- (cadr ptl1 10 (setq ptl18 (polar ptl17 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl17 ptl18 *cancel*;linha de eixo do furo para guia ;;;;;;;;;;;;;;furo cego que depois o cliente fura para intruduzir a guia do molde;;;;;;;;;;;;; (command "layer" "m" "tg" "" (setq ptl19 (polar ptl18 (/ (* pi 3 2 10 ;ponto de referencia para desenhar o furo (setq ptl20 (polar ptl19 pi raiopeq (setq ptl21 (polar ptl20 (/ (* pi 3 2 7 (setq ptl22 (polar ptl21 0 (* 2 raiopeq (setq ptl23 (polar ptl19 0 raiopeq

(command "line" ptl20 ptl21 ptl22 ptl23 *cancel* ;linhas do furo (setq ptl24 (polar ptl19 (/ (* pi 3 2 10 (setq ptl25 (list (- (car ptl24 3 (+ (cadr ptl24 3 (setq ptl26 (list (+ (car ptl24 3 (+ (cadr ptl24 3 (command "line" ptl25 ptl24 ptl26 *cancel*;desenho da ponta de broca ;;;;;;;;;;;termina aqui o furo para molde;;;;;;;;; (command "layer" "m" "hatch" "" (command "hatch" "u" "135" "4" "n" "" "n" ptl1 ptl11 ptl12 ptl7 ptl6 ptl27 ptl1 "" "" ;primeira area (command "hatch" "u" "135" "4" "n" "" "n" ptl14 ptl28 ptl2 ptl23 ptl22 ptl26 ptl24 ptl25 ptl21 ptl20 ptl8 ptl9 ptl13 ptl14 "" "" ;segunda area ;fecha o progn ;fecha o if ;fecha a função k11 ;------------------------------------------------------------------------------- (Defun k15 (comprimento largura pt1 s vista (command "layer" "m" "tg" ""

(setq s (atof (substr linha 81 4 (setq interfc (atof (substr linha 23 5 (setq interfl (atof (substr linha 29 4 (setq interfintc (atof (substr linha 34 4 (setq raiopeq (atof (substr linha 49 3 (setq raioint (atof (substr linha 63 3 (setq raiogra (atof (substr linha 54 4 (setq raiointi (atof (substr linha 67 3 (setq pt2 (list (+ (car pt1 largura (+ (cadr pt1 comprimento (command "rectang" pt1 pt2;vai desenhar os contornos da peça (setq c1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c1 raiopeq;vai desenhar um circulo exterior (setq ci1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfintc 2 (command "circle" ci1 raioint;vai desenhar um circulo interior (command "circle" ci1 raiointi;vai desenhar um circulo interior ao circulo interior (setq c2 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c2 raiopeq;vai desenhar um circulo exterior (setq c2i (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfintc 2

(command "circle" c2i raioint;vai desenhar um circulo interior (command "circle" c2i raiointi;vai desenhar um circulo interior ao circulo interior (setq c3 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c3 raiopeq;vai desenhar um circulo exterior (setq c3i (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfintc 2 (command "circle" c3i raioint;vai desenhar um circulo interior (command "circle" c3i raiointi;vai desenhar um circulo interior ao circulo interior (setq c4 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c4 raiopeq;vai desenhar um circulo exterior (setq c4i (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfintc 2 (command "circle" c4i raioint;vai desenhar um circulo interior (command "circle" c4i raiointi;vai desenhar um circulo interior ao circulo interior (command "circle" (list (+ (car pt1 (/ largura 2 (+ (cadr pt1 (/ comprimento 2 raiogra ;a partir de aqui vamos fazer a vista lateral

(if (= vista 2 (progn (setq ptl1 (polar pt1 (/ (* pi 3 2 (+ 80 s (setq ptl2 (list (+ (car ptl1 largura (+ (cadr ptl1 s (setq ptl29 (polar ptl1 (/ pi 2 s ;ponto de referencia para hatch (setq ptl30 (polar ptl2 (/ (* pi 3 2 s ;ponto de referencia para hatch (command "layer" "m" "tg" "" (command "rectang" ptl1 ptl2 ;rectângulo que define as extremidades da peça (setq ptl3 (list (+ (car ptl1 (/ (- largura interfl 2 (- (cadr ptl1 10 (setq ptl4 (polar ptl3 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl3 ptl4 *cancel*;linha de eixo do furo com caixa para parafuso da esquerda ;;;vai fazer a caixa para o parafuso;;;;;;;;; (command "layer" "m" "tg" "" (setq ptl5 (polar ptl4 (/ (* pi 3 2 10 ;ponto de referencia para parte de cima da caixa (setq ptl6 (polar ptl5 pi raiointi (setq ptl7 (polar ptl6 (/ (* 3 pi 2 (- s 8.4 (setq ptl8 (polar ptl5 0 raiointi (setq ptl9 (polar ptl8 (/ (* 3 pi 2 (- s 8.4 (command "line" ptl6 ptl7 *cancel* ;vai desenhar a parte de cima da caixa (command "line" ptl8 ptl9 *cancel* ;vai desenhar a parte de cima da caixa

(setq ptl10 (polar ptl3 (/ pi 2 10 ;ponto de referencia para parte de baixo da caixa (setq ptl11 (polar ptl10 pi raioint (setq ptl12 (polar ptl11 (/ pi 2 8.4 (setq ptl13 (polar ptl12 0 (* raioint 2 (setq ptl14 (polar ptl10 0 raioint (command "line" ptl11 ptl12 ptl13 ptl14 *cancel* ;parte de baixo da caixa (setq ptl15 (list (+ (car ptl1 (/ largura 2 (- (cadr ptl1 10 (setq ptl16 (polar ptl15 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl15 ptl16 *cancel*;linha de centro da peça ;;;vai fazer o furo central;;;;;;;;; (command "layer" "m" "tg" "" (setq ptl17 (polar ptl15 (/ pi 2 10 (setq ptl18 (polar ptl17 pi raiogra (setq ptl19 (polar ptl18 (/ pi 2 s (setq ptl20 (polar ptl17 0 raiogra (setq ptl21 (polar ptl20 (/ pi 2 s (command "line" ptl18 ptl19 *cancel* (command "line" ptl20 ptl21 *cancel* ;;;termina o desenho do furo central;;;;;;;;;;;;;; (setq ptl22 (list (+ (car ptl1 (/ (+ largura interfl 2 (- (cadr ptl1 10

(setq ptl23 (polar ptl22 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl22 ptl23 *cancel*;linha de eixo do furo passante da direita ;;;;;;;;;;;;;;;;vai fazer o furo passante da direita;;;;; (command "layer" "m" "tg" "" (setq ptl24 (polar ptl22 (/ pi 2 10 (setq ptl25 (polar ptl24 pi raiopeq (setq ptl26 (polar ptl25 (/ pi 2 s (setq ptl27 (polar ptl24 0 raiopeq (setq ptl28 (polar ptl27 (/ pi 2 s (command "line" ptl25 ptl26 *cancel*;vai desenhar o furo passante (command "line" ptl27 ptl28 *cancel*;vai desenhar o furo passante ;;;;;;;;;;;;termina o desenho do furo passante da direita;;;;;;;;;;;;;;;;;;;;;;;;; (command "layer" "m" "hatch" "" (command "hatch" "u" "45" "4" "n" "" "n" ptl1 ptl11 ptl12 ptl7 ptl6 ptl29 ptl1 "" "" ;primeira area (command "hatch" "u" "45" "4" "n" "" "n" ptl14 ptl18 ptl19 ptl8 ptl9 ptl13 ptl14 "" "" ;segunda area (command "hatch" "u" "45" "4" "n""" "n" ptl20 ptl25 ptl26 ptl21 ptl20 "" "" ;terceira area (command "hatch" "u" "45" "4" "n""" "n" ptl27 ptl30 ptl2 ptl28 ptl27 "" "" ;quarta area ;fecha o progn ;fecha o if ;fecha a função k15

;---------------------------------------------------------------------------------- (Defun k16 (comprimento largura pt1 s vista (setq interfc (atof (substr linha 23 5 (setq interfl (atof (substr linha 29 4 (setq s (atof (substr linha 86 4 (setq interfintc (atof (substr linha 34 4 (setq raioint (atof (substr linha 63 3 (setq raiointi (atof (substr linha 67 3 (setq raiopeq (atof (substr linha 49 3 (setq pt2 (list (+ (car pt1 largura (+ (cadr pt1 comprimento (command "layer" "m" "tg" "" (command "rectang" pt1 pt2;vai desenhar os contornos da peça (setq c1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c1 raiopeq;vai desenhar um circulo exterior (setq ci1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfintc 2 (command "circle" ci1 raioint;vai desenhar um circulo interior (command "circle" ci1 raiointi;vai desenhar um circulo interiior ao circulo interior (setq c2 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c2 raiopeq;vai desenhar um circulo exterior (setq c2i (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfintc 2

(command "circle" c2i raioint;vai desenhar um circulo interior (command "circle" c2i raiointi;vai desenhar um circulo interiior ao circulo interior (setq c3 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c3 raiopeq;vai desenhar um circulo exterior (setq c3i (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfintc 2 (command "circle" c3i raioint;vai desenhar um circulo interior (command "circle" c3i raiointi;vai desenhar um circulo interiior ao circulo interior (setq c4 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c4 raiopeq;vai desenhar um circulo exterior (setq c4i (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfintc 2 (command "circle" c4i raioint;vai desenhar um circulo interior (command "circle" c4i raiointi;vai desenhar um circulo interiior ao circulo interior (if (= vista 2 (progn (setq ptl1 (polar pt1 (/ (* pi 3 2 (+ 80 s ;a partir de aqui vamos fazer a vista lateral

(setq ptl2 (list (+ (car ptl1 largura (+ (cadr ptl1 s (setq ptl24 (polar ptl1 (/ pi 2 s ;ponto de referencia para hatch (setq ptl25 (polar ptl2 (/ (* pi 3 2 s ;ponto de referencia para hatch (command "layer" "m" "tg" "" (command "rectang" ptl1 ptl2 (setq ptl3 (list (+ (car ptl1 (/ (- largura interfl 2 (- (cadr ptl1 10 (setq ptl4 (polar ptl3 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl3 ptl4 *cancel* ;linha de eixo da caixa do parafuso ;;;;;;;;;;;;;vai fazer a caixa para o parafuso;;;;;;;;; (command "layer" "m" "tg" "" (setq ptl5 (polar ptl4 (/ (* pi 3 2 10 ;ponto de referencia para parte de cima da caixa (setq ptl6 (polar ptl5 pi raiointi (setq ptl7 (polar ptl6 (/ (* pi 3 2 (- s 8.4 (setq ptl8 (polar ptl5 0 raiointi (setq ptl9 (polar ptl8 (/ (* pi 3 2 (- s 8.4 (command "line" ptl6 ptl7 *cancel* ;vai desenhar a parte de cima da caixa (command "line" ptl8 ptl9 *cancel* ;vai desenhar a parte de cima da caixa (setq ptl10 (polar ptl3 (/ pi 2 10 ;ponto de referencia para parte de cima da caixa (setq ptl11 (polar ptl10 pi raioint

(setq ptl12 (polar ptl11 (/ pi 2 8.4 (setq ptl13 (polar ptl12 0 (* raioint 2 (setq ptl14 (polar ptl10 0 raioint (command "line" ptl11 ptl12 ptl13 ptl14 *cancel* ;parte de cima da caixa ;;;;;;;;;;aqui termina a caixa do parafuso;;;;;;; (command "layer" "m" "tm" "" (setq ptl15 (list (+ (car ptl1 (/ largura 2 (- (cadr ptl1 10 (setq ptl16 (polar ptl15 (/ pi 2 (+ s 20 (command "line" ptl15 ptl16 *cancel* ;linha de eixo central da peça (setq ptl17 (list (+ (car ptl1 (/ (+ largura interfl 2 (- (cadr ptl1 10 (setq ptl18 (polar ptl17 (/ pi 2 (+ s 20 (command "line" ptl17 ptl18 *cancel* ;linha de eixo do furo passante ;;;;;;;;;;;;;;;;vai fazer o furo passante da direita;;;;; (command "layer" "m" "tg" "" (setq ptl19 (polar ptl17 (/ pi 2 10 (setq ptl20 (polar ptl19 pi raiopeq (setq ptl21 (polar ptl20 (/ pi 2 s (setq ptl22 (polar ptl19 0 raiopeq (setq ptl23 (polar ptl22 (/ pi 2 s (command "line" ptl20 ptl21 *cancel* (command "line" ptl22 ptl23 *cancel* ;;;;;;;;;;;;termina o desenho do furo passante da direita;;;;;;;; (command "layer" "m" "hatch" ""

(command "hatch" "u" "135" "4" "n" "" "n" ptl1 ptl11 ptl12 ptl7 ptl6 ptl24 ptl1 "" "" ;primeira area (command "hatch" "u" "135" "4" "n" "" "n" ptl14 ptl20 ptl21 ptl8 ptl9 ptl13 ptl14 "" "" ;segunda area (command "hatch" "u" "135" "4" "n" "" "n" ptl22 "" "" ;terceira area ptl22 ptl25 ptl2 ptl23 ;fecha o progn ;fecha o if ;fecha a função k16 ;------------------------------------------------------------------------------------ (defun k20 (comprimento largura pt1 s vista (setq s (atof (substr linha 91 4 (setq interfc (atof (substr linha 23 5 (setq interfl (atof (substr linha 29 4 (setq raiopeq (atof (substr linha 49 3 (setq raiopeq2 (atof (substr linha 59 3 (setq pt2 (list (+ (car pt1 largura (+ (cadr pt1 comprimento (command "layer" "m" "tg" "" (command "rectang" pt1 pt2;vai desenhar os contornos da peça (setq c1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2

(command "circle" c1 raiopeq;vai desenhar um circulo exterior (command "circle" c1 raiopeq2;vai desenhar um circulo exterior ao circulo exterior (setq c2 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c2 raiopeq;vai desenhar um circulo exterior (command "circle" c2 raiopeq2;vai desenhar um circulo exterior ao circulo exterior (setq c3 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c3 raiopeq;vai desenhar um circulo exterior (command "circle" c3 raiopeq2;vai desenhar um circulo exterior ao circulo exterior (setq c4 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c4 raiopeq;vai desenhar um circulo exterior (command "circle" c4 raiopeq2;vai desenhar um circulo exterior ao circulo exterior (if (= vista 2 (progn (setq ptl1 (polar pt1 (/ (* 3 pi 2 (+ 80 s (setq ptl2 (list (+ (car ptl1 largura (+ (cadr ptl1 s (setq ptl19 (polar ptl1 (/ pi 2 s ;referencia para hatch (setq ptl20 (polar ptl2 (/ (* pi 3 2 s ;referencia para hatch

(command "layer" "m" "tg" "" (command "rectang" ptl1 ptl2 (setq ptl3 (list (+ (car ptl1 (/ (- largura interfl 2 (- (cadr ptl1 10 (setq ptl4 (polar ptl3 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl3 ptl4 *cancel* ;linha de eixo do furo roscado não desenhado (setq ptl15 (list (+ (car ptl1 (/ largura 2 (- (cadr ptl1 10 (setq ptl16 (polar ptl15 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl15 ptl16 *cancel* ;linha de eixo do centro da peça (setq ptl17 (list (+ (car ptl1 (/ (+ largura interfl 2 (- (cadr ptl1 10 (setq ptl18 (polar ptl17 (/ pi 2 (+ s 20 ;;;;;;;;;;furo do casquilho da guia;;;;;;;;;;; (setq ptl5 (polar ptl18 (/ (* pi 3 2 10 ;ponto de referencia para a construcção dea parte de cima do furo (setq ptl6 (polar ptl5 pi raiopeq (setq ptl7 (polar ptl6 (/ (* pi 3 2 (- s 3.2 (setq ptl8 (polar ptl5 0 raiopeq (setq ptl9 (polar ptl8 (/ (* pi 3 2 (- s 3.2 (command "layer" "m" "tg" ""

(command "line" ptl6 ptl7 *cancel* ;parte de cima do furo (command "line" ptl8 ptl9 *cancel* ;;;;;;;;;;;;;;;;;;;;;; (setq ptl10 (polar ptl18 (/ (* pi 3 2 (+ s 10 ;ponto de referencia para a construcção dea parte de baixo do furo (setq ptl11 (polar ptl10 pi raiopeq2 (setq ptl12 (polar ptl11 (/ pi 2 3.2 (setq ptl13 (polar ptl12 0 (* raiopeq2 2 (setq ptl14 (polar ptl10 0 raiopeq2 (command "layer" "m" "tg" "" (command "line" ptl11 ptl12 ptl13 ptl14 *cancel* ;desenha a parte de baixo do furo ;;;;;;;;;;;;;;;;;;;termina o desenho do furo para o casquilho da guia;;;;;;;;;;;;; (command "layer" "m" "tm" "" (command "line" ptl17 ptl18 *cancel* ;linha de eixo para furo do casquilho da guia (command "layer" "m" "hatch" "" (command "hatch" "u" "135" "4" "n" "" "n" ptl1 ptl11 ptl12 ptl7 ptl6 ptl19 ptl1 "" "" ;primeira area (command "hatch" "u" "135" "4" "n" "" "n" ptl14 ptl20 ptl2 ptl8 ptl9 ptl13 ptl14 "" "" ;segunda area ;fecha o progn ;fecha o if ;fecha a função ---------------------- ;-------------------------------------------------------------- (defun k30 (comprimento largura pt1 s vista (setq s (atof (substr linha 101 3 (setq interfc (atof (substr linha 23 5

(setq interfl (atof (substr linha 29 4 (setq interfintc (atof (substr linha 34 4 (setq raiopeq (atof (substr linha 49 3 (setq raioint (atof (substr linha 67 3 (setq pt2 (list (+ (car pt1 largura (+ (cadr pt1 comprimento (command "layer" "m" "tg" "" (command "rectang" pt1 pt2;vai desenhar os contornos da peça (setq c1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c1 raiopeq;vai desenhar um circulo exterior (setq ci1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfintc 2 (command "circle" ci1 raioint;vai desenhar um circulo interior (setq c2 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c2 raiopeq;vai desenhar um circulo exterior (setq c2i (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfintc 2 (command "circle" c2i raioint;vai desenhar um circulo interior (setq c3 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c3 raiopeq;vai desenhar um circulo exterior

(setq c3i (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfintc 2 (command "circle" c3i raioint;vai desenhar um circulo interior (setq c4 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c4 raiopeq;vai desenhar um circulo exterior (setq c4i (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfintc 2 (command "circle" c4i raioint;vai desenhar um circulo interior (if (= vista 2 (progn ;a partir de aqui vamos fazer a vista lateral (setq ptl1 (polar pt1 (/ (* 3 pi 2 (+ 80 s (setq ptl2 (list (+ (car ptl1 largura (+ (cadr ptl1 s (setq ptl20 (polar ptl1 (/ pi 2 s ;referencia para hatch (setq ptl21 (polar ptl2 (/ (* pi 3 2 s ;referencia para hatch (command "layer" "m" "tg" "" (command "rectang" ptl1 ptl2 (setq ptl3 (list (+ (car ptl1 (/ (- largura interfl 2 (- (cadr ptl1 10 (setq ptl4 (polar ptl3 (/ pi 2 (+ s 20

;;; furo de raio raioint (setq ptl5 (polar ptl4 (/ (* pi 3 2 10 ;ponto de referencia furo construido de cima para baixo (setq ptl6 (polar ptl5 pi raioint (setq ptl7 (polar ptl6 (/ (* pi 3 2 s (setq ptl8 (polar ptl5 0 raioint (setq ptl9 (polar ptl8 (/ (* pi 3 2 s (command "layer" "m" "tg" "" (command "line" ptl6 ptl7 *cancel* ;primeira recta do furo (command "line" ptl8 ptl9 *cancel* ;segunda recta do furo ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (command "layer" "m" "tm" "" (command "line" ptl3 ptl4 *cancel* ;linha de eixo do furo de raio raioint (setq ptl10 (list (+ (car ptl1 (/ largura 2 (- (cadr ptl1 10 (setq ptl11 (polar ptl10 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl10 ptl11 *cancel* ;linha de eixo da peça (setq ptl12 (list (+ (car ptl1 (/ (+ largura interfl 2 (- (cadr ptl1 10 (setq ptl13 (polar ptl12 (/ pi 2 (+ s 20 ;;; furo de raio raiopeq (setq ptl15 (polar ptl13 (/ (* pi 3 2 10 ;ponto de referencia furo construido de cima para baixo (setq ptl16 (polar ptl15 pi raiopeq

(setq ptl17 (polar ptl16 (/ (* pi 3 2 s (setq ptl18 (polar ptl15 0 raiopeq (setq ptl19 (polar ptl18 (/ (* pi 3 2 s (command "layer" "m" "tg" "" (command "line" ptl16 ptl17 *cancel* ;primeira recta do furo (command "line" ptl18 ptl19 *cancel* ;segunda recta do furo ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (command "layer" "m" "tm" "" (command "line" ptl12 ptl13 *cancel* ;linha de eixo do furo de raio raiopeq (command "layer" "m" "hatch" "" (command "hatch" "u" "135" "4" "n" "" "n" ptl1 "" "" ;primeira area (command "hatch" "u" "135" "4" "n" "" "n" ptl9 "" "" ;segunda area (command "hatch" "u" "135" "4" "n" "" "n" ptl19 "" "" ;terceira area ptl1 ptl7 ptl6 ptl20 ptl9 ptl17 ptl16 ptl8 ptl19 ptl21 ptl2 ptl18 ;fecha o progn ;fecha o if ;fecha a função k30 ----------------- ;-------------------------------------------------------------- (defun k40 (comprimento largura pt1 s vista (setq s (atof (substr linha 105 4 (setq interfintc (atof (substr linha 34 4 (setq interpl (atof (substr linha 39 4 (setq interfl (atof (substr linha 29 4 (setq raioint (atof (substr linha 67 3 (setq raiopeq (atof (substr linha 49 3

(setq pt2 (list (+ (car pt1 (/ (- largura interpl 2 (+ (cadr pt1 comprimento (command "layer" "m" "tg" "" (command "rectang" pt1 pt2;vai desenhar uma parte dos contornos da placa (setq pt3 (list (+ (car pt1 (/ (+ largura interpl 2 (cadr pt1 (setq pt4 (list (+ (car pt1 largura (+ (cadr pt1 comprimento (command "rectang" pt3 pt4;vai desenhar a outra parte dos contornos da placa (setq c1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c1 raiopeq;vai desenhar um circulo exterior (setq ci1 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfintc 2 (command "circle" ci1 raioint;vai desenhar um circulo interior (setq c2 (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c2 raiopeq;vai desenhar um circulo exterior

(setq c2i (list (+ (car pt1 (/ (- largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfintc 2 (command "circle" c2i raioint;vai desenhar um circulo interior (setq c3 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfc 2 (command "circle" c3 raiopeq;vai desenhar um circulo exterior (setq c3i (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (+ comprimento interfintc 2 (command "circle" c3i raioint;vai desenhar um circulo interior (setq c4 (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfc 2 (command "circle" c4 raiopeq;vai desenhar um circulo exterior (setq c4i (list (+ (car pt1 (/ (+ largura interfl 2 (+ (cadr pt1 (/ (- comprimento interfintc 2 (command "circle" c4i raioint;vai desenhar um circulo interior (if (= vista 2 (progn ;a partir de aqui vamos fazer a vista lateral (setq ptl1 (polar pt1 (/ (* 3 pi 2 (+ 80 s (setq ptl2 (list (+ (car ptl1 (/ (- largura interpl 2 (+ (cadr ptl1 s

(setq ptl21 (polar ptl1 (/ pi 2 s ;ponto de referencia para hatch (setq ptl22 (polar ptl2 (/ (* pi 3 2 s ;ponto de referencia para hatch (command "rectang" ptl1 ptl2 ;pilar esquerdo (setq ptl3 (list (+ (car ptl1 (/ (+ largura interpl 2 (cadr ptl1 (setq ptl4 (list (+ (car ptl1 largura (+ (cadr ptl1 s (setq ptl23 (polar ptl3 (/ pi 2 s ;ponto de referencia para hatch (setq ptl24 (polar ptl4 (/ (* pi 3 2 s ;ponto de referencia para hatch (command "rectang" ptl3 ptl4 ;pilar direito (setq ptl5 (list (+ (car ptl1 (/ (- largura interfl 2 (- (cadr ptl1 10 (setq ptl6 (polar ptl5 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl5 ptl6 *cancel* ;linha de eixo do furo de raio raioint ;;; furo de raio raioint (setq ptl7 (polar ptl6 (/ (* pi 3 2 10 ;ponto de referencia furo construido de cima para baixo

(setq ptl8 (polar ptl7 pi raioint (setq ptl9 (polar ptl8 (/ (* pi 3 2 s (setq ptl10 (polar ptl7 0 raioint (setq ptl11 (polar ptl10 (/ (* pi 3 2 s (command "layer" "m" "tg" "" (command "line" ptl8 ptl9 *cancel* ;primeira recta do furo (command "line" ptl10 ptl11 *cancel* ;segunda recta do furo ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setq ptl12 (list (+ (car ptl1 (/ largura 2 (- (cadr ptl1 10 (setq ptl13 (polar ptl12 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl12 ptl13 *cancel* ;linha que define o eixo central da peça (setq ptl14 (list (+ (car ptl1 (/ (+ largura interfl 2 (- (cadr ptl1 10 (setq ptl15 (polar ptl14 (/ pi 2 (+ s 20 (command "layer" "m" "tm" "" (command "line" ptl14 ptl15 *cancel* ;linha de eixo do furo de raio raiopeq ;;; furo de raio raiopeq (setq ptl16 (polar ptl15 (/ (* pi 3 2 10 ;ponto de referencia furo construido de cima para baixo (setq ptl17 (polar ptl16 pi raiopeq (setq ptl18 (polar ptl17 (/ (* pi 3 2 s (setq ptl19 (polar ptl16 0 raiopeq (setq ptl20 (polar ptl19 (/ (* pi 3 2 s

(command "layer" "m" "tg" "" (command "line" ptl17 ptl18 *cancel* ;primeira recta do furo (command "line" ptl19 ptl20 *cancel* ;segunda recta do furo ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (command "layer" "m" "hatch" "" (command "hatch" "u" "45" "4" "n""" "n" ptl1 ptl9 ptl8 ptl21 ptl1 "" "" ;primeira area (command "hatch" "u" "45" "4" "n""" "n" ptl11 ptl22 ptl2 ptl10 ptl11 "" "" ;segunda area (command "hatch" "u" "45" "4" "n""" "n" ptl3 ptl18 ptl17 ptl23 ptl3 "" "" ;terceira area (command "hatch" "u" "45" "4" "n""" "n" ptl20 ptl24 ptl4 ptl19 ptl20 "" "" ;quarta area ;fecha o progn ;fecha o if ;fecha a função k40 -------------------- ;-------------------------------------------------------------- (defun k41 (comprimento largura pt1 s vista (setq s (atof (substr linha 110 4 (setq interpc (atof (substr linha 44 4 (setq interfc (atof (substr linha 23 5 (setq interfl (atof (substr linha 29 4 (setq interfintc (atof (substr linha 34 4 (setq interpl (atof (substr linha 39 4 (setq raiopeq (atof (substr linha 49 3 (setq raioint (atof (substr linha 67 3 (setq pt2 (list (+ (car pt1 (/ (- largura interpl 2 (+ (cadr pt1 (/ (- comprimento interpc 2 (command "layer" "m" "tg" "" (command "rectang" pt1 pt2;vai desenhar um dos contornos da peça