李梅竹
(陜西廣播電視大學(xué) 工程管理系,西安 710119)
STEP-NC的數(shù)控程序不僅包含零件的三維幾何信息,而且還包含了工藝信息和加工信息,從而克服了傳統(tǒng)的基于ISO6983標(biāo)準(zhǔn)的數(shù)控程序的信息損失、程序修改困難等缺點(diǎn)。STEP-NC有兩種數(shù)據(jù)模型:ISO10303中的AP-238[1]和 ISO14649[2-3],其中 AP-238 為應(yīng)用解釋模型,而ISO14649為應(yīng)用參考模型。本文采用ISO10303 AP-238作為STEP-NC的執(zhí)行方法。
從EXPRESS角度出發(fā),應(yīng)用程序以實(shí)體實(shí)例或?qū)傩灾禐閱挝贿M(jìn)行訪問(wèn)和操作數(shù)據(jù)。ROSE C++類(lèi)庫(kù),它是ST-Developer中的一個(gè)開(kāi)發(fā)環(huán)境,提供了面向?qū)ο蟮腁PI,可以滿(mǎn)足STEP應(yīng)用開(kāi)發(fā)的特定需求。利用這個(gè)庫(kù)可以將EXPRESS模型中的每一個(gè)實(shí)體(Entity)轉(zhuǎn)換為一個(gè)C++類(lèi),通過(guò)這些C++類(lèi),應(yīng)用程序可以快速寫(xiě)入屬性數(shù)據(jù),并且容易擴(kuò)展。因此本文的生成過(guò)程中借助STEPTools公司提供的ST-Developer來(lái)操作數(shù)據(jù),完成有關(guān)數(shù)據(jù)的寫(xiě)入操作。
應(yīng)用解釋模型是通過(guò)映射表來(lái)實(shí)現(xiàn)的,映射表定義了每個(gè)確定的信息需求是如何被滿(mǎn)足的[4]。映射表的格式如表 1 所示[1],其中:1)第一列為應(yīng)用元素。這一列表示的為應(yīng)用元素的名稱(chēng),這個(gè)名稱(chēng)是與應(yīng)用對(duì)象定義中出現(xiàn)的名稱(chēng)相一致的。2)第二列為應(yīng)用解釋模型的元素。應(yīng)用實(shí)體屬性的名字以<實(shí)體名稱(chēng)>.<屬性名稱(chēng)>被提及。3)第三列為資源。主要說(shuō)明這個(gè)應(yīng)用解釋模型的元素來(lái)源。4)第四列為規(guī)則。這些規(guī)則主要是源于應(yīng)用對(duì)象之間的關(guān)系,相同的規(guī)則是由所有有關(guān)的AIM元素的映射條款所涉及。5)第五列為參考路徑。描述了應(yīng)用對(duì)象完整的映射,它通過(guò)一些相關(guān)的AIM元素指定了一個(gè)必要的參考路徑。
表1 部分映射表信息
從實(shí)體的映射表可以看出,它對(duì)實(shí)體的每一個(gè)屬性都給了全面的解釋?zhuān)瑥膶傩缘膩?lái)源到屬性信息的參考路徑都有涉及到。從以實(shí)體為對(duì)象的角度分析,這個(gè)映射表全面給出了實(shí)體本身和它所包含屬性之間的關(guān)系,并且對(duì)各個(gè)屬性?xún)?nèi)容給出一定的解釋。按照映射表所包含屬性的順序,對(duì)表中的每一個(gè)屬性進(jìn)行分析,其中參考路徑為分析的重點(diǎn)。
STEP物理交換文件的頭段信息包含了幾個(gè)描述性對(duì)象:文件描述實(shí)體的屬性;文件名實(shí)體的屬性;文件模式實(shí)體。當(dāng)創(chuàng)建一個(gè)新的設(shè)計(jì)對(duì)象時(shí),利用RoseDesign類(lèi)的initialize_header()函數(shù)建立頭段對(duì)象信息,具體信息由 header_description()和 header_name()來(lái)創(chuàng)建,文件模式(file_schema)由useSchema()函數(shù)寫(xiě)入。
下面是一個(gè)頭段信息建立的實(shí)例:
design=new RoseDesign("lmz","integrated_cnc_schema");
Design->format("step");//以STEP Part21的格式寫(xiě)入
Design->initialize_header();
Design->header_description()->description()->add("AP-238 file");
……
Design->header_name()->authorisation("Someone else");
基于ROSE類(lèi)庫(kù)采用兩種數(shù)據(jù)段的生成方法,即早聯(lián)編和晚聯(lián)編。本文采用的是早聯(lián)編。
早聯(lián)編方式生成數(shù)據(jù)段時(shí),首先把應(yīng)用協(xié)議AP-238對(duì)應(yīng)的模式文件用EXPRESS編譯器編譯,把應(yīng)用協(xié)議中的實(shí)體轉(zhuǎn)化成C++類(lèi)。在生成數(shù)據(jù)段的應(yīng)用程序中使用這些類(lèi)創(chuàng)建對(duì)應(yīng)實(shí)體的實(shí)例,并給實(shí)體中的屬性賦值。應(yīng)用協(xié)議中每個(gè)實(shí)體都具有約束規(guī)則,因此在生成實(shí)體實(shí)例時(shí)必須滿(mǎn)足各實(shí)體的約束規(guī)則,這樣生成的AP-238文件才能滿(mǎn)足一致性要求,在應(yīng)用程序中按照實(shí)體約束規(guī)則的描述,用對(duì)應(yīng)的C++類(lèi)生成規(guī)則中的實(shí)體實(shí)例。應(yīng)用協(xié)議中全部相關(guān)實(shí)體及對(duì)應(yīng)的規(guī)則中的實(shí)體實(shí)例構(gòu)成了應(yīng)用協(xié)議對(duì)應(yīng)的STEP物理文件。
下面以AP-238協(xié)議中定義的實(shí)體machining_workingstep為例講述早聯(lián)編方式生成STEP文件數(shù)據(jù)段的過(guò)程和方法。
machining_workingstep 實(shí)體的 EXPRESS 定義如下[1]:
ENTITY machining_workingstep
SUBTYPE OF(machining_process_executable);
name:STRING;
description:STRING;
consequence:STRING;
purpose:STRING;
END_ENTITY;
由EXPRESS定義可以看出實(shí)體machining_workingstep是實(shí)體machin-ing_process_executable的子類(lèi),它繼承了實(shí)體machining_process_executable的所有屬性。
實(shí)體machining_workingstep的5條約束規(guī)則分別為:
WR1:machining_workingstep實(shí)體實(shí)例必須是實(shí)體machining_process_-sequence_relationship的屬性related_method的值,并且此實(shí)體的屬性relating_method的值是machining_process_executable實(shí)體類(lèi)型。
WR2:machining_workingstep實(shí)體必須是實(shí)體action_property的屬性definition的值,并且實(shí)體action_property的 name屬性值為“toolpath orientation”,用來(lái)描述實(shí)體action_property的representation實(shí)體需要包含一個(gè)axis2_placement_3d類(lèi)型的representation_item實(shí)體。
WR3:machining_workingstep的 description屬性必須為“machining”或“turning”。并且它必須滿(mǎn)足函數(shù)very_optional_in_process_geometry中測(cè)試的條件,即只有當(dāng)輸入的machining_process_executable滿(mǎn)足一定條件,very_optional_in_process_geometry函數(shù)返回真。
WR4:machining_workingstep的 description屬性為“machining”時(shí),必須滿(mǎn)足以下的條件:
1)machining_workingstep實(shí)體是實(shí)體 machining_feature_relationship的屬性relating_method的值,實(shí)體machining_feature_relationship的屬性related_method的值為machining_feature_process實(shí)體類(lèi)型;
2)machining_workingstep實(shí)體是實(shí)體 machining_final_feature_relation-ship的屬性relating_method的值,實(shí)體 machining_final_feature_relationship的屬性related_method的值為machining_feature_process實(shí)體類(lèi)型;
3)machining_workingstep實(shí)體是實(shí)體 machining_operation_relationship的屬性relating_method的值,實(shí)體machining_operation_relationship的屬性related_method的值為machining_operation實(shí)體類(lèi)型。
WR5:machining_workingstep的 description屬性為“turning”時(shí),必須滿(mǎn)足的條件與WR4相似在這里不詳細(xì)闡述。
AP-238應(yīng)用協(xié)議對(duì)應(yīng)的模式文件為integrated_cnc_schema.exp,先用EXPRESS編譯器編譯該模式文件,編譯器界面如圖1所示。
圖1 EXPRESS編譯器界面
編譯完模式文件,可以得到包含實(shí)體machining_workingstep在內(nèi)的所有實(shí)體對(duì)應(yīng)的C++類(lèi)庫(kù),把C++類(lèi)庫(kù)添加到工程中。
早聯(lián)編使用EXPRESS編譯器產(chǎn)生C++類(lèi)來(lái)生成STEP文件,代碼如下:
machining_workplan*machin_workplan=pnew
machining_workplan("machining operations","Routing 1","","");
machining_workingstep*machin_workingstep=pnew machining_workingst-ep("WS 1","machining","","");
machining_process_sequence_relationship*machin_process_sequence_relation =pnew machining_process_sequence_relationship
("","",machin_workplan,machin_workingstep,1.);
characterized_action_definition*definition100=pnew characterized_action_definition();
definition100->_action_method(machin_workingstep);
action_property*action_propertyl=pnew action_property("toolpath orientation","",definition100);
通過(guò)上述早聯(lián)編方式生成的AP-238文件代碼如圖2所示。
此外對(duì)于聚合屬性的數(shù)據(jù)類(lèi)型,以SET數(shù)據(jù)類(lèi)型為例說(shuō)明其生成方法。例如實(shí)體representation的EXPRESS表達(dá)形式為:
圖2 生成的部分AP-238文件
ENTITY representation;
name:label;
items:SET[1:?]OF representation_item;
context_of_items:representation_context;
END_ENTITY;
生成文件的編譯代碼如下所示:
measure_representation_item*repitem1=pnew
measure_representation_item("",mei,zhu);
setOfrepresentation_item * setofrepitem1=pnew setOfrepresentation_item();
setofrepitem1->add(repitem1);
representation*rep11 =pnew representation("",setofrepitem1,li);
生成對(duì)應(yīng)的AP-238文件代碼為:
#96=REPRESENTATION('',(#33),#197);綜上可完成AP-238文件的生成。
STEP物理文件交換是不同系統(tǒng)之間進(jìn)行數(shù)據(jù)交換最基本的途徑,也是實(shí)現(xiàn)STEP標(biāo)準(zhǔn)的最基本的方式,本論文主要研究AP-238文件的生成方法。文中的研究分為兩部分,即文件頭段生成方法和數(shù)據(jù)段生成方法,其中數(shù)據(jù)段部分用早聯(lián)編方式實(shí)現(xiàn)。最后以AP-238協(xié)議中定義的實(shí)體machining_workingstep為例給出具體實(shí)例詳細(xì)說(shuō)明生成方法。
[1] ISO/DIS 10303-238-2006 Industrial automation systems and integration-Product data representation and exchange-Part238:Application protocol:Application interpreted model for computerized numerical controllers[S].
[2] ISO14649-1-2003 Industrial automation systems and Integration-Physical device control-ISO14649 Data model for Computerized Numerical Controllers-Part1:Overview and fundamental principles[S].
[3] ISO/FDIS 14649-10-2002 Industrial automation systems and integration-Physical device control-ISO14649 Data model for Computerized Numerical Controllers-Part10:General Process Data[S].
[4] 王樹(shù)春.網(wǎng)絡(luò)制造中STEP-NC與XML數(shù)據(jù)轉(zhuǎn)換系統(tǒng)的開(kāi)發(fā)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2006:18-19.