【正文】
,我們組成員的互相討論,迸發(fā)出來(lái)的學(xué)習(xí)激情,也提高了我們課程設(shè)計(jì)的積極性,給我們不僅帶來(lái)了知識(shí)的增長(zhǎng)和能力的提高,而且?guī)?lái)了更多的樂(lè)趣。 11 參 考 文 獻(xiàn) [1] 廖效果 .數(shù)字控制機(jī)床 [M].武漢 :華中理工大學(xué)出版社 ,. [2] 廖效果 .數(shù)控技術(shù) [M].武漢 :湖北科學(xué)技術(shù)出版社 ,. [3] 劉又午 .數(shù)字控制機(jī)床 [M].北京 :機(jī)械工業(yè)出版社 . [4] 龔浦泉 .機(jī)床電氣控制 [M].重慶 :重慶大學(xué)出版社 . [5] 譚浩強(qiáng) .Basic語(yǔ)言結(jié)構(gòu)化程序設(shè)計(jì)教程 [M].北京 :中國(guó)科學(xué)技術(shù)出版社 ,1990. [6] 楊林 ,李繼良 .Visual Basic編程高手 [M].北京 :北京大學(xué)出版社 ,2021. [7] 一組專用凸輪的計(jì)算機(jī)輔助設(shè)計(jì) [J].機(jī)械工程師 ,1998,(4): 5859. [8] 凸輪曲線的快速畫法 [J].機(jī)械工程師 ,1998,(6): 2223. [9] 平面凸輪機(jī) 構(gòu) CAD系統(tǒng)的研究與開(kāi)發(fā) [J].機(jī)械設(shè)計(jì)與制造 ,2021,(5):1213. [10] 圓柱非圓曲線槽凸輪的數(shù)控加工 [J].制造技術(shù)與機(jī)床 ,2021,(8):34. [11] 圓柱凸輪的參數(shù)化設(shè)計(jì)及數(shù)控加工 [J].精密制造及自動(dòng)化 ,2021,11: 28. [12] 參數(shù)化凸輪輪廓轉(zhuǎn)換及 NC代碼自動(dòng)生成 [J].機(jī)床與液壓 ,2021,6, 2931. 12 附錄 VB 主要源程序 Dim daolu As Integer, daobu As Integer Dim X(5) As Double, Y(5) As Double Dim qidaox As Single, qidaoy As Single, qidaoz As Single Dim quxian As Integer, pi As Double, zuobiao As Integer ‘定義變量 Private Sub Command1_Click() = = End Sub ‘清屏繪圖區(qū)域 Private Sub Command2_Click() ‘繪制坐標(biāo)系 = vbSolid = 1 (50, 50)(50, 50) (50, 0)(50, 0) (48, 2) (50, 0)(48, 2) X (0, 50)(0, 50) (2, 48) (0, 50)(2, 48) Y = 2 = 2 O pi = = a = 0 If quxian = 1 Then a = Val() b = Val() For i = 0 To 2 * pi Step ‘點(diǎn)命令繪制非圓曲線原圖 (a * Cos(i), b * Sin(i)) Next End If If quxian = 2 Then a = Val() For i = 0 To 2 * pi Step (a * Cos(i) ^ 3, a * Sin(i) ^ 3) Next End If 13 End Sub Private Sub Command3_Click() ‘等間距直線逼近 s = pi = o = 4 a = Val() ‘輸入加工參數(shù) b = Val() v = Val() n = Val() F = Val() r = Val() qidaox = Val() qidaoy = Val() qidaoz = Val() d = Val() = vbDash = 1 If quxian = 1 Then ‘畫橢圓 If daolu = 1 Then ‘順時(shí)針走刀方向 If daobu = 1 Then e = 1 a = a + r b = b + r End If If daobu = 2 Then e = 2 a = a r b = b r End If X(0) = a Y(0) = 0 (qidaox, qidaoy), vbRed (X(0), Y(0)), vbRed = vbSolid (X(0), Y(0)), vbRed p = Format(X(0), ) q = Format(Y(0), ) If zuobiao = 1 Then = N1 G90 G17 G00 G4 amp。 e amp。 D01 amp。 Z30 M03 S amp。 n amp。 vbCrLf = amp。 N2 X amp。 p amp。 Y amp。 q amp。 vbCrLf = amp。 N3 Z amp。 d amp。 vbCrLf Else = N1 G91 G17 G00 G4 amp。 e amp。 D01 amp。 Z30 M03 S amp。 n amp。 vbCrLf 14 = amp。 N2 X amp。 p amp。 Y amp。 q amp。 vbCrLf = amp。 N3 Z amp。 d + 30 amp。 vbCrLf End If line1: Do While X(0) = (a + ) X(1) = X(0) s Y(1) = (b * Sqr(Abs(a ^ 2 X(1) ^ 2))) / a If X(1) X(0) And Y(1) Y(0) Then k = (Y(1) Y(0)) / (X(1) X(0)) If k 0 Then j = Atn(b / (a * k)) End If If k 0 Then j = Atn(b / (a * k)) + pi End If X(2) = a * Cos(j) Y(2) = b * Sin(j) w = Abs(k * X(2) Y(2) + Y(0) k * X(0)) / (Sqr(k ^ 2 + 1)) End If If w = v Then (X(1), Y(1)), vbRed Else s = s / 2 GoTo line1 End If If zuobiao = 1 Then p = Format(X(1), ) q = Format(Y(1), ) If o = 4 Then = amp。 N4 G01 X amp。 p amp。 Y amp。 q amp。 F amp。 F amp。 vbCrLf End If If o = 5 Then = amp。 N amp。 o amp。 X amp。 p amp。 Y amp。 q amp。 vbCrLf End If Else If o = 4 Then p = Format(X(1) X(0