• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
53
0
0

Texto

(1)

Elemento Hidráulico Normalizado

Concepção e Fabrico Assistidos por Computador

Programação – VBA

Faculdade de Engenharia da Universidade do Porto

Licenciatura em Gestão e Engenharia Industrial

(2)

Implementação de Desenhos Automáticos

Elemento Hidráulico Normalizado

Cilindro Hidráulico Z 160

André Filipe Mouta Sousa:

andre.filipe@fe.up.pt

4º LGEI

Concepção e Fabrico Assistidos por Computador

Programação

Prof. João Tavares / Eng. Joaquim Fonseca

Licenciatura em Gestão e Engenharia Industrial

4º Ano - 1º Semestre

(3)

E

STE RELATÓRIO INSERE

-

SE NO ÂMBITO DA AVALIAÇÃO DA DISCIPLINA DE

C

ONCEPÇÃO E

F

ABRICO

A

SSISTIDOS POR

C

OMPUTADOR DA LICENCIATURA EM

G

ESTÃO E

E

NGENHARIA

I

NDUSTRIAL

.

P

RETENDE

-

SE COM ESTE TIPO DE TRABALHOS

,

DOTAR O PROGRAMA DA DISCIPLINA DE UMA FACETA MAIS PRÁTICA

,

TRANSPONDO PARA O ENSINO UNIVERSITÁRIO CENÁRIOS DA REALIDADE INDUSTRIAL E DESTE MODO PROPORCIONAR AOS ALUNOS A OPORTUNIDADE DE ADQUIRIR UMA MAIOR SENSIBILIDADE PARA ESTE TIPO DE PROBLEMAS

.

(4)

Agradecimentos

Reconhecendo a importância de todo o tempo e atenção dispendido ao longo do desenvolvimento do corrente trabalho, gostaria, de através do presente, agradecer aos professores:

ƒ

Eng. Joaquim Oliveira Fonseca

(5)

Í

NDICE

S

UMÁRIO

... 2

O

BJECTIVOS

... 2

P

ROJECTO DE

I

MPLEMENTAÇÃO DE

D

ESENHOS

A

UTOMÁTICOS

... 2

ESPECIFICAÇÃO DOS REQUISITOS FUNCIONAIS DO UTILIZADOR

... 2

ESPECIFICAÇÃO DE SUPORTES LÓGICOS E INTERFACES GRÁFICAS

... 3

MAQUETAS DE INTERFACES GRÁFICAS COM O UTILIZADOR

... 3

L

ISTAGEM DE FICHEIROS FONTE

... 4

ESPECIFICAÇÃO DAS SUB

-

ROTINAS UTILIZADAS

/

DESENVOLVIDAS

... 4

PROCEDIMENTO PARA ACEDER AOS VALORES ARMAZENADOS NA BASE DE DADOS

... 4

PROCEDIMENTO PARA TORNAR VISÍVEL AS DIMENSÕES CARACTERÍSTICAS DAS OPÇÕES CONSTRUTIVAS M

1/

B

1.6

PROCEDIMENTO PARA SAIR

/

FECHAR O PROJECTO

... 6

PROCEDIMENTO PARA EXECUTAR O MÓDULO

“mod2

D

”,

E ATRIBUIÇÃO DOS VALORES DA

BD

ÀS VARIÁVEIS

.. 6

DECLARAÇÃO DAS VARIÁVEIS NO MÓDULO

“modGlobal”

TORNANDO

-

AS PÚBLICAS NO PROJECTO

... 7

CONSTANTES

... 8

FUNÇÃO QUE EXECUTA A JANELA DE DIÁLOGO

“G

UARDAR

C

OMO

...”...8

PROCEDIMENTO PARA EXECUÇÃO GRÁFICA

2D

DO ELEMENTO NORMALIZADO

... 8

FUNÇÕES AUXILIARES

... 9

A

PONTAMENTO DO AUTOR

... 10

P

ROCEDIMENTO DE

I

NSTALAÇÃO

... 10

T

RABALHOS

F

UTUROS

... 10

C

ONLUSÕES

...10

R

EFERÊNCIAS

... 11

B

IBLIOGRAFIA

... 11

A

NEXO

A...12

Listagem do Código Fonte Desenvolvido... 12

(6)

S

UMÁRIO

O presente relatório tem como objectivo documentar a aplicação desenvolvida no âmbito da disciplina Concepção e Desenho Assistidos por Computador, que visa a implementação de um desenho automático de um elemento normalizado com o recurso a uma linguagem de programação suportada pelo Autocad.

Para o desenvolvimento deste trabalho foram utilizadas as seguintes aplicações de software, MS Access 2003, MS Visual Basic 6.0 e Autocad 2004. Para atingir o objectivo proposto, optou-se pelo recurso à linguagem de programação Visual Basic for Applications.

O

BJECTIVOS

Implementação de um desenho automático de um elemento normalizado;

ELEMENTO NORMALIZADO: Cilindro Hidráuico Z160

Manipulação de uma linguagem de programação suportada pelo Autocad;

Elaboração da documentação necessária para assistir/acompanhar a aplicação desenvolvida; Comentar de forma standard o código desenvolvido sempre que necessário/relevante;

P

ROJECTO DE

I

MPLEMENTAÇÃO DE

D

ESENHOS

A

UTOMÁTICOS

ESPECIFICAÇÃO DOS REQUISITOS FUNCIONAIS DO UTILIZADOR

util.projectoZ160 1 A aplicação permite obter um desenho 2D de um cilindro hidráulico de referência Z160 do

fabricante HEB

util.projectoZ160 2 As dimensões standard do elemento fornecidas pelo fabricante são carregadas a partir de

uma base de dados criada para o efeito. Estas dimensões podem ser seleccionadas pelo utilizador de acordo com as suas necessidades.

util.projectoZ160 3 É possível optar por uma das duas opções construtivas adoptadas pelo fabricante, por cada

execução da aplicação.

util.projectoZ160 4 O desenho 2D será sempre executado num template anteriormente existente e que deve

acompanhar sempre o projecto.

util.projectoZ160 5 Na interface com o utilizador, deve seleccionar-se o diâmetro do pistão, a opção de

construção e a série (a partir de L1) do cilindro pretendido.

util.projectoZ160 6 Na interface estarão visíveis as dimensões de construção fornecidas pelo fabricante de

acordo com as escolhas feitas pelo utilizador anteriomente.

util.projectoZ160 7 Existe, na interface, um botão de execução da aplicação e outro para sair da mesma. util.projectoZ160 8 Sempre que as dimensões de referência fornecidas pelo fabricante forem alteradas pelo

mesmo, é possível actualizar a base de dados sem que o projecto se torne obsoleto, já que em antevisão a estas situações foram criadas funções em linguagem de programação que asseguram o bom funcionamento do projecto sem grandes alterações da base de dados.

(7)

ESPECIFICAÇÃO DE SUPORTES LÓGICOS E INTERFACES GRÁFICAS

MAQUETAS DE INTERFACES GRÁFICAS COM O UTILIZADOR

Figura 1: Interface com o utilizador da aplicação “projectoZ160”

(8)

L

ISTAGEM DE FICHEIROS FONTE

Para a concretização do projecto em questão foram criados os seguintes ficheiros fonte onde se encontra todo o código desenvolvido:

Z160.vbp modGlobal.bas mod2d.bas Z160.frm

projectoZ160.exe

O desenvolvimento deste projecto implicou ainda o desenvolvimento de uma base de dados a que se deu o nome de “dbwcfac.mdb” e de um template Autocad denominado “acadZ160.dwt”. Estes dois ficheiros devem acompanhar sempre os restantes ficheiros do projecto.

ESPECIFICAÇÃO DAS SUB

-

ROTINAS UTILIZADAS

/

DESENVOLVIDAS

PROCEDIMENTO PARA ACEDER AOS VALORES ARMAZENADOS NA BASE DE DADOS Private Sub txtDiametroPistao_Change()

recDimensoes.RecordSource = "SELECT tbl_dados.* FROM tbl_dados INNER JOIN tbl_elemento ON tbl_dados.cod_dp = tbl_elemento.cod_dp WHERE (((tbl_elemento.dp)=" & txtDiametroPistao.Text & "))"

recDimensoes.Refresh txtd1.Text = recDimensoes.Recordset("d1") txtd2.Text = recDimensoes.Recordset("d2") txtd2G.Text = recDimensoes.Recordset("d2g") txtd3.Text = recDimensoes.Recordset("d3") txtd11.Text = recDimensoes.Recordset("d11") txtL2.Text = recDimensoes.Recordset("l2") txtL3.Text = recDimensoes.Recordset("l3") txtL4.Text = recDimensoes.Recordset("l4") txtL11.Text = recDimensoes.Recordset("l11") txtL12.Text = recDimensoes.Recordset("l12") txtL13.Text = recDimensoes.Recordset("l13") txtL14.Text = recDimensoes.Recordset("l14") txtL15.Text = recDimensoes.Recordset("l15") txtL19.Text = recDimensoes.Recordset("l19") txtL20.Text = recDimensoes.Recordset("l20") txtb8.Text = recDimensoes.Recordset("b8") txtb9.Text = recDimensoes.Recordset("b9") txtd7.Text = recDimensoes.Recordset("d7") txtR2.Text = recDimensoes.Recordset("r2") txtw1.Text = recDimensoes.Recordset("w1") txta.Text = recDimensoes.Recordset("a") txtADin.Text = recDimensoes.Recordset("adin") txtE.Text = recDimensoes.Recordset("e") txta4.Text = recDimensoes.Recordset("l3") txta5.Text = recDimensoes.Recordset("a5") txta6.Text = recDimensoes.Recordset("a6") txtcrs.Text = recDimensoes.Recordset("crs") a1 = recDimensoes.Recordset("a1") pd2g = recDimensoes.Recordset("pd2g") padin = recDimensoes.Recordset("padin")

(9)

pa6 = recDimensoes.Recordset("pa6")

If txtl1i.Value = True Then txtl1i_Click If txtl1ii.Value = True Then txtl1ii_Click If txtl1iii.Value = True Then txtl1iii_Click

End Sub

Private Sub txtl1i_Click()

If txtDiametroPistao.Text <> "" Then

recL1.RecordSource = "SELECT tbl_dpL1.l1 FROM tbl_elemento INNER JOIN tbl_dpL1 ON tbl_elemento.cod_dp = tbl_dpL1.cod_dp WHERE (((tbl_elemento.dp)=" & txtDiametroPistao.Text & ") AND ((tbl_dpL1.cod_L1)=1))"

recL1.Refresh

txtL1.Text = recL1.Recordset("l1")

Else

MsgBox "Dimensão do Diâmetro do Pistão não definida!", vbExclamation + vbOKOnly, "Aviso"

End If End Sub

Private Sub txtl1ii_Click()

If txtDiametroPistao.Text <> "" Then

recL1.RecordSource = "SELECT tbl_dpL1.l1 FROM tbl_elemento INNER JOIN tbl_dpL1 ON tbl_elemento.cod_dp = tbl_dpL1.cod_dp WHERE (((tbl_elemento.dp)=" & txtDiametroPistao.Text & ") AND ((tbl_dpL1.cod_L1)=2))"

recL1.Refresh

txtL1.Text = recL1.Recordset("l1")

Else

MsgBox "Dimensão do Diâmetro do Pistão não definida!", vbExclamation + vbOKOnly, "Aviso"

End If End Sub

Private Sub txtl1iii_Click()

If txtDiametroPistao.Text <> "" Then

recL1.RecordSource = "SELECT tbl_dpL1.l1 FROM tbl_elemento INNER JOIN tbl_dpL1 ON tbl_elemento.cod_dp = tbl_dpL1.cod_dp WHERE (((tbl_elemento.dp)=" & txtDiametroPistao.Text & ") AND ((tbl_dpL1.cod_L1)=3))"

recL1.Refresh

(10)

txtL1.Text = recL1.Recordset("l1")

Else

MsgBox "Dimensão do Diâmetro do Pistão não definida!", vbExclamation + vbOKOnly, "Aviso"

End If End Sub

PROCEDIMENTO PARA TORNAR VISÍVEL AS DIMENSÕES CARACTERÍSTICAS DAS OPÇÕES CONSTRUTIVAS M1/B1 Private Sub txtM1_Click()

fraM1.Visible = True FraB1.Visible = False End Sub

Private Sub txtB1_Click() FraB1.Visible = True fraM1.Visible = False End Sub

PROCEDIMENTO PARA SAIR/FECHAR O PROJECTO Private Sub sair_Click()

End

End Sub

PROCEDIMENTO PARA EXECUTAR O MÓDULO “mod2D”, E ATRIBUIÇÃO DOS VALORES DA BD ÀS VARIÁVEIS Private Sub exedesenho2d_Click()

If BuscaFicheiro() = False Then Exit Sub Screen.MousePointer = vbHourglass d1 = txtd1.Text diametropistao = txtDiametroPistao.Text d2 = txtd2.Text d2g = txtd2G.Text d3 = txtd3.Text d11 = txtd11.Text l1 = txtL1.Text l2 = txtL2.Text l3 = txtL3.Text l4 = txtL4.Text l11 = txtL11.Text l12 = txtL12.Text l13 = txtL13.Text l14 = txtL14.Text l15 = txtL15.Text l19 = txtL19.Text

(11)

l20 = txtL20.Text b8 = txtb8.Text b9 = txtb9.Text d7 = txtd7.Text r2 = txtR2.Text w1 = txtw1.Text a = txta.Text adin = txtADin.Text e = txtE.Text a4 = txta4.Text a5 = txta5.Text a6 = txta6.Text crs = txtcrs.Text

desenha2d ' executa, chamando o módulo mod2d

Screen.MousePointer = vbDefault End Sub

DECLARAÇÃO DAS VARIÁVEIS NO MÓDULO “modGlobal” TORNANDO-AS PÚBLICAS NO PROJECTO

Public acCordstart(2) As Double Public acCord3(2) As Double Public acCord4(2) As Double Public acCord5(2) As Double Public acCord6(2) As Double Public acCord7(2) As Double Public acCordE(2) As Double Public acCordE1(2) As Double Public acCordE3(2) As Double Public acCordA(2) As Double

'Campos de texto

Public d1 As String

Public diametropistao As String Public d2 As String Public d2g As String Public d3 As String Public d11 As String Public l1 As String Public l2 As String Public l3 As String Public l4 As String Public l11 As String Public l12 As String Public l13 As String Public l14 As String Public l15 As String Public l19 As String Public l20 As String Public b8 As String Public b9 As String Public d7 As String Public r2 As String Public w1 As String Public a As String Public adin As String

(12)

Public e As String Public a4 As String Public a5 As String Public a6 As String Public crs As String 'Directamente da BD Public a1 As String Public pd2g As String Public padin As String Public pa6 As String

CONSTANTES

Public Const pi = 3.14159265358979

FUNÇÃO QUE EXECUTA A JANELA DE DIÁLOGO “GUARDAR COMO...”

Public Function BuscaFicheiro() ' Abre a janela de diálogo "guardar como"

frmZ160.cmdSaveAs.FileName = ""

frmZ160.cmdSaveAs.DialogTitle = "Guardar desenho..."

frmZ160.cmdSaveAs.Filter = "Ficheiros Autocad (*.dwg)|*.dwg" frmZ160.cmdSaveAs.InitDir = App.Path frmZ160.cmdSaveAs.ShowSave If frmZ160.cmdSaveAs.FileName = "" Then BuscaFicheiro = False Else BuscaFicheiro = True End If End Function

PROCEDIMENTO PARA EXECUÇÃO GRÁFICA 2D DO ELEMENTO NORMALIZADO

Devido à extensão do código desenvolvido para a concretização deste item, reporta-se a totalidade daquele para anexo. Por este motivo será apenas apresentada nesta rubrica, a sintaxe que se considera mais relevante e que se pode encontrar neste fascículo de código em particular.

Exemplo da criação de uma linha – indicação de dois pontos e correspondentes coordenadas x,y,z

acCord1(0) = acCordstart(0) acCord1(1) = acCordstart(1) - CDbl(d2g) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1) - CDbl(d2g) + 0.1 * CDbl(d2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

Exemplo da criação de um arco – indicação do centro, raio, startangle, endangle

acAplic.ActiveDocument.ModelSpace.AddArc acCord2, CDbl(d3) / 2,

(13)

Exemplo da criação de uma circunferência – indicação do centro, raio

acAplic.ActiveDocument.ModelSpace.AddCircle acCordCentro, CDbl(d3) / 2

Exemplo da activação de uma layer existente no template autocad

acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tg")

FUNÇÕES AUXILIARES

Estas funções foram criadas com o objectivo de obter dimensões indispensáveis à criação do desenho. Estas, são obtidas a partir das dimensões armazenadas na base de dados através de relações matemáticas, desta forma uma alteração do fabricante não implicará grandes alterações de código nem grandes actualizações da base de dados.

Private Function angadin1(larg, altcaixa, diamcil) As Double

angadin1 = (3 * pi / 2) - Arcsin(Sin((larg / 2 + altcaixa / 2) / (diamcil / 2)))

End Function

Private Function angadin2(larg, altcaixa, diamcil) As Double

angadin2 = (3 * pi / 2) + Arcsin(Sin((larg / 2 + altcaixa / 2) / (diamcil / 2)))

End Function

Private Function r2i(raio, larg) As Double r2i = rai

End Function

o - Tan(Arcsin((larg / 2) / raio)) * (larg / 2)

Private Function e1(diamcil, alt) As Double e1 = Sqr((diamcil / 2) ^ 2 - (alt / 2) ^ 2) End Function

Private Function e2(diamcil, alt) As Double

e2 = Sqr((diamcil / 2) ^ 2 - (alt * 0.3) ^ 2) End Function

Private Function r2adin(diamcil, larg, altcaixa) As Double r2adin =

End Function

Sqr((diamcil / 2) ^ 2 - (larg / 2 + altcaixa / 2) ^ 2)

Private Function Arcsin(valor) As Double Arcsin =

End Function

Atn(valor / Sqr(-valor * valor + 1))

Private Function aint(diamcil, alt) As Double

aint = Sqr((diamcil / 2) ^ 2 - ((diamcil / 2) - alt) ^ 2) End Function

Private Function di(diamt, p) As Double di = diamt - 1.0825 * p

End Function

Private Function y(diamt11, larg) As Double y = Sqr((dia

End Function

(14)

A

PONTAMENTO DO AUTOR

O facto do enunciado se encontrar em alemão levantou algumas dúvidas quanto ao curso dos cilindros normalizados nos seus vários segmentos disponibilizados pelo fabricante. Por este motivo foi arbitrado um valor de curso para cada um dos segmentos do elemento normalizado. Esta situação não é problemática para a concretização dos objetivos do trabalho uma vez que a qualquer momento a base de dados pode ser actualizada.

P

ROCEDIMENTO DE

I

NSTALAÇÃO

O CD que acompanha este relatório contém uma pasta na raiz à qual foi dado o nome de “trabalhodeCFAC”. Esta pasta deverá ser copiada para o disco da máquina. No interior desta pasta, para além de todos os ficheiros necessários ao projecto, existe um ficheiro “projectoZ160.exe” o qual sempre que executado dá início à aplicação.

T

RABALHOS

F

UTUROS

No que diz respeito à prossecução deste projecto em particular, a minha sugestão vai de encontro à necessidade de muitas vezes o utilizador personalizar as dimensões do elemento, pelo que a criação de novas rotinas de programação permitirião esta faculdade ao projecto. A representação gráfica 3D deste elemento como complemento deste projecto faz também todo o sentido.

Para além de incentivar o contínuo desenvolvimento de aplicações que implementem desenhos automáticos de elementos normalizados que se revelem de maior interesse para a Secção de Desenho Industrial, gostaria de sugerir o desenvolvimento de uma base de dados que armazene todas as aplicações até aqui desenvolvidas, e as que no futuro se venham a desenvolver. Deste modo é possível optimizar-se a gestão documental destas aplicações, com a certeza que esta iniciativa trará benefícios para todos os que trabalham com a Secção.

C

ONLUSÕES

As propostas feitas para trabalhos futuros poderiam ter sido desenvolvidas no âmbito deste projecto. Esta opção foi no entanto deixada de parte por considerar que tais desenvolvimentos não são indispensáveis para a concretização plena dos objectivos deste trabalho.

(15)

R

EFERÊNCIAS

Como referências deste trabalho serviram todas as aplicações desenvolvidas no âmbito da disciplina, no que concerne à implementação de desenhos automáticos, utilizando várias linguagens de programação disponíveis para o efeito, tendo assumido principal relevo o seguinte trabalho:

Título: Representação gráfica 3D em AutoCAD de um cilindro de duplo efeito Aplicações utilizadas: AutoCAD, Visual Basic e Access

Linguagens utilizadas: Visual Basic for Aplications e Access Autores: Noé Pierre Gros e Nuno Daniel Tavares de Fontes (LGEI) Ano Lectivo: 2003/2004

B

IBLIOGRAFIA

FERREIRA, Fernando Luís, SANTOS João, Programação em AutoCAD – Curso Completo, FCA, 2002, Programação.

TAVARES, João M., FONSECA, Joaquim O., MARAFONA, José D., Sebenta de Concepção e Desenho Assistidos por Computador, SDI, Faculdade de Engenharia da Universidade do Porto, 2004.

Morais, Simões, Desenho de Construções Mecânicas 3, Porto Editora, Desenho Técnico Básico.

TAVARES, João M., Acetatos de Concepção e Desenho Assistidos por Computador, SDI, Faculdade de Engenharia da Universidade do Porto, 2004.

(16)

A

NEXO

A

Listagem do Código Fonte Desenvolvido

PROCEDIMENTO PARA EXECUÇÃO GRÁFICA 2D DO ELEMENTO NORMALIZADO Public Sub desenha2d()

Dim acAplic As AutoCAD.AcadApplication Dim acCordCentro(2) As Double

Dim acCordCentro1(2) As Double Dim acCordCentro2(2) As Double Dim acCordCentro3(2) As Double Dim acCord1(2) As Double

Dim acCord2(2) As Double

Dim strAplic As String ' Variável para ficar com o local onde está instalado o Autocad

Set acAplic = New AutoCAD.AcadApplication ' Cria o objecto acAplic como aplicação autocad

strAplic = acAplic.FullName ' Coloca na variável o local onde o autocad está instalado

acAplic.ActiveDocument.Close 'Fecha o documento activo (o autocad abre sempre um documento em branco por defeito)

acAplic.Documents.Add App.Path & "\acadZ160.dwt" ' Cria um novo documento de autocad com o nome acadZ160.dwt

' Vista Principal

' B1

If frmZ160.txtB1.Value = True Then

acCordstart(0) = 30 acCordstart(1) = 210 acCordstart(2) = 0

(17)

acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tg") acCord1(0) = acCordstart(0) acCord1(1) = acCordstart(1) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) acCord2(1) = acCordstart(1) - CDbl(d2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) acCord1(1) = acCordstart(1) - CDbl(d2g) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1) - CDbl(d2g) + 0.1 * CDbl(d2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) acCord1(1) = acCordstart(1) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1) - 0.1 * CDbl(d2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) - CDbl(d2g) + 0.1 * CDbl(d2g) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1) - 0.1 * CDbl(d2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(a5) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) - CDbl(d2g) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) acCord2(1) = acCordstart(1) - CDbl(d2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(a5) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) - CDbl(d2g)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(a5) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1)

acCord2(2) = acCordstart(2)

(18)

acCord1(0) = acCordstart(0) acCord1(1) = acCordstart(1) acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(a5) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tf")

acCord1(0) = acCordstart(0) + CDbl(a5) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) - 0.1 * CDbl(d2g) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1) - 0.1 * CDbl(d2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g)

acCord1(1) = acCordstart(1) - CDbl(d2g) + 0.1 * CDbl(d2g) acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(a5) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1) - CDbl(d2g) + 0.1 * CDbl(d2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tg")

acCord1(0) = acCordstart(0) + CDbl(a5) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) - CDbl(d2g) + 1.5 * CDbl(pd2g) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1) - CDbl(d2g) + 1.5 * CDbl(pd2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) - 1.5 * CDbl(pd2g)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(a5) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1) - 1.5 * CDbl(pd2g)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + 0.5 acCord2(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5

(19)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1) - CDbl(d2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) - CDbl(d2g) * 0.5 + 0.25 * CDbl(d2g) * 2 / 3 acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + CDbl(d2g) * 2/6 acCord2(1) = acCordstart(1) - CDbl(d2g) * 0.5 + 0.25 * CDbl(d2g) * 2 / 3 acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) - CDbl(d2g) * 0.5 - 0.25 * CDbl(d2g) * 2 / 3 acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + CDbl(d2g) * 2/6 acCord2(1) = acCordstart(1) - CDbl(d2g) * 0.5 - 0.25 * CDbl(d2g) * 2 / 3 acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + CDbl(d2g) * 2/6 acCord1(1) = acCordstart(1) - CDbl(d2g) * 0.5 + 0.25 * CDbl(d2g) * 2 / 3 acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + CDbl(d2g) * 2/6 acCord2(1) = acCordstart(1) - CDbl(d2g) * 0.5 - 0.25 * CDbl(d2g) * 2 / 3 acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) - CDbl(d2g) * 0.5 - 0.25 * CDbl(d2g) * 2 / 3 acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + CDbl(d2g) * 2/6 acCord2(1) = acCordstart(1) - CDbl(d2g) * 0.5 + 0.25 * CDbl(d2g) * 2 / 3 acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) - CDbl(d2g) * 0.5 + 0.25 * CDbl(d2g) * 2 / 3 acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + CDbl(d2g) * 2/6 acCord2(1) = acCordstart(1) - CDbl(d2g) * 0.5 - 0.25 * CDbl(d2g) * 2 / 3 acCord2(2) = acCordstart(2)

(20)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + 0.5 acCord1(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5

acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + 0.5 acCord2(1) = acCordstart(1) - CDbl(d2g) * 0.5 + 0.25 * CDbl(d2g) * 2 / 3 acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + 0.5 acCord1(1) = acCordstart(1) - CDbl(d2g) * 0.5 - 0.25 * CDbl(d2g) * 2 / 3 acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + 0.5

acCord2(1) = acCordstart(1) - CDbl(d2g) - (Tan(45 * pi / 180) * 0.5) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + 0.5 acCord1(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5)) * 0.5) - 0.1 * CDbl(d2g) + 0.5

acCord2(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) - CDbl(d2g) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + 0.5

acCord2(1) = acCordstart(1) - CDbl(d2g) - (Tan(45 * pi / 180) * 0.5) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) - 0.1 * CDbl(d2g) + 0.5

acCord1(1) = acCordstart(1) - CDbl(d2g) - (Tan(45 * pi / 180) * 0.5) acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5)) * 0.5) - 0.1 * CDbl(d2g) + 0.5

acCord2(1) = acCordstart(1) - CDbl(d2g) - (Tan(45 * pi / 180) * 0.5) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5)) * 0.5) - 0.1 * CDbl(d2g) + 0.5

acCord1(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

acCord1(2) = acCordstart(2)

(21)

acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5)) * 0.5) - 0.1 * CDbl(d2g) + 0.5

acCord2(1) = acCordstart(1) - CDbl(d2g) - Tan(45 * pi / 180) * 0.5 - ((CDbl(d2) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5)) * 7 / 8) - 0.1 * CDbl(d2g) + 0.5

acCord1(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5)) * 7 / 8) - 0.1 * CDbl(d2g) + 0.5

acCord2(1) = acCordstart(1) - CDbl(d2g) - Tan(45 * pi / 180) * 0.5 - ((CDbl(d2) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5)) * 0.5) - 0.1 * CDbl(d2g) + 0.5

acCord1(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5)) * 7 / 8) - 0.1 * CDbl(d2g) + 0.5

acCord2(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5)) * 0.5) - 0.1 * CDbl(d2g) + 0.5

acCord1(1) = acCordstart(1) - CDbl(d2g) - Tan(45 * pi / 180) * 0.5 - ((CDbl(d2) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5)) * 7 / 8) - 0.1 * CDbl(d2g) + 0.5

acCord2(1) = acCordstart(1) - CDbl(d2g) - Tan(45 * pi / 180) * 0.5 - ((CDbl(d2) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5

acCord1(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5)))) + (((CDbl(l4) + 0.5) * 1 / 8) * (Tan(45 * pi / 180))) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5)) * 7 / 8) - 0.1 * CDbl(d2g) + 0.5

acCord2(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

(22)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5

acCord2(1) = acCordstart(1) - CDbl(d2g) - Tan(45 * pi / 180) * 0.5 - ((CDbl(d2) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5)))) - (((CDbl(l4) + 0.5) * 1 / 8) * (Tan(45 * pi / 180))) acCord2(2) = acCordstart(2) acCord1(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5)) * 7 / 8) - 0.1 * CDbl(d2g) + 0.5

acCord1(1) = acCordstart(1) - CDbl(d2g) - Tan(45 * pi / 180) * 0.5 - ((CDbl(d2) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

acCord1(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

'Criar Vista lateral esquerda B1

'Centro da vista lateral esquerda

acCordCentro(0) = acCordstart(0) + CDbl(l3) + CDbl(l20) + CDbl(l2) acCordCentro(1) = acCordstart(1) - CDbl(d3) * 1.6

acCordCentro(2) = 0

' Linhas de traço misto da vista lateral esquerda

acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tm") acCord1(0) = acCordCentro(0) - 1.1 * CDbl(d3) / 2 acCord1(1) = acCordCentro(1) acCord1(2) = acCordCentro(2) acCord2(0) = acCordCentro(0) + 1.1 * CDbl(d3) / 2 acCord2(1) = acCordCentro(1) acCord2(2) = acCordCentro(2)

(23)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordCentro(0) acCord1(1) = acCordCentro(1) - 1.1 * CDbl(d3) / 2 acCord1(2) = acCordCentro(2) acCord2(0) = acCordCentro(0) acCord2(1) = acCordCentro(1) + 1.1 * CDbl(d3) / 2 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

' Linha que mostra que a peça é roscada

acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tf") acAplic.ActiveDocument.ModelSpace.AddArc acCordCentro, CDbl(d2g) / 2 - 0.1 * CDbl(d2g), -pi / 3, 1.2 * pi

' Restante vista lateral esquerda

acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tg") acAplic.ActiveDocument.ModelSpace.AddCircle acCordCentro, CDbl(d2g) / 2 acAplic.ActiveDocument.ModelSpace.AddCircle acCordCentro, CDbl(d2) / 2 acAplic.ActiveDocument.ModelSpace.AddCircle acCordCentro, CDbl(d2g) / 2 + 0.5 * Tan(45 * pi / 180) acAplic.ActiveDocument.ModelSpace.AddArc acCordCentro, CDbl(d11) / 2, pi * 3.2 / 180, pi * 86.8 / 180

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(1) = acCordCentro(1) + CDbl(d11) / 2

acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(1) = acCordCentro(1) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(1) = acCordCentro(1) + CDbl(d11) / 2

acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(1) = acCordCentro(1) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(1) = acCordCentro(1) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(1) = acCordCentro(1) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord2(2) = acCordCentro(2)

(24)

acAplic.ActiveDocument.ModelSpace.AddArc acCordCentro, CDbl(d11) / 2, pi * 93.2 / 180, pi * 176.8 / 180

acCord1(0) = acCordCentro(0) - CDbl(d11) / 2

acCord1(1) = acCordCentro(1) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord2(1) = acCordCentro(1) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) - CDbl(d11) / 2

acCord1(1) = acCordCentro(1) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord1(1) = acCordCentro(1) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acAplic.ActiveDocument.ModelSpace.AddArc acCordCentro, CDbl(d11) / 2, pi * 183.2 / 180, pi * 266.8 / 180

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(1) = acCordCentro(1) - CDbl(d11) / 2

acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(1) = acCordCentro(1) - CDbl(d11) / 2

acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(1) = acCordCentro(1) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord1(2) = acCordCentro(2)

(25)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acAplic.ActiveDocument.ModelSpace.AddArc acCordCentro, CDbl(d11) / 2, pi * 273.2 / 180, pi * 356.8 / 180

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2

acCord1(1) = acCordCentro(1) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord2(1) = acCordCentro(1) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2

acCord1(1) = acCordCentro(1) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord1(1) = acCordCentro(1) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acAplic.ActiveDocument.ModelSpace.AddCircle acCordCentro, CDbl(d3) / 2 Else ' M1

(26)

acCordstart(0) = 30 acCordstart(1) = 210 acCordstart(2) = 0 acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tg") acCord1(0) = acCordstart(0) acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - CDbl(d2) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - CDbl(d2) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - CDbl(d2) + 0.1 * CDbl(d2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - 0.1 * CDbl(d2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - 0.1 * CDbl(d2g) acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - CDbl(d2) + 0.1 * CDbl(d2g) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(a4) - 2 * 0.1 * CDbl(d2g)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - CDbl(d2)

acCord1(2) = acCordstart(2)

(27)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - CDbl(d2)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(a4) - 2 * 0.1 * CDbl(d2g)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - CDbl(d2)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(a4) - 2 * 0.1 * CDbl(d2g)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(a4) - 2 * 0.1 * CDbl(d2g)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(a4) - 0.1 * CDbl(d2g)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) + 0.1 * CDbl(d2g)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(a4) - 2 * 0.1 * CDbl(d2g)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(a4) - 2 * 0.1 * CDbl(d2g)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - CDbl(d2)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(a4) - 0.1 * CDbl(d2g)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - CDbl(d2) - 0.1 * CDbl(d2g)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("ti") acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) + (CDbl(a6) / 2) acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) + (CDbl(a6) / 2)

(28)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) - (CDbl(a6) / 2) acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) - (CDbl(a6) / 2)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) + (CDbl(a6) / 2)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) - (CDbl(a6) / 2)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) + (di(CDbl(a6), CDbl(pa6)) / 2)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) -

(CDbl(d2) / 2) + (di(CDbl(a6), CDbl(pa6)) / 2) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) - (di(CDbl(a6), CDbl(pa6)) / 2) acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) -

(CDbl(d2) / 2) - (di(CDbl(a6), CDbl(pa6)) / 2) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) -

(CDbl(d2) / 2) + (di(CDbl(a6), CDbl(pa6)) / 2) acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) -

(CDbl(d2) / 2) - (di(CDbl(a6), CDbl(pa6)) / 2) acCord2(2) = acCordstart(2)

(29)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) -

(CDbl(d2) / 2) + (di(CDbl(a6), CDbl(pa6)) / 2) acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) -

(CDbl(d2) / 2) - (di(CDbl(a6), CDbl(pa6)) / 2) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tg")

acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) + 0.4 * CDbl(a6)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) - 0.4 * CDbl(a6)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6)

(30)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) + 0.4 * CDbl(a6)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6) + 0.6 * CDbl(a6)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) + 0.4 * CDbl(a6)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) - 0.4 * CDbl(a6)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6) + 0.6 * CDbl(a6)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) - 0.4 * CDbl(a6)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6) + 0.6 * CDbl(a6)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) + 0.4 * CDbl(a6)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6) + 0.6 * CDbl(a6)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) - 0.4 * CDbl(a6)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6) + 0.6 * CDbl(a6)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) + 0.4 * CDbl(a6)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) - 0.4 * CDbl(a6)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6)

acCord1(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) + 0.4 * CDbl(a6)

acCord1(2) = acCordstart(2)

(31)

acCord2(0) = acCordstart(0) - 0.1 * CDbl(d2g) + CDbl(a5) + (CDbl(a5) / 20) + (CDbl(a5) / 10) + 1 / 3 * CDbl(a6) + 0.6 * CDbl(a6)

acCord2(1) = acCordstart(1) + ((CDbl(d2) / 2) - ((CDbl(d2g) / 2))) - (CDbl(d2) / 2) - 0.4 * CDbl(a6)

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

'Criar Vista lateral esquerda M1 'Centro da vista lateral esquerda

acCordCentro(0) = acCordstart(0) + CDbl(l3) + CDbl(l20) + CDbl(l2) acCordCentro(1) = acCordstart(1) - CDbl(d3) * 1.6 acCordCentro(2) = 0

' Linhas de traço misto da vista lateral esquerda

acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tm") acCord1(0) = acCordCentro(0) - 1.1 * CDbl(d3) / 2 acCord1(1) = acCordCentro(1) acCord1(2) = acCordCentro(2) acCord2(0) = acCordCentro(0) + 1.1 * CDbl(d3) / 2 acCord2(1) = acCordCentro(1) acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acCord1(0) = acCordCentro(0) acCord1(1) = acCordCentro(1) - 1.1 * CDbl(d3) / 2 acCord1(2) = acCordCentro(2) acCord2(0) = acCordCentro(0) acCord2(1) = acCordCentro(1) + 1.1 * CDbl(d3) / 2 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

' Linha que mostra que a peça é roscada

acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tf")

acAplic.ActiveDocument.ModelSpace.AddArc acCordCentro, CDbl(a6) / 2, -pi / 3, 1.2 * pi

' Restante vista lateral esquerda

acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tg")

acAplic.ActiveDocument.ModelSpace.AddCircle acCordCentro, CDbl(d2) / 2 acAplic.ActiveDocument.ModelSpace.AddCircle acCordCentro, di(CDbl(a6), CDbl(pa6)) / 2 acAplic.ActiveDocument.ModelSpace.AddCircle acCordCentro, CDbl(d2) / 2 + 0.1 * CDbl(d2) acAplic.ActiveDocument.ModelSpace.AddCircle acCordCentro, CDbl(d2) / 2 - 0.1 * CDbl(d2) acAplic.ActiveDocument.ModelSpace.AddArc acCordCentro, CDbl(d11) / 2, pi * 3.2 / 180, pi * 86.8 / 180

(32)

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(1) = acCordCentro(1) + CDbl(d11) / 2

acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(1) = acCordCentro(1) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(1) = acCordCentro(1) + CDbl(d11) / 2

acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(1) = acCordCentro(1) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(1) = acCordCentro(1) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(1) = acCordCentro(1) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acAplic.ActiveDocument.ModelSpace.AddArc acCordCentro, CDbl(d11) / 2, pi * 93.2 / 180, pi * 176.8 / 180

acCord1(0) = acCordCentro(0) - CDbl(d11) / 2

acCord1(1) = acCordCentro(1) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord2(1) = acCordCentro(1) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) - CDbl(d11) / 2

acCord1(1) = acCordCentro(1) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord1(1) = acCordCentro(1) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(2) = acCordCentro(2)

(33)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acAplic.ActiveDocument.ModelSpace.AddArc acCordCentro, CDbl(d11) / 2, pi * 183.2 / 180, pi * 266.8 / 180

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(1) = acCordCentro(1) - CDbl(d11) / 2

acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(1) = acCordCentro(1) - CDbl(d11) / 2

acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(1) = acCordCentro(1) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 + (CDbl(d11) / 2) * 0.1 acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acAplic.ActiveDocument.ModelSpace.AddArc acCordCentro, CDbl(d11) / 2, pi * 273.2 / 180, pi * 356.8 / 180

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2

acCord1(1) = acCordCentro(1) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord2(1) = acCordCentro(1) + CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2

acCord1(1) = acCordCentro(1) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordCentro(0) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord1(1) = acCordCentro(1) + CDbl(d11) / 2 * Sin(3.2 * pi / 180)

(34)

acCord1(2) = acCordCentro(2)

acCord2(0) = acCordCentro(0) + CDbl(d11) / 2 - (CDbl(d11) / 2) * 0.1 acCord2(1) = acCordCentro(1) - CDbl(d11) / 2 * Sin(3.2 * pi / 180) acCord2(2) = acCordCentro(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2 acAplic.ActiveDocument.ModelSpace.AddCircle acCordCentro, CDbl(d3) / 2 End If ' Corpo do cilindro acAplic.ActiveDocument.ActiveLayer = acAplic.ActiveDocument.Layers.Item("tg") acCord1(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5

acCord1(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d11) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5

acCord2(1) = acCordstart(1) - CDbl(d2g) - Tan(45 * pi / 180) * 0.5 - ((CDbl(d11) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5)))) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5

acCord1(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d11) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5)))) - (CDbl(d11) / 2) + (CDbl(d11) * Sin(3.2 * pi / 180)) * 0.5

acCord1(2) = acCordstart(2)

(35)

acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5 + CDbl(l20)

acCord2(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d11) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5)))) - (CDbl(d11) / 2) + (CDbl(d11) * Sin(3.2 * pi / 180)) * 0.5

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5

acCord1(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d11) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5)))) - (CDbl(d11) / 2) - (CDbl(d11) * Sin(3.2 * pi / 180)) * 0.5 acCord1(2) = acCordstart(2) acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5 + CDbl(l20)

acCord2(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d11) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5)))) - (CDbl(d11) / 2) - (CDbl(d11) * Sin(3.2 * pi / 180)) * 0.5

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5

acCord1(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d11) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5 + CDbl(l20)

acCord2(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d11) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5))))

acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5

acCord1(1) = acCordstart(1) - CDbl(d2g) - Tan(45 * pi / 180) * 0.5 - ((CDbl(d11) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5)))) acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5 + CDbl(l20)

acCord2(1) = acCordstart(1) - CDbl(d2g) - Tan(45 * pi / 180) * 0.5 - ((CDbl(d11) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5)))) acCord2(2) = acCordstart(2)

acAplic.ActiveDocument.ModelSpace.AddLine acCord1, acCord2

acCord1(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5 + CDbl(l20)

acCord1(1) = acCordstart(1) + Tan(45 * pi / 180) * 0.5 + ((CDbl(d11) / 2) - ((CDbl(d2g) / 2) + ((Tan(45 * pi / 180) * 0.5)))) + 0.02 * CDbl(d11)

acCord1(2) = acCordstart(2)

acCord2(0) = acCordstart(0) + CDbl(l4) + ((CDbl(l3) - (CDbl(l4) + 0.5))) - 0.1 * CDbl(d2g) + 0.5 + CDbl(l20)

Referências

Documentos relacionados

1.4.2 Comunicação Social e Educação Ambiental 1.4.3 Apoio Institucional às Entidades de Controle e Gestão de Recursos Hídricos MÓDULO 2 RECUPERAÇÃO DA QUALIDADE AMBIENTAL PROGRAMA

A) Governo de poucos, em que a escolha dos governantes não é rigorosamente democrática, mas controlada pela elite. B) Governo com poderes absolutos, dadas as ideias

As análises dos dados apresentados poderão ainda ser o suporte para a construção de um texto coletivo a respeito das brincadeiras preferidas da turma 5 1.. A seguir,

Grátis Gel para Contorno dos Olhos e Sacola de Presente Na compra do Creme Facial Clareador Preço normal R$22,00.. *Teste realizado no Laboratório CLAIM da Argentina, após 28 dias

O custo anual uniforme equivalente do módulo de colheita mecanizado composto por feller-buncher, grapple skidder e grapple processor aumenta 18,3% no ano subsequente ao momento

Ao iniciar o comando é solicitada a especificação do primeiro ponto da linha, conforme a mensagem: LINE Specify first point: Digite as coordenadas no formato X.XXXX, Y.YYYY,

Specify next point or [Close/Undo]: Continuar a introduzir pontos, premir Enter para terminar, U para anular o último ponto ou C para fechar o polígono definido pelos

Já nos países de desenvolvimento retardatário, a começar pelo Japão, no momento em que realizam sua revolução capitalista e iniciaram o processo de catching up ou