Professional Documents
Culture Documents
PROJECTO INDUSTRIAL
GERAO AUTOMTICA DE DESENHOS 3D
Aluno
Rui Pinheiro de Jesus
Numero: em12720
Orientador
Jorge Miguel Peralta Siopa
Gerao_automtica_desenhos_3D
ndice
1. 2. 3. 3.1 3.2 INTRODUO ...................................................................................................................................... 5 OBJECTIVOS ......................................................................................................................................... 6 MEMRIA DESCRITIVA E JUSTIFICATIVA.......................................................................... 7 SOLUO TRADICIONAL ........................................................................................................................... 7 SOLUO DE TRANSIO .......................................................................................................................... 8 Folha de clculo .............................................................................................................................. 8 Desenhos de Modelao ................................................................................................................ 12
SOLUO PROPOSTA............................................................................................................................... 13 Folha de clculo ............................................................................................................................ 13 Componentes de desenho ............................................................................................................... 19 Macro............................................................................................................................................. 21 Desenho de Modelao .................................................................................................................. 26
3.3.1 3.3.2 3.3.3 3.3.4 3.4 4. 4.1 4.2 4.3 4.4 4.5 5. 6.
CONSIDERAES FUNCIONAIS ................................................................................................................ 29 CONCLUSES E RECOMENDAES ........................................................................................ 30 SOLUO TRADICIONAL ......................................................................................................................... 30 SOLUO DE TRANSIO ........................................................................................................................ 30 SOLUO PROPOSTA............................................................................................................................... 30 RESULTADO PRTICO ............................................................................................................................. 31 RECOMENDAES PARA TRABALHOS FUTUROS ...................................................................................... 33 LISTA DE LINKS DE REFERNCIA .......................................................................................... 34 MACROS ................................................................................................................................................ 35
PG. 2 de 46
Gerao_automtica_desenhos_3D
Lista de Figuras
Figura 3.1 Solues existentes ................................................................. 8 Figura 3.2 Folha de encomenda ............................................................... 9 Figura 3.3 Folha de clculo .................................................................... 10 Figura 3.4 Dados para inventor (modo 1) ................................................ 11 Figura 3.5 Dados para inventor (modo 2) ................................................ 11 Figura 3.6 Ocultar a folha (Dados para inventor) ...................................... 11 Figura 3.7 Apenas folha de encomenda ................................................... 12 Figura 3.8 Hiperligao ao desenho respectivo ......................................... 12 Figura 3.9 Folha de encomenda ............................................................. 14 Figura 3.10 Dados para inventor ............................................................ 15 Figura 3.11 Resultado de clculos .......................................................... 15 Figura 3.12 Valores importados.............................................................. 16 Figura 3.13 Clculos com tomadas de deciso.......................................... 16 Figura 3.14 Folha de encomenda ............................................................ 16 Figura 3.15 Folha de clculo .................................................................. 16 Figura 3.16 Clulas com dimenses ........................................................ 17 Figura 3.17 Clulas com quantidades ...................................................... 17 Figura 3.18 Clulas tipo mostra/no mostra ............................................ 17 Figura 3.19 Clulas com opes diversas................................................. 17 Figura 3.20 Hiperligao ao desenho ...................................................... 18 Figura 3.21 Segurana .......................................................................... 18 Figura 3.22 Dimenses de valores fixos e sob a forma de varivel .............. 19 Figura 3.23 Ficheiro de conjunto (Esquadro_Suporte_duplo.iam) ............... 20 Figura 3.24 Ficheiro de conjunto (Montagem_Esquadro_duplo.iam) ............ 20 Figura 3.25 Visual Basic Application ........................................................ 21
RUI PINHEIRO JESUS PG. 3 de 46
Gerao_automtica_desenhos_3D
Figura 3.26 Actualizao das variveis locais ........................................... 21 Figura 3.27 Apaga todas as ocorrncias .................................................. 22 Figura 3.28 Localizao dos ficheiros ...................................................... 22 Figura 3.29 Funo para inserir componentes .......................................... 22 Figura 3.30 Chamada da funo ............................................................. 22 Figura 3.31 Conjunto de variveis a passar funo ................................ 23 Figura 3.32 Condio de repetio e chamada da funo ........................... 23 Figura 3.33 Condio de teste e chamada da funo ................................. 24 Figura 3.34 Bloqueio dos componentes ................................................... 25 Figura 3.35 Bloqueio dos componentes ................................................... 25 Figura 3.37 Correr a macro ................................................................... 26 Figura 3.38 Carregar o projecto ............................................................. 27 Figura 3.39 Carregar a macro ................................................................ 27 Figura 3.40 Coleco de parmetros do desenho ...................................... 28 Figura 3.41 Coleco de parmetros importados ...................................... 28 Figura 3.42 Folha de parmetros ............................................................ 29
PG. 4 de 46
Gerao_automtica_desenhos_3D
1. Introduo
Hoje em dia a indstria est obrigada a diminuir progressivamente os prazos de entrega dos seus produtos. Mesmo os produtos de produo contnua, so produzidos em menores quantidades mas com maior nvel de personalizao. A indstria tem todo o interesse em passar da produo de stock para a produo por encomenda (just in time). As tarefas de obteno dos desenhos de fabrico de um dado produto com algum grau de personalizao, dentro de uma determinada gama de dimenses e opes possveis, beneficiando de todos os clculos j executados para essas gamas, so rotineiras, quase sempre repetitivas e normalmente prvias em relao formalizao do contrato de fornecimento. Assim existe todo o interesse em que grande parte dos modelos 3D ou os desenhos desses produtos / componentes possam ser obtidos de forma quase automtica, sem perda de tempo e a custos mnimos. Durante toda a transio da produo de stock (Autodesk Autocad 2D) para a produo por encomenda (Autodesk Inventor 3D), surgiram alteraes e evolues nos softwares de desenho, que nos permitem equacionar e aproveitar todo o trabalho anteriormente criado. Apenas teremos que adaptar os projectos antigos e elaborar os novos projectos de acordo com as novas tecnologias. Ento se a modelao 3D surgir de forma rpida, resultado das opes seleccionadas pelo cliente, com a possibilidade deste visualizar as diversas opes, ento maiores sero as possibilidades de formalizao da encomenda.
PG. 5 de 46
Gerao_automtica_desenhos_3D
2. Objectivos
Promover a obteno (quase) automtica dos desenhos de modelao e de fabrico de componentes para elaborao de um determinado produto standard, com diversas opes de concepo. Estas opes de concepo, esto
implementadas numa folha de clculo, (documento anexo ao contrato/proposta de fornecimento) a que o software de CAD recorre, por meio de ligaes externas ou algum programa, para gerao de forma (quase) automtica os desenhos necessrios. Visa este trabalho elaborar um mtodo ou guia, capaz de orientar um novo utilizador, de forma a criar quer a modelao (3D) dos componentes, quer a elaborao da macro para gerao automtica da modelao (3D) do desenho de conjunto, de modo a poder usufruir das capacidades de parametrizao do software Autodesk Inventor . A finalidade destas parametrizaes aplicas em modelaes existentes ou aplicadas em novas modelaes, a possibilidade do agente comercial poder a partir de uma folha de clculo, abrir o desenho de conjunto, correr a macro prdefinida, gerar automaticamente modelaes 3D para apresentar o produto ao cliente.
PG. 6 de 46
Gerao_automtica_desenhos_3D
PG. 7 de 46
Gerao_automtica_desenhos_3D
PG. 8 de 46
Gerao_automtica_desenhos_3D
PG. 9 de 46
Gerao_automtica_desenhos_3D
Esta folha de clculo deve conter pelo menos duas folhas diferentes, arrumadas por esta ordem: Dados para inventor e Folha de encomenda.
As clulas da folha dados para inventor esto linkadas folha de encomenda. Assim quando se editam os contedos das clulas na folha de encomenda, as alteraes afectam tambm a folha de dados para inventor. Abre-se a folha de clculo, na folha Dados para inventor e definem-se as variveis necessrias para definir o produto. Estas variveis contm os valores que interessa passar para o Autodesk Inventor. De salientar que o Autodesk Inventor comea a ler na primeira folha, pares na vertical. L o nome da varivel na coluna A e os respectivos valores na coluna B, clulas A1 e B1, A2 e B2, A3 e B3. Pra de ler, quando na coluna A encontra uma clula vazia. Em relao ao preenchimento das diversas colunas da folha de Dados para inventor, tero que se seguir alguns procedimentos: modo 1 e modo 2. Modo1 - Preencher na coluna A o nome da primeira varivel e na coluna B o valor que queremos que a varivel assuma. A coluna C deve ficar vazia, a coluna D pode conter as unidades e a coluna E deve conter um breve comentrio, para melhor leitura e interpretao das variveis no futuro.
PG. 10 de 46
Gerao_automtica_desenhos_3D
Modo2 - Coluna A o nome da primeira varivel, coluna B o valor da varivel, coluna C vazia e na coluna D um breve descritivo e as unidades respectivas, para melhor leitura e interpretao das variveis no futuro.
Este ficheiro deve conter a folha Dados para inventor em modo oculto para evitar que por descuido se possa mudar qualquer parmetro de stio.
PG. 11 de 46
Gerao_automtica_desenhos_3D
Abre-se a folha de clculo na folha Folha de encomenda. Em funo da opo seleccionada, aparecem apenas legendas para algumas clulas. Alteramse os valores destas clulas, com valores numricos lgicos, situados nos intervalos definidos. As clulas que no tiverem legenda no se aplicam para a opo seleccionada. Volta-se folha de dados para inventor e ligam-se as clulas da coluna B as clulas de dados da folha de encomenda, para que quando se altera na folha de encomenda, se altere em simultneo os valores da folha de dados para inventor. Ainda dentro da folha de clculo, em funo dos valores seleccionados, criam-se as hiperligaes para cada ficheiro de conjunto pr-definido (quadrado, redondo, triangular). Quantos mais desenhos houver mais hiperligaes ter de haver. No entanto, apenas fica visvel uma hiperligao, de acordo com a opo seleccionada.
Gerao_automtica_desenhos_3D
PG. 13 de 46
Gerao_automtica_desenhos_3D
PG. 14 de 46
Gerao_automtica_desenhos_3D
A primeira folha tem de ser Dados para inventor e deve estar em modo oculto para que no se mude qualquer clula de stio.
Em cada uma das clulas da coluna B, poder ser colocado um valor numrico, que pode ser: resultado de clculos, valores importados de outras folhas dentro do mesmo ficheiro ou no, ou clculos com tomadas de deciso resultantes de outras clulas.
PG. 15 de 46
Gerao_automtica_desenhos_3D
O software Autodesk Inventor comea a ler pares na vertical. L o nome da varivel na coluna A e os respectivos valores na coluna B, clulas A1 e B1, A2 e B2, A3 e B3. Pra de ler, quando na coluna A encontra uma clula vazia. Abre-se a folha de clculo, na folha Folha de encomenda e definem-se as variveis que so relevantes para o projecto.
Fica apenas a Folha de encomenda acessvel para redefinir os valores a inserir nas clulas e para aceder ao ficheiro de modelao. Abre-se a folha de clculo na folha Folha de encomenda, alteram-se e redefinem-se os valores das clulas, com valores numricos situados em intervalos permitidos.
PG. 16 de 46
Gerao_automtica_desenhos_3D
Na folha de encomenda podem-se preencher as clulas que se quiser, pois esta folha no ser lida directamente pelo software Autodesk Inventor. As clulas podero conter valores numricos ou texto. Os valores numricos podem ser: Dimenses
Quantidades
PG. 17 de 46
Gerao_automtica_desenhos_3D
De modo a que no se ande procura de um ficheiro, cria-se dentro da folha de clculo uma hiperligao para aceder directamente ao desenho de montagem do estacionamento.
Ao seguir a hiperligao, automaticamente inicia o software Autodesk Inventor e abre o ficheiro seleccionado. Pode no entanto em funo do antivrus activo, surgir uma caixa de dilogo a pedir confirmao para abrir o documento.
PG. 18 de 46
Gerao_automtica_desenhos_3D
dimenses que dependem de parmetros, neste caso so dimenses e quantidades. Quando se mudam os valores dos parmetros, as dimenses ou quantidades reproduzem os novos valores. Criam-se no Autodesk Inventor ficheiros paramtricos de componentes isolados (*.ipt) e de ficheiros de conjunto (*.iam): Quando so ficheiros tipo part (*.ipt), criam-se com as dimenses a dependerem de parmetros existentes no prprio desenho e outros importados da folha de calculo.
Quando os ficheiros so do tipo assembly (*.iam), tm os diversos componentes paramtricos restringidos uns relativamente aos outros. Considerese que sejam grupos de componentes transformados e aptos para montagem. Estes grupos j incluem os diversos componentes de fabrico que tm de ser construdos, tm tambm todos os acessrios de compra. (parafusos, porcas, motores.) Em funo das caractersticas e dimenses das diferentes solues possveis e tendo em conta que so produtos dentro de gamas perfeitamente definidas e calculadas, o desenhador recorre ao histrico (processos j
RUI PINHEIRO JESUS PG. 19 de 46
Gerao_automtica_desenhos_3D
anteriormente criados e executados), procura componentes idnticos ou iguais que se apliquem e copia os desenhos desses elementos para os usar no novo processo. Podem-se carregar elementos j anteriormente criados/executados e elementos alterados com novas dimenses. De salientar que os desenhos de componentes idnticos, devem de ser actualizados de forma a conterem em vez de valores fixos, valores sob a forma de variveis para poderem reproduzir os valores dados aos parmetros da folha de encomenda.
De seguida criam-se ficheiros de conjunto (*.iam), j com os diversos componentes paramtricos montados em pequenas montagens, que incluem todos os componentes necessrios, desde os componentes a fabricar at aos parafusos, porcas, anilhas, motores, rolamentos,
Serve isto para definir e quantificar os componentes que forem diferentes, em dimenses e em quantidades respectivamente.
PG. 20 de 46
Gerao_automtica_desenhos_3D
3.3.3 Macro
Para criao da macro responsvel pela gerao do desenho 3D, recorremos programao em Visual Basic Application (VBA)
Comeamos por definir e carregar diversas variveis tais como: definies do documento aberto, matriz de coordenadas, lista de parmetros activos no documento, entre outras. Estas variveis a carregar dependem do que se vai executar.
A macro ter de ler os parmetros importados da folha de clculo associada, actualizar automaticamente as dimenses (altura, largura e
PG. 21 de 46
Gerao_automtica_desenhos_3D
Quando se abrir o desenho, a macro ter obrigatoriamente de apagar todos os componentes que existem no desenho de modelao e introduzir os novos componentes.
Para se correr a macro, o projecto (inventor), os ficheiros de modelao e os ficheiros de acessrios/componentes tm de estar todos mesma na directoria pr-definida C:\PI\Estacionamento\. Caso a directoria seja diferente, ter de se indicar qual o caminho a seguir.
Como temos que inserir muitos componentes, fica mais razovel criar uma funo que recebe um pacote de variveis locais e insere os componentes no desenho de modelao.
PG. 22 de 46
Gerao_automtica_desenhos_3D
Podemos criar coberturas de estacionamento de diversos tamanhos, formatos e ainda simples ou duplas: Se o estacionamento for simples, o cho tem apenas o comprimento para ocupar o lado da frente, caso contrrio tem de ocupar zona anterior e posterior. Conforme a quantidade de estacionamentos e largura seleccionadas, a macro ter de redimensionar o cho para ocupar toda a rea da cobertura do estacionamento. Colocar o cho do estacionamento no lugar definido pelas variveis locais XX, YY e ZZ.
Consoante o nmero de lugares de estacionamento, do comprimento e da largura de cada, a macro corrige as dimenses dos limites (marcaes do cho) e coloca-as de um lado ou dos dois lados caso existam.
Apenas no caso de ser estacionamento dos dois lados e se estiver definido nos parmetros que para levar separador entre estacionamentos, coloca um tubo separador por cada grupo de quatro estacionamentos (2 estacionamentos de um lado e dois do outro lado)
PG. 23 de 46
Gerao_automtica_desenhos_3D
Coloca no inicio dos estacionamentos o primeiro pilar. Em funo do que for definido na folha de encomenda, pode aplicar pilar em tubo redondo com bases soldadas para aplicao da cobertura, ou se a opo for quadrado, aplica um tubo quadrado com furaes para fixao da cobertura Se a opo seleccionada for estacionamento simples, coloca os pilares com aplicao da cobertura s de um lado. Se for duplo coloca os pilares com aplicao da cobertura dos dois lados. Se a opo indicar barras limitadoras de altura, coloca os pilares mais altos (compridos) para compensar o espao ocupado pela barra. De seguida coloca os conjuntos de pilares seguintes nas posies respectivas.
Se opo indicar um caixote do lixo, ento ter que o colocar onde estiver definido.
Se a varivel nmero de estacionamentos for 2 (dois) coloca um esquadro de suporte no primeiro pilar e coloca um mdulo de topo no segundo pilar. Se a varivel nmero de estacionamentos for 4 (quatro) ou mais, coloca um esquadro de suporte no primeiro pilar, coloca mdulos intermdios nas pernas intermdias e coloca um mdulo de topo no ltimo pilar. Se a opo seleccionada for estacionamento simples, coloca as coberturas com s de um lado. Se for duplo coloca as coberturas dos dois lados. Se a opo seleccionada for cobertura direita, coloca os mdulos de topo e os mdulos intermdios para aplicao de tela direita. Se for cobertura inclinada,
PG. 24 de 46
Gerao_automtica_desenhos_3D
coloca os mdulos de topo e os mdulos intermdios para aplicao da cobertura com a tela inclinada. Apenas para efeito de visualizao/enquadramento, est considerado apresentar um indivduo (IMIKE), um automvel ligeiro de passageiros (BMWM6) e um veculo ligeiro de mercadorias (MERCEDES SPRINTER) Na colocao do veculo ligeiro de mercadorias deve-se confirmar a altura mnima da cobertura. Se altura superior altura do veculo, este ser colocado debaixo da cobertura. Caso a altura seja igual ou inferior, deixa ao veculo fora da cobertura e atravessado relativamente ao estacionamento.
No final de todos os elementos introduzidos, convm bloquear os elementos para que no sejam movidos acidentalmente e assim mudar o aspecto do conjunto.
Bloqueio dos
No final de todos os elementos introduzidos e bloqueados falta apenas executar um update e salvar o ficheiro de conjunto.
PG. 25 de 46
Gerao_automtica_desenhos_3D
PG. 26 de 46
Gerao_automtica_desenhos_3D
Caso no carregue automaticamente a macro, tem que se carregar manualmente o projecto (Alt+F8) e procurar o ficheiro.
PG. 27 de 46
Gerao_automtica_desenhos_3D
Caso existam componentes dentro do desenho, estes sero apagados durante o run da macro.
PG. 28 de 46
Gerao_automtica_desenhos_3D
Dentro do ficheiro de conjunto, no fim de estar tudo inserido, tenho de editar o ficheiro da folha de clculo.
De seguida fecha-se a folha de clculo e dentro do software inventor fazse um update para ficar tudo devidamente actualizado.
Este mtodo permite-nos criar um desenho de modelao, que depende dos intervalos de valores pr-definidos pelo projectista, seleccionados e validados pelo cliente.
O link existente na folha de clculo, foi testado e funciona com o software Autodesk Inventor. Verso R11, Verso 2008 e Verso 2009. No entanto com o software Autodesk Inventor. Verso 2010, no funcionou.
PG. 29 de 46
Gerao_automtica_desenhos_3D
4. Concluses e recomendaes
4.1 Soluo tradicional
Este era o mtodo usado nos tempos do estirador e mais recentemente no tempo do AUTOCAD. De cada vez que era necessrio um desenho com elementos diferentes, quer em dimenses, quer em forma, tinha que ser redesenhado em 2D e impresso. Se para determinadas caractersticas, a encomenda no fosse exequvel, s se determinava a falha no projecto, passados alguns dias e normalmente j o cliente no se encontra acessvel para rever possveis alteraes. Alm de bastante tempo e trabalho dispendido na elaborao dos desenhos 2D, ainda tinha o incmodo de confrontar o cliente com alteraes. O cliente algumas vezes comprava algo que no estava a seu gosto, mas depois de produzido j no h volta a dar. Corria-se o risco do cliente no ficar satisfeito e podia-se afastar o cliente numa futura compra.
PG. 30 de 46
Gerao_automtica_desenhos_3D
Implica que na fase de ante-projecto, se gaste mais algum tempo a executar os diversos componentes necessrios para determinada modelao. Sejam estes componentes, ficheiros de desenhos (componentes e de conjunto) com dimenses paramtricas, seja a folha de clculo (folha de encomenda e dados para inventor) ou seja a macro em VBA.
encomenda, define a soluo pretendida pelo cliente e preenche/altera os valores das clulas, com os valores permitidos. Grava o ficheiro Excel (VariaveisEstacionamento.xls). Dentro deste e atravs do respectivo link, abre o desenho de modelao 3D que est disponvel no final da folha. Dentro do desenho de modelao 3D, corre a macro. O cliente visualiza o produto e pede uma alterao. O agente comercial altera os valores das clulas de acordo com a alterao pedida e grava o ficheiro Excel. Volta para dentro do desenho de modelao 3D e corre novamente a macro. Permite que o cliente visualize o produto que est a solicitar, quanto forma, dimenses possveis e at geometrias disponveis. Aps a aprovao do cliente, pode imprimir imediatamente um desenho para que o cliente formalize a encomenda. (imagem 3D foto realista) Fecha o ficheiro Excel (VariaveisEstacionamento.xls). Atravs de correio electrnico, passa o conjunto de ficheiros (ficheiro Excel e desenho de modelao) para o projecto para que se emitam os desenhos 2D necessrios necessrios. para fabricao e desencadeiem a aquisio dos materiais
PG. 31 de 46
Gerao_automtica_desenhos_3D
PG. 32 de 46
Gerao_automtica_desenhos_3D
Seria interessante que em prximos trabalhos se conseguisse apenas com a utilizao de macros: Evoluir da modelao 3D, para a completa ligao e gerao dos desenhos finais 2D, to necessrios e indispensveis em serralharia. Actualizar alm do desenho 2D, actualizar tambm listas de peas, quantidades totais por mquina e no caso de vrias maquinar actualizar quantidades totais por encomenda. Imprimir todos os ficheiros de desenho 2D para PDF.
Com a chegada do software Autodesk Inventor. Verso 2010, melhorar a relao folha de clculo / desenho de modelao.
PG. 33 de 46
Gerao_automtica_desenhos_3D
http://www.scribd.com Informao sobre API - Application Programming Interface (ou Interface de Programao de Aplicativos) de Autodesk Inventor .
PG. 34 de 46
Gerao_automtica_desenhos_3D
6. Macros
Public Sub MontagemEstacionamento() '----------------------------------------------------Dim oAsmCompDef As AssemblyComponentDefinition Dim oTG As TransientGeometry Dim oMatrix As Matrix Dim oAssDoc As Inventor.AssemblyDocument Dim oParams As Parameters Dim XX, YY, ZZ, L, M Dim oOcc As ComponentOccurrence Dim fileoOcc As String Dim sItio As String
Set oAsmCompDef ThisApplication.ActiveDocument.ComponentDefinition Set oTG = ThisApplication.TransientGeometry Set oMatrix = oTG.CreateMatrix Set oAssDoc = ThisApplication.ActiveDocument Set oParams = oAssDoc.ComponentDefinition.Parameters '-------------------Directoria onde vai buscar os elementos a inserir sItio = "C:\PI\Estacionamento\" sIttio = "C:\PI\Acessorios\" '-------------------Apaga todos os objectos antigos do assembly For Each oOcc In oAsmCompDef.Occurrences oOcc.Delete Next '------------------cho XX = -60 YY = 0 ZZ = -0.9 fileoOcc = (sItio & "Chao1.ipt")
Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ)
RUI PINHEIRO JESUS PG. 35 de 46
Gerao_automtica_desenhos_3D
'------------------limites de estacionamento no cho For M = 1 To oParams.Item("N_LUG_LADO").Value / 2 * 10 XX = 1 YY = 6 + (M - 1) * oParams.Item("LARGURA").Value ZZ = 0.1 fileoOcc = (sItio & "Limites.ipt") Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) Next M If oParams.Item("SIMP_DUPLO").Value = 0.1 Then For M = 1 To oParams.Item("N_LUG_LADO").Value / 2 * 10 XX = -1 ' Define e insere na posio as barras limitadoras de altura.
YY = 6 + (M - 1) * oParams.Item("LARGURA").Value ZZ = 0.1 fileoOcc = (sItio & "Limites-MIR.ipt") Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) '------------------separador entre estacionamentos If oParams.Item("SEPARADOR").Value = 0.1 Then XX = 0 YY = oParams.Item("LARGURA").Value oParams.Item("LARGURA").Value ZZ = 0.1 fileoOcc = (sItio & "Separador.iam") Call insertoOc(oOcc, fileoOcc, XX, YY, ZZ) End If Next M End If '------------------fundaes no cho For M = 1 To oParams.Item("N_PERNAS").Value * 10 XX = 0 YY = (M - 1) * oParams.Item("LARGURA").Value ZZ = 0.25 fileoOcc = (sItio & "AroFundacao.iam") oMatrix, oTG, oAsmCompDef, oParams, / 4 + (M 1) *
PG. 36 de 46
Gerao_automtica_desenhos_3D
Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) Next M '------------------Pernas If oParams.Item("PERNA_QUAD_RED").Value = 0 Then For M = 1 To oParams.Item("N_PERNAS").Value * 10 XX = 0 YY = (M - 1) * oParams.Item("LARGURA").Value ZZ = 4.72 fileoOcc = (sItio & "Perna.Quadrada.iam") Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) Next M Else For M = 1 To oParams.Item("N_PERNAS").Value * 10 XX = 0 YY = (M - 1) * oParams.Item("LARGURA").Value ZZ = 4.72 fileoOcc = (sItio & "Perna.Redonda.iam") Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) Next M End If '------------------Colocao da cobertura L=2
If oParams.Item("PERNA_QUAD_RED").Value = 0 Then '------------------SIMPLES-QUAD Montagem_Esquadro_topo.iam XX = 8.4 YY = 0 ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_topo.iam") Else fileoOcc = (sItio & "Montagem_Esquadro_topo_INVER.iam")
PG. 37 de 46
Gerao_automtica_desenhos_3D
End If Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) '------------------SIMPLES-QUAD Montagem_Esquadro_simples.iam If oParams.Item("N_PERNAS").Value = 0.2 Then XX = 8.4 YY = oParams.Item("LARGURA").Value ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_simples.iam") Else fileoOcc = (sItio & "Montagem_Esquadro_simples_INVER.iam") End If Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) Else '------------------SIMPLES-QUAD Montagem_Esquadro_duplo.iam For L = 2 To oParams.Item("N_PERNAS").Value * 10 - 1 XX = 8.4 YY = oParams.Item("LARGURA").Value * (L - 1) ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_duplo.iam") Else fileoOcc = (sItio & "Montagem_Esquadro_duplo_INVER.iam") End If Call insertoOc(oOcc, fileoOcc, XX, YY, ZZ) Next L '------------------SIMPLES-QUAD Montagem_Esquadro_simples.iam XX = 8.4 YY = oParams.Item("LARGURA").Value * (L - 1) ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_simples.iam") oMatrix, oTG, oAsmCompDef, oParams,
PG. 38 de 46
Gerao_automtica_desenhos_3D
Else fileoOcc = (sItio & "Montagem_Esquadro_simples_INVER.iam") End If Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) End If If oParams.Item("SIMP_DUPLO").Value = 0.1 Then '------------------DUPLO-QUAD Montagem_Esquadro_topo-MIR.iam XX = -8.4 YY = 0 ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_topo-MIR.iam") Else fileoOcc = (sItio & "Montagem_Esquadro_topo-MIR_INVER.iam") End If Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) '------------------DUPLO-QUAD Montagem_Esquadro_simples-MIR.iam If oParams.Item("N_PERNAS").Value = 0.2 Then XX = -8.4 YY = oParams.Item("LARGURA").Value ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_simples-MIR.iam") Else fileoOcc MIR_INVER.iam") End If Call insertoOc(oOcc, fileoOcc, XX, YY, ZZ) Else '------------------DUPLO-QUAD Montagem_Esquadro_duplo-MIR.iam For L = 2 To oParams.Item("N_PERNAS").Value * 10 - 1 XX = -8.4 YY = oParams.Item("LARGURA").Value * (L - 1)
RUI PINHEIRO JESUS PG. 39 de 46
(sItio
&
"Montagem_Esquadro_simples-
oMatrix,
oTG,
oAsmCompDef,
oParams,
Gerao_automtica_desenhos_3D
ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_duplo-MIR.iam") Else fileoOcc MIR_INVER.iam") End If Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) Next L '------------------DUPLO-QUAD Montagem_Esquadro_simples-MIR.iam XX = -8.4 YY = oParams.Item("LARGURA").Value * (L - 1) ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_simples-MIR.iam") Else fileoOcc MIR_INVER.iam") End If Call insertoOc(oOcc, fileoOcc, XX, YY, ZZ) End If End If Else '------------------SIMPLES-RED Montagem_Esquadro_topo.iam XX = 9.7 YY = 0 ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_topo.iam") Else fileoOcc = (sItio & "Montagem_Esquadro_topo_INVER.iam") End If Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ)
RUI PINHEIRO JESUS PG. 40 de 46
(sItio
&
"Montagem_Esquadro_duplo-
(sItio
&
"Montagem_Esquadro_simples-
oMatrix,
oTG,
oAsmCompDef,
oParams,
Gerao_automtica_desenhos_3D
'------------------SIMPLES-RED Montagem_Esquadro_simples.iam If oParams.Item("N_PERNAS").Value = 0.2 Then XX = 9.7 YY = oParams.Item("LARGURA").Value ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_simples.iam") Else fileoOcc = (sItio & "Montagem_Esquadro_simples_INVER.iam") End If Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) Else '------------------SIMPLES-RED Montagem_Esquadro_duplo.iam For L = 2 To oParams.Item("N_PERNAS").Value * 10 - 1 XX = 9.7 YY = oParams.Item("LARGURA").Value * (L - 1) ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_duplo.iam") Else fileoOcc = (sItio & "Montagem_Esquadro_duplo_INVER.iam") End If Call insertoOc(oOcc, fileoOcc, XX, YY, ZZ) Next L '------------------SIMPLES-RED Montagem_Esquadro_simples.iam XX = 9.7 YY = oParams.Item("LARGURA").Value * (L - 1) ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_simples.iam") Else fileoOcc = (sItio & "Montagem_Esquadro_simples_INVER.iam") End If
RUI PINHEIRO JESUS PG. 41 de 46
oMatrix,
oTG,
oAsmCompDef,
oParams,
Gerao_automtica_desenhos_3D
Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) End If If oParams.Item("SIMP_DUPLO").Value = 0.1 Then '------------------DUPLO-RED Montagem_Esquadro_topo-MIR.iam XX = -9.7 YY = 0 ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_topo-MIR.iam") Else fileoOcc = (sItio & "Montagem_Esquadro_topo-MIR_INVER.iam") End If Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) '------------------DUPLO-RED Montagem_Esquadro_simples-MIR.iam If oParams.Item("N_PERNAS").Value = 0.2 Then XX = -9.7 YY = oParams.Item("LARGURA").Value ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_simples-MIR.iam") Else fileoOcc MIR_INVER.iam") End If Call insertoOc(oOcc, fileoOcc, XX, YY, ZZ) Else '------------------DUPLO-RED Montagem_Esquadro_duplo-MIR.iam For L = 2 To oParams.Item("N_PERNAS").Value * 10 - 1 XX = -9.7 YY = oParams.Item("LARGURA").Value * (L - 1) ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_duplo-MIR.iam")
RUI PINHEIRO JESUS PG. 42 de 46
(sItio
&
"Montagem_Esquadro_simples-
oMatrix,
oTG,
oAsmCompDef,
oParams,
Gerao_automtica_desenhos_3D
Else fileoOcc MIR_INVER.iam") End If Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) Next L '------------------DUPLO-RED Montagem_Esquadro_simples-MIR.iam XX = -9.7 YY = oParams.Item("LARGURA").Value * (L - 1) ZZ = oParams.Item("COMP_PERNA").Value + 0.25 If oParams.Item("INCLINADO").Value = 0 Then fileoOcc = (sItio & "Montagem_Esquadro_simples-MIR.iam") Else fileoOcc MIR_INVER.iam") End If Call insertoOc(oOcc, fileoOcc, XX, YY, ZZ) End If End If End If '------------------caixote do lixo If oParams.Item("CAIXOTE").Value = 0.1 Then XX = 0 YY = -30 ZZ = 0 fileoOcc = (sItio & "Caixote.ipt") Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) End If If oParams.Item("CAIXOTE").Value = 0.2 Then XX = 0 YY = -30 ZZ = 0 fileoOcc = (sItio & "Caixote.ipt")
RUI PINHEIRO JESUS PG. 43 de 46
(sItio
&
"Montagem_Esquadro_duplo-
(sItio
&
"Montagem_Esquadro_simples-
oMatrix,
oTG,
oAsmCompDef,
oParams,
Gerao_automtica_desenhos_3D
Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) XX = 0 YY = oParams.Item("LARGURA").Value * (L - 1) + 30 ZZ = 0 fileoOcc = (sItio & "Caixote.ipt") Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) End If If oParams.Item("CAIXOTE").Value = 0.3 Then XX = 0 YY = oParams.Item("LARGURA").Value * (L - 1) + 30 ZZ = 0 fileoOcc = (sItio & "Caixote.ipt") Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) End If '------------------barra limitadora de altura If oParams.Item("BARRA_LIMITADORA").Value = 0.1 Then For M = 1 To oParams.Item("N_PERNAS").Value * 10 - 1 XX = oParams.Item("COMPRIMENTO").Value + 4.05 YY = (M 1) * oParams.Item("LARGURA").Value / 2 oParams.Item("LARGURA").Value +
ZZ = oParams.Item("ALTURA").Value + 11.5 fileoOcc = (sItio & "Barra-Limitadora.iam") Call insertoOc(oOcc, fileoOcc, XX, YY, ZZ) Next M If oParams.Item("SIMP_DUPLO").Value = 0.1 Then For M = 1 To oParams.Item("N_PERNAS").Value * 10 - 1 XX = -oParams.Item("COMPRIMENTO").Value + 4.05 YY = (M 1) oParams.Item("LARGURA").Value / 2 * oParams.Item("LARGURA").Value + oMatrix, oTG, oAsmCompDef, oParams,
ZZ = oParams.Item("ALTURA").Value + 11.5 fileoOcc = (sItio & "Barra-Limitadora.iam") Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ)
RUI PINHEIRO JESUS PG. 44 de 46
Gerao_automtica_desenhos_3D
Next M End If End If '------------------automovel BM If oParams.Item("CARRO_BM").Value = 0.1 Then Call oMatrix.SetToRotation(3.14159265358979 oTG.CreateVector(1, 0, 0), oTG.CreatePoint(0, 0, 0)) XX = 250 YY = oParams.Item("LARGURA").Value / 4 ZZ = 55 fileoOcc = (sIttio & "BMW_M6a\BMW_M6.ipt") Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) Call oMatrix.SetToRotation(3.14159265358979 oTG.CreateVector(0, 0, 0), oTG.CreatePoint(0, 0, 0)) End If '------------------automovel SPRINTER If oParams.Item("CARRO_SPRINTER").Value = 0.1 Then If oParams.Item("ALTURA").Value < 250 Then Call oMatrix.SetToRotation(3.14159265358979 oTG.CreateVector(0, 0, 1), oTG.CreatePoint(0, 0, 0)) XX = 3 / 2 * oParams.Item("COMPRIMENTO").Value - 50 YY = (M - 1) * 2 / 4 * oParams.Item("LARGURA").Value + 100 ZZ = 214 fileoOcc = (sIttio & "SW3dPS-mb sprinter\sprinter.iam") Call insertoOc(oOcc, fileoOcc, XX, YY, ZZ) oMatrix, oTG, oAsmCompDef, oParams, / 2, / 2, / 2, / 2,
Call oMatrix.SetToRotation(3.14159265358979 oTG.CreateVector(0, 0, 0), oTG.CreatePoint(0, 0, 0)) Else XX = 250 YY = 3 / 4 * oParams.Item("LARGURA").Value ZZ = 214 Call oMatrix.SetToRotation(3.14159265358979 oTG.CreateVector(1, 0, 0), oTG.CreatePoint(0, 0, 0)) fileoOcc sprinter.iam")
RUI PINHEIRO JESUS
2,
(sIttio
&
"SW3dPS-mb
sprinter\SW3dPS-mb
PG. 45 de 46
Gerao_automtica_desenhos_3D
oMatrix,
oTG,
oAsmCompDef,
oParams, / 2,
Call oMatrix.SetToRotation(3.14159265358979 oTG.CreateVector(0, 0, 0), oTG.CreatePoint(0, 0, 0)) End If End If '------------------boneco If oParams.Item("HOMEM").Value = 0.1 Then XX = oParams.Item("COMPRIMENTO").Value YY = oParams.Item("LARGURA").Value / 2 ZZ = 136 fileoOcc = (sIttio & "imike\iMike.iam")
Call insertoOc(oOcc, oMatrix, oTG, oAsmCompDef, oParams, fileoOcc, XX, YY, ZZ) End If '------------------componentes em modo "grounded" For Each oOcc In oAsmCompDef.Occurrences oOcc.Grounded = True Next '------------------faz o Update ao assembly e grava-o oAssDoc.Update 'oAssDoc.Save '-----------------End Sub
Private Sub insertoOc(ByVal oOcc As ComponentOccurrence, ByVal oMatrix As Matrix, ByVal oTG As TransientGeometry, _ ByVal oAsmCompDef ByVal oParams As Parameters, _ As AssemblyComponentDefinition,
ByRef fileoOcc As String, ByVal XX, ByVal YY, ByVal ZZ) Call oMatrix.SetTranslation(oTG.CreateVector(XX, YY, ZZ)) Set oOcc = oAsmCompDef.Occurrences.Add(fileoOcc, oMatrix)
End Sub
PG. 46 de 46