freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

三維數(shù)據(jù)模型分層圖形傳遞及中間層項目設(shè)計方案(編輯修改稿)

2025-05-27 06:35 本頁面
 

【文章內(nèi)容簡介】 nozzle //升起擠出機M109 S200 。 wait for temperature to be reached //等待機器溫度達到設(shè)置值G90 。 use absolute coordinates //設(shè)置成絕對坐標(biāo)(即與機器原始位置相對)G92 E0 //設(shè)置位置M82 。 use absolute distances for extrusion //設(shè)置擠出機使用坐標(biāo)模式G1 G92 E0 G1 // G1 //該x,y值設(shè)置為原始位置點坐標(biāo)G1 //初始設(shè)置擠出機的速度及擠出原料的長度(F:加工速度;E:擠出長度)G1 //(從上一坐標(biāo)點移動到該點,并降低加工速度為540mm/min, G1 //(再從上一點移動到該點,并以F的速度,G1 //以此類推我們很明確地知道我們只需要將G代碼里面的XYZ值坐標(biāo)值帥篩選出來就可以了,因此我們可以忽略掉出現(xiàn)三維坐標(biāo)值(X,Y,Z)前的各種參數(shù)設(shè)置以及數(shù)據(jù)中出現(xiàn)的空格字符“ ”。我們細心就會發(fā)現(xiàn),G代碼數(shù)據(jù)參數(shù)設(shè)置前都有一個分號“;”,利用while循環(huán)語句和if條件判斷語句遇到空格字符就跳過,以及遇到分號“;”就不處理這一行的方法實現(xiàn)。圖36 下位機能夠接收的數(shù)據(jù)形式已知圖36為下位機驅(qū)動模塊能夠接受的坐標(biāo)值數(shù)據(jù)形式,我們首先要對該數(shù)據(jù)形式進行分析,包括各個字符、數(shù)字以及文件的類型,詳細了解該數(shù)據(jù)中定義的字符和數(shù)字表示的意思,才能確定軟件設(shè)計程序各功能的總構(gòu)架圖,以實現(xiàn)將STL文件導(dǎo)出的坐標(biāo)值轉(zhuǎn)換成下位機驅(qū)動模塊能夠讀取坐標(biāo)值的另一種格式文本文件的功能。通過圖36中對數(shù)據(jù)顏色鮮明的標(biāo)注,我們可以容易地分清楚該數(shù)據(jù)格式的構(gòu)成。我們在設(shè)計特定功能程序前,了解分析源數(shù)據(jù)和目標(biāo)數(shù)據(jù)的構(gòu)成是很重要的,才能制定功各部分功能和運用所需要的函數(shù)。下位機能夠接收的數(shù)據(jù)格式為:@+X坐標(biāo)值位數(shù)+X坐標(biāo)值數(shù)值+@+Y坐標(biāo)值位數(shù)+Y坐標(biāo)值數(shù)值+@+Z坐標(biāo)值位數(shù)+Z坐標(biāo)值數(shù)值@+U值位數(shù)+U值數(shù)值+@10$下面對這個數(shù)據(jù)格式進行說明解釋。當(dāng)下位機從左到右順序讀到字符@的時候就開始讀寫其后的X數(shù)值、Y數(shù)值和Z數(shù)值。U表示的是打印的延時時間。我們在程序中設(shè)置了當(dāng)讀到$字符的時候,每一行的坐標(biāo)值讀取程序就結(jié)束。然后開始下一行坐標(biāo)值的讀取,也就是下一個坐標(biāo)點的讀取。@:程序開始讀取這個@字符后面的對應(yīng)坐標(biāo)值X、Y、Z;X: 每個點的X坐標(biāo);Y:每個點的Y坐標(biāo);Z:每個點的Z坐標(biāo);U:打印延長時間,也就是兩個坐標(biāo)點打印所需要的間隔時間;$:讀取每一行數(shù)據(jù)后停止,即讀每一個坐標(biāo)點后停止;為了簡要說明以上目標(biāo)文件每一行數(shù)據(jù)對應(yīng)的坐標(biāo)值的轉(zhuǎn)換方法,特意連續(xù)選取這三行數(shù)據(jù)做一個基本的轉(zhuǎn)換說明。例子:@10X@10Y@45000Z@10U@10$ 坐標(biāo)值(0,0,5000)@10X@10Y@3350Z@10U@10$ 坐標(biāo)值(0,0,350)@579960X@560960Y@3350Z@10U@10$ 坐標(biāo)值(79960,60960,350) G代碼轉(zhuǎn)換成下位機格式數(shù)據(jù)的過程分析。數(shù)據(jù)轉(zhuǎn)換算法這里涉及到三個方面的內(nèi)容:①判斷XYZ坐標(biāo)字符并讀取坐標(biāo)值;②對坐標(biāo)值進行優(yōu)化處理;③以固定格式輸出文件。①判斷XYZ坐標(biāo)字符并讀取坐標(biāo)值在這里為了判斷XYZ字符我們使用switch多分支選擇語句進行判斷,同時在正確判斷到XYZ字符時,我們還使用atof()函數(shù)將字符串轉(zhuǎn)化為浮點數(shù)。以下圖37為switch語句判斷XYZ坐標(biāo)流程圖。圖37 switch語句判斷XYZ坐標(biāo)流程圖②對坐標(biāo)值進行優(yōu)化處理由于下位機能夠接收到的數(shù)據(jù)需要以整數(shù)的形式出現(xiàn),我們還需要將浮點數(shù)轉(zhuǎn)化整數(shù),并且在取整的過程中我們要保證輸出的數(shù)據(jù)位數(shù)控制在5位以內(nèi),以提高噴頭運動軌跡的準(zhǔn)確性和縮小誤差范圍。因此我們必須要對坐標(biāo)值做優(yōu)化處理,即四舍五入取整。以下圖38為坐標(biāo)值四舍五入取整流程圖。圖38 坐標(biāo)值四舍五入取整流程圖③以固定格式輸出文件:@+X坐標(biāo)值位數(shù)+X坐標(biāo)值數(shù)值+@+Y坐標(biāo)值位數(shù)+Y坐標(biāo)值數(shù)值+@+Z坐標(biāo)值位數(shù)+Z坐標(biāo)值數(shù)值@+U值位數(shù)+U值數(shù)值+@10$,特別注意的是還要求取XYZ坐標(biāo)值得位數(shù)。 ①數(shù)據(jù)流:指程序與數(shù)據(jù)的交互是以流的形式進行的。進行C語言文件的存取時,都會先進行“打開文件”操作,這個操作就是在打開數(shù)據(jù)流,而“關(guān)閉文件”操作就是關(guān)閉數(shù)據(jù)流。②緩沖區(qū):指在程序執(zhí)行時,所提供的額外內(nèi)存,可用來暫時存放做準(zhǔn)備執(zhí)行的數(shù)據(jù)。它的設(shè)置是為了提高存取效率,因為內(nèi)存的存取速度比磁盤驅(qū)動器快得多。C語言的文件處理功能依據(jù)系統(tǒng)是否設(shè)置“緩沖區(qū)”分為兩種:一種是設(shè)置緩沖區(qū),另一種是不設(shè)置緩沖區(qū)。由于不設(shè)置緩沖區(qū)的文件處理方式必須使用叫低級的I/O函數(shù)()來直接對磁盤存取,這種方式的存取速度慢,并且由于不是C的標(biāo)準(zhǔn)函數(shù),跨平臺操作時容易出現(xiàn)問題[8]。因此,我們使用設(shè)置緩沖區(qū)的文件處理方式。當(dāng)使用標(biāo)準(zhǔn)I/O函數(shù)()時,系統(tǒng)會自動設(shè)置緩沖區(qū),并通過數(shù)據(jù)流來讀寫文件。當(dāng)進行文件讀取時,不會直接對磁盤進行讀取,而是先打開數(shù)據(jù)流,將磁盤上的文件信息拷貝到緩沖區(qū)內(nèi),然后程序再從緩沖區(qū)中讀取所需數(shù)據(jù)。當(dāng)寫入文件時,并不會馬上寫入磁盤中,而是先寫入緩沖區(qū),只有在緩沖區(qū)已滿或“關(guān)閉文件”時,才會將數(shù)據(jù)寫入磁盤。如下圖41所示:圖41 文件的打開、讀寫、關(guān)閉過程示意圖 數(shù)據(jù)轉(zhuǎn)換模塊圖42 初始化模塊程序代碼圖42這個模塊是用來初始化X、Y、Z的坐標(biāo)值,使用fopen()函數(shù)打開文件,并且判斷輸入輸出文件打開是否成功,失敗則返回錯誤信息。如果打開成功,當(dāng)所有的數(shù)據(jù)都讀取出來后。圖43 遍歷文件讀取X、Y、Z坐標(biāo)值圖43代碼使用了for循環(huán)語句和Switch語句來遍歷整個G代碼文件數(shù)據(jù),通過switch語句來判斷遇到大小寫X、Y、Z字符時,使用atof()函數(shù)將字符串轉(zhuǎn)化為浮點數(shù),把轉(zhuǎn)化后的數(shù)值輸出到目標(biāo)文件。這樣就完成了對G代碼中的數(shù)據(jù)的讀取了。圖44 對浮點型數(shù)據(jù)進行四舍五入處理如圖44所示,我們考慮到下位機能夠接收的數(shù)據(jù)位數(shù)需要控制在5位以內(nèi),以及方便數(shù)據(jù)的讀取,我們在程序中將浮點坐標(biāo)轉(zhuǎn)化為整數(shù)并且保留三位有效小數(shù),我們處理為123,這通過對原始數(shù)值放大10000倍來實現(xiàn)。圖45 格式化輸出代碼我們在分析了下位機能夠接收的數(shù)據(jù)格式的基礎(chǔ)上(即格式為:@+X坐標(biāo)值位數(shù)+X坐標(biāo)值數(shù)值+@+Y坐標(biāo)值位數(shù)+Y坐標(biāo)值數(shù)值+@+Z坐標(biāo)值位數(shù)+Z坐標(biāo)值數(shù)值@+U值位數(shù)+U值數(shù)值+@10$),設(shè)計了程序中的格式化輸出函數(shù)輸出的格式為上述格式。同時,調(diào)用Coord_To_OutString()函數(shù)實現(xiàn)讀取坐標(biāo)值XYZ的數(shù)值位數(shù),最后按照以上格式輸入坐標(biāo)值位數(shù)與數(shù)值。圖46 去重坐標(biāo)代碼如圖46 去重坐標(biāo)代碼中所示,通過if條件判斷語句當(dāng)X、Y、Z中任何一個坐標(biāo)不相同的時候可以覆蓋原有的坐標(biāo)值。 數(shù)據(jù)顯示模塊圖47 源文件顯示模塊如圖47源文件顯示模塊界面包含了“文件選擇”“源文件”等label標(biāo)簽控件、“文件選擇“按鈕以及文本顯示模塊。利用信號與槽函數(shù),當(dāng)我們點擊“文件選擇”按鈕的時候,會觸發(fā)槽函數(shù)OnUserChooseFile(),即用戶選擇文件函數(shù)。同時判斷當(dāng)前數(shù)據(jù)源是否改變和用戶選擇的文件是否有效兩個值來決定我們是否更新數(shù)據(jù)源,有效則選擇我們指定格式的文件進行打開,輸出后綴格式為*.gcode的源文件數(shù)據(jù)到對象為tbSrcContext的文本框中進行顯示。圖48 源文件顯示界面模塊代碼圖49 文件數(shù)據(jù)優(yōu)化顯示界面由圖49文件數(shù)據(jù)優(yōu)化顯示界面所示,我們可以直觀地看到源文件坐標(biāo)數(shù)據(jù)經(jīng)過優(yōu)化處理后的數(shù)據(jù),而優(yōu)化處理后的數(shù)據(jù)正是數(shù)據(jù)轉(zhuǎn)換模塊實現(xiàn)的結(jié)果,這個數(shù)據(jù)轉(zhuǎn)換的程序就像一個黑匣子,我們看不到里面工作的過程,但是可以看到這個程序的結(jié)果。以下圖410為目標(biāo)文件文本顯示代碼,這與源文件數(shù)據(jù)顯示模塊一樣,定義了一個tbSrcC
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1