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

正文內(nèi)容

虛擬數(shù)控車削加工系統(tǒng)探討(編輯修改稿)

2025-07-19 08:24 本頁面
 

【文章內(nèi)容簡介】 區(qū)域是系統(tǒng)信息輸出框,顯示數(shù)控代碼檢驗(yàn)中的出錯(cuò)提示和其他交互信息。圖23系統(tǒng)界面 在完成上述界面過程中,采用了VC++開發(fā)中的單文檔多視圖方式,對(duì)默認(rèn)視圖進(jìn)行了多次切割。具體做法是:在框架窗口中聲明CSplitterWnd類對(duì)象,然后在框架窗口類的OnCreateClient()函數(shù)實(shí)現(xiàn)中進(jìn)行創(chuàng)建[10]。為在程序中加強(qiáng)對(duì)切割欄移動(dòng)和鎖定的控制,設(shè)計(jì)了CLockSplitter類,它派生自CSplitterWnd,并且在類中添加可移欄及鎖欄功能。 系統(tǒng)開發(fā)平臺(tái) Win32多線程技術(shù) Windows2000/XP操作系統(tǒng)是一個(gè)多任務(wù)操作系統(tǒng),其多任務(wù)實(shí)現(xiàn)機(jī)制有兩種:多進(jìn)程和多線程。 其中的每一個(gè)應(yīng)用程序都是一個(gè)進(jìn)程,進(jìn)程可以創(chuàng)建多個(gè)并發(fā)的線程,同時(shí)進(jìn)程也以主線程的形式被系統(tǒng)調(diào)度。所謂的線程是系統(tǒng)調(diào)度的一個(gè)基本單位,在程序中線程是以函數(shù)的形式出現(xiàn)的,它的代碼是進(jìn)程代碼的一部分,并與進(jìn)程及其派生的其它線程共享進(jìn)程的全局變量和文件打開表等公用信息。 MFC(Microsoft Foundation Class)將線程分為兩類:用戶界面線程和工作者線程。前者包含一個(gè)消息泵,并關(guān)聯(lián)一個(gè)主窗口,消息泵為其主窗口分發(fā)消息,進(jìn)行消息驅(qū)動(dòng),從而主窗口可以響應(yīng)用戶的交互操作及其它系統(tǒng)事件;工作者線程則沒有消息循環(huán),也不能關(guān)聯(lián)窗口。其實(shí),應(yīng)用程序的主執(zhí)行線程CWinAPP對(duì)象就是一個(gè)用戶界面線程,當(dāng)應(yīng)用程序啟動(dòng)時(shí)自動(dòng)創(chuàng)建和啟動(dòng),同樣它的終止也意味著該程序的結(jié)束,進(jìn)程終止。工作者線程用來執(zhí)行程序的后臺(tái)處理任務(wù),比如計(jì)算、調(diào)度、對(duì)串口的讀寫操作等,它和用戶界面線程的區(qū)別是它不用從CwinThread類派生來創(chuàng)建,對(duì)它來說最重要的是如何實(shí)現(xiàn)工作線程任務(wù)的運(yùn)行控制函數(shù)。 多線程程序的每一個(gè)線程間的操作是并行的,各個(gè)線程可以訪問進(jìn)程中的公共變量,所以使用多線程的過程中需要注意的問題是如何防止兩個(gè)或兩個(gè)以上的線程同時(shí)訪問同一個(gè)數(shù)據(jù),以免破壞數(shù)據(jù)的完整性。保證各個(gè)線程可以在一起適當(dāng)?shù)膮f(xié)調(diào)工作稱為線程之間的同步。 Windows系統(tǒng)提供的主要同步機(jī)制有[11]: (1) Critical Section(臨界區(qū))。臨界區(qū)是保證在某一個(gè)時(shí)間只有一個(gè)線程可以訪問數(shù)據(jù)的方法。臨界區(qū)對(duì)應(yīng)著一個(gè)CcriticalSection對(duì)象,當(dāng)線程需要訪問保護(hù)數(shù)據(jù)時(shí),調(diào)用臨界區(qū)對(duì)象的Lock()成員函數(shù);當(dāng)對(duì)保護(hù)數(shù)據(jù)的操作完成之后,調(diào)用臨界區(qū)對(duì)象的Unlock()成員函數(shù)釋放對(duì)臨界區(qū)對(duì)象的擁有權(quán),以使另一個(gè)線程可以奪取臨界區(qū)對(duì)象并訪問受保護(hù)的數(shù)據(jù)。 (2) Semaphore(信號(hào))。信號(hào)量可以同一時(shí)刻允許多個(gè)線程訪問同一個(gè)資源,創(chuàng)建一個(gè)信號(hào)量需要用Csemaphore類聲明一個(gè)對(duì)象,一旦創(chuàng)建了一個(gè)信號(hào)量對(duì)象,就可以用它來對(duì)資源的訪問進(jìn)行控制。 (3) Event(事件)。利用事件對(duì)象的狀態(tài),控制線程對(duì)共享資源的訪問。用ResetEvent函數(shù)設(shè)置事件對(duì)象狀態(tài)為不允許線程通過;用SetEvent函數(shù)設(shè)置事件對(duì)象狀態(tài)為可以允許線程通過 (4) Mutex(互斥量)?;コ馀c臨界區(qū)很相似,但是使用時(shí)相對(duì)復(fù)雜一些,它不僅可以在同一應(yīng)用程序的線程間實(shí)現(xiàn)同步,還可以在不同的進(jìn)程間實(shí)現(xiàn)同步,從而實(shí)現(xiàn)資源的安全共享。 通常情況下,一個(gè)次級(jí)線程要為主線程完成某種特定類型的任務(wù),這就隱含著表示在主線程和次級(jí)線程之間需要建立一個(gè)通信的通道。實(shí)現(xiàn)線程間通訊有如下幾種方法[12]: (1) 使用全局變量。這是一種簡單的通訊方法,首先定義一些全局變量,通過其取值執(zhí)行各個(gè)線程間的協(xié)調(diào)。 (2) 使用自定義消息。當(dāng)線程狀態(tài)改變,需要其他線程進(jìn)行響應(yīng)時(shí),就調(diào)用PostMessage()函數(shù)發(fā)出一個(gè)消息,并由另外一個(gè)線程的消息響應(yīng)函數(shù)進(jìn)行響應(yīng)。 (3) 使用事件對(duì)象。這是一種比較復(fù)雜的通訊方法,事件對(duì)象有兩種狀態(tài):有信號(hào)狀態(tài)和無信號(hào)狀態(tài),當(dāng)事件對(duì)象的狀態(tài)改變時(shí),其他線程將覺察這種變化,然后進(jìn)行響應(yīng)操作。 本系統(tǒng)的開發(fā)采用了多線程技術(shù),除主線程外生成另外一個(gè)用戶界面線程,使其與仿真界面窗口關(guān)聯(lián),完成仿真加工過程。為防止加工過程中主線程對(duì)已設(shè)定數(shù)據(jù)的改變,采用了臨界區(qū)來保證線程之間的同步,線程間的通訊采用了簡單的定義全局變量通訊措施。多線程技術(shù)的采用,不僅使仿真過程中可以進(jìn)行編輯、通訊等其他操作,而且還將可以對(duì)仿真過程進(jìn)行控制[13]。 VC++ Visual C++,目前已成為國內(nèi)應(yīng)用最廣泛的高級(jí)程序設(shè)計(jì)語言之一。 運(yùn)用VC++: (1)一種是直接調(diào)用Windows提供的Win32 API函數(shù)開發(fā)Windows應(yīng)用程序。 (2)另一種是使用VC++提供的MFC(Microsoft Foundation Class,微軟基本類)庫開發(fā)。 由于MFC對(duì)Win32 API編程方式有極好的封裝,再配合Visual C++提供的AppWizard、ClassWizard等工具可以大幅度加快開發(fā)進(jìn)程。本系統(tǒng)的開發(fā)采用第二種方式。 OpenGL簡介 OpenGL是近幾年發(fā)展起來的一個(gè)性能卓越的三維圖形標(biāo)準(zhǔn),它是在SGI等多家世界聞名的計(jì)算機(jī)公司的倡導(dǎo)下,以SGI的GL三維圖形庫為基礎(chǔ)制定的一個(gè)通用共享的開放式三維圖形標(biāo)準(zhǔn)。OpenGL是一個(gè)開放的三維圖形軟件包,它獨(dú)立于窗口系統(tǒng)和操作系統(tǒng),以它為基礎(chǔ)開發(fā)的應(yīng)用程序可以十分方便地在各種平臺(tái)間移植;OpenGL可以與Visual C++緊密接口,便于實(shí)現(xiàn)圖形算法,能保證算法的正確性和可靠性。 OpenGL具有七大功能[14]: (1)建模 OpenGL圖形庫除了提供基本的點(diǎn)、線、多邊形的繪制函數(shù)外,還提供了復(fù)雜的三維物體(球、錐、多面體、茶壺等)以及復(fù)雜曲線和曲面(例如Bezier、Nurbs等曲線或曲面)繪制函數(shù)。 (2)變換 OpenGL圖形庫的變換包括基本變換和投影變換。基本變換有平移、旋轉(zhuǎn)、變比、鏡像四種變換,投影變換有平行投影(又稱正射投影)和透視投影兩種變換。其變換方法與機(jī)器人運(yùn)動(dòng)學(xué)中的坐標(biāo)變換方法完全一致,有利于減少算法的運(yùn)行時(shí)間,提高三維圖形的顯示速度。 (3)顏色模式設(shè)置 OpenGL顏色模式有兩種,即RGBA模式和顏色索引。 (4)光照和材質(zhì)設(shè)置 OpenGL光有輻射光、環(huán)境光、漫反射光和鏡面光,材質(zhì)是用光反射率來表示的。場景中物體最終反映到人眼的顏色是光的紅綠藍(lán)分量與材質(zhì)紅綠藍(lán)分量的反射率相乘后形成的顏色。 (5)紋理映射 利用OpenGL紋理映射功能可以十分逼真地表達(dá)物體表面細(xì)節(jié)。 (6)位圖顯示和圖象增強(qiáng) 圖像功能除了基本的拷貝和像素讀寫外,還提供融合、反走樣和霧的特殊圖像效果處理。以上三條可使被仿真物更具真實(shí)感,增強(qiáng)圖形顯示的效果。 (7)雙緩存動(dòng)畫 雙緩存即前臺(tái)緩存和后臺(tái)緩存,簡而言之,后臺(tái)緩存計(jì)算場景、生成畫面,前臺(tái)緩存顯示后臺(tái)緩存已畫好的畫面。此外,利用OpenGL還能實(shí)現(xiàn)深度暗示、運(yùn)動(dòng)模糊等特殊效果。 MFC模式下OpenGL編程關(guān)鍵技術(shù) OpenGL的繪圖方式與Windows的一般繪圖方式是不同的,它用繪制描述表(RC)繪圖,而且要使用特殊的象素格式,因此運(yùn)用VC++的MFC模式進(jìn)行OpenGL編程需要通過特定的方式實(shí)現(xiàn)[15]: (1)設(shè)置窗口屬性和風(fēng)格 在窗口PreCreateWindows()函數(shù)中添加: |=WS_CLIPCHILDREN | WS_CLIPSIBLINGS。 OpenGL只對(duì)此種類型的窗口有效。 (2)設(shè)置象素格式 PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), // pfd結(jié)構(gòu)的大小 1, // 版本號(hào) PFD_DRAW_TO_WINDOW | // 支持在窗口中繪圖 PFD_SUPPORT_OPENGL | // 支持 OpenGL PFD_DOUBLEBUFFER, // 雙緩存模式 PFD_TYPE_RGBA, // RGBA 顏色模式 24, // 24 位顏色深度 0, 0, 0, 0, 0, 0, // 忽略顏色位 0, // 沒有非透明度緩存 0, // 忽略移位位 0, // 無累加緩存 0, 0, 0, 0, // 忽略累加位 32, // 32 位深度緩存 0, // 無模板緩存 0, // 無輔助緩存 PFD_MAIN_PLANE, // 主層 0, // 保留 0, 0, 0 // 忽略層,可見性和損毀掩模 }。 int pixelformat。 pixelformat = ::ChoosePixelFormat(m_pDCGetSafeHdc(), amp。pfd)。//選擇像素格式 ::SetPixelFormat(m_pDCGetSafeHdc(), pixelformat, amp。pfd)。 //設(shè)置像素格式 (3)將獲得的設(shè)備描述表DC與OpenGL繪制描述表RC聯(lián)系起來 通過以下函數(shù)完成操作: wglCreateContent(); wglMakeCurrent(); (4)改造OnSize函數(shù) 當(dāng)視圖尺寸變化時(shí),應(yīng)及時(shí)將新的客戶區(qū)尺寸通知OpenGL,才能正確在窗口客戶區(qū)顯示場景,通過glViewPort()完成這些工作。 (5)OpenGL進(jìn)行圖形繪制 (6)退出時(shí)釋放RC和DC: 通過以下函數(shù)完成 wglMakeCurrent()。 ReleaseDC()。 另外,在進(jìn)行軟件開發(fā)時(shí)還必須將OpenGL庫添加到工程中,并添加頭文件說明。 系統(tǒng)幫助的開發(fā) 常見的軟件幫助系統(tǒng)有兩種:WinHelp和HTML Help[16]。 在Windows98以前,Microsoft公司提供了創(chuàng)建幫助系統(tǒng)的工具Help Workshop,即Winhelp。 在Windows98以后,Windows應(yīng)用程序的幫助系統(tǒng)已經(jīng)從Winhelp轉(zhuǎn)向基于HTML網(wǎng)頁的HTML Help。同時(shí)Microsoft公司提供了創(chuàng)建HTML Help的軟件工具HTML Help Workshop。HTML Help基于HTML網(wǎng)頁技術(shù),使用Microsoft Internet Explorer部件顯示幫助內(nèi)容,支持HTML,ActiveX,Java程序和HTML格式圖像,功能非常強(qiáng)大。 本系統(tǒng)的幫助系統(tǒng)采用基于HTML網(wǎng)頁的HTML Help,其開發(fā)步驟如下: (1) 使用FrontPage工具制作主題網(wǎng)頁。 (2) 使用HTML Help Workshop創(chuàng)建工程文件。 (3) 創(chuàng)建目錄文件,可以為幫助系統(tǒng)創(chuàng)建目錄列表。 (4) 創(chuàng)建索引文件。 (5) 編譯幫助工程。 (6) 調(diào)用幫助文件: if(!HtmlHelp(GetSafeHwnd(), , HH_DISPLAY_TOC, NULL)) MessageBox(找不到幫助文件!)。 幫助系統(tǒng)的開發(fā),為用戶熟悉和學(xué)習(xí)本系統(tǒng)的使用提供了方便。 本章小結(jié) 本章介紹系統(tǒng)的總體結(jié)構(gòu)。首先分析和設(shè)計(jì)了系統(tǒng)的總體結(jié)構(gòu),并給出了利用面向?qū)ο缶幊谭椒ㄟM(jìn)行開發(fā)的主要類結(jié)構(gòu),然后介紹系統(tǒng)的界面,最后對(duì)系統(tǒng)開發(fā)中用到的主要開發(fā)工具進(jìn)行了介紹。第3章 數(shù)控代碼分析 對(duì)于虛擬數(shù)控加工系統(tǒng)來說,數(shù)控程序的編制關(guān)系到能否是得到正確的仿真結(jié)果。因此必須在仿真加工之前對(duì)數(shù)控程序進(jìn)行分析,檢查出程序中的錯(cuò)誤,并及時(shí)提示用戶進(jìn)行修改,而后翻譯數(shù)控代碼,驅(qū)動(dòng)仿真加工的實(shí)現(xiàn)。本章借鑒一般計(jì)算機(jī)語言編譯技術(shù)實(shí)現(xiàn)數(shù)控代碼翻譯器功能。 數(shù)控語言結(jié)構(gòu)及其特點(diǎn) 數(shù)控機(jī)床每完成一個(gè)工件的加工,需要執(zhí)行一個(gè)完整的程序,每個(gè)程序由程序開始部分和許多程序段組成。程序段格式是程序段書寫的規(guī)則,分固定程序段格式和可變程序段格式,可變程序段格式又可分為使用地址符的可變程序段格式和使用分隔符的可變程序段格式。我國標(biāo)準(zhǔn)為JB383285,用可變程序段格式,零件程序段是由序號(hào)、若干字和結(jié)束符號(hào)組成,每個(gè)字又由字母和數(shù)字組成。 下面是一個(gè)程序段的例子: N3 G00 X10 Z10 M3 S650 ; 程序段結(jié)束符 輔助功能代碼坐標(biāo)軸移動(dòng)字 準(zhǔn)備功能代碼 程序段序列號(hào) 一段數(shù)控程序要包括如下三部分[17
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1