国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于知識的三維模型驗證開發(fā)技術(shù)的研究

2012-10-20 14:10:32李青祝馬玉娟
制造技術(shù)與機床 2012年1期
關(guān)鍵詞:知識庫表達(dá)式定義

李青祝 馬玉娟

(①鹽城工學(xué)院優(yōu)集學(xué)院,江蘇鹽城 224051;②中國外運集團(tuán)鹽城公司,江蘇鹽城 224000)

產(chǎn)品的三維模型是包含產(chǎn)品全部設(shè)計信息的數(shù)據(jù)集合,是產(chǎn)品設(shè)計、工程分析、產(chǎn)品數(shù)字化制造等的信息載體。產(chǎn)品三維模型數(shù)據(jù)文件中會存在很多缺陷和設(shè)計不規(guī)范,存在的缺陷比如在幾何信息中存在太尖的夾角、太窄的面、自相交的曲線曲面等;存在的設(shè)計不規(guī)范,比如特征的不合理使用、圖層的錯亂放置、命名的不規(guī)范等。三維模型質(zhì)量的好壞直接影響產(chǎn)品的質(zhì)量,為了控制產(chǎn)品的質(zhì)量,在產(chǎn)品設(shè)計階段中對三維模型進(jìn)行必要的質(zhì)量和標(biāo)準(zhǔn)化檢查顯得尤為重要。要求三維模型的設(shè)計必須符合企業(yè)要求的規(guī)范和標(biāo)準(zhǔn),從產(chǎn)品全生命周期的源頭上控制產(chǎn)品的質(zhì)量。當(dāng)前各主流的三維CAD軟件如CATIA、Pro/E等系統(tǒng)都為三維模型數(shù)據(jù)檢查提供了有關(guān)的功能模塊和開放接口。Siemens公司的UG NX軟件在HT3D的Check-mate模塊中提供了CAD模型的標(biāo)準(zhǔn)化檢查,同時開放了自定義的功能便于企業(yè)根據(jù)適合行業(yè)或企業(yè)規(guī)范的自定義的檢查規(guī)則。雖然這些主流的三維設(shè)計軟件提供了這些功能模塊,但是企業(yè)如何歸納定義驗證知識和加以規(guī)范,并用來檢查三維模型數(shù)據(jù),目前來說在國內(nèi)企業(yè)中應(yīng)用很少,應(yīng)用的層次太低。

本文在研究UG NX Check-mate模塊的基礎(chǔ)上,結(jié)合NX中知識工程語言——知識熔接(Knowledge Fusion通常簡稱為KF)和NX Open二次開發(fā)技術(shù),提出了一套企業(yè)自定義驗證知識庫的方法,并把這些方法用于三維數(shù)據(jù)模型的檢查。使用該技術(shù)可以方便企業(yè)建設(shè)適合企業(yè)自身需求的模型驗證的KF函數(shù)庫和三維數(shù)據(jù)模型的驗證知識庫,具有很高的應(yīng)用價值。

1NX Open

NX Open是一系列NX開發(fā)工具的總稱,是UG NX軟件為用戶或第三方開發(fā)人員提供的最主要的開發(fā)工具,目前NX Open開發(fā)技術(shù)日益完善和成熟,在支持傳統(tǒng)的User Function基礎(chǔ)上,增加了NX Open for C++、NX Open for.NET 以及 NX Open for Java等開發(fā)工具,用戶可以根據(jù)自身的需要選擇相應(yīng)的工具。NX Open能夠最大限度擴展NX的功能,更好地為企業(yè)個性化需求提供服務(wù)。

2 驗證知識庫

KF語言是KBE技術(shù)在NX中的應(yīng)用,是NX軟件內(nèi)嵌的面向?qū)ο蟮慕忉屝哉Z言,是為產(chǎn)品設(shè)計者提供獲得和操縱工程規(guī)則、設(shè)計意圖的強有力的工具。KF語言定義用戶的檢查規(guī)則是在dfa文件中實現(xiàn)的。通過一個或多個dfa文件中定義模型的驗證規(guī)則來擴展自身的驗證知識庫。dfa文件由文件頭部分、文檔說明部分、類頭部分、屬性區(qū)和功能區(qū)等5個部分組成。文件頭部分指出該dfa文件的NX最低版本要求;文檔說明部分是對dfa文件進(jìn)行功能描述、參數(shù)描述以及檢查結(jié)果的描述等;類頭部分定義檢查規(guī)則的類名,相當(dāng)于驗證知識庫名,僅僅顯示名稱和所屬的類別;屬性區(qū)部分定義文件中的屬性名稱;功能區(qū)部分即do_check體部分定義驗證的規(guī)則,這部分是模型驗證規(guī)則編寫的核心。

自定義驗證知識庫的建立過程就是分析企業(yè)模型驗證的需求,在dfa文件的do_check體中通過KF代碼編寫驗證規(guī)則來實現(xiàn)這些需求。自定義驗證規(guī)則的關(guān)鍵就是KF函數(shù)的使用,通過KF函數(shù)的查找、判斷等功能來檢查模型是否符合驗證規(guī)則,并把驗證的結(jié)果報告給用戶。比如用mqc_askEmptyLayers來查找沒有對象的空圖層等。目前,三維設(shè)計軟件NX的Check-mate功能日趨完善,在Check-mate中每一個顯示名,通常稱為一個checker,NX系統(tǒng)中已經(jīng)自帶了大量的checker,用戶可以直接用來對模型、工程圖、裝配等方面驗證檢查。對于特定行業(yè)特定的企業(yè)來說,需要大量的行業(yè)知識驗證和規(guī)范檢查,NX中現(xiàn)有的checker還遠(yuǎn)遠(yuǎn)不能滿足企業(yè)的實際需求,這就需要企業(yè)自定義開發(fā)checker來滿足特定的需求,擴充企業(yè)的模型數(shù)據(jù)檢查的知識庫。

3 自定義知識庫

NX軟件提供了模型驗證開發(fā)的接口,能夠極大地方便企業(yè)自定義三維數(shù)據(jù)模型驗證知識庫。在dfa文件中使用KF函數(shù)把企業(yè)模型驗證的各種規(guī)則通過代碼的形式表示出來。企業(yè)創(chuàng)建驗證知識庫規(guī)則有2種方法可以使用,一種是直接使用NX系統(tǒng)自帶的KF函數(shù)來創(chuàng)建,另外一種是用戶可以使用NX Open開發(fā)自定義KF函數(shù)來創(chuàng)建驗證知識庫。

3.1 使用系統(tǒng)KF函數(shù)自定義驗證知識庫

NX系統(tǒng)提供了大量的KF函數(shù),用戶可以直接使用這些函數(shù)定義適合企業(yè)自身特定需求的驗證規(guī)則庫。定義驗證規(guī)則的范圍極其廣泛,用戶可以靈活使用。比如在標(biāo)準(zhǔn)件庫的建模中一般需要進(jìn)行屬性驗證、表達(dá)式驗證、特征驗證、圖層驗證、坐標(biāo)系驗證、顏色驗證以及參考集驗證等。使用自帶的KF函數(shù)能夠快速地定義驗證知識庫。對一種產(chǎn)品或者一個項目來說,可以把每一個驗證規(guī)范自定義為一個方法,放在驗證知識文件dfa中。比如定義reuse_exp_checker方法表示表達(dá)式規(guī)則的驗證,reuse_feat_checker方法表示特征規(guī)則的驗證等等。

在每個方法中,定義模型的驗證規(guī)則。比如表達(dá)式的規(guī)則驗證:

以上例子表達(dá)式驗證規(guī)則的KF代碼,用于檢查模型中的表達(dá)式是否系統(tǒng)自定義表達(dá)式、表達(dá)式名是否含有空格以及含有小寫字母等驗證規(guī)則。代碼中使用了很多系統(tǒng)提供的KF函數(shù),比如Ug_mqc_askExps用戶查詢當(dāng)前part中所有的表達(dá)式,ug_rexp_match檢查表達(dá)式正則匹配,ug_mqc_log給用戶報告驗證結(jié)果。

3.2 使用自定義KF函數(shù)定義驗證知識庫

上面例子中使用NX自帶的KF函數(shù)編寫驗證規(guī)則,在企業(yè)知識庫的定義中,系統(tǒng)現(xiàn)有的KF函數(shù)還遠(yuǎn)遠(yuǎn)不能滿足企業(yè)的實際需求。NX Open二次開發(fā)工具為企業(yè)自定義KF函數(shù)提供了接口,企業(yè)可以根據(jù)特定的驗證規(guī)則來開發(fā)自定義KF函數(shù),建設(shè)滿足企業(yè)需求KF函數(shù)庫。使用該技術(shù)不但能夠自動驗證產(chǎn)品設(shè)計中要遵循的通用行業(yè)規(guī)范、標(biāo)準(zhǔn),更能夠滿足企業(yè)特定驗證規(guī)則的需求,可以說該技術(shù)極大地擴展了NX模型驗證技術(shù)的使用。下面以NX Open for.NET為例來闡述用戶自定義開發(fā)KF函數(shù)以及使用KF函數(shù)建立驗證知識庫的詳細(xì)步驟。

步驟一:項目文件夾的創(chuàng)建和環(huán)境變量的設(shè)置

(1)創(chuàng)建項目文件夾,比如 D:sampleNXOpen-Checker。

(2)在該文件夾下創(chuàng)建子文件夾dfa,該文件夾用戶存放用戶自定的KF函數(shù)的dfa文件以及用于定義模型驗證知識庫的dfa文件。

(3)設(shè)定環(huán)境變量UGCHECKMATE_USER_DIR="D:sampleNXOpenChecker"。

通過步驟一的設(shè)定,NX系統(tǒng)能夠識別用戶自定義模型驗證知識庫的dfa文件以及用戶自定義的KF函數(shù)。在3.1中使用系統(tǒng)的KF函數(shù)自定義表達(dá)式的驗證規(guī)則,方法同步驟一,區(qū)別在于3.1中不存在用戶自定義KF函數(shù)的dfa文件。

步驟二:項目的創(chuàng)建

(1)打開Microsoft Visual Studio.Net,創(chuàng)建新的項目,選擇C#項目,選擇NX Open AppWizard,類型為類庫,輸入項目的名稱。

(2)在項目設(shè)置中,選擇‘An Internal application that can be activated from an NX session(DLL)’和‘NXOpen.UI API’。

(3)選擇NX回話結(jié)束時候,顯式激活應(yīng)用程序和卸載應(yīng)用程序。

步驟三:項目實例

(1)從項目中移除class.cs,添加用戶編輯的C#文件 namedObject.cs。

(2)添加NX Open for.NET類庫的引用,這些類庫在%ugii_root_dir%managed路徑下,包括NXOpen.dll、NXOpen.UF.dll、NXOpen.Utilities.dll 和 NXOpenUI.dll。

(3)項目完成后,編譯該項目,生成ReportNamed-Object_cs.dll,并拷貝該 dll文件到$UGCHECKMATE_USER_DIR路徑下。

在項目中源文件 namedObject.cs中,根據(jù)KF函數(shù)需求,編寫C#代碼;類名稱為NamedObject,方法名稱為AskNamedObjects,有一個string類型的輸入?yún)?shù),該方法的功能是在NX Session中根據(jù)對象的名稱,找出所有對象。

步驟四:KF函數(shù)的包裝和使用

(1)在dfa文件夾下創(chuàng)建一個dfa文件,自定義KF函數(shù)。

dfa文件中定義KF函數(shù)格式如下:

自定義KF函數(shù)AskNamedObjects_cs的第一個參數(shù)表示用戶輸入?yún)?shù)名,第二個參數(shù)表示動態(tài)鏈接庫名,第三個參數(shù)表示動態(tài)鏈接庫中的類名,第四個參數(shù)表示類中方法名稱。定義好KF函數(shù)后,就可以像NX系統(tǒng)自帶的KF函數(shù)一樣使用。

(2)創(chuàng)建模型驗證規(guī)則知識庫文件。

在dfa文件夾下創(chuàng)建模型驗證知識庫dfa文件,使用自定義的KF函數(shù)AskNamedObjects_cs來查詢當(dāng)前NX的工作部件中指定名稱的對象。

(3)實例演示。

啟動NX,創(chuàng)建一個部件,在部件中只有一個block特征,特征名為Object。上面例子使用用戶自定義包裝的KF函數(shù)和自定義的模型驗證的規(guī)則,在默認(rèn)狀態(tài)下報出所有的命名特征對象,用戶也可以使用客戶化定制輸入名稱,報出該名字的特征對象。創(chuàng)建好部件后就可以使用該驗證,首先打開Check-mate對話框,然后選擇"Examples.NXOpen"分類項,再選擇checker的名字為"Reports Named Objects(NX Open for C#.NET)",最后單擊 Execute Check -Mate(圖1);執(zhí)行的結(jié)果如圖2,找到一個命名的對象,選擇該對象,在NX圖形界區(qū),Block對象會高亮顯示。

4 結(jié)語

介紹了NX系統(tǒng)中模型驗證技術(shù)的開發(fā)應(yīng)用,提出了一套切實可行的用戶自定義模型自動化驗證的方法,用戶可以建立適合企業(yè)自身需求的模型驗證知識庫,可以極大地提高產(chǎn)品模型自動化驗證水平,提高產(chǎn)品質(zhì)量的可靠性,具有很大的應(yīng)用價值。另外,本文中提出的一套使用NX Open技術(shù)開發(fā)KF函數(shù)的方法,該方法可以自定義建立適合企業(yè)自身需求的KF函數(shù)庫。該方法新穎、可行,可以極大地擴展NX中模型驗證的功能,在項目開發(fā)中已經(jīng)得到了試用,具有很好的應(yīng)用前景。

[1]花鋒,周臨震,劉德仿.NX模型驗證機制 Check-mate綜述[J].機械制造與自動化,2008,37(5):119 -122.

[2]李健,莫蓉,常志勇.CAD模型質(zhì)量及標(biāo)準(zhǔn)的快速檢查關(guān)鍵技術(shù)研究[J].航空計算技術(shù),2010,40(3).

[3]花鋒,王平.基于KF的特征識別技術(shù)的研究[J].機械設(shè)計與制造,2007(4).

[4]閔飛炎,楊明,王子才.仿真模型的智能化驗證方法[J].大連海事大學(xué)學(xué)報,2010(1).

[5]NX Open for .NET reference guide[Z].Siemens Product Lifecycle Management Software lnc.,2010.

[6]Product validation checker- mate in NX7.5 help library[Z].Siemens Product Lifecycle Management Software lnc.,2010.

猜你喜歡
知識庫表達(dá)式定義
一個混合核Hilbert型積分不等式及其算子范數(shù)表達(dá)式
表達(dá)式轉(zhuǎn)換及求值探析
基于TRIZ與知識庫的創(chuàng)新模型構(gòu)建及在注塑機設(shè)計中的應(yīng)用
淺析C語言運算符及表達(dá)式的教學(xué)誤區(qū)
高速公路信息系統(tǒng)維護(hù)知識庫的建立和應(yīng)用
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
基于Drupal發(fā)布學(xué)者知識庫關(guān)聯(lián)數(shù)據(jù)的研究
圖書館研究(2015年5期)2015-12-07 04:05:48
修辭學(xué)的重大定義
山的定義
議C語言中循環(huán)語句
商(2012年11期)2012-07-09 19:07:55
长汀县| 克东县| 荔波县| 施甸县| 上饶县| 平顺县| 历史| 富宁县| 如皋市| 汝城县| 南华县| 鄂伦春自治旗| 闵行区| 靖安县| 壤塘县| 岢岚县| 衡阳县| 周口市| 兖州市| 九龙坡区| 古交市| 甘南县| 东城区| 六枝特区| 靖西县| 彰武县| 拉萨市| 长丰县| 兴城市| 措勤县| 云和县| 华坪县| 壶关县| 台前县| 定襄县| 莲花县| 六盘水市| 武强县| 南京市| 当涂县| 平湖市|