數(shù)控課程設(shè)計_第1頁
數(shù)控課程設(shè)計_第2頁
數(shù)控課程設(shè)計_第3頁
數(shù)控課程設(shè)計_第4頁
數(shù)控課程設(shè)計_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、課 程 設(shè) 計課程名稱 數(shù)控技術(shù)課程設(shè)計 題目名稱 _數(shù)控中非圓曲線逼近的算法實現(xiàn) 學(xué)生學(xué)院 _ _ 機電工程學(xué)院 專業(yè)班級 機械設(shè)計制造及其自動化 學(xué) 號 學(xué)生姓名 指導(dǎo)教師 _ 成績評定 教師簽名 2012 年 07 月 05 日廣東工業(yè)大學(xué)數(shù)控技術(shù)課程設(shè)計任務(wù)書題目名稱數(shù)控中非圓曲線逼近的算法實現(xiàn)學(xué)生學(xué)院機電工程學(xué)院專業(yè)班級機械設(shè)計制造及其自動化2009級3班姓 名學(xué) 號一、課程設(shè)計的內(nèi)容用計算機高級編程語言(如VB,VC+等)來實現(xiàn)非圓曲線的逼近,可任選(1)直線逼近(如等間距法、等弦長法、等誤差法等)、或(2)圓弧逼近。要求在滿足允許誤差的前提下,使得逼近的直線段或圓弧段的數(shù)量最少(

2、即最優(yōu)解), 根據(jù)加工曲線輪廓自動生成刀具中心軌跡,自動生成加工NC代碼。二、課程設(shè)計的要求與數(shù)據(jù)具體的要求如下:(1)列出一般的直線或圓弧逼近的算法(流程圖)。(2)列出改進的直線或圓弧逼近的算法(流程圖)即優(yōu)化算法。比較改進前與改進后的兩種算法結(jié)果。(3)針對給定的某一由非圓曲線所構(gòu)成的平面輪廓,根據(jù)指定的走刀方向、起刀點,自動生成CNC代碼。(4)有刀具自動補償功能,根據(jù)給定的補償量和進給方向自動計算刀具中心軌跡,有過切報警功能。(5)在屏幕上顯示該非圓曲線所構(gòu)成的平面輪廓。根據(jù)給定的進給速度能模擬加工過程,并在屏幕上留下刀具所走中心軌跡。非圓曲線選擇(根據(jù)組員最大最小學(xué)號選擇,選擇方法

3、:若本組學(xué)號最小的同學(xué)學(xué)號為xxxxxxa,學(xué)號最大的同學(xué)學(xué)號為yyyyyyb,取p=a8+1, q=b8+1,若q=p,則q=p+1; 則該組選擇的非圓曲線組合為第p組和第q組。 注:是取余運算):1:漸開線凸輪;2:雙曲線3:橢圓曲線4:正弦線5:星形線6:心臟線7:拋物線8:外擺線三、課程設(shè)計應(yīng)完成的工作每組學(xué)生應(yīng)在規(guī)定時間內(nèi),獨立完成所選題目。運用VB或其它編程語言,編寫計算機軟件在WINDOWS實現(xiàn)數(shù)控裝置的計算機仿真。要求清楚地分析問題、提出算法、確定人機界面、列出流程圖,最后用程序驗證,完成軟件測試,并且提交程序說明書。要求用編寫計算機軟件的方法解決典型非圓曲線的CAM問題??梢?/p>

4、任選用自己熟悉的一種編程語言,要求清楚地分析問題、提出算法、列出流程圖,最后用程序驗證,并且提交程序說明書。四、課程設(shè)計進程安排序號設(shè)計各階段內(nèi)容地點起止日期11、布置任務(wù),領(lǐng)取課程設(shè)計任務(wù)書,了解課程設(shè)計的目的、內(nèi)容和要求;了解課程設(shè)計的步驟;2、理解本課程設(shè)計題目的具體內(nèi)容要求,根據(jù)各自不同情況選擇題目;3:了解和掌握有關(guān)軟件開發(fā)的知識,如VB編程、VC編程、軟件工程、軟件開發(fā)的常用技巧及注意事項;4:調(diào)查研究,收集資料,查閱文獻。學(xué)生對所選題目進行論證及確定設(shè)計方案, 學(xué)生 宿舍18周21:掌握數(shù)控結(jié)構(gòu)設(shè)計要求,具體技術(shù)指標(biāo)和計算要求; 進行軟件設(shè)計;2: 進行數(shù)控系統(tǒng)和算法的軟件編程與

5、開發(fā),初步實現(xiàn)系統(tǒng)的基本功能學(xué)生 宿舍19周31:通過多個實例來驗證和改進系統(tǒng)功能,完善軟件界面2:對所開發(fā)的軟件程序進行標(biāo)識和說明3:按要求的格式編制課程設(shè)計說明書4:課程設(shè)計答辯學(xué)生 宿舍20周五、應(yīng)收集的資料及主要參考文獻1機床設(shè)計手冊第三分冊2廖效果.數(shù)字控制機床.武漢:華中理工大學(xué)出版社.1992.93廖效果.數(shù)控技術(shù). 武漢:湖北科學(xué)技術(shù)出版社.2000.74劉又午.數(shù)字控制機床.北京:機械工業(yè)出版社5龔浦泉.機床電氣控制.重慶:重慶大學(xué)出版社6 譚浩強.Basic語言結(jié)構(gòu)化程序設(shè)計教程.北京:中國科學(xué)技術(shù)出版社.19907 楊林,李繼良. Visual Basic編程高手.北京:

6、北京大學(xué)出版社.20008 一組專用凸輪的計算機輔助設(shè)計.機械工程師1998,(4): p58-599 凸輪曲線的快速畫法.機械工程師1998,(6): p22-2310 平面凸輪機構(gòu)CAD系統(tǒng)的研究與開發(fā).機械設(shè)計與制造2000,(5):p12-1311 圓柱非圓曲線槽凸輪的數(shù)控加工.制造技術(shù)與機床2000,(8):p3412 圓柱凸輪的參數(shù)化設(shè)計及數(shù)控加工.精密制造及自動化2001,11: p2813 參數(shù)化凸輪輪廓轉(zhuǎn)換及NC代碼自動生成.機床與液壓2001,6, p2931發(fā)出任務(wù)書日期:2012年 5月 28日 計劃完成日期: 2012年 7月 6 日 指導(dǎo)教師簽名: 基層教學(xué)單位責(zé)任

7、人簽章: 主管院長簽章:摘 要基于Visual Basic 6.0編程軟件平臺,使用直線逼近算法實現(xiàn)設(shè)計模擬橢圓曲線和星形線曲線兩種非圓曲線輪廓的加工過程。根據(jù)所編的等間距算法和等誤差算法的流程圖,初步使用等間距法來實現(xiàn)直線逼近兩種非圓曲線的過程,然后使用節(jié)點數(shù)較少的等誤差法來優(yōu)化直線逼近非圓曲線的過程。利用Visual Basic 6.0編程語言,根據(jù)指定的走刀方向包括順時針和逆時針,指定的走刀點,實現(xiàn)非圓曲線的模擬加工過程,根據(jù)刀具補償量和進給方向在屏幕上留下刀具所走中心軌跡,根據(jù)軟件計算出的點坐標(biāo)能夠自動生出CNC代碼,并能夠保存在電腦里面。關(guān)鍵詞:直線逼近,Visual Basic 6

8、.0,非圓曲線,編程目 錄1 前言 12 非圓曲線逼近的關(guān)鍵 12.1 算法的選擇 12.2 算法實現(xiàn)的關(guān)鍵 13 非圓曲線逼近的算法實現(xiàn) 13.1 算法的流程圖 13.2 算法的解析 44 軟件開發(fā)與運行 74.1 系統(tǒng)界面 74.2 軟件運行 84.3 運行分析 95 總結(jié) 9參考文獻 11附錄 121 前言數(shù)控機床是一種依靠數(shù)字化的信息來實現(xiàn)自動控制的高度自動化機床,它具有高效率、加工精度高和加工質(zhì)量穩(wěn)定等優(yōu)點,這使得數(shù)控機床在機械制造業(yè)中得到了日益廣泛的應(yīng)用。當(dāng)前我國的經(jīng)濟型數(shù)控機床,一般只具有直線插補和圓弧插補功能,并不具備拋物線、橢圓等非圓曲線的插補功能。因此,當(dāng)我們需要數(shù)控加工非

9、圓曲線的輪廓時,就必須用直線或圓弧段去逼近非圓曲線。對非圓曲線的逼近有直線逼近、圓弧逼近,分別可由G01、G02、G03完成加工,其中直線逼近較為簡單,但逼近節(jié)點數(shù)多,導(dǎo)致數(shù)控程序往往過多,而圓弧逼近具有高效性,但計算過于復(fù)雜。直線逼近的方法有等間距直線逼近、等弦長直線逼近和等誤差直線逼近,圓弧逼近的方法有曲率圓法、三點圓法和相切圓法。對于一個已知曲線,它的節(jié)點數(shù)主要取決于所用逼近線段的形狀(直線段還是圓弧段)、曲線方程的特性和允許的逼近誤差。2 非圓曲線逼近的關(guān)鍵2.1 算法的選擇對非圓曲線進行逼近,有不同的實現(xiàn)方法,包括直線逼近和圓弧逼近。方法不同,最終得到的節(jié)點數(shù)也有所不同,因此選擇好的

10、一個算法對提高加工的效率和降低加工成本有著重要的作用。在這次課程設(shè)計中,我們選擇的算法是等間距直線逼近,并用等誤差直線逼近作為優(yōu)化算法。2.2 算法實現(xiàn)的關(guān)鍵算法實現(xiàn)需要求出曲線的節(jié)點,而要求曲線的節(jié)點得先求出直線段與所逼近的曲線之間的最大逼近誤差,而最大逼近誤差的計算點就在曲線上某一點的切線斜率與直線段斜率相等的切點處,故關(guān)鍵問題是求出該切點。一旦求出了該切點,就可以求出逼近時的最大誤差,用于與允許誤差作比較。另外,由于此次課程設(shè)計是對任意非圓曲線進行逼近,因此求導(dǎo)數(shù)也成了一個關(guān)鍵的問題。3 非圓曲線逼近的算法實現(xiàn)3.1 算法的流程圖開始給定曲線的起點,終點,等間距s,允許誤差v設(shè)置起點坐標(biāo)

11、(X(0),Y(0)而下一點為X(1)=X(0)+sY(1)=f(X(1)s=s/2將(X(0),Y(0)設(shè)為下一段的起始點連接兩點并求其斜率k,取曲線上切線上起斜率為k的一點(X(2),Y(2),求這點到上一直線段的距離w距離w誤差? N Y到達終點? N Y結(jié)束圖1 等間距直線逼近的流程到達終點?開始給定曲線起點,終點,步長s,系數(shù)a,b,允許誤差v設(shè)定起點坐標(biāo)(X(0),Y(0)求臨時插補點(X(2),Y(2),其中X(2)=X(0)+ s,Y(2)=f(X(2),以此點為切點作曲線切線,并計算起點至切線的距離ws=s+0.001將插補點(X(1),Y(1)設(shè)為下一直線段的起點w誤差?

12、N Y過起點作與切線平行的直線,求出直線與曲線的交點,則另一交點(x(1),y(1)為插補點,用直線連接起點與插補點結(jié)束 N Y圖2 等誤差直線逼近的流程圖3.2 算法的解析3.2.1 等間距直線逼近等間距直線逼近是最簡單的方法,已知橢圓方程,給定第一點(x(0),y(0),間距步長x=0.1,求出,將代入即可求得一系列。、即為每個線段的終點坐標(biāo),并以該坐標(biāo)值編制直線程序段(圖3)。圖3 等間距直線逼近根據(jù)M( x(0) , y(0) )、N( x(1) , y(1) )兩節(jié)點的坐標(biāo)可求得如圖3所示的逼近誤差,方法如下:MN方程:y=kx+c,則直線MN的斜率為 (3-1)將M( x(0) ,

13、 y(0) )代入MN方程:y=kx+c,求得 c=y(0)-kx(0) (3-2)利用橢圓參數(shù)方程x=a Cos(i),y=b Sin(i),求出橢圓曲線上的切線斜率為k的切點坐標(biāo)(x(2),y(2)),對參數(shù)方程進行求導(dǎo)得切點對應(yīng)的參數(shù)弧度為 (3-3)從而求出(x(2),y(2))。聯(lián)立式(3-1)、(3-2)、(3-3)求出逼近誤差為 (3-4)如果計算出來的逼近誤差w小于或等于輸入的允許誤差v,則滿足誤差要求,即可進行直線逼近;否則令x為原來的一半,且返回重新計算逼近誤差再次比較,直到滿足誤差要求為止。等間距直線逼近的流程圖如圖1所示,星形線的等間距直線逼近算法與橢圓計算方法相同,參

14、考橢圓計算過程即可。3.2.2 等誤差直線逼近等間距直線逼近雖然計算簡單,但由于取定值x應(yīng)保證曲線曲率最大處的逼近誤差小于允許值,所以程序可能過多。因此,在選擇優(yōu)化算法時,我們采用的是等誤差直線逼近的節(jié)點計算法,而且對于曲率變化較大的曲線,用等誤差法求得的節(jié)點數(shù)最少,從而輸出的NC代碼也大大減少,等誤差算法計算如下:等誤差直線去逼近曲線,就是使所有逼近線段的誤差相等,如圖4。圖4 等誤差直線逼近橢圓參數(shù)方程為x=a Cos(i),y=b Sin(i),A點坐標(biāo)(x(0) , y(0)),T點坐標(biāo)(x(1) , y(1)),B點坐標(biāo)(x(2) , y(2))。(1)確定所有逼近線段的誤差的圓方程

15、,即以起點A(x(0) , y(0))為圓心,為半徑作圓; (2)確定等誤差圓與曲線公切線PT的斜率k: 以A點為起點,利用參數(shù)方程x=a Cos(i),y=b Sin(i),增大弧度i從而使橫坐標(biāo)變大。從而得到下一個點T坐標(biāo)(x(1) , y(1)),弧度i增大的步長為i=0.001*。對橢圓方程進行求導(dǎo),利用T點坐標(biāo)求出曲線切線PT斜率k: (3-5) PT直線方程為y=kx+c,代入點T求得: c=y(1)-kx(1) (3-6)聯(lián)立2式(3-5)、(3-6)和點A(x(0) , y(0))求得A點到直線PT距離: (3-7)比較距離w與等誤差圓半徑是否相等,若相等,則直線PT為等誤差圓

16、與曲線兩者的公切線;若w,則返回以上算法令i變?yōu)樵瓉硪话胫匦掠嬎憔嚯xw直到w=。(3)求B點坐標(biāo)(x(2) , y(2))。使AB弦的斜率為k,即使AB平行PT,設(shè)AB的方程為y-y(0)=k(x-x(0),聯(lián)立式(3-5)公切線PT的斜率k和橢圓方程可求得: (3-8)其中 進而求出 y(2)=k(x(2)-x(0)+y(0) (3-9)(5)按以上步驟順次求得其他各節(jié)點坐標(biāo)。星形線等誤差逼近算法與橢圓相似,參考橢圓計算方法即可求得。4 軟件開發(fā)與運行4.1 系統(tǒng)界面本次課程設(shè)計使用Visual Basic 6.0軟件,設(shè)計了兩個窗口為一體的可執(zhí)行程序,其中主界面可選擇所需加工的非圓曲線函數(shù)

17、、走刀方向、刀補、起刀點、NC代碼坐標(biāo)以及相關(guān)的加工參數(shù),具有等間距直線逼近和等誤差直線逼近兩種逼近方法,并且對這兩種方法進行比較分析。通過點擊“生成NC代碼”按鈕,可以進入圖6的生成NC代碼的窗口,可以對NC代碼進行保存,可以返回主界面,也可以退出該程序。圖5 主界面圖6 生成NC代碼窗口4.2 軟件運行以橢圓內(nèi)輪廓加工、順時針走刀方向為例說明等間距算法和等誤差算法直線逼近非圓曲線的刀具軌跡,并比較兩者的節(jié)點數(shù)和生成NC代碼程序的長度,設(shè)允許誤差為0.01,選擇項和輸入?yún)?shù)如圖7所示。 圖7 加工參數(shù)的選擇與輸入單擊“繪原圖” 、“等間距逼近”按鈕,運行結(jié)果的刀具軌跡如圖8所示,等間距逼近所

18、用的線段數(shù)為5920,生成的NC代碼如圖9所示。 圖8 等間距逼近的刀具軌跡 圖9 等間距逼近的NC代碼單擊“繪原圖” 、“等誤差逼近”按鈕,運行結(jié)果的刀具軌跡如圖10所示,等誤差逼近所用的線段數(shù)為666,生成的NC代碼如圖11所示。 圖10 等誤差逼近的刀具軌跡 圖11 等誤差逼近的NC代碼4.3 運行分析從以上運行結(jié)果可以看出,非圓曲線的等間距直線逼近算法雖然簡單,但逼近處理后的直線段較多,從經(jīng)濟效益上講,此方法較差。而由等誤差直線逼近處理后,可以得到相對較少的直線段,經(jīng)濟效益高。5 總結(jié)這次的課程設(shè)計,在剛開始做之前,我們組的每個人都感到了壓力,因為畢竟這次是要利用VB或VC編程語言結(jié)合

19、數(shù)控技術(shù)課程內(nèi)容來完成課程設(shè)計,而且時間也并不充足。在剛開始接觸題目時候,沒有絲毫的頭緒,借住前人的成果,理解前人所做的東西,來逐步摸清我們課程設(shè)計真正所要做的工作。課堂上老師講直線逼近非圓曲線的數(shù)學(xué)處理時大概講了三種的方法:等間距、等弦長和等誤差,在我們理解了三種方法之后,確定使用等間距為初步算法,等誤差為優(yōu)化算法,因為等間距計算簡單,但程序過多,而等誤差計算復(fù)雜,但程序和節(jié)點數(shù)都相對少。確定算法之后,我們遇到的問題是如何地在Visual Basic 6.0編程軟件平臺去實現(xiàn)直線逼近橢圓和星形線,VB編程語言我們大致都弄懂,但是具體操作還是不明白。一開始我們使用橢圓和星形線的參數(shù)方程進行數(shù)學(xué)

20、處理,實現(xiàn)過程很容易,而且不用分每一個象限去討論,但是又遇到了另一個問題,使用參數(shù)方程計算出來的逼近誤差太大了,遠大于日常所要求的加工誤差,所以還是以失敗告終。通過查閱高數(shù)知識和數(shù)控技術(shù)課本還有其他的一些參考資料,借住高數(shù)知識所提供的數(shù)學(xué)方法,我們使用標(biāo)準(zhǔn)方程去進行數(shù)學(xué)處理,雖然要考慮每一個象限,程序也由此變得繁瑣,但是最終還是實現(xiàn)了我們之前的設(shè)想,計算出來的逼近誤差最終可以變到0.01甚至更小。有了等間距直線逼近的成功基礎(chǔ),在做等誤差算法直線逼近的時候,只需理解好等誤差數(shù)學(xué)計算的方法即可完成逼近,也通過比較,等誤差法確實比等間距法所走的步數(shù)少一倍以上,符合了我們之前的設(shè)想。通過這次的課程設(shè)計

21、,把VB語言和數(shù)控仿真結(jié)合起來,加深了對非圓曲線加工的算法及其實現(xiàn)過程的理解,也提高了我們查閱資料和獨自解決問題的能力,在遇到問題時候,我們組成員的互相討論,迸發(fā)出來的學(xué)習(xí)激情,也提高了我們課程設(shè)計的積極性,給我們不僅帶來了知識的增長和能力的提高,而且?guī)砹烁嗟臉啡?。?考 文 獻1 廖效果.數(shù)字控制機床M.武漢:華中理工大學(xué)出版社,1992.9.2 廖效果.數(shù)控技術(shù)M.武漢:湖北科學(xué)技術(shù)出版社,2000.7.3 劉又午.數(shù)字控制機床M.北京:機械工業(yè)出版社.4 龔浦泉.機床電氣控制M.重慶:重慶大學(xué)出版社.5 譚浩強.Basic語言結(jié)構(gòu)化程序設(shè)計教程M.北京:中國科學(xué)技術(shù)出版社,1990.

22、6 楊林,李繼良.Visual Basic編程高手M.北京:北京大學(xué)出版社,2000.7 一組專用凸輪的計算機輔助設(shè)計J.機械工程師,1998,(4): 58-59.8 凸輪曲線的快速畫法J.機械工程師,1998,(6): 22-23.9 平面凸輪機構(gòu)CAD系統(tǒng)的研究與開發(fā)J.機械設(shè)計與制造,2000,(5):12-13.10 圓柱非圓曲線槽凸輪的數(shù)控加工J.制造技術(shù)與機床,2000,(8):34.11 圓柱凸輪的參數(shù)化設(shè)計及數(shù)控加工J.精密制造及自動化,2001,11: 28.12 參數(shù)化凸輪輪廓轉(zhuǎn)換及NC代碼自動生成J.機床與液壓,2001,6, 29-31.附錄 VB主要源程序Dim d

23、aolu As Integer, daobu As IntegerDim X(5) As Double, Y(5) As DoubleDim qidaox As Single, qidaoy As Single, qidaoz As SingleDim quxian As Integer, pi As Double, zuobiao As Integer定義變量Private Sub Command1_Click()Picture1.ClsText8.Text = Text9.Text = End Sub清屏繪圖區(qū)域Private Sub Command2_Click()繪制坐標(biāo)系Pictur

24、e1.DrawStyle = vbSolidPicture1.DrawWidth = 1Picture1.Scale (-50, 50)-(50, -50)Picture1.Line (-50, 0)-(50, 0)Picture1.Line -(48, 2)Picture1.Line (50, 0)-(48, -2)Picture1.Print XPicture1.Line (0, -50)-(0, 50)Picture1.Line -(-2, 48)Picture1.Line (0, 50)-(2, 48)Picture1.Print YPicture1.CurrentX = 2Pictu

25、re1.CurrentY = -2Picture1.Print Opi = 3.1415926Picture1.CurrentX = aPicture1.CurrentY = 0If quxian = 1 Thena = Val(Text1.Text)b = Val(Text2.Text)For i = 0 To 2 * pi Step 0.001點命令繪制非圓曲線原圖Picture1.PSet (a * Cos(i), b * Sin(i)NextEnd IfIf quxian = 2 Thena = Val(Text1.Text)For i = 0 To 2 * pi Step 0.001

26、Picture1.PSet (a * Cos(i) 3, a * Sin(i) 3)NextEnd IfEnd SubPrivate Sub Command3_Click()等間距直線逼近s = 0.1pi = 3.1415926o = 4a = Val(Text1.Text)輸入加工參數(shù)b = Val(Text2.Text)v = Val(Text3.Text)n = Val(Text4.Text)F = Val(Text5.Text)r = Val(Text6.Text)qidaox = Val(Text10.Text)qidaoy = Val(Text11.Text)qidaoz = V

27、al(Text12.Text)d = Val(Text13.Text)Picture1.DrawStyle = vbDashPicture1.DrawWidth = 1If quxian = 1 Then畫橢圓If daolu = 1 Then順時針走刀方向If daobu = 1 Thene = 1a = a + rb = b + rEnd IfIf daobu = 2 Thene = 2a = a - rb = b - rEnd IfX(0) = aY(0) = 0Picture1.PSet (qidaox, qidaoy), vbRedPicture1.Line -(X(0), Y(0)

28、, vbRedPicture1.DrawStyle = vbSolidPicture1.PSet (X(0), Y(0), vbRedp = Format(X(0), #0.00)q = Format(Y(0), #0.00)If zuobiao = 1 ThenForm2.Text1.Text = N1 G90 G17 G00 G4 & e & D01 & Z30 M03 S & n & vbCrLfForm2.Text1.Text = Form2.Text1.Text & N2 X & p & Y & q & vbCrLfForm2.Text1.Text = Form2.Text1.Tex

29、t & N3 Z- & d & vbCrLfElseForm2.Text1.Text = N1 G91 G17 G00 G4 & e & D01 & Z30 M03 S & n & vbCrLfForm2.Text1.Text = Form2.Text1.Text & N2 X & p & Y & q & vbCrLfForm2.Text1.Text = Form2.Text1.Text & N3 Z- & d + 30 & vbCrLfEnd Ifline1:Do While X(0) = (-a + 0.0001)X(1) = X(0) - sY(1) = -(b * Sqr(Abs(a

30、2 - X(1) 2) / aIf X(1) X(0) And Y(1) Y(0) Thenk = (Y(1) - Y(0) / (X(1) - X(0)If k 0 Thenj = Atn(-b / (a * k)End IfIf k 0 Thenj = Atn(-b / (a * k) + piEnd IfX(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 IfIf w = 5 ThenForm2.Text1.Text = Form2.Text1.Tex

31、t & N & o & X & p & Y & q & vbCrLfEnd IfElseIf o = 4 Thenp = Format(X(1) - X(0), #0.00)q = Format(Y(1) - Y(0), #0.00)Form2.Text1.Text = Form2.Text1.Text & N4 G01 X & p & Y & q & F & F & vbCrLfEnd IfIf o = 5 Thenp = Format(X(1) - X(0), #0.00)q = Format(Y(1) - Y(0), #0.00)Form2.Text1.Text = Form2.Text

32、1.Text & N & o & X & p & Y & q & vbCrLfEnd IfEnd Ifo = o + 1X(0) = X(1)Y(0) = Y(1)LoopPrivate Sub Command4_Click()等誤差直線逼近s = 0.001pi = 3.1415926o = 4a = Val(Text1.Text)輸入加工參數(shù)b = Val(Text2.Text)v = Val(Text3.Text)n = Val(Text4.Text)F = Val(Text5.Text)r = Val(Text6.Text)qidaox = Val(Text10.Text)qidaoy

33、 = Val(Text11.Text)qidaoz = Val(Text12.Text)d = Val(Text13.Text)i = Val(Text7.Text)Picture1.DrawStyle = vbDashPicture1.DrawWidth = 1If quxian = 1 Then畫橢圓If daolu = 1 Then順時針走刀方向If daobu = 1 Thene = 1a = a + rb = b + rEnd IfIf daobu = 2 Thene = 2a = a - rb = b - rEnd IfX(0) = a * Cos(i)Y(0) = b * Sin

34、(i)Picture1.PSet (qidaox, qidaoy), vbGreenPicture1.Line -(X(0), Y(0), vbGreenPicture1.DrawStyle = vbSolidPicture1.PSet (X(0), Y(0), vbGreenp = Format(X(0), #0.00)q = Format(Y(0), #0.00)If zuobiao = 1 ThenForm2.Text1.Text = N1 G90 G17 G00 G4 & e & D01 & Z30 M03 S & n & vbCrLfForm2.Text1.Text = Form2.

35、Text1.Text & N2 X & p & Y & q & vbCrLfForm2.Text1.Text = Form2.Text1.Text & N3 Z- & d & vbCrLfElseForm2.Text1.Text = N1 G91 G17 G00 G4 & e & D01 & Z30 M03 S & n & vbCrLfForm2.Text1.Text = Form2.Text1.Text & N2 X & p & Y & q & vbCrLfForm2.Text1.Text = Form2.Text1.Text & N3 Z- & d + 30 & vbCrLfEnd Ifl

36、ine1:Do While i 0i = i - s * piX(1) = a * Cos(i)Y(1) = b * Sin(i)If Y(1) 0 Thenk = -(b 2 * X(1) / (a 2 * Y(1)w = Abs(k * X(0) - Y(0) + Y(1) - k * X(1) / (Sqr(k 2 + 1)End IfIf (w - v) = 0.0001 ThenPicture1.Line -(X(1), Y(1), vbGreenElses = s + 0.001GoTo line1End IfIf zuobiao = 1 Thenp = Format(X(1), #0.00)q = Format(Y(1), #0.00)If o = 4 ThenForm2.Text1.Text = Form2.Text1.Text & N4 G01 X & p & Y & q & F & F & vbCrLfEnd IfIf o = 5 ThenForm2.Text1.Text = Form2.Text1.Text & N & o & X & p & Y & q & vbCrLfEnd IfElseIf o = 4 Thenp = Format(X

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論