




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、數(shù)控仿真技術(shù)課程設計說明書摘 要從工程的角度來看,仿真就是通過對系統(tǒng)模型的實驗去研究一個已有的或設計中的系統(tǒng),分析復雜的動態(tài)對象,仿真是一種有效的方法,可以減少風險,縮短設計和制造的周期并節(jié)約投資。計算機仿真就是借助計算機,利用系統(tǒng)模型對實際系統(tǒng)進行實驗研究的過程。它隨著計算機技術(shù)的發(fā)展而迅速地發(fā)展,在仿真中它有越來越重要的地位。計算機仿真技術(shù)的發(fā)展趨勢主要表現(xiàn)在兩個方面:應用領域的擴大和仿真計算機的智能化。計算機仿真技術(shù)不僅在傳統(tǒng)的工程技術(shù)領域(航空、航天、化工等方面)繼續(xù)發(fā)展,而且擴大到社會經(jīng)濟、生物等許多非工程領域,此外,并行處理、人工智能、知識庫和專家系統(tǒng)等技術(shù)的發(fā)展正影響著仿真計算機
2、的發(fā)展。數(shù)控加工仿真利用計算機來模擬實際的加工過程,是驗證數(shù)控加工程序的可靠性和預測切削過程的有力工具,以減少工件的試切,提高生產(chǎn)效率。仿真軟件界面友好,基本實現(xiàn)了設計任務的要求,通過本軟件可以知道在仿真加工刀具的坐標、各軸的工作情況以及輔助電機(冷卻液的控制情況)本仿真程序應用的是脈沖插補算法。在仿真過程中應用了兩種插補方法:直線插補,圓弧插補(包括順時方向插補和逆時方向插補)。本仿真程序可以實現(xiàn)如下指令的判別和執(zhí)行:G01,G02, G03, G04,G05,M05,M08 ,M09,M03,M30.在應用時,編程者只要按照本應用程序的要求輸入程序,即可以實現(xiàn)所要求的加工過程的仿真過程。本
3、程序能夠判斷所輸入的程序的正確性,可以對程序進行編輯。本軟件可以從平面和軸測兩個視圖同時觀察仿真過程。Abstract The type of numerical control in my resign is point-to-point .There are two interpolation schemes that have been used to generating a smooth continuous path. They include:1. Linear interpolation2. Circular interpolation Linear interpolation
4、 is used to generate a straight-line path. The programmer is required to specify the beginning point and end point of the straight line (X. Y. Z.). Circular interpolation schemes is used to generate a circular (I. J). The interpolator computes the feed rates for each of the two (or three)axes in ord
5、er to achieve the specified feed rate.My resign can carry out these commands such as G01,G02, G03, G04,G05,M05,M08 ,M09,M03,M30;The simulation process can be seen in two means: orthographic and Isometric at the same time.目 錄第一章 設計任務書4第二章 數(shù)控仿真技術(shù)發(fā)展狀況5第三章 功能簡介7第四章 NC代碼的讀取9第五章 插補過程10第六章 設計小結(jié)13第七章 參考書目13
6、第八章 數(shù)控代碼14第一章 設計任務書1設計題目:對于給定的一段NC代碼,用VB或其他高級語言編寫程序解釋、插補,在PC機上仿真數(shù)控裝置,進行圖形描繪、坐標值顯示、步進電機控制模擬顯示及信號輸出、冷卻液和主軸開關(guān)量控制模擬顯示及信號輸出。 具體要求如下:(1) NC代碼中包含的代碼類型有:G90 G54 G00 G01 G02 G03 M03 M05 M08 M09 M302、數(shù)控系統(tǒng)的計算機仿真對于給定的一段NC代碼,用VB或其他高級語言編寫程序解釋、插補,在PC機上仿真數(shù)控裝置,進行圖形描繪、坐標值顯示、步進電機控制模擬顯示及信號輸出、冷卻液和主軸開關(guān)量控制模擬顯示及信號輸出。具體要求如下
7、:(1) NC代碼中包含的代碼類型有: G90 G54 G00 G01 G02 G03 M03 M05 M08 M09 M30圖1 工件平面 例:下面給出一個具體的圖形示意圖,NC代碼及其加工軌跡圖: %O0000N106G0G90G03M08N108Z50.N110Z10.N112G1Z-1.N114Y15.0N118GJ7.5N122G1Y20.0N126X10.N128G0Z50.N130M5M09N136M30% (2)、要求根據(jù)NC代碼屏幕模擬加工過程,圖形顯示位置,坐標值顯示,輔助功能狀態(tài)顯示(冷卻液和主軸開關(guān)量控制模擬顯示)。(3)、PC機模擬加工過程中,要求有實時的驅(qū)動三軸步進
8、電機的控制信號、控制冷卻液和主軸轉(zhuǎn)動的開關(guān)量輸出控制信號。假設信號從計算機并行打印口的數(shù)據(jù)信號線輸出,端口地址為0x378。并行口數(shù)據(jù)線分配如下(低電平有效):圖2 加工仿真示圖第二章 數(shù)控仿真技術(shù)發(fā)展狀況(1) 計算機仿真的概念及應用為了解決數(shù)控加工中的程序編制問題,50年代,MIT設計了一種專門用于機械零件數(shù)控加工程序編制的語言,稱為APT(Automatically Programmed Tool)。其后,APT幾經(jīng)發(fā)展,形成了諸如APTII、APTIII(立體切削用)、APT(算法改進,增加多坐標曲面加工編程功能)、APTAC(Advanced contouring)(增加切
9、削數(shù)據(jù)庫管理系統(tǒng))和APT/SS(Sculp tured Surface)(增加雕塑曲面加工編程功能)等先進版。 采用APT語言編制數(shù)控程序具有程序簡煉,走刀控制靈活等優(yōu)點,使數(shù)控加工編程從面向機床指令的“匯編語言”級,上升到面向幾何元素.APT仍有許多不便之處:采用語言定義零件幾何形狀,難以描述復雜的幾何形狀,缺乏幾何直觀性;缺少對零件形狀、刀具運動軌跡的直觀圖形顯示和刀具軌跡的驗證手段;難以和CAD數(shù)據(jù)庫和CAPP系統(tǒng)有效連接;不容易作到高度的自動化,集成化。 針對APT語言的缺點,1978年,法國達索飛機公司開始開發(fā)集三維設計、分析、NC加工一體化的系統(tǒng),稱為為CATIA。隨后很快出現(xiàn)了
10、象EUCLID,UGII,INTERGRAPH,Pro/Engineering,MasterCAM及NPU/GNCP等系統(tǒng),這些系統(tǒng)都有效的解決了幾何造型、零件幾何形狀的顯示,交互設計、修改及刀具軌跡生成,走刀過程的仿真顯示、驗證等問題,推動了CAD和CAM向一體化方向發(fā)展。到了80年代,在CAD/CAM一體化概念的基礎上,逐步形成了計算機集成制造系統(tǒng)(CIMS)及并行工程(CE)的概念。目前,為了適應CIMS及CE發(fā)展的需要,數(shù)控編程系統(tǒng)正向集成化和智能化方向發(fā)展。 在集成化方面,以開發(fā)符合STEP(Standard for the Exchangeof Product Model Data
11、)標準的參數(shù)化特征造型系統(tǒng)為主,目前已進行了大量卓有成效的工作,是國內(nèi)外開發(fā)的熱點;在智能化方面,工作剛剛開始,還有待我們?nèi)ヅΑ#?)數(shù)控仿真技術(shù)的研究現(xiàn)狀數(shù)控機床加工零件是靠數(shù)控指令程序控制完成的。為確保數(shù)控程序的正確性,防止加工過程中干涉和碰撞的發(fā)生,在實際生產(chǎn)中,常采用試切的方法進行檢驗。但這種方法費工費料,代價昂貴,使生產(chǎn)成本上升,增加了產(chǎn)品加工時間和生產(chǎn)周期。后來又采用軌跡顯示法,即以劃針或筆代替刀具,以著色板或紙代替工件來仿真刀具運動軌跡的二維圖形(也可以顯示二維半的加工軌跡),有相當大的局限性。對于工件的三維和多維加工,也有用易切削的材料代替工件(如,石蠟、木料、改性樹脂和塑料
12、等)來檢驗加工的切削軌跡。但是,試切要占用數(shù)控機床和加工現(xiàn)場。為此,人們一直在研究能逐步代替試切的計算機仿真方法,并在試切環(huán)境的模型化、仿真計算和圖形顯示等方面取得了重要的進展,目前正向提高模型的精確度、仿真計算實時化和改善圖形顯示的真實感等方向發(fā)展。(3)虛擬制造目前的發(fā)展狀況 虛擬制造從提出到現(xiàn)在已歷經(jīng)了20多年,技術(shù)上得到了很大的發(fā)展,應用方面也得到了廣泛的擴展。在國外,有很多學校、研究所、科研單位、大型企業(yè)等都在不斷的研究和應用虛擬制造技術(shù)。近年來,虛擬現(xiàn)實技術(shù)已較多地應用到汽車開發(fā)工作中,已初步形成一種集專業(yè)理論、工程設計、科學試驗等為一身的較為完整的應用體系。例如,1995年美國標
13、準與技術(shù)研究所的報告“國家先進制造實驗臺的概念設計計劃”,強調(diào)了分散的、多節(jié)點的分散虛擬制造(DVM),即虛擬企業(yè)的概念;而美國國家研究委員會的報告“制造中的信息技術(shù)”,則探討了產(chǎn)品集成、過程設計、車間控制、虛擬工廠等的信息技術(shù)問題。福特汽車公司也已經(jīng)計劃應用虛擬環(huán)境技術(shù)來設計和開發(fā)汽車,該公司的先進車輛技術(shù)組把虛擬制造技術(shù)應用于裝配仿真和虛擬成形,以提高空氣動力學、人機工程學和表面建模的效果。第三章 功能簡介工具欄NC模擬框工作狀態(tài) 并行口輸出狀態(tài)坐標值實時狀態(tài)NC代碼輸入框 圖(1)1.1、主界面簡介如圖(1)所示,程序主界面由如下幾個部分組成:工具欄、NC代碼輸入框、坐標值實時狀態(tài)框、工
14、作狀態(tài)框、NC模擬框。其中,工具欄菜單依次為:文件、編輯、視圖、運行,工作狀態(tài)框顯示了冷卻液的開關(guān)狀態(tài)、主軸的轉(zhuǎn)速及轉(zhuǎn)向、步進電機X電機、Y電機的轉(zhuǎn)向。NC代碼在NC代碼輸入框輸入,根據(jù)NC代碼在NC模擬框進行模擬加工。1.2、參數(shù)設置定界面: 圖(2)如圖(2)所示,在此界面,根據(jù)需要可以選擇脈沖當量(單位為毫米mm)以及圖形的放大倍數(shù),以便顯示,插補形式由于時間關(guān)系。通過寫入工件坐標的原點。便可隨時改變坐標的原點。1.3、NC代碼格式在NC代碼輸入框輸入代碼,開頭必須要有程序開始符“%”、結(jié)尾同樣以結(jié)束符“%”結(jié)束,程序不能輸入行符,因為本程序還不能辨別。指令符(G、M)可以是大寫也可以是
15、小寫,指令間允許有空格。輸入圓心時只能用IJ指令,R指令不能識別這是該程序的不足之處,還有待提高。1.4、程序基本操作首先,在NC代碼輸入框輸入NC代碼或打開已有的代碼,接著按工具欄上的運行“調(diào)試”,程序經(jīng)過調(diào)試后,如果程序有錯,會自動報錯,報錯時光標將會定位在有錯的代碼附近,可以方便用戶修改,直到無誤為至,此時程序會告訴用戶調(diào)試成功,緊接著按“模擬”,在NC模擬框便會出現(xiàn)用戶希望的圖形。繪圖的過程中用戶可以按“暫?!辨I暫停繪圖、再按時便繼續(xù)繪制,按“結(jié)束”整個程序?qū)⑼V?。與此同時,坐標值實時顯示框?qū)崟r顯示動點的坐標,工作狀態(tài)框也反映工作狀況。在快捷工具欄功能按鈕一樣可以實現(xiàn)如上功能。整個加工
16、過程比較直觀,一目了然。本程序優(yōu)秀之處在于當程序未調(diào)試之前“模擬”鍵成淡色,不能使用,以防出錯,而當模擬時“調(diào)試”鍵成淡色,程序不會亂套。第四章 NC代碼的讀取N程序報錯YN i=i+1YN結(jié)束讀入整個程序賦初值i=1判斷是否有%讀入第i行G、M、S指令和X、Y、I、J的坐標值判斷指令和坐標值正確與否開始Y圖3讀完?第五章 插補過程3.1插補算法說明本軟件應用脈沖增量插補方法,這類插補方法的特點是:(1) 每次插補的結(jié)果僅產(chǎn)生一個單位的行程增量(一個脈沖當量),以一個脈沖的方式輸出給步進電機。其基本思想是:用折線來逼近曲線(包括直線)。(2) 插補速度與進給速度密切相關(guān)。(3) 脈沖增量插補的
17、實現(xiàn)方法較簡單。脈沖增量插補的方法有逐點比較法、數(shù)字積分法,本軟件用逐點比較法。逐點比較法的原理是:在仿真過程中,能逐點地計算和判別運動軌跡與給定軌跡的偏差,并根據(jù)偏差控制進給軸向給定輪廓靠近,縮小偏差,使加工輪廓逼近給定輪廓。逐點比較法是以折線來逼近直線和圓弧曲線的,它與規(guī)定的直線或圓弧之間的最大誤差不超過一個脈沖當量,因此,只要將脈沖當量取得足夠小,就可達到加工精度的要求。3.2直線插補原理:直線插補流程圖起始F0,X0,Y0X0,Y0結(jié)束X(Y)= X(Y)-1+Y進給F=F+YeF=F-Xe+X進給F0X(Y)=0=NYNNYY:偏差計算公式假設加工如圖 所示直線OA,取直線起點為坐標
18、原點,直線終點坐標A(Xe,Ye)為已知,即直線OA為給定軌跡。M(Xm,Ym)點為加工點(動點)。若M點在直線OA上,則根據(jù)相似三角形的關(guān)系可得:F(xm)0x=+F(xm)0y=+MMA(Xe,Ye)圖4逐點比較法插補(直線)Xm/Ym=Xe/Ye即 Ym XeYeXm=0由此,可定義直線插補的偏差判別式如下:Fm=XeYm-YeXm若 Fm=0 表示動點在OA直線上若 Fm>0 表示動點在OA直線上方若 Fm<0 表示動點在OA直線下方當 時M點在直線上或在直線上方,應沿+X方向進給一步,走步后新的坐標值為Xm+1=Xm +1Ym+1=Ym新的偏差為:F m+1=FmYe若F
19、m<0 則應沿+Y方向進給一步,走步后新的坐標值為Xm+1=XmYm+1=Ym +1新的偏差為:F m+1=Fm+XeOXYABBBBF(xm)0y=+F(xm)0x=+F(xm)0y=F(xm)0x=+F(xm)0y=+F(xm)0x=+F(xm)0y=F(xm)0x=+圖 5四象限直線偏差符號和進給方向終點判斷的方法設置變量CountN減法計數(shù)器,在加工之前存入終點坐標值Xe 、Ye,X或Y坐標每進給一步時,就在計數(shù)器中、減去1,直到為零,停止插補,到達終點。其它象限的直線插補計算其它象限其實與第一象限或關(guān)于原心對稱或關(guān)于X軸對稱,所以,只要作符合上的變化,程序?qū)崿F(xiàn)非常方便。圓弧插補
20、流程圖起始F0,X0,Y0X0,Y0結(jié)束X(Y)= X(Y)-1+Y進給F=F+2Ym+1F=F-2Xm+1 +X進給F0X(Y)=0=NYNNYY:321偏差計算公式以第一象限逆圓為例介紹插補公式如圖7所示,要加工圓弧AB,設圓弧的圓心在原點,并已知圓弧的起點A(Xo,Yo),終點B(Xe,Ye),圓弧半徑為R。加工動點M(Xm,Ym),RmRXYB(Xe,Ye)A(Xo,Yo)圖7第一象限逆圓弧M(Xm,Ym)它到圓心的距離為Rm。則有三種情況:當動點M在圓上有:當動點M在圓內(nèi)有:當動點M在圓外有:因此,可定義圓弧偏差判別公式如下:若,應沿-X軸方向進給一步,到M+1點,YF(xm)0y=
21、 +F(xm)0x= F(xm)0y= F(xm)0x= F(xm)0x= +F(xm)0y= F(xm)0y= +F(xm)0x= +XO逆圓圖8 逆圓插補示意圖其坐標值為: 則新加工點的偏差為:若,沿+Y軸方向進一步,到M+1點,其坐標值為則新加工點的偏差為:3.2.2終點判斷的方法在繪圖的過程中,不斷地比較動點與終點的距離,當其距離小于脈沖當量時,在誤差允許的范圍達到終點。3.2.3其它象限的圓弧插補計算如圖8所示,其它象限的圓弧或關(guān)于X軸對稱、或關(guān)于X軸對稱、或關(guān)于原心對稱,完全可以按第一象限逆圓偏差公式進行計算,所不同的是將進給方向改變。第六章 設計小結(jié)數(shù)控課程設計是機電專業(yè)的一個重
22、要的實踐性環(huán)節(jié),是對所學數(shù)控技術(shù)課程和其它有關(guān)課程知識和技能的一次綜合性練習,旨在使我們的知識得以鞏固、充實、系統(tǒng)化,并進一步擴展。課程設計是培養(yǎng)我們理論聯(lián)系實際、解決生產(chǎn)實際問題的良好機會。通過對數(shù)控銑床典型部件的設計和零件編程的具體問題的解決,不僅使我們對CAD/CAM仿真軟件有了更深刻的了解,還是我們編程能力有了很大的提高。通過這次的設計,使我們更加明白知識的聯(lián)貫性、融合性、全面性以及交錯性的重要所在,這也是設計目的所在。我們應該持有自我增值、自我發(fā)展的人生觀。要領悟“學海無邊苦作舟”的真諦。力爭上游。第七章 參考書目1 廖效果等主編.數(shù)控技術(shù)M湖北科學技術(shù)版社-2000.52數(shù)控原理機
23、械工業(yè)出版社1997.33 龔沛曾等.Visual Basic 程序設計教程M.高等教育出版社-19984Visual Basic6.0清華大學出版社1998.1第八章 數(shù)控代碼Dim X As Double, Y As Double, z As Double 'X,Y,Z起點坐標Dim x1 As Double, y1 As Double, z1 As Double 'X,Y,Z終點坐標Dim gorder As String, morder As String, ornumber As Integer 'GM指令Dim movorder As String, con
24、order1 As String, conorder2 As String '移動,控制指令Dim cbstype As Integer '移動指令類型Dim xpoint As Double, ypoint As Double '軸測圖坐標Dim xpp As Double, ypp As Double, zpp As Double '平面圖坐標Dim centi As Double, centj As Double '圓心相對起點坐標Public getx As Double, gety As Double, getz As Double '
25、get參數(shù)設置Public bei As Integer '圖形放大倍數(shù)Dim str As String '讀入NC代碼Dim prgline As Integer '運行行數(shù)Dim readnum As IntegerDim mm As Double '積分插補累加數(shù)Dim fm As Double '比較插補FMDim dl As Double '脈沖當量Dim Stepdl As IntegerDim xm As Double, ym As Double, zm As Double '動點X,Y,ZDim mx As Double
26、, my As Double, mz As Integer '積分插補數(shù)Dim pausecon As Integer '暫停控制Dim xx() As Double, yy() As Double, zz() As Double '保存XYZ值Dim xx0() As Double, yy0() As Double, zz0() As DoubleDim xf0() As Double, yf0() As Double, zf0() As DoubleDim xf1() As Double, yf1() As Double, zf1() As DoubleDim mo
27、vrou As IntegerDim mousex As Double, mousey As Single'Private Declare Sub DIO_OutputByte Lib "d:/dio.dll" (ByVal Address As Integer, ByVal DataOut As Integer)'Private Declare Function DIO_InputByte Lib "dio.dll" (ByVal Address As Integer) As Integer'并行口輸入輸出函數(shù)'畫坐標S
28、ub drawxyz()linez.Cls '畫軸測圖坐標linez.Scale (-700 / bei, 700 / bei)-(600 / bei, -600 / bei)linez.Line (0, 0)-(0, 650 / bei), QBColor(10)linez.Line (0, 650 / bei)-(-10 / bei, 620 / bei), QBColor(10)linez.Line (0, 650 / bei)-(10 / bei, 620 / bei), QBColor(10)linez.Line (0, 0)-(-650 / bei, 0), QBColor
29、(10)linez.Line (-650 / bei, 0)-(-620 / bei, 10 / bei), QBColor(10)linez.Line (-650 / bei, 0)-(-620 / bei, -10 / bei), QBColor(10)linez.Line (0, 0)-(650 / bei * 0.7071, -650 / bei * 0.7071), QBColor(10)linez.Line (650 / bei * 0.7071, -650 / bei * 0.7071)-(620 / bei * 0.7071, -640 / bei * 0.7071), QBC
30、olor(10)linez.Line (650 / bei * 0.7071, -650 / bei * 0.7071)-(640 / bei * 0.7071, -620 / bei * 0.7071), QBColor(10)xlab.Caption = "X": ylab.Caption = "Y": zlab.Caption = "Z": olab.Caption = "0"xlab.Refresh: ylab.Refresh: zlab.Refresh: olab.Refreshlinez.PSet (0
31、, 600)linep.Cls '畫平面圖坐標linep.Scale (-200 / bei, 1000 / bei)-(1000 / bei, -200 / bei)linep.Line (0, 950 / bei)-(0, -150 / bei), QBColor(10)linep.Line (10 / bei, 920 / bei)-(0, 950 / bei), QBColor(10)linep.Line (-10 / bei, 920 / bei)-(0, 950 / bei), QBColor(10)linep.Line (-150 / bei, 0)-(950 / bei
32、, 0), QBColor(10)linep.Line (950 / bei, 0)-(920 / bei, 10 / bei), QBColor(10)linep.Line (950 / bei, 0)-(920 / bei, -10 / bei), QBColor(10)linep.PSet (0, 0)End Sub'逆圓插補Private Sub ycirsub(rr As Double, qbc As Integer)Dim xtemp, ytemp, ztemp As DoubleDim xppt, yppt, zppt As DoubleDim xpointtemp, y
33、pointtemp As Doublextemp = xm: ytemp = ym: ztemp = zmIf X = x1 And Y = y1 Then Exit SubIf fm >= 0 Then If xm >= 0 Then If ym >= 0 Then xm = xm - dl outdata(0).Text = 0 Else ym = ym + dl outdata(2).Text = 0 End If Else If ym >= 0 Then ym = ym - dl outdata(2).Text = 0 Else xm = xm + dl out
34、data(0).Text = 0 End If End IfElse If xm >= 0 Then If ym >= 0 Then ym = ym + dl outdata(2).Text = 0 Else xm = xm + dl outdata(0).Text = 0 End If Else If ym >= 0 Then xm = xm - dl outdata(0).Text = 0 Else ym = ym - dl outdata(2).Text = 0 End If End IfEnd IfIf xtemp = xm And ytemp = ym And zt
35、emp = zm Then Exit Subxpp = xm - (centi - X) * 10: ypp = ym - (centj - Y) * 10: zpp = zm xppt = xtemp - (centi - X) * 10: yppt = ytemp - (centj - Y) * 10: zppt = ztemp'平面圖坐標If zpp <= 0 ThenReDim Preserve xx(UBound(xx) + 1), yy(UBound(yy) + 1), zz(UBound(zz) + 1) As Doublexx(UBound(xx) = xpp:
36、yy(UBound(yy) = ypp: zz(UBound(zz) = zppReDim Preserve xx0(UBound(xx0) + 1), yy0(UBound(yy0) + 1), zz0(UBound(zz0) + 1) As Doublexx0(UBound(xx0) = xpp: yy0(UBound(yy0) = ypp: zz0(UBound(zz0) = 0End Ifxpoint = -xpp + ypp * 0.7071 '軸測變換ypoint = -ypp * 0.7071 + zppxpointtemp = -xppt + yppt * 0.7071
37、ypointtemp = -yppt * 0.7071 + zpptxcText.Text = xpp / 10: ycText.Text = ypp / 10: zcText.Text = zpp / 10 '工件坐標linep.Line -(xpp, ypp), QBColor(qbc) '畫平面圖 linez.Line (xpointtemp, ypointtemp)-(xpoint, ypoint), QBColor(qbc) If zpp < 0 Then linez.Line (xpointtemp, ypointtemp - zppt)-(xpoint, y
38、point - zpp), QBColor(qbc - 1) End Iffm = xm 2 + ym 2 - rr 2End Sub'順圓插補Private Sub scirsub(rr As Double, qbc As Integer)Dim xtemp, ytemp, ztemp As DoubleDim xppt, yppt, zppt As DoubleDim xpointtemp, ypointtemp As Doublextemp = xm: ytemp = ym: ztemp = zmIf X = x1 And Y = y1 Then Exit SubIf fm &g
39、t;= 0 Then If xm >= 0 Then If ym >= 0 Then ym = ym - dl outdata(2).Text = 0 '0表示正方向 outdata(3).Text = 1 '1表示負方向 Else xm = xm - dl outdata(0).Text = 0 outdata(1).Text = 1 End If Else If ym >= 0 Then xm = xm + dl outdata(0).Text = 0 outdata(1).Text = 0 Else ym = ym + dl outdata(2).Tex
40、t = 0 outdata(3).Text = 0 End If End IfElse If xm >= 0 Then If ym >= 0 Then xm = xm + dl outdata(0).Text = 0 outdata(1).Text = 0 Else ym = ym - dl outdata(2).Text = 0 outdata(3).Text = 1 End If Else If ym >= 0 Then ym = ym + dl outdata(2).Text = 0 outdata(3).Text = 0 Else xm = xm - dl outda
41、ta(0).Text = 0 outdata(1).Text = 1 End If End IfEnd IfIf xtemp = xm And ytemp = ym And ztemp = zm Then Exit Sub xppt = xtemp - (centi - X) * 10: yppt = ytemp - (centj - Y) * 10: zppt = ztempxpp = xm - (centi - X) * 10: ypp = ym - (centj - Y) * 10: zpp = zmIf zpp <= 0 ThenReDim Preserve xx(UBound(
42、xx) + 1), yy(UBound(yy) + 1), zz(UBound(zz) + 1) As Doublexx(UBound(xx) = xpp: yy(UBound(yy) = ypp: zz(UBound(zz) = zppReDim Preserve xx0(UBound(xx0) + 1), yy0(UBound(yy0) + 1), zz0(UBound(zz0) + 1) As Doublexx0(UBound(xx0) = xpp: yy0(UBound(yy0) = ypp: zz0(UBound(zz0) = 0End Ifxpoint = -xpp + ypp *
43、 0.7071 '軸測變換ypoint = -ypp * 0.7071 + zppxpointtemp = -xppt + yppt * 0.7071ypointtemp = -yppt * 0.7071 + zpptxcText.Text = xpp / 10: ycText.Text = ypp / 10: zcText.Text = zpp / 10 '工件坐標linep.Line -(xpp, ypp), QBColor(qbc) '畫平面圖 linez.Line (xpointtemp, ypointtemp)-(xpoint, ypoint), QBColo
44、r(qbc) If zpp < 0 Then linez.Line (xpointtemp, ypointtemp - zppt)-(xpoint, ypoint - zpp), QBColor(qbc - 1) End Iffm = xm 2 + ym 2 - rr 2End Sub'直線積分插補Private Sub linesub(cx, cy, cz As Integer, fangx, fangy, fangz As Integer, qbc As Integer)'CX,CY,CZ為x,y,z偏移量,fangx,fangy,fangz 1表示正方向,-1為負方
45、向If cx = 0 And cy = 0 And cz = 0 Then Exit SubDim xtemp, ytemp, ztemp As DoubleDim xppt, yppt, zppt As DoubleDim xpointtemp, ypointtemp As Doublextemp = xm: ytemp = ym: ztemp = zm mx = mx + cx / 10: my = my + cy / 10: mz = mz + cz / 10 If mx >= mm Then xm = xm + fangx * dl mx = mx - mm outdata(0)
46、.Text = 0 End If If my >= mm Then ym = ym + fangy * dl my = my - mm outdata(2).Text = 0 End If If mz >= mm Then zm = zm + fangz * dl mz = mz - mm outdata(4).Text = 0 End If If xtemp = xm And ytemp = ym And ztemp = zm Then Exit Sub xpp = xm + X * 10: ypp = ym + Y * 10: zpp = zm + z * 10 If zpp
47、<= 0 ThenReDim Preserve xx(UBound(xx) + 1), yy(UBound(yy) + 1), zz(UBound(zz) + 1) As Doublexx(UBound(xx) = xpp: yy(UBound(yy) = ypp: zz(UBound(zz) = zppReDim Preserve xx0(UBound(xx0) + 1), yy0(UBound(yy0) + 1), zz0(UBound(zz0) + 1) As Doublexx0(UBound(xx0) = xpp: yy0(UBound(yy0) = ypp: zz0(UBoun
48、d(zz0) = 0End If xppt = xtemp + X * 10: yppt = ytemp + Y * 10: zppt = ztemp + z * 10 xpoint = -xpp + ypp * 0.7071 '軸測變換 ypoint = -ypp * 0.7071 + zpp xpointtemp = -xppt + yppt * 0.7071 ypointtemp = -yppt * 0.7071 + zppt xcText.Text = xpp / 10: ycText.Text = ypp / 10: zcText.Text = zpp / 10 '工
49、件坐標 linep.Line -(xpp, ypp), QBColor(qbc) linez.Line (xpointtemp, ypointtemp)-(xpoint, ypoint), QBColor(qbc) If zpp < 0 Then linez.Line (xpointtemp, ypointtemp - zppt)-(xpoint, ypoint - zpp), QBColor(qbc - 1) End IfEnd SubPrivate Sub Form_Load() Me.Left = GetSetting(App.Title, "Settings"
50、, "MainLeft", 1000) Me.Top = GetSetting(App.Title, "Settings", "MainTop", 1000) Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 6500) Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 6500) '讀入設置 fileframe.
51、Caption = "代碼" getx = getform.getxt.Text '讀入get參數(shù)設置 dl = dlt.Text * 10 Call drawxyz ReDim xx(0) As Double, yy(0) As Double, zz(0) As DoubleReDim xx0(0) As Double, yy0(0) As Double, zz0(0) As DoubleEnd SubPrivate Sub Form_Unload(Cancel As Integer) If Me.WindowState <> vbMinimized
52、Then SaveSetting App.Title, "Settings", "MainLeft", Me.Left SaveSetting App.Title, "Settings", "MainTop", Me.Top SaveSetting App.Title, "Settings", "MainWidth", Me.Width SaveSetting App.Title, "Settings", "MainHeight", M
53、e.Height '保存設置 End If EndEnd Sub'清除Private Sub mnueditclear_Click()filetxt.Text = "" '清除文件框arimage.Top = 300End Sub'清除Private Sub clear_Click()filetxt.Text = "" '清除文件框arimage.Top = 300End Sub'暫停Private Sub mnurunpause_Click()clear.Enabled = TrueTimer2.Inte
54、rval = 0Timer1.Interval = 0pausecon = 1End Sub'暫停Private Sub pause_Click()clear.Enabled = TrueTimer2.Interval = 0Timer1.Interval = 0pausecon = 1End Sub'運行Private Sub mnurunrun_Click()If pausecon = 1 Then '當暫停時為繼續(xù)Timer1.Interval = 1Timer2.Interval = 1pausecon = 0ElseIf filetxt.Text = "" ThenMsgBox "請加載NC程序", vbOKOnly, "加載失敗"Exit SubElseclear.Enabled = FalseReDim xx(0), yy(0), zz(0) As DoubleReDim xx0(0), yy0(0), zz0(0) As DoubleReDim xf0(0) As Double, yf0(0) As Double, zf0(0) As DoubleReDim xf1(0) As Double, yf1(0) As Double, zf1(0) As Doublestr =
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- emc買斷合同范本
- 代款合作合同范本
- 2025年抗風濕類藥品合作協(xié)議書
- 合同范本網(wǎng)翻譯
- 合同范本全是正式合同
- 雙方交付款合同范例
- 2025年分離純化控制系統(tǒng)項目合作計劃書
- 中英日文合同范本
- 合同范本模板去石墻
- 叉車置換銷售合同范本
- 《大學美育》高職全套教學課件
- 醫(yī)院CT機房裝飾改造工程施工組織設計
- 軟件工程自考02333重點難點匯集
- 護理技能操作案例分析
- DZ∕T 0213-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 石灰?guī)r、水泥配料類(正式版)
- 《行政倫理學教程(第四版)》課件 張康之 第8-13章 行政組織倫理-技術(shù)時代的行政倫理
- 《水電廠應急預案編制導則》
- GB/T 2471-2024電阻器和電容器優(yōu)先數(shù)系
- 國際安保行業(yè)分析
- 2024年中國鐵道科學研究院集團有限公司招聘筆試參考題庫附帶答案詳解
- 成人住院患者靜脈血栓栓塞癥預防護理
評論
0/150
提交評論