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
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
E
STE RELATÓRIO INSERE-
SE NO ÂMBITO DA AVALIAÇÃO DA DISCIPLINA DEC
ONCEPÇÃO EF
ABRICOA
SSISTIDOS PORC
OMPUTADOR DA LICENCIATURA EMG
ESTÃO EE
NGENHARIAI
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.
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
Í
NDICE
S
UMÁRIO... 2
O
BJECTIVOS... 2
P
ROJECTO DEI
MPLEMENTAÇÃO DED
ESENHOSA
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/
B1.6
PROCEDIMENTO PARA SAIR/
FECHAR O PROJECTO... 6
PROCEDIMENTO PARA EXECUTAR O MÓDULO
“mod2
D”,
E ATRIBUIÇÃO DOS VALORES DABD
À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
UARDARC
OMO...”...8
PROCEDIMENTO PARA EXECUÇÃO GRÁFICA
2D
DO ELEMENTO NORMALIZADO... 8
FUNÇÕES AUXILIARES
... 9
A
PONTAMENTO DO AUTOR... 10
P
ROCEDIMENTO DEI
NSTALAÇÃO... 10
T
RABALHOSF
UTUROS... 10
C
ONLUSÕES...10
R
EFERÊNCIAS... 11
B
IBLIOGRAFIA... 11
A
NEXOA...12
Listagem do Código Fonte Desenvolvido... 12
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 UTILIZADORutil.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.
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”
L
ISTAGEM DE FICHEIROS FONTEPara 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/
DESENVOLVIDASPROCEDIMENTO 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")
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
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
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
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,
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
A
PONTAMENTO DO AUTORO 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 DEI
NSTALAÇÃOO 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.
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.
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
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)
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
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)
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)
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))))
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)
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)
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)
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
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)
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)
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)
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)
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)
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
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)
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)
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)
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)