① 數控技術
1數控編程及其發展
數控編程是目前CAD/CAPP/CAM系統中最能明顯發揮效益的環節之一,其在實現設計加工自動化、提高加工精度和加工質量、縮短產品研製周期等方面發揮著重要作用。在諸如航空工業、汽車工業等領域有著大量的應用。由於生產實際的強烈需求,國內外都對數控編程技術進行了廣泛的研究,並取得了豐碩成果。下面就對數控編程及其發展作一些介紹。
1.1數控編程的基本概念
數控編程是從零件圖紙到獲得數控加工程序的全過程。它的主要任務是計算加工走刀中的刀位點(cutterlocationpoint簡稱CL點)。刀位點一般取為刀具軸線與刀具表面的交點,多軸加工中還要給出刀軸矢量。
1.2數控編程技術的發展概況
為了解決數控加工中的程序編制問題,50年代,MIT設計了一種專門用於機械零件數控加工程序編制的語言,稱為APT(AutomaticallyProgrammedTool)。其後,APT幾經發展,形成了諸如APTII、APTIII(立體切削用)、APT(演算法改進,增加多坐標曲面加工編程功能)、APTAC(Advancedcontouring)(增加切削資料庫管理系統)和APT/SS(SculpturedSurface)(增加雕塑曲面加工編程功能)等先進版。
採用APT語言編制數控程序具有程序簡煉,走刀控制靈活等優點,使數控加工編程從面向機床指令的「匯編語言」級,上升到面向幾何元素.APT仍有許多不便之處:採用語言定義零件幾何形狀,難以描述復雜的幾何形狀,缺乏幾何直觀性;缺少對零件形狀、刀具運動軌跡的直觀圖形顯示和刀具軌跡的驗證手段;難以和CAD資料庫和CAPP系統有效連接;不容易作到高度的自動化,集成化。
針對APT語言的缺點,1978年,法國達索飛機公司開始開發集三維設計、分析、NC加工一體化的系統,稱為為CATIA。隨後很快出現了象EUCLID,UGII,INTERGRAPH,Pro/Engineering,MasterCAM及NPU/GNCP等系統,這些系統都有效的解決了幾何造型、零件幾何形狀的顯示,交互設計、修改及刀具軌跡生成,走刀過程的模擬顯示、驗證等問題,推動了CAD和CAM向一體化方向發展。到了80年代,在CAD/CAM一體化概念的基礎上,逐步形成了計算機集成製造系統(CIMS)及並行工程(CE)的概念。目前,為了適應CIMS及CE發展的需要,數控編程系統正向集成化和智能化夫發展。
在集成化方面,以開發符合STEP()標準的參數化特徵造型系統為主,目前已進行了大量卓有成效的工作,是國內外開發的熱點;在智能化方面,工作剛剛開始,還有待我們去努力。
2 NC刀具軌跡生成方法研究發展現狀
數控編程的核心工作是生成刀具軌跡,然後將其離散成刀位點,經後置處理產生數控加工程序。下面就刀具軌跡產生方法作一些介紹。
2.1基於點、線、面和體的NC刀軌生成方法
CAD技術從二維繪圖起步,經歷了三維線框、曲面和實體造型發展階段,一直到現在的參數化特徵造型。在二維繪圖與三維線框階段,數控加工主要以點、線為驅動對象,如孔加工,輪廓加工,平面區域加工等。這種加工要求操作人員的水平較高,交互復雜。在曲面和實體造型發展階段,出現了基於實體的加工。實體加工的加工對象是一個實體(一般為CSG和BREP混合表示的),它由一些基本體素經集合運算(並、交、差運算)而得。實體加工不僅可用於零件的粗加工和半精加工,大面積切削掉餘量,提高加工效率,而且可用於基於特徵的數控編程系統的研究與開發,是特徵加工的基礎。
實體加工一般有實體輪廓加工和實體區域加工兩種。實體加工的實現方法為層切法(SLICE),即用一組水平面去切被加工實體,然後對得到的交線產生等距線作為走刀軌跡。本文從系統需要角度出發,在ACIS幾何造型平台上實現了這種基於點、線、面和實體的數控加工。
2.2基於特徵的NC刀軌生成方法
參數化特徵造型已有了一定的發展時期,但基於特徵的刀具軌跡生成方法的研究才剛剛開始。特徵加工使數控編程人員不在對那些低層次的幾何信息(如:點、線、面、實體)進行操作,而轉變為直接對符合工程技術人員習慣的特徵進行數控編程,大大提高了編程效率。
W.R.Mail和A.J.Mcleod在他們的研究中給出了一個基於特徵的NC代碼生成子系統,這個系統的工作原理是:零件的每個加工過程都可以看成對組成該零件的形狀特徵組進行加工的總和。那麼對整個形狀特徵或形狀特徵組分別加工後即完成了零件的加工。而每一形狀特徵或形狀特徵組的NC代碼可自動生成。目前開發的系統只適用於2.5D零件的加工。
LeeandChang開發了一種用虛擬邊界的方法自動產生凸自由曲面特徵刀具軌跡的系統。這個系統的工作原理是:在凸自由曲面內嵌入一個最小的長方塊,這樣凸自由曲面特徵就被轉換成一個凹特徵。最小的長方塊與最終產品模型的合並就構成了被稱為虛擬模型的一種間接產品模型。刀具軌跡的生成方法分成三步完成:(1)、切削多面體特徵;(2)、切削自由曲面特徵;(3)、切削相交特徵。
JongYunJung研究了基於特徵的非切削刀具軌跡生成問題。文章把基於特徵的加工軌跡分成輪廓加工和內區域加工兩類,並定義了這兩類加工的切削方向,通過減少切削刀具軌跡達到整體優化刀具軌跡的目的。文章主要針對幾種基本特徵(孔、內凹、台階、槽),討論了這些基本特徵的典型走刀路徑、刀具選擇和加工順序等,並通過IP(InterProgramming)技術避免重復走刀,以優化非切削刀具軌跡。另外,JongYunJong還在他1991年的博士論文中研究了製造特徵提取和基於特徵的刀具及刀具路徑。
特徵加工的基礎是實體加工,當然也可認為是更高級的實體加工。但特徵加工不同於實體加工,實體加工有它自身的局限性。特徵加工與實體加工主要有以下幾點不同:
從概念上講,特徵是組成零件的功能要素,符合工程技術人員的操作習慣,為工程技術人員所熟知;實體是低層的幾何對象,是經過一系列布爾運算而得到的一個幾何體,不帶有任何功能語義信息;實體加工往往是對整個零件(實體)的一次性加工。但實際上一個零件不太可能僅用一把刀一次加工完,往往要經過粗加工、半精加工、精加工等一系列工步,零件不同的部位一般要用不同的刀具進行加工;有時一個零件既要用到車削,也要用到銑削。因此實體加工主要用於零件的粗加工及半精加工。而特徵加工則從本質上解決了上述問題;特徵加工具有更多的智能。對於特定的特徵可規定某幾種固定的加工方法,特別是那些已在STEP標准規定的特徵更是如此。如果我們對所有的標准特徵都制定了特定的加工方法,那麼對那些由標准特徵夠成的零件的加工其方便性就可想而知了。倘若CAPP系統能提供相應的工藝特徵,那麼NCP系統就可以大大減少交互輸入,具有更多的智能。而這些實體加工是無法實現的;
特徵加工有利於實現從CAD、CAPP、NCP及CNC系統的全面集成,實現信息的雙向流動,為CIMS乃至並行工程(CE)奠定良好的基礎;而實體加工對這些是無能為力的。
2.3現役幾個主要CAD/CAM系統中的NC刀軌生成方法分析
現役CAM的構成及主要功能
目前比較成熟的CAM系統主要以兩種形式實現CAD/CAM系統集成:一體化的CAD/CAM系統(如:UGII、Euclid、Pro/ENGINEER等)和相對獨立的CAM系統(如:Mastercam、Surfcam等)。前者以內部統一的數據格式直接從CAD系統獲取產品幾何模型,而後者主要通過中性文件從其它CAD系統獲取產品幾何模型。然而,無論是哪種形式的CAM系統,都由五個模塊組成,即交互工藝參數輸入模塊、刀具軌跡生成模塊、刀具軌跡編輯模塊、三維加工動態模擬模塊和後置處理模塊。下面僅就一些著名的CAD/CAM系統的NC加工方法進行討論。
UGII加工方法分析
一般認為UGII是業界中最好,最具代表性的數控軟體。其最具特點的是其功能強大的刀具軌跡生成方法。包括車削、銑削、線切割等完善的加工方法。其中銑削主要有以下功能:
、PointtoPoint:完成各種孔加工;
、PanarMill:平面銑削。包括單向行切,雙向行切,環切以及輪廓加工等;
、FixedContour:固定多軸投影加工。用投影方法控制刀具在單張曲面上或多張曲面上的移動,控制刀具移動的可以是已生成的刀具軌跡,一系列點或一組曲線;
、VariableContour:可變軸投影加工;
、Parameterline:等參數線加工。可對單張曲面或多張曲面連續加工;
、ZigZagSurface:裁剪面加工;
、RoughtoDepth:粗加工。將毛坯粗加工到指定深度;
、CavityMill:多級深度型腔加工。特別適用於凸模和凹模的粗加工;
、SequentialSurface:曲面交加工。按照零件面、導動面和檢查面的思路對刀具的移動提供最大程度的控制。
EDSUnigraphics還包括大量的其它方面的功能,這里就不一一列舉了。
STRATA加工方法分析
STRATA是一個數控編程系統開發環境,它是建立在ACIS幾何建模平台上的。
它為用戶提供兩種編程開發環境,即NC命令語言介面和NC操作C++類庫。它可支持三軸銑削,車削和線切割NC加工,並可支持線框、曲面和實體幾何建模。其NC刀具軌跡生成方法是基於實體模型。STRATA基於實體的NC刀具軌跡生成類庫提供的加工方法包括:
ProfileToolpath:輪廓加工;
AreaClearToolpath:平面區域加工;
SolidProfileToolpath:實體輪廓加工;
SolidAreaClearToolpath:實體平面區域加工;
SolidFaceToolPath:實體表面加工;
SolidSliceToolPath:實體截平面加工;
LanguagebasedToolpath:基於語言的刀具軌跡生成。
其它的CAD/CAM軟體,如Euclid,Cimitron,CV,CATIA等的NC功能各有千秋,但其基本內容大同小異,沒有本質區別。
2.4現役CAM系統刀軌生成方法的主要問題
按照傳統的CAD/CAM系統和CNC系統的工作方式,CAM系統以直接或間接(通過中性文件)的方式從CAD系統獲取產品的幾何數據模型。CAM系統以三維幾何模型中的點、線、面、或實體為驅動對象,生成加工刀具軌跡,並以刀具定位文件的形式經後置處理,以NC代碼的形式提供給CNC機床,在整個CAD/CAM及CNC系統的運行過程中存在以下幾方面的問題:
CAM系統只能從CAD系統獲取產品的低層幾何信息,無法自動捕捉產品的幾何形狀信息和產品高層的功能和語義信息。因此,整個CAM過程必須在經驗豐富的製造工程師的參與下,通過圖形交互來完成。如:製造工程師必須選擇加工對象(點、線、面或實體)、約束條件(裝夾、干涉和碰撞等)、刀具、加工參數(切削方向、切深、進給量、進給速度等)。整個系統的自動化程度較低。
在CAM系統生成的刀具軌跡中,同樣也只包含低層的幾何信息(直線和圓弧的幾何定位信息),以及少量的過程式控制制信息(如進給率、主軸轉速、換刀等)。因此,下游的CNC系統既無法獲取更高層的設計要求(如公差、表面光潔度等),也無法得到與生成刀具軌跡有關的加工工藝參數。
CAM系統各個模塊之間的產品數據不統一,各模塊相對獨立。例如刀具定位文件只記錄刀具軌跡而不記錄相應的加工工藝參數,三維動態模擬只記錄刀具軌跡的干涉與碰撞,而不記錄與其發生干涉和碰撞的加工對象及相關的加工工藝參數。
CAM系統是一個獨立的系統。CAD系統與CAM系統之間沒有統一的產品數據模型,即使是在一體化的集成CAD/CAM系統中,信息的共享也只是單向的和單一的。CAM系統不能充分理解和利用CAD系統有關產品的全部信息,尤其是與加工有關的特徵信息,同樣CAD系統也無法獲取CAM系統產生的加工數據信息。這就給並行工程的實施帶來了困難 。
3數控模擬技術
3.1計算機模擬的概念及應用
從工程的角度來看,模擬就是通過對系統模型的實驗去研究一個已有的或設計中的系統。分析復雜的動態對象,模擬是一種有效的方法,可以減少風險,縮短設計和製造的周期,並節約投資。計算機模擬就是藉助計算機,利用系統模型對實際系統進行實驗研究的過程。它隨著計算機技術的發展而迅速地發展,在模擬中佔有越來越重要的地位。計算機模擬的過程可通過圖1所示的要素間的三個基本活動來描述:
建模活動是通過對實際系統的觀測或檢測,在忽略次要因素及不可檢測變數的基礎上,用物理或數學的方法進行描述,從而獲得實際系統的簡化近似模型。這里的模型同實際系統的功能與參數之間應具有相似性和對應性。
模擬模型是對系統的數學模型(簡化模型)進行一定的演算法處理,使其成為合適的形式(如將數值積分變為迭代運算模型)之後,成為能被計算機接受的「可計算模型」。模擬模型對實際系統來講是一個二次簡化的模型。
模擬實驗是指將系統的模擬模型在計算機上運行的過程。模擬是通過實驗來研究實際系統的一種技術,通過模擬技術可以弄清系統內在結構變數和環境條件的影響。
計算機模擬技術的發展趨勢主要表現在兩個方面:應用領域的擴大和模擬計算機的智能化。計算機模擬技術不僅在傳統的工程技術領域(航空、航天、化工等方面)繼續發展,而且擴大到社會經濟、生物等許多非工程領域,此外,並行處理、人工智慧、知識庫和專家系統等技術的發展正影響著模擬計算機的發展。
數控加工模擬利用計算機來模擬實際的加工過程,是驗證數控加工程序的可靠性和預測切削過程的有力工具,以減少工件的試切,提高生產效率。
3.2數控模擬技術的研究現狀
數控機床加工零件是靠數控指令程序控制完成的。為確保數控程序的正確性,防止加工過程中干涉和碰撞的發生,在實際生產中,常採用試切的方法進行檢驗。但這種方法費工費料,代價昂貴,使生產成本上升,增加了產品加工時間和生產周期。後來又採用軌跡顯示法,即以劃針或筆代替刀具,以著色板或紙代替工件來模擬刀具運動軌跡的二維圖形(也可以顯示二維半的加工軌跡),有相當大的局限性。對於工件的三維和多維加工,也有用易切削的材料代替工件(如,石蠟、木料、改性樹脂和塑料等)來檢驗加工的切削軌跡。但是,試切要佔用數控機床和加工現場。為此,人們一直在研究能逐步代替試切的計算機模擬方法,並在試切環境的模型化、模擬計算和圖形顯示等方面取得了重要的進展,目前正向提高模型的精確度、模擬計算實時化和改善圖形顯示的真實感等方向發展。
從試切環境的模型特點來看,目前NC切削過程模擬分幾何模擬和力學模擬兩個方面。幾何模擬不考慮切削參數、切削力及其它物理因素的影響,只模擬刀具工件幾何體的運動,以驗證NC程序的正確性。它可以減少或消除因程序錯誤而導致的機床損傷、夾具破壞或刀具折斷、零件報廢等問題;同時可以減少從產品設計到製造的時間,降低生產成本。切削過程的力學模擬屬於物理模擬范疇,它通過模擬切削過程的動態力學特性來預測刀具破損、刀具振動、控制切削參數,從而達到優化切削過程的目的。
幾何模擬技術的發展是隨著幾何建模技術的發展而發展的,包括定性圖形顯示和定量干涉驗證兩方面。目前常用的方法有直接實體造型法,基於圖像空間的方法和離散矢量求交法。
3.3直接實體造型法
這種方法是指工件體與刀具運動所形成的包絡體進行實體布爾差運算,工件體的三維模型隨著切削過程被不斷更新。
Sungurtekin和Velcker開發了一個銑床的模擬系統。該系統採用CSG法來記錄毛坯的三維模型,利用一些基本圖元如長方體、圓柱體、圓錐體等,和集合運算,特別是並運算,將毛坯和一系列刀具掃描過的區域記錄下來,然後應用集合差運算從毛坯中順序除去掃描過的區域。所謂被掃過的區域是指切削刀具沿某一軌跡運動時所走過的區域。在掃描了每段NC代碼後顯示變化了的毛坯形狀。
Kawashima等的接合樹法將毛坯和切削區域用接合樹(graftree)表示,即除了空和滿兩種結點,邊界結點也作為八叉樹(octtree)的葉結點。邊界結點包含半空間,結點物體利用在這些半空間上的CSG操作來表示。接合樹細分的層次由邊界結點允許的半空間個數決定。逐步的切削模擬利用毛坯和切削區域的差運算來實現。毛坯的顯示採用了深度緩沖區演算法,將毛坯劃分為多邊形實現毛坯的可視化。
用基於實體造型的方法實現連續更新的毛坯的實時可視化,耗時太長,於是一些基於觀察的方法被提出來。
3.4基於圖像空間的方法
這種方法用圖像空間的消隱演算法來實現實體布爾運算。VanHook採用圖象空間離散法實現了加工過程的動態圖形模擬。他使用類似圖形消隱的zbuffer思想,沿視線方向將毛坯和刀具離散,在每個屏幕象素上毛坯和刀具表示為沿z軸的一個長方體,稱為Dexel結構。刀具切削毛坯的過程簡化為沿視線方向上的一維布爾運算,見圖3,切削過程就變成兩者Dexel結構的比較:
CASE1:只有毛坯,顯示毛坯,break;
CASE2:毛坯完全在刀具之後,顯示刀具,break;
CASE3:刀具切削毛坯前部,更新毛坯的dexel結構,顯示刀具,break;
CASE4:刀具切削毛坯內部,刪除毛坯的dexel結構,顯示刀具,break;
CASE5:刀具切削毛坯內部,創建新的毛坯dexel結構,顯示毛坯,break;
CASE6:刀具切削毛坯後部,更新毛坯的dexel結構,顯示毛坯,break;
CASE7:刀具完全在毛坯之後,顯示毛坯,break;
CASE8:只有刀具,顯示刀具,break。
這種方法將實體布爾運算和圖形顯示過程合為一體,使模擬圖形顯示有很好的實時性。
Hsu和Yang提出了一種有效的三軸銑削的實時模擬方法。他們使用zmap作為基本數據結構,記錄一個二維網格的每個方塊處的毛坯高度,即z向值。這種數據結構只適用於刀軸z向的三軸銑削模擬。對每個銑削操作通過改變刀具運動每一點的深度值,很容易更新zmap值,並更新工件的圖形顯示。
3.5離散矢量求交法
由於現有的實體造型技術未涉及公差和曲面的偏置表示,而像素空間布爾運算並不精確,使模擬驗證有很大的局限性。為此Chappel提出了一種基於曲面技術的「點矢量」(pointvector)法。這種方法將曲面按一定精度離散,用這些離散點來表示該曲面。以每個離散點的法矢為該點的矢量方向,延長與工件的外表面相交。通過模擬刀具的切削過程,計算各個離散點沿法矢到刀具的距離s。
設sg和sm分別為曲面加工的內、外偏差,如果sg< S < SM說明加工處在誤差范圍內,S < SG則過切,S>sm則漏切。該方法分為被切削曲面的離散(discretization)、檢測點的定位(location)和離散點矢量與工件實體的求交(intersection)三個過程。採用圖像映射的方法顯示加工誤差圖形;零件表面的加工誤差可以精確地描寫出來。
總體來說,基於實體造型的方法中幾何模型的表達與實際加工過程相一致,使得模擬的最終結果與設計產品間的精確比較成為可能;但實體造型的技術要求高,計算量大,在目前的計算機實用環境下較難應用於實時檢測和動態模擬。基於圖像空間的方法速度快得多,能夠實現實時模擬,但由於原始數據都已轉化為像素值,不易進行精確的檢測。離散矢量求交法基於零件的表面處理,能精確描述零件面的加工誤差,主要用於曲面加工的誤差檢測。
② 游戲場景管理的八叉樹演算法是怎樣的
八叉樹(octree)是三維空間劃分的數據結構之一,它用於加速空間查詢,例如在游戲中: 加速用於可見性判斷的視錐裁剪(view frustum culling)。加速射線投射(ray casting),如用作視線判斷或槍擊判定。 鄰近查詢(proximity query),如查詢玩家角色某半徑范圍內的敵方NPC。碰撞檢測的粗略階段(broad phase),找出潛在可能碰撞的物體對。總括而言,前3個應用都是加速一些形狀(frustum、ray、proximity shape如球體)的相交測試(intersection test)。這種做法是adaptive的,就是說按照一定的條件(葉節點只能有一個點)來進行分割。實際上,我們可以設置其他條件去決定是否分割一個葉節點,例如節點內的點超過10個,或是最多分割4層就不再分割等等。在分割時,我們只需檢查點是在每個軸的哪一方,就能知道該點應放置在哪個新的節點里。建立了一個四/八叉樹之後,我們可以得出一個重要特性: 如果一個形狀S與節點A的空間(正方形/立方體)不相交,那麼S與A子樹下的所有點都不相交。那麼,在相交測試中,我們可以從根節點開始,遍歷四/八叉樹的節點,如節點相交就繼續遍歷,如不相交就放棄遍歷該子樹,最後在葉節點進行形狀與點的相交測試。這樣做,一般能剔除許多點,但注意最壞的情況是所有點集中在一起,那麼就不起加速作用。因此,除了傳統的四/八叉樹實現,也可以參考一些更新的技術。
③ 游戲開發需要具備哪些技術
游戲開發需要具備HTML、CSS、Javascprict等等技術,用於游戲地圖、配合游戲主題等等。AJAX用於聊天、完成任務等等;動態腳本語言例如ASP、PHP、JSP、.net asp、perl等等,都是開發網頁游戲的主要構成,因為很多模塊都需要來處理,比如說絲路英雄、商業大亨都是利用動態腳本語言來完成的。
AS用於某些flash游戲,比如彈彈堂、開心寶貝都是用這類語言來完成的;SQL語言是用來儲存數據的,比如說金幣系統、經驗系統都是利用SQL來完成的。
還有的網頁游戲結合了AS語言和動態腳本語言,比如說烽火戰國。所以說需要開發、學習很長時間才能研究成功,建議去跟別人合作,速度會提高。
(3)四叉樹碰撞檢測演算法邊界擴展閱讀
1、開發語言工具:JAVA、PHP、Python、C++;
2、一般情況下是:PHP/JAVA/Python 處理游戲的業務邏輯和數據,使用C++寫格鬥系統、網路通信層等;
3、部分公司採用LUA語言編寫游戲的業務邏輯,而其他上述提到的開發語言處理業務數據的操作;
4、數據存取:後台資料庫多數採用MySQL,也有公司採用MC或Redis +MySQL的模式,還有部分公司直接使用Tokyo Cabinet (TTServer)。