隨著航空制造技術(shù)的不斷發(fā)展,國(guó)際航空市場(chǎng)的競(jìng)爭(zhēng)將日趨激烈。當(dāng)今,產(chǎn)品質(zhì)量已從競(jìng)爭(zhēng)的“獲勝標(biāo)準(zhǔn)”演變?yōu)楦?jìng)爭(zhēng)的“資格標(biāo)準(zhǔn)”,而且,飛機(jī)具有高安全、高可靠性的要求,因此,航空產(chǎn)品的質(zhì)量異常重要。三坐標(biāo)測(cè)量機(jī)作為現(xiàn)代化先進(jìn)檢測(cè)設(shè)備之一,被廣泛地應(yīng)用到飛機(jī)零部件及其工裝的檢測(cè)中。需要使用CMM檢測(cè)的零部件數(shù)量正在急劇增加,以上海飛機(jī)制造有限公司的工裝零部件的檢測(cè)為例,2010~2012年期間用CMM檢測(cè)的零部件數(shù)量多達(dá)2000多件(不包括飛機(jī)本體件的測(cè)量數(shù)量)。
每件產(chǎn)品的測(cè)量都需要編制坐標(biāo)測(cè)量機(jī)測(cè)量計(jì)劃,其中包括產(chǎn)品被測(cè)點(diǎn)的坐標(biāo)值及方向矢量值的提取工作。當(dāng)被測(cè)點(diǎn)數(shù)量眾多的時(shí)候,數(shù)值的提取將花費(fèi)很多時(shí)間,通常提取100點(diǎn)的數(shù)值需要1h左右。數(shù)值提取工作在CATIA操作平臺(tái)中進(jìn)行,提取過(guò)程是一系列的反復(fù)重復(fù)操作,而CATIA為用戶提供了Visual Basic、VC++二次開發(fā)接口(Automation API),其中VC++就包含2種方法,這使點(diǎn)數(shù)值的自動(dòng)提取成為可能。點(diǎn)數(shù)值自動(dòng)提取可以提高工作效率,在生產(chǎn)任務(wù)緊迫的情況下其效果尤為顯著,可以縮短零部件的交付周期。
本文對(duì)點(diǎn)數(shù)據(jù)的提取過(guò)程及CATIA的相關(guān)操作命令進(jìn)行了細(xì)致的分析,整理出了數(shù)據(jù)自動(dòng)提取的構(gòu)思。文中對(duì)CATIA提供的關(guān)于點(diǎn)數(shù)據(jù)提取的二次開發(fā)接口函數(shù)的功能進(jìn)行了探索,找出了數(shù)據(jù)提取的最佳函數(shù)及途徑,最終,通過(guò)VB完成了數(shù)據(jù)提取程序的編制。
數(shù)據(jù)提取的第一個(gè)關(guān)鍵點(diǎn):獲取被提取數(shù)據(jù)點(diǎn)的關(guān)聯(lián)面、關(guān)聯(lián)線/軸線。手動(dòng)采集方向矢量時(shí),可以目視并選取被測(cè)點(diǎn)的關(guān)聯(lián)元素(線、面),但計(jì)算機(jī)如何判斷被測(cè)點(diǎn)的關(guān)聯(lián)元素呢?文中分析了獲得面點(diǎn)的方向矢量關(guān)聯(lián)面的方法及獲取孔點(diǎn)的方向矢量關(guān)聯(lián)線/軸線的方法,從而為點(diǎn)數(shù)據(jù)的自動(dòng)提取奠定了基礎(chǔ)。
數(shù)據(jù)提取的第二個(gè)關(guān)鍵點(diǎn):自動(dòng)尋找、判斷點(diǎn)的測(cè)量矢量方向(即三坐標(biāo)測(cè)量機(jī)的測(cè)量方向)。點(diǎn)沿直線可以有相反的2個(gè)矢量方向,文中提出了判斷正確矢量方向的方法。
本文還敘述了數(shù)據(jù)提取過(guò)程中輔助設(shè)置被測(cè)點(diǎn)的方法以實(shí)現(xiàn)被測(cè)點(diǎn)的快速、準(zhǔn)確、方便的設(shè)置,也對(duì)通過(guò)VB語(yǔ)言實(shí)現(xiàn)坐標(biāo)轉(zhuǎn)換的方法進(jìn)行了說(shuō)明,這些方法都來(lái)自于工作實(shí)踐中的摸索與思考。
CMM檢測(cè)點(diǎn)數(shù)據(jù)常規(guī)獲取方法介紹
點(diǎn)數(shù)據(jù)常規(guī)獲取方法(需要CATIA具有高級(jí)機(jī)械加工模塊)流程如圖1所示。
圖1 常規(guī)點(diǎn)數(shù)據(jù)獲取方法流程圖
1.設(shè)置被測(cè)點(diǎn)
使用CATIA的“點(diǎn)”命令,選取孔、曲面、平面、軸線等,在數(shù)模上建立需要測(cè)量的點(diǎn)。重復(fù)上述操作,完成所有點(diǎn)的設(shè)置。
2.打孔點(diǎn)
(1)切換到CATIA的高級(jí)機(jī)械平臺(tái),雙擊CATIA結(jié)構(gòu)樹上的“Part Operation”以彈出窗口。點(diǎn)擊彈窗按鈕“Machine”,然后點(diǎn)擊按鈕“5-axis Machine”,點(diǎn)“確定”。點(diǎn)擊按鈕“Reference Machining Axis System”,并確定原點(diǎn)及X、Y、Z軸的方向(點(diǎn)彈窗中的原點(diǎn)/軸,再在數(shù)模中選擇元素作為原點(diǎn)/軸),點(diǎn)“確定”關(guān)閉彈窗。
(2)點(diǎn)CATIA的工具條按鈕“Spot Drilling”,點(diǎn)數(shù)模,彈出點(diǎn)鉆窗口。點(diǎn)彈窗圖形上的“Click to Select a Part Surface”,然后在數(shù)模上選取確定方向矢量的支撐面,點(diǎn)按鈕“OK”返回(或鼠標(biāo)雙擊數(shù)?臻g空白處返回)。點(diǎn)彈窗圖形上的“Click to Add Position”,并在數(shù)模中選取上述中設(shè)置的點(diǎn),雙擊數(shù)?臻g空白處返回。右鍵點(diǎn)擊“Fixed Axis”,在彈出菜單中點(diǎn)選“Normal To PS Axis”,以使方向矢量垂直于支撐面。點(diǎn)擊彈窗圖形上的方向箭頭“Click to Invert the Tool Axis”,并觀察數(shù)模窗口中的矢量方向指示箭頭,確保矢量方向指向產(chǎn)品內(nèi)部。在彈窗中切換第1個(gè)復(fù)合窗口,然后取消選擇框“Output CYCLE syntax”中的勾選,并將“ApprOAch clearance”設(shè)置為0。
(3)重復(fù)步驟(2),逐個(gè)完成所有點(diǎn)的方向矢量的設(shè)置。
3.數(shù)據(jù)輸出及選取
點(diǎn)擊CATIA工具條命令“Generate NC Code in Batch Mode”以輸出文本文件,然后用記事本打開輸出的文本文件,并從中挑選出需要的坐標(biāo)、矢量數(shù)據(jù)。
總之,手工采點(diǎn)的整個(gè)過(guò)程有很多重復(fù)、繁瑣的工作,特別是當(dāng)采點(diǎn)數(shù)量多時(shí),工作量很大。
CMM檢測(cè)點(diǎn)數(shù)據(jù)自動(dòng)提取技術(shù)的實(shí)現(xiàn)
1.檢測(cè)點(diǎn)數(shù)據(jù)自動(dòng)提取流程分析
讀取/識(shí)別數(shù)模幾何圖形集上設(shè)置的被測(cè)點(diǎn),分析點(diǎn)并找出其關(guān)聯(lián)元素(支撐元素),根據(jù)屬性判斷關(guān)聯(lián)元素的類型(面、圓、橢圓)。根據(jù)面、圓、橢圓的性質(zhì),分別繪制確定點(diǎn)方向矢量的直線。通過(guò)相關(guān)接口函數(shù)得到原始坐標(biāo)系下點(diǎn)的坐標(biāo)值及方向矢量值,通過(guò)坐標(biāo)轉(zhuǎn)換運(yùn)算,獲得指定坐標(biāo)系下的坐標(biāo)值及方向矢量值。按CMM需求的格式輸出文本。以上過(guò)程由計(jì)算機(jī)自動(dòng)完成。流程見圖2。
圖2 數(shù)據(jù)提取流程圖
2.點(diǎn)數(shù)據(jù)自動(dòng)提取關(guān)鍵功能的實(shí)現(xiàn)
(1)提高設(shè)置被測(cè)點(diǎn)的效率。
通過(guò)Catia.StartCommand(“點(diǎn)”)、 Catia.StartCommand(“軸線... ”)、Catia.StartCommand(“填充”)語(yǔ)句,實(shí)現(xiàn)建立被測(cè)點(diǎn)時(shí),智能打開CATIA的建面點(diǎn)及孔點(diǎn)窗口,輔助被測(cè)點(diǎn)的建立,以快速完成被測(cè)點(diǎn)的設(shè)置。此外,可以增加點(diǎn)距限制功能,在設(shè)置面點(diǎn)時(shí),通過(guò)HybridShapes.Item(i).Offset.Value自動(dòng)限制新設(shè)置點(diǎn)與上一個(gè)設(shè)置點(diǎn)的距離,從而確保設(shè)置的點(diǎn)距滿足相關(guān)規(guī)范的要求。“點(diǎn)”、“軸線...”、“填充”等來(lái)源于CATIA的“自定義”窗口中的“命令”中的“所有命令”,當(dāng)然,在此窗口中自定義的別名也同樣有效。
(2)確定提取程序能識(shí)別的確定被測(cè)點(diǎn)方向矢量的關(guān)聯(lián)元素。
讓程序識(shí)別出被測(cè)點(diǎn)的確定點(diǎn)方向矢量的關(guān)聯(lián)元素是提取技術(shù)的關(guān)鍵之一。CATIA建點(diǎn)有如下特點(diǎn):被建點(diǎn)與數(shù)模零件不屬于同一零件時(shí),建點(diǎn)時(shí)CATIA會(huì)自動(dòng)提取點(diǎn)的關(guān)聯(lián)面、線等到被建點(diǎn)所在的零件中。利用此特性,在數(shù)模產(chǎn)品中新建零件clsj.CATPart(程序自動(dòng)完成),將所有被測(cè)點(diǎn)全部建立在此零件中(即在建點(diǎn)時(shí)激活該零件),如圖3所示,“點(diǎn).1”是手工建立的,“曲面.1”是CATIA自動(dòng)產(chǎn)生的輔助元素。
圖3 建立新零件讓CATIA自動(dòng)建立關(guān)聯(lián)面
(3)使程序在CATIA或DELMIA下都能運(yùn)行。
使用下列語(yǔ)句,實(shí)現(xiàn)程序在CATIA或DELMIA環(huán)境下都能運(yùn)行。其中“If”語(yǔ)句很關(guān)鍵,當(dāng)你沒(méi)打開CATIA,而打開DELMIA時(shí),“If”語(yǔ)句的條件的判斷將為真,此后,將執(zhí)行“Set catia=GetObject(, “DELMIA.Application”)”語(yǔ)句,而使程序與DELMIA建立通信聯(lián)系。
Dim catia As Object
Set catia=GetObject(,“CATIA.Application”)
If catia Is Nothing Or Len(catia.Caption)=0 Then
On Error Resume Next
Set catia=GetObject(,“DELMIA.Application”)
End If
Set GetCATIA=catia
(4)確定方向向量。
首先,要建立確定方向向量的直線,相關(guān)接口的函數(shù)
為AddNewPointOnPlane、AddNewPointOnSurface、AddNew PointOnCurveWithReferenceFrom Distance及AddNewLinePtPt、AddNewLinePtDir等。
其次,進(jìn)行方向向量方向的判斷。通過(guò)方向指引線末端點(diǎn)到數(shù)模實(shí)體的距離判斷方向向量的方向。實(shí)現(xiàn)方式:通過(guò)端點(diǎn)繪制半徑為0.0005mm的球面,然后通過(guò)函數(shù)cat DistanceComputationTypeAgainstAll計(jì)算球到數(shù)模的距離,此距離與指引線長(zhǎng)度進(jìn)行比較后可確定被測(cè)點(diǎn)方向向量的正確方向;此外,也可以利用孔軸線的開始點(diǎn)、中點(diǎn)、結(jié)束點(diǎn)判斷方向,使用接口函數(shù)GetPointsOnCurve可以得到軸線的上述3個(gè)點(diǎn)的坐標(biāo)值,計(jì)算被判斷點(diǎn)到軸線開始點(diǎn)的距離,距離大者為需要的確定方向向量的點(diǎn)。
最后,可以通過(guò)接口函數(shù)GetXVal、GetYVal、GetZVal分別獲取指引線相對(duì)于原始坐標(biāo)系的方向向量的X、Y、Z方向的雙精度分向量值,此方向代表坐標(biāo)測(cè)量機(jī)測(cè)針的運(yùn)行方向,但其坐標(biāo)系是原始坐標(biāo)值。
(5)進(jìn)行坐標(biāo)轉(zhuǎn)換。
使用CATIA的接口函數(shù)“GetPoint”、“GetAxisSystem”及“GetXVal”、“GetYVal”、“GetZVal”可以讓程序自動(dòng)得到點(diǎn)的坐標(biāo)值及方向矢量值。由于使用接口函數(shù)得到的點(diǎn)坐標(biāo)/方向向量值都是相對(duì)于原始坐標(biāo)系的,因此,需要對(duì)坐標(biāo)進(jìn)行轉(zhuǎn)換,將原始坐標(biāo)系坐標(biāo)值轉(zhuǎn)換為指定坐標(biāo)系下的坐標(biāo)值。
坐標(biāo)轉(zhuǎn)換方法:針對(duì)數(shù)模零件“Part1”,設(shè)O軸系統(tǒng)為零件“Part1”的原始坐標(biāo)系,O1軸系統(tǒng)為零件“Part1”的軸系統(tǒng)1,X0、Y0、Z0與X1、Y1、Z1分別為O1軸系統(tǒng)的原點(diǎn)Q1、空間點(diǎn)P在原始坐標(biāo)系下的坐標(biāo)值,目標(biāo)是求點(diǎn)P在軸系統(tǒng)1下的坐標(biāo)值X、Y、Z。
通過(guò)VXx=CATIA.ActiveDocument. Part.Parameters.Item(“Part1\軸系統(tǒng).1\X 軸\X”).Value語(yǔ)句(注:“Part1\軸系統(tǒng).1\X 軸\X”是根據(jù)CATIA中樹結(jié)構(gòu)中的軸系統(tǒng)參數(shù)構(gòu)建的,需與CAITA的用戶界面語(yǔ)言相符,當(dāng)CATIA的用戶界面語(yǔ)言選擇英語(yǔ)時(shí),則應(yīng)為“Part1\ AxisSystem.1\XAxis\X”)可以得到零件“Part1”的“軸系統(tǒng).1”的X′軸方向的單位向量沿原始坐標(biāo)系X軸的分向量VXx。同理可得Y′軸方向的單位向量沿原始坐標(biāo)系X軸的分向量VYx。從而可求出“軸系統(tǒng).1”各軸方向的單位向量在原始坐標(biāo)系上的各分向量為:VXx、VXy、VXz、VYx、VYy、VYz、VZx、VZy、VZz。Xo、Yo、Zo與X1、Y1、Z1可通過(guò)CATIA接口函數(shù)直接獲取。分別求向量O1P在原始坐標(biāo)系下的各分向量,可得下列方程組:
求解上述方程組,可以得到P點(diǎn)從原始坐標(biāo)系轉(zhuǎn)換到軸系統(tǒng)1后的坐標(biāo)值X、Y、Z。將坐標(biāo)轉(zhuǎn)換編制成子函數(shù),以便于坐標(biāo)轉(zhuǎn)換時(shí)調(diào)用。
(6)點(diǎn)的方向、取點(diǎn)路徑方向及方向向量的調(diào)整。
通過(guò)Catia.StartCommand(“ACA Invert”),實(shí)現(xiàn)點(diǎn)的方向向量(如圖4左圖所示,圖中的箭頭方向即為點(diǎn)的方向向量的方向)及取點(diǎn)路徑順序方向的顯示,這種顯示便于截取形象的示意圖。方向向量的調(diào)整:通過(guò)Set hybridShapeInverse1=hybridShapeFactory1.AddNewInverse(reference1,1)及 hybridBody1.AppendHybridShape hybridShapeInverse1實(shí)現(xiàn)給方向線(reference1)添加反轉(zhuǎn)線,然后,使用Timer過(guò)程監(jiān)控反轉(zhuǎn)線的方向,當(dāng)發(fā)現(xiàn)方向變化時(shí),使程序控制數(shù)模做相應(yīng)的變化,并重新提出該點(diǎn)的方向向量,對(duì)孔點(diǎn)同時(shí)提取新的點(diǎn)坐標(biāo),從而實(shí)現(xiàn)對(duì)已提取數(shù)據(jù)的點(diǎn)的方向向量的正反調(diào)整。
圖4 方向的顯示(左)及方向向量正反調(diào)整(右)
點(diǎn)數(shù)據(jù)自動(dòng)提取程序介紹
程序界面及最終輸出數(shù)據(jù)(點(diǎn)坐標(biāo)、方向矢量、對(duì)于孔還將輸出孔半徑)如圖5所示。
圖5 界面及輸出數(shù)據(jù)文件
自動(dòng)提取被測(cè)點(diǎn)坐標(biāo)、方向矢量的操作說(shuō)明:點(diǎn)“創(chuàng)建”;通過(guò)“取點(diǎn)軸系統(tǒng)”選擇測(cè)量坐標(biāo)系;點(diǎn)“提示”(包含輔助設(shè)置點(diǎn)的功能),并按提示信息在數(shù)模上設(shè)置面或孔的被測(cè)點(diǎn);使用“捕獲”自動(dòng)生成被測(cè)點(diǎn)的坐標(biāo)值及方向矢量;觀察方向向量箭頭,看測(cè)點(diǎn)的方向向量是否正確,然后關(guān)閉Invert窗口,對(duì)可能不正確的方向向量進(jìn)行雙擊激活并取反;點(diǎn)“隱藏引線”以隱藏指引線并顯示取點(diǎn)的順序箭頭;最后點(diǎn)“輸出”得到需要的點(diǎn)坐標(biāo)及方向矢量數(shù)據(jù)文本文件。
點(diǎn)數(shù)據(jù)自動(dòng)提取程序的3個(gè)顯著優(yōu)點(diǎn)是:第一,它能夠輔助計(jì)劃人員設(shè)置被測(cè)點(diǎn),程序?qū)⒆詣?dòng)調(diào)出設(shè)置面點(diǎn)、孔點(diǎn)的對(duì)話窗口,按需自動(dòng)限制所取面點(diǎn)的點(diǎn)距,很大程序上提高了點(diǎn)的設(shè)置效率,并增加了“確定”按鈕快捷鍵,進(jìn)一步方便了操作;第二,它優(yōu)化了孔點(diǎn)的操作,手動(dòng)操作時(shí),需要設(shè)置孔點(diǎn)的下沉量及輔助平面,當(dāng)需要測(cè)量垂直度時(shí),還需要設(shè)置2個(gè)下沉點(diǎn)及輔助平面,使用自動(dòng)提取程序則只需要設(shè)置1個(gè)點(diǎn)且不需要輔助平面,計(jì)劃員按程序提示選擇需要提取1個(gè)或2個(gè)孔點(diǎn);第三,它能夠根據(jù)設(shè)置的點(diǎn)自動(dòng)提取點(diǎn)坐標(biāo)和方向矢量,避免了繁瑣的“打孔點(diǎn)”操作和數(shù)據(jù)的篩選工作。這些優(yōu)點(diǎn)實(shí)現(xiàn)了點(diǎn)坐標(biāo)及矢量值的快速提取,避免了人為的操作失誤,極大提高了采集數(shù)據(jù)的效率和準(zhǔn)確性。
結(jié)束語(yǔ)
隨著飛機(jī)設(shè)計(jì)水平、制造技術(shù)水平的提高,飛機(jī)零部件的制造精度要求也將越來(lái)越高,需要進(jìn)行坐標(biāo)測(cè)量機(jī)測(cè)量的零部件數(shù)量也將不斷增多。三坐標(biāo)測(cè)量機(jī)以其高精度、高柔性及優(yōu)異的數(shù)字化能力,成為現(xiàn)代制造業(yè)尤其是模具工業(yè)設(shè)計(jì)、開發(fā)、加工制造和質(zhì)量保證的重要手段。充分分析各數(shù)字化檢測(cè)系統(tǒng)的性質(zhì)及各應(yīng)用軟件的功能,結(jié)合應(yīng)用程序提供的二次開發(fā)接口進(jìn)行開發(fā),可以定制符合使用需求的便捷功能,還可以將統(tǒng)計(jì)過(guò)程控制SPC數(shù)據(jù)分析技術(shù)結(jié)合進(jìn)來(lái),并有利于生產(chǎn)效率的提升。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:CATIA模型中測(cè)量數(shù)據(jù)的提取技術(shù)
本文網(wǎng)址:http://www.oesoe.com/html/solutions/14019315436.html