CATIA Knowledge Pattern 知识工程阵列【转载】

前面的文章里介绍了UDF+List+Loop来实现一些非常规阵列复制,其功能是非常强大的,但是应用list也有一定的缺陷,即一旦需要更新List列表的内容,是需要我们手动去将几何元素加入进来,例如假如list中包含了N个点的元素,如果我们想要更改设计方案,重新布局点,增加或减少等都需要重新做list,这样会带来设计的一些不便,另外如果设计规则异常复杂,不是简单的线性逻辑关系,需要特定的if/else语句来控制,那么这些只靠list实现起来显然有困难,但是CATIA强大的知识工程模块同样有对应的方法来弥补这种缺陷。本文将介绍CATIA非常强大的“知识阵列”命令,可以通过编程语句实现随心所欲的控制。特别是对一些大型数据的建立非常有用,例如BIM中对建筑中的桥梁,道路、幕墙等复杂建模来说非常实用。

如下图所示的在两段不同的空间3D曲线之间各生成不同的点数目,然后分别对应点点连线,通过知识阵列功能可以实现点数的自动改变,可以实现直线的连接方式,比如头尾相连、交错相连甚至任何自定义规则的连接,改变曲线其余关联几何也同步变化;

CATIA Knowledge Pattern 知识工程阵列【转载】的图1

下面开始建模过程:

Step 1 : 首先打开数模,对两端曲线分别重命名为C1、C2,便于后续代码的编写

CATIA Knowledge Pattern 知识工程阵列【转载】的图2

Step 2 : 点的生成可采用“点在曲线上比例”,创建过程中需要一个参考曲线和一个参考点,所以除了上面的曲线外还需要两个参考点作为参照,如下,建立两个端点,分别命名为P1和P2

CATIA Knowledge Pattern 知识工程阵列【转载】的图3

CATIA Knowledge Pattern 知识工程阵列【转载】的图4

Step 3 : 打开知识工程阵列命令,在开始菜单下---知识工程模块—产品工程模板

打开命令后界面如下:

CATIA Knowledge Pattern 知识工程阵列【转载】的图5

CATIA Knowledge Pattern 知识工程阵列【转载】的图6

Step 4 : 循环控制代码编写

首先确定建模的思路,第一步要生成第一条曲线上的点,然后生成第二条曲线上的点,再通过点点生成直线,最后再循环重复此过程,循环中点位置时刻变化,直线也随之变化;

通过以上分析,最后循环生成的集合有三种,C1上循环的点,C2上循环的点,以及点点生成的直线,所以需要创建三个List,将这些过程中输出的元素全部存放在list列表中以便调用。

同时这三种循环几何集需要三个变量来控制变化,let p1(Point)表示将曲线C1上生成的点存储在变量p1中;同理创建p2,l ;

另外还有控制数量多少的整数型变量n,以及i

代码截图如下:

i=1

For i while i<=n   循环控制语句,表示从i=1一直循环到n结束

Set p1=CreatOrModifyDatum(“Point”,”output”,”Point1”,i)

括号后第一个代表p1变量类型,第二个表示特征元素输出的对应几何图形集,第三个代表存放的list名称,应该与特征树上的名称一致,最后是变量i

P1=pointcurveRatio(,,,,) 对应语句可在下面字典中查询到,括号后第一个是代表参考曲线,第二个是参考点,第三个是比例,可用变量i控制,最后是方向(true正向,false为方向)

同理创建点p2 和 直线l

创建完成后效果如下:

CATIA Knowledge Pattern 知识工程阵列【转载】的图7

当然可以随时去更改代码,比如更改直线连接顺序,可以头尾相连或者以任意形式连接点

或者更新点的个数n,或者给直线添加颜色或者对其批量命名等等,这一切都可以加入到代码中;此功能相比较于list而言不需要重新去add或者remove特征元素,其list是一种动态变化的,随语句控制变化的,后续可以在此基础上生成其他的UDF特征,例如圆柱体等,而且一旦数量更改,不需要去重新编辑list,因为list在阵列中是动态的,系统会自动去完成更新的

默认 最新
当前暂无评论,小编等你评论哦!
点赞 评论 收藏 2
关注