达索系统使用教程,达索系统简介

首页 > 实用技巧 > 作者:YD1662023-06-18 15:52:54

本文档的目的在于通过具体实例帮助用户更好得理解达索系统3DEXPERIENCE平台中EKL语言的用法。

EKL全称Enterprise Knowledge Language(企业知识语言),是在V5/V6/3DEXPERIENCE环境下基于知识工程的一种脚本编程语言,属于进程内的访问,与CATIA/3DEXPERIENCE软件同时执行,它的目的是让设计工程师在设计过程中,在确定变化规则的前提下,更快速高效得让程序自动执行重复性操作。

EKL具有可移植、面向对象、不需要编译、自动化、能直接操作模型数据对象等特点,可以用作在数据库中搜索对象、浏览不同结构、遍历统计汇总、创建产品和PLM对象、导出数据至Excel或Xml中、读取或写入产品属性等用途。

基础语法

变量声明:

使用 let 关键字(类型)声明变量,如:

let x(real)

let y(Integer)

类型:

所有类型都为基本类型ObjectType 的派生类型。从ObjectType往下派生出Feature特征类型与Literal字面类型。

Feature特征类型提供了每个对象上可用的属性列表(名称、用户信息、子项),以及可应用到每个对象的方法列表(访问动态属性、查询、修改等)。

Literal字面类型表示普通字面类型(如长度、实数、整数等),无法具有属性。且提供有限的现有字面类型列表。

达索系统使用教程,达索系统简介(1)

图1. Object Type类型关系图

功能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)

图2. 可查询类型功能、属性的EKL语言浏览器

控制流语句

条件语句:

EKL使用if 、else if、 else结构判断条件是否为真:

if conditio-A

{ statementsA }

[else if condition-B

[ { statementsB } ] ] ...

[else

[ { statementsC } ] ]

循环语句:

循环语句重复执行直到满足特定条件。其也可执行循环直到某个表达式赋值为 false。在这种情况下,执行终止。

有两种可用的循环语句:

第一种执行次数取决于列表中的数量,且不可自定义起始与终止条件。

For <variable name> inside <list variable name>

<instruction>

第二种执行次数取条件后设置的次数,可以自定义起始与终止条件。

For <variable name> while <condition>

<instruction>

循环中可使用Break、Continue、Exit跳出或继续或结束程序。

Break:结束当前循环,执行循环外语句。

Continue:结束当前条件,继续执行循环。

Exit:结束程序,不再执行剩余语句。

创建对象

创建对象时可使用下列四个功能:

new:支持创建的类型最多,Product,3Dpart,几何体,几何图形集,各类AEC类型对象,点、线、面等对象,都可用new功能创建。

视频1.new函数创建几何对象

视频2. new函数选择类型&创建对象

CreateOrModifyDatum:用于创建无参的点、线、面、轴系等Feature对象。

视频3. CreateOrModifyDatum函数创建几何对象

CreateOrModifyTemplate:用于零件内部使用Knowledge Pattern循环创建特征模板时使用。

视频4. CreateOrModifyTemplate函数实例化特征模板

InstantiateTemplate:常用于产品级循环创建产品模板时使用。

视频5. InstantiateTemplate函数实例化产品模板

查询与浏览对象

在进程中常用的查询相关函数有:

Query返回的结果是List,其他两个是UndefinedType。

Query与Find函数支持条件查找,比如搜索总节点中带有某些关键字的零件。

视频6. Query函数搜索条件对象

EKL另外也支持使用CreatePLMQuery函数查询数据库中文件。

当需要浏览模型,并获取上下文对象时可以使用如下属性:

Children属性返回List,常用于获取Product下所有Instance对象。

达索系统使用教程,达索系统简介(3)

图3. 通过Children函数获取父级下所有子级List

Reference属性:通过获取Instance对象,使用.Reference属性,返回此实例的参考模型。

InstantiatedBy属性:当获取对象是Reference时,可以通过此属性获取此参考模型的所有实例List。

Owner属性:常用于查询当前Feature的上一级Feature(模型特征,实例,参考等都属于Feature)。

达索系统使用教程,达索系统简介(4)

图4. Owner与InstantiatedBy属性关系图

灵活使用Query加Children、Reference、Owner、InstantiatedBy属性,可完整浏览整棵模型结构树,完成数量统计,属性提取,干涉检查等多种工程应用。

文件交互

EKL支持与TXT、EXCEL、Xml进行文件读取与写入交互操作。

TXT常用函数有:

通过OpenTextFile函数访问本地磁盘文件,file->Read()读取文件内信息。file->Write()将信息写入本地磁盘文件。最后通过file->Close()关闭文件,释放内存。

EXCEL常用函数有:

通过CreateSheet函数访问本地磁盘上EXCEL文件,再通过CellAsReal、Boolean、String分别读取EXCEL中数值、布尔、字符串类型数据,完成数据获取。

当需将数据写入EXCEL内时,使用SetCell()函数,按照SetCell(rowIndex, columnIndex)先行后列顺序完成写入。

总结

达索系统使用教程,达索系统简介(5)

图5. EKL与Automation、CAA代码量对比图

达索系统3DEXPERIENCE平台中常用的开发工具有EKL、Automation、CAA。

EKL因为是脚本语言,代码量最少,函数接口较多,设计工程师最容易学习,通常几行代码,就能完成一个简易功能。而Automation虽然可支持VBA、C#、VB.NET多种开发语言,但是往往平台的新功能、重要功能的接口并未开放给Automation。CAA因其专业性与复杂性,适合于公司程序开发团队,而不适合于设计工程师使用。

如上所述,这三种开发工具中,EKL为最适合设计工程师掌握和使用的开发工具。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.