国产精品久久国产精品99_精品人妻AV无码一区二区三区_夜夜高潮夜夜爽夜夜爱爱一区_AV天堂午夜精品一区

信息中心
Information Centre
公司新聞     技術分享     往期新聞     活動分享    
EKL智能化模型數據處理相關應用介紹
發布時間: 2022.10.25  點擊:3080 次

本文檔的(de)目的(de)在于通過具體實(shi)例幫(bang)助用戶(hu)更好得理解達索系統3DEXPERIENCE平臺中EKL語言的(de)用法。


EKL全(quan)稱Enterprise Knowledge Language(企業知識(shi)語(yu)言(yan)),是(shi)(shi)在(zai)V5/V6/3DEXPERIENCE環境下基于知識(shi)工(gong)程(cheng)(cheng)的一種腳本編程(cheng)(cheng)語(yu)言(yan),屬(shu)于進程(cheng)(cheng)內的訪(fang)問,與CATIA/3DEXPERIENCE軟件(jian)同時(shi)執(zhi)行(xing),它的目(mu)的是(shi)(shi)讓(rang)設計工(gong)程(cheng)(cheng)師在(zai)設計過程(cheng)(cheng)中,在(zai)確定變(bian)化規則的前提(ti)下,更(geng)快速高效得讓(rang)程(cheng)(cheng)序自(zi)動執(zhi)行(xing)重復性操作。


EKL具(ju)有(you)可移植、面向對(dui)象(xiang)(xiang)、不(bu)需要編(bian)譯(yi)、自動化、能直接操作(zuo)模型(xing)數據對(dui)象(xiang)(xiang)等特點,可以用作(zuo)在數據庫中搜索(suo)對(dui)象(xiang)(xiang)、瀏(liu)覽不(bu)同結構(gou)、遍(bian)歷統計匯總、創建(jian)產品和PLM對(dui)象(xiang)(xiang)、導出數據至Excel或Xml中、讀取或寫入產品屬(shu)性等用途。


基礎語法

變量聲明:
使用 let 關鍵字(類型)聲明變量,如:
let x(real)
let y(Integer)


類型:
所有類型都為基本類型ObjectType 的派生類型。從ObjectType往下派生出Feature特征類型與Literal字面類型。
Feature特征類型提供了每個對象上可用的屬性列表(名稱、用戶信息、子項),以及可應用到每個對象的方法列表(訪問動態屬性、查詢、修改等)。
Literal字(zi)(zi)面類型(xing)(xing)表(biao)示普(pu)通字(zi)(zi)面類型(xing)(xing)(如長度、實數、整數等),無法具有(you)屬(shu)性。且提供有(you)限的現有(you)字(zi)(zi)面類型(xing)(xing)列表(biao)。


圖1. ObjectType類型關系圖


功能Functions:
功能表示完成特定任務并返回值的代碼塊。功能使用輸入并對其進行處理,然后返回結果。
對Plane類型來說,Function可以使用Plane作為輸入條件,返回平面夾角。也可指定返回類型為Plane,查詢可用于此的Function。
angle (Plane, Plane): Angle 
plane (Curve): Plane

屬性Attributes:
每個Feature類型均有可操作屬性,有些屬性可獲取,如:List->GetItem (Index: Integer),有些屬性可寫入,如:PLMEntity.V_Name,有些屬性只支持讀取,如:PLMEntity. PrimaryType。



圖2. 可查詢類型功能、屬性的EKL語言瀏覽器


控制流語句
條件語句:
EKL使用if 、else if、 else結構判斷條件是否為真:
if conditio-A 
    { statementsA }
[else if condition-B
    [    { statementsB    } ] ] ...
[else
    [    {  statementsC   } ]  ]

循環語句:
循環語句重復執行直到滿足特定條件。其也可執行循環直到某個表達式賦值為 false。在這種情況下,執行終止。
有兩種可用的循環語句:
第一種執行次數取決于列表中的數量,且不可自定義起始與終止條件。
For inside


第二種執行次數取條件后設置的次數,可以自定義起始與終止條件。
For while


循環中可使用Break、Continue、Exit跳出或繼續或結束程序。
Break:結束當前循環,執行循環外語句。
Continue:結束當前條件,繼續執行循環。
Exit:結束程序,不再執行剩余語句。

創建對象
創建對象時可使用下列四個功能:
1.new 
2.CreateOrModifyDatum
3.CreateOrModifyTemplate
4.InstantiateTemplate
new:支持創建的類型最多,Product,3Dpart,幾何體,幾何圖形集,各類AEC類型對象,點、線、面等對象,都可用new功能創建。

CreateOrModifyDatum:用于創建無參的點、線、面、軸系等Feature對象。

CreateOrModifyTemplate:用于零件內部使用Knowledge Pattern循環創建特征模板時使用。

InstantiateTemplate:常用于產品級循環創建產品模板時使用。


查詢與瀏覽對象

在進程中常用的查詢相關函數有:
1.Query
2.Access
3.Find
Query返回的結果是List,其他兩個是UndefinedType。
Query與Find函數支持條件查找,比如搜索總節點中帶有某些關鍵字的零件。


EKL另外也支持使用CreatePLMQuery函數查詢數據庫中文件。

當需要瀏覽模型,并獲取上下文對象時可以使用如下屬性:
1.Children  
2.Reference
3.Owner
4.InstantiatedBy

Children屬性返回List,常用于獲取Product下所有Instance對象。

圖3. 通過Children函數獲取父級下所有子級List


Reference屬性:通過獲取Instance對象,使用.Reference屬性,返回此實例的參考模型。

InstantiatedBy屬性:當獲取對象是Reference時,可以通過此屬性獲取此參考模型的所有實例List。

Owner屬性:常用于查詢當前Feature的上一級Feature(模型特征,實例,參考等都屬于Feature)。


圖4. Owner與InstantiatedBy屬性關系圖


靈活使用Query加Children、Reference、Owner、InstantiatedBy屬性,可完整瀏覽整棵模型結構樹,完成數量統計,屬性提取,干涉檢查等多種工程應用。

文件交互
EKL支持與TXT、EXCEL、Xml進行文件讀取與寫入交互操作。

TXT常用函數有:
1.OpenTextFile
2.file->Read()
3.file->Write()
4.file->Close()

通過OpenTextFile函數訪問本地磁盤文件,file->Read()讀取文件內信息。file->Write()將信息寫入本地磁盤文件。最后通過file->Close()關閉文件,釋放內存。

EXCEL常用函數有:
1.CreateSheet
2.CellAsBoolean()
3.CellAsString()
4.CellAsReal()
5.SetCell()
通過CreateSheet函數訪問本地磁盤上EXCEL文件,再通過CellAsReal、Boolean、String分別讀取EXCEL中數值、布爾、字符串類型數據,完成數據獲取。
當需(xu)將數(shu)據寫入EXCEL內(nei)時,使用(yong)SetCell()函(han)數(shu),按照SetCell(rowIndex, columnIndex)先行后列順序完成寫入。


總結


圖5. EKL與Automation、CAA代碼量對比圖


達索系統3DEXPERIENCE平臺中常用的開發工具有EKL、Automation、CAA。

EKL因為是腳本語言,代碼量最少,函數接口較多,設計工程師最容易學習,通常幾行代碼,就能完成一個簡易功能。而Automation雖然可支持VBA、C#、VB.NET多種開發語言,但是往往平臺的新功能、重要功能的接口并未開放給Automation。CAA因其專業性與復雜性,適合于公司程序開發團隊,而不適合于設計工程師使用。


如上所述,這三種開發工具中,EKL為最適合設計工程師掌握和使用的開發工具。
















最新動態
掃一掃加顧問微信