AV 无码 高潮 电影_国产男靠女免费视频网站_欧美另类亚洲综合在线影院m_天天干性无码视频_国产日韩欧美精品99_成人午夜激情在线视频_国产清纯美女高潮_免费高清手机在线影院_午夜福利精品免费看_亚洲A∨天堂男人无码

信息中心
Information Centre
公司新聞     技術(shù)分享     往期新聞     活動(dòng)分享    
EKL智能化模型數(shù)據(jù)處理相關(guān)應(yīng)用介紹
發(fā)布時(shí)間: 2022.10.25  點(diǎn)擊:2257 次

本文檔的目的在于通過具體實(shí)例幫助用戶更好得理解達(dá)索系統(tǒng)3DEXPERIENCE平臺(tái)中EKL語言的用法。


EKL全稱Enterprise Knowledge Language(企業(yè)知識(shí)語言),是在V5/V6/3DEXPERIENCE環(huán)境下基于知識(shí)工程的一種腳本編程語言,屬于進(jìn)程內(nèi)的訪問,與CATIA/3DEXPERIENCE軟件同時(shí)執(zhí)行,它的目的是讓設(shè)計(jì)工程師在設(shè)計(jì)過程中,在確定變化規(guī)則的前提下,更快速高效得讓程序自動(dòng)執(zhí)行重復(fù)性操作。


EKL具有可移植、面向?qū)ο蟆⒉恍枰幾g、自動(dòng)化、能直接操作模型數(shù)據(jù)對(duì)象等特點(diǎn),可以用作在數(shù)據(jù)庫中搜索對(duì)象、瀏覽不同結(jié)構(gòu)、遍歷統(tǒng)計(jì)匯總、創(chuàng)建產(chǎn)品和PLM對(duì)象、導(dǎo)出數(shù)據(jù)至Excel或Xml中、讀取或?qū)懭氘a(chǎn)品屬性等用途。


基礎(chǔ)語法

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


類型:
所有類型都為基本類型ObjectType 的派生類型。從ObjectType往下派生出Feature特征類型與Literal字面類型。
Feature特征類型提供了每個(gè)對(duì)象上可用的屬性列表(名稱、用戶信息、子項(xiàng)),以及可應(yīng)用到每個(gè)對(duì)象的方法列表(訪問動(dòng)態(tài)屬性、查詢、修改等)。
Literal字面類型表示普通字面類型(如長度、實(shí)數(shù)、整數(shù)等),無法具有屬性。且提供有限的現(xiàn)有字面類型列表。


圖1. ObjectType類型關(guān)系圖


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

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



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


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

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


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


循環(huán)中可使用Break、Continue、Exit跳出或繼續(xù)或結(jié)束程序。
Break:結(jié)束當(dāng)前循環(huán),執(zhí)行循環(huán)外語句。
Continue:結(jié)束當(dāng)前條件,繼續(xù)執(zhí)行循環(huán)。
Exit:結(jié)束程序,不再執(zhí)行剩余語句。

創(chuàng)建對(duì)象
創(chuàng)建對(duì)象時(shí)可使用下列四個(gè)功能:
1.new 
2.CreateOrModifyDatum
3.CreateOrModifyTemplate
4.InstantiateTemplate
new:支持創(chuàng)建的類型最多,Product,3Dpart,幾何體,幾何圖形集,各類AEC類型對(duì)象,點(diǎn)、線、面等對(duì)象,都可用new功能創(chuàng)建。

CreateOrModifyDatum:用于創(chuàng)建無參的點(diǎn)、線、面、軸系等Feature對(duì)象。

CreateOrModifyTemplate:用于零件內(nèi)部使用Knowledge Pattern循環(huán)創(chuàng)建特征模板時(shí)使用。

InstantiateTemplate:常用于產(chǎn)品級(jí)循環(huán)創(chuàng)建產(chǎn)品模板時(shí)使用。


查詢與瀏覽對(duì)象

在進(jìn)程中常用的查詢相關(guān)函數(shù)有:
1.Query
2.Access
3.Find
Query返回的結(jié)果是List,其他兩個(gè)是UndefinedType。
Query與Find函數(shù)支持條件查找,比如搜索總節(jié)點(diǎn)中帶有某些關(guān)鍵字的零件。


EKL另外也支持使用CreatePLMQuery函數(shù)查詢數(shù)據(jù)庫中文件。

當(dāng)需要瀏覽模型,并獲取上下文對(duì)象時(shí)可以使用如下屬性:
1.Children  
2.Reference
3.Owner
4.InstantiatedBy

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

圖3. 通過Children函數(shù)獲取父級(jí)下所有子級(jí)List


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

InstantiatedBy屬性:當(dāng)獲取對(duì)象是Reference時(shí),可以通過此屬性獲取此參考模型的所有實(shí)例List。

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


圖4. Owner與InstantiatedBy屬性關(guān)系圖


靈活使用Query加Children、Reference、Owner、InstantiatedBy屬性,可完整瀏覽整棵模型結(jié)構(gòu)樹,完成數(shù)量統(tǒng)計(jì),屬性提取,干涉檢查等多種工程應(yīng)用。

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

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

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

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


總結(jié)


圖5. EKL與Automation、CAA代碼量對(duì)比圖


達(dá)索系統(tǒng)3DEXPERIENCE平臺(tái)中常用的開發(fā)工具有EKL、Automation、CAA。

EKL因?yàn)槭悄_本語言,代碼量最少,函數(shù)接口較多,設(shè)計(jì)工程師最容易學(xué)習(xí),通常幾行代碼,就能完成一個(gè)簡易功能。而Automation雖然可支持VBA、C#、VB.NET多種開發(fā)語言,但是往往平臺(tái)的新功能、重要功能的接口并未開放給Automation。CAA因其專業(yè)性與復(fù)雜性,適合于公司程序開發(fā)團(tuán)隊(duì),而不適合于設(shè)計(jì)工程師使用。


如上所述,這三種開發(fā)工具中,EKL為最適合設(shè)計(jì)工程師掌握和使用的開發(fā)工具。
















最新動(dòng)態(tài)
掃一掃加顧問微信
021-50278558,18621558211
lumq@jiangdatech.com