齐贤伟 基于AUTOCAD VBA渐开线斜齿轮参数化设计系统(10)

2019-09-01 18:41

安徽理工大学毕业设计

dimdpoint2(0) = zstp(0) + bb: dimdpoint2(1) = zstp(1) - da / 2: dimdpoint2(2) = 0

dimlocation1(0) = zstp(0) + bb / 2: dimlocation1(1) = zstp(1) - da / 2 - 10: dimlocation1(2) = 0 Set dimd = ThisDrawing.ModelSpace.AddDimAligned(dimdpoint1, dimdpoint2, dimlocation1) dimd.ArrowheadSize = 5 dimd.textheight = 5

dimdpoint1(0) = lgujcp(2): dimdpoint1(1) = lgujcp(3) + 2: dimdpoint1(2) = 0 dimdpoint2(0) = lgujcp(4): dimdpoint2(1) = lgujcp(5) + 2: dimdpoint2(2) = 0

dimlocation1(0) = lgujcp(4) + 10: dimlocation1(1) = lgujcp(3) + dd / 2 - 10: dimlocation1(2) = 0 Set dimd = ThisDrawing.ModelSpace.AddDimAligned(dimdpoint1, dimdpoint2, dimlocation1) dimd.ArrowheadSize = 5 dimd.textheight = 5

dimdpoint1(0) = lgujcp(4) + 2 - jcb / 2: dimdpoint1(1) = lgujcp(5): dimdpoint1(2) = 0

dimdpoint2(0) = lgujcp(6) + 2 - jcb / 2: dimdpoint2(1) = lgujcp(7) - dd / 2 - Sqr(dd ^ 2 / 4 - jcb ^ 2 / 4): dimdpoint2(2) = 0

dimlocation1(0) = lgujcp(4) + da / 2 + 10: dimlocation1(1) = lgujcp(4) + 10: dimlocation1(2) = 0 Set dimd = ThisDrawing.ModelSpace.AddDimAligned(dimdpoint1, dimdpoint2, dimlocation1) dimd.ArrowheadSize = 5 dimd.textheight = 5

Dim circp(2) As Double, cirfp(2) As Double Dim dimdiam As AcadDimDiametric

circp(0) = cenp(0) - df / 2 * Cos(pi / 4): circp(1) = cenp(1) + df / 2 * Sin(pi / 4): circp(2) = 0 cirfp(0) = cenp(0) + df / 2 * Cos(pi / 4): cirfp(1) = cenp(1) - df / 2 * Sin(pi / 4): cirfp(2) = 0 Set dimdiam = ThisDrawing.ModelSpace.AddDimDiametric(circp, cirfp, 30) dimdiam.ArrowheadSize = 5 dimdiam.textheight = 5

dimdiam.TextOutsideAlign = True

circp(0) = cenp(0) + dd / 2 * Cos(pi / 4): circp(1) = cenp(1) + dd / 2 * Sin(pi / 4): circp(2) = 0 cirfp(0) = cenp(0) - dd / 2 * Cos(pi / 4): cirfp(1) = cenp(1) - dd / 2 * Sin(pi / 4): cirfp(2) = 0 Set dimdiam = ThisDrawing.ModelSpace.AddDimDiametric(circp, cirfp, da / 2) dimdiam.ArrowheadSize = 5 dimdiam.textheight = 5

dimdiam.TextOutsideAlign = True ZoomAll End Sub

41

安徽理工大学毕业设计

齿轮gear2:

………………………………………… Dim ins(2) As Double

Dim cline1, cline2, cline3, cline4 As AcadLine

Dim circleda, circled2, circled0, circled0d, circled3, circled3d, circleko, circledz, dircledf As AcadCircle Dim layercen As AcadLayer, layergear As AcadLayer, layerpou As AcadLayer, layerdim As AcadLayer Dim nameg As String Dim utilobj As Variant On Error Resume Next

ins(0) = inpt(0) + length * 10 / 17: ins(1) = inpt(1) + width * 6 / 10: ins(2) = 0 ThisDrawing.Preferences.LineWeightDisplay = True

If UserForm8.OptionButton2.Value = True Then nameg = \大齿轮\If UserForm8.OptionButton1.Value = True Then nameg = \小齿轮\Set layercen = ThisDrawing.Layers.Add(\Set layergear = ThisDrawing.Layers.Add(\Set layerpou = ThisDrawing.Layers.Add(\Set layerdim = ThisDrawing.Layers.Add(\layercen.color = acBlue layergear.color = acWhite layerpou.color = acGreen layerdim.color = acWhite layercen.Lineweight = acLnWt009 layerpou.Lineweight = acLnWt009 layergear.Lineweight = acLnWt020 layerdim.lingeweight = acLnWt013

ThisDrawing.Linetypes.Load \ThisDrawing.Linetypes.Load \layercen.Linetype = \layergear.Linetype = \layerpou.Linetype = \layerdim.Linetype = \

Dim cenp(2), uenp(2), denp(2), lenp(2), renp(2), llenp(2), rrenp(2), ddenp(2), uuenp(2) As Double Dim zstp(2) As Double

42

安徽理工大学毕业设计

cenp(0) = ins(0): cenp(1) = ins(1): cenp(2) = 0

uenp(0) = cenp(0): uenp(1) = cenp(1) + da / 2 + 20: uenp(2) = 0 denp(0) = cenp(0): denp(1) = cenp(1) - da / 2 - 20: denp(2) = 0 lenp(0) = cenp(0) - da / 2 - 20: lenp(1) = cenp(1): lenp(2) = 0 renp(0) = cenp(0) + da / 2 + 20: renp(1) = cenp(1): renp(2) = 0 llenp(0) = cenp(0) - da / 2 - 90 - bb: llenp(1) = cenp(1): llenp(2) = 0 rrenp(0) = cenp(0) - da / 2 - 50: rrenp(1) = cenp(1): rrenp(2) = 0

ddenp(0) = cenp(0) - da / 2 - 70 - bb / 2: ddenp(1) = denp(1): ddenp(2) = 0 uuenp(0) = ddenp(0): uuenp(1) = uenp(1): uuenp(2) = 0 zstp(0) = cenp(0) - da / 2 - bb - 70: zstp(1) = cenp(1): zstp(2) = 0 Set utilobj = ThisDrawing.Utility

utilobj.CreateTypedArray cp, vbDouble, cenp(0), cenp(1), 0 utilobj.CreateTypedArray ucp, vbDouble, uenp(0), uenp(1), 0 utilobj.CreateTypedArray dcp, vbDouble, denp(0), denp(1), 0 utilobj.CreateTypedArray lcp, vbDouble, lenp(0), lenp(1), 0 utilobj.CreateTypedArray rcp, vbDouble, renp(0), renp(1), 0 utilobj.CreateTypedArray llcp, vbDouble, llenp(0), llenp(1), 0 utilobj.CreateTypedArray rrcp, vbDouble, rrenp(0), rrenp(1), 0 utilobj.CreateTypedArray uucp, vbDouble, uuenp(0), uuenp(1), 0 utilobj.CreateTypedArray ddcp, vbDouble, ddenp(0), ddenp(1), 0 utilobj.CreateTypedArray zstcp, vbDouble, zstp(0), zstp(1), 0 ThisDrawing.ActiveLayer = layercen

Set cline1 = ThisDrawing.ModelSpace.AddLine(ucp, dcp) Set cline2 = ThisDrawing.ModelSpace.AddLine(lcp, rcp) Set cline3 = ThisDrawing.ModelSpace.AddLine(llcp, rrcp) Set cline4 = ThisDrawing.ModelSpace.AddLine(uucp, ddcp) Set circledz = ThisDrawing.ModelSpace.AddCircle(cp, dz / 2) cline1.LinetypeScale = 20 cline2.LinetypeScale = 20 cline3.LinetypeScale = 20 cline4.LinetypeScale = 20 circledz.LinetypeScale = 20

If UserForm8.OptionButton2.Value = True Then Set circled2 = ThisDrawing.ModelSpace.AddCircle(cp, d2 / 2)

43

安徽理工大学毕业设计

If UserForm8.OptionButton1.Value = True Then Set circled2 = ThisDrawing.ModelSpace.AddCircle(cp, d1 / 2)

circled2.LinetypeScale = 20

ThisDrawing.ActiveLayer = layergear

Set circleda = ThisDrawing.ModelSpace.AddCircle(cp, da / 2) Set circled0 = ThisDrawing.ModelSpace.AddCircle(cp, d0 / 2) Set circled0d = ThisDrawing.ModelSpace.AddCircle(cp, d0 / 2 + dj) Set circled3 = ThisDrawing.ModelSpace.AddCircle(cp, d3 / 2) Set circled3d = ThisDrawing.ModelSpace.AddCircle(cp, d3 / 2 - dj) Set circledf = ThisDrawing.ModelSpace.AddCircle(cp, df / 2) circled2.Linetype = \

lgujcp(0) = cenp(0) - jcb / 2: lgujcp(1) = cenp(1) + Sqr(dd * dd / 4 - jcb * jcb / 4): lgujcp(2) = lgujcp(0): lgujcp(3) = cenp(1) + dd / 2 + jct1

lgujcp(4) = cenp(0) + jcb / 2: lgujcp(5) = lgujcp(3): lgujcp(6) = lgujcp(4): lgujcp(7) = lgujcp(1) Set lgujc = ThisDrawing.ModelSpace.AddLightWeightPolyline(lgujcp) lgucenp(0) = cenp(0): lgucenp(1) = cenp(1): lgucenp(2) = 0 x1 = jcb / dd

arcsin = Atn(x1 / Sqr(-x1 * x1 + 1))

angle1(0) = -3 / 2 * pi + arcsin: angle1(1) = 1 / 2 * pi - arcsin x2 = Atn((jcb / 2) / (Sqr(dd * dd / 4 - jcb * jcb / 4) + dj)) angle2(0) = -3 / 2 * pi + Atn(x2): angle2(1) = 1 / 2 * pi - Atn(x2)

Set lguarc1 = ThisDrawing.ModelSpace.AddArc(lgucenp, dd / 2, angle1(0), angle1(1)) Set lguarc2 = ThisDrawing.ModelSpace.AddArc(lgucenp, dd / 2 + dj, angle2(0), angle2(1)) Dim cenkong(0 To 2), ax1kong(0 To 2), ax2kong(0 To 2), arrayangle As Double Dim arrayresult As Variant Dim arraynumber As Integer Dim axkong As AcadLine arrayangle = 2 * pi arraynumber = 7

cenkong(0) = cenp(0): cenkong(1) = cenp(1) + dz / 2: cenkong(2) = 0

ax1kong(0) = cenkong(0): ax1kong(1) = cenkong(1) + dk / 2 + 5: ax1kong(2) = 0 ax2kong(0) = cenkong(0): ax2kong(1) = cenkong(1) - dk / 2 - 5: ax2kong(2) = 0 utilobj.CreateTypedArray ckong, vbDouble, cenkong(0), cenkong(1), 0 utilobj.CreateTypedArray ax1k, vbDouble, ax1kong(0), ax1kong(1), 0

44

安徽理工大学毕业设计

utilobj.CreateTypedArray ax2k, vbDouble, ax2kong(0), ax2kong(1), 0 Set circleko = ThisDrawing.ModelSpace.AddCircle(ckong, dk / 2) ThisDrawing.ActiveLayer = layercen

Set axkong = ThisDrawing.ModelSpace.AddLine(ax1k, ax2k) axkong.LinetypeScale = 20

arrayresult = circleko.ArrayPolar(arraynumber, arrayangle, cp) arrayresult = axkong.ArrayPolar(arraynumber, arrayangle, cp) ThisDrawing.ActiveLayer = layergear Dim zstline1 As AcadLWPolyline Dim zstp1(15) As Double

zstp1(0) = zstp(0): zstp1(1) = zstp(1) + da / 2 - dj: zstp1(2) = zstp(0) + dj: zstp1(3) = zstp(1) + da / 2 zstp1(4) = zstp(0) + bb - dj: zstp1(5) = zstp1(3): zstp1(6) = zstp1(0) + bb: zstp1(7) = zstp1(1) zstp1(8) = zstp1(6): zstp1(9) = zstp(1) - da / 2 + dj: zstp1(10) = zstp1(4): zstp1(11) = zstp(1) - da / 2 zstp1(12) = zstp1(2): zstp1(13) = zstp1(11): zstp1(14) = zstp1(0): zstp1(15) = zstp1(9) Set zstline1 = ThisDrawing.ModelSpace.AddLightWeightPolyline(zstp1) zstline1.Closed = True

Dim wpline1, wpline2 As AcadLine Dim splineobj As AcadSpline Dim stanpoint(2) As Double Dim etanpoint(2) As Double Dim vetpoint(17) As Double

stanpoint(0) = zstp(0) - 3: stanpoint(1) = zstp(1) + dz / 2 - 3: stanpoint(2) = 0 etanpoint(0) = zstp(0) + bb: etanpoint(1) = stanpoint(1) - 4: etanpoint(2) = 0 vetpoint(0) = zstp(0): vetpoint(1) = zstp(1) + dz / 2 - 5: vetpoint(2) = 0 vetpoint(3) = zstp(0) + dj: vetpoint(4) = vetpoint(1) + 1: vetpoint(5) = 0

vetpoint(6) = zstp(0) + bb / 2 - ch / 2: vetpoint(7) = vetpoint(4) + 3: vetpoint(8) = 0 vetpoint(9) = vetpoint(6) + ch: vetpoint(10) = vetpoint(7) + 2: vetpoint(11) = 0 vetpoint(12) = zstp(0) + bb - dj: vetpoint(13) = vetpoint(10) - 2: vetpoint(14) = 0 vetpoint(15) = zstp(0) + bb: vetpoint(16) = vetpoint(13) + 1: vetpoint(17) = 0 Set splineobj = ThisDrawing.ModelSpace.AddSpline(vetpoint, stanpoint, etanpoint) utilobj.CreateTypedArray vetp1, vbDouble, vetpoint(3), vetpoint(4), 0 utilobj.CreateTypedArray vetp2, vbDouble, zstp1(2), zstp1(3), 0 utilobj.CreateTypedArray vetp3, vbDouble, vetpoint(12), vetpoint(13), 0 utilobj.CreateTypedArray vetp4, vbDouble, zstp1(4), zstp1(5), 0

45


齐贤伟 基于AUTOCAD VBA渐开线斜齿轮参数化设计系统(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:`SQL Server 2008R2数据库备份与还原操作文档

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: