前面已经给大家详细的讲述了UDF的创建方法,通过UDF可以大大减少我们重复建模的次数和时间,但是如何将UDF进行批量的复制则需要我们用到另外一种命令Loop来实现。例如下面这个实例,在螺旋线上均匀分布了35个球体,而且从上至下球体的大小逐渐增大;显然通过UDF可以实现不同位置的单个球,但是要一次实现所有的球阵列复制出来,就需要我们结合Loop的命令实现,本文将详细介绍Loop的创建过程。
Step 1 : 首先创建需要用到的参数:Number(控制球体的个数),Ratio(球体在曲线的位置),R(球体的半径)
创建输入几何图形: 螺旋线
创建输出的UDF几何图形:点(点在曲线上),球面(点和半径),封闭曲面实体化
并将比例Ratio和球径R分别用公式将参数一一关联起来
Step 2 : 创建UDF模板,点击特征树上的 点、球面、球体以及参数Ratio和R作为内部组件,直到右侧仅出现输入组件螺旋线说明创建成功
同时注意切换到参数对话框,将Ratio和R务必激活为Yes状态,创建完成后可以修改UDF属性名称,特征树知识模板组下面会出现刚才创建的UDF特征,其控制参数也在下面
Step 3 : 创建Loop语句 :
切换到知识工程顾问模块下面,如下所示,打开Loop命令
如下图所示,将对应的参数加入列表
1. Input列表:将UDF特征模板和Number参数加入进来,注意所有Loop语句中出现的变量参数需要加入至列表中
2. Input Name : 可以自定义修改Input列表中的出现的参数名称,且名称必须与下面语句引用的完全一致,否则出错。
3. Context : 为复制后的UDF特征存放的几何集名称,即阵列后的实体全部在该几何集特征树下。
4,From To : From 后为变量的初始值或者起始值,To后为变量的终值,中间步进增量 为1,为了保证与Number进行实时更新,需要用f(x)将Number用公式关联起来。
5. Loop 循环语句编写: (本文最关键的地方)
第一行: ball_$i$ isa Ball
ball_$i$ 是表示生成的UDF特征实体的属性名称,i是变量(在Loop中i是唯一约定的变量),例如本例中将会生成如ball_1、ball_2、ball_3…ball_35,注意Loop中的变量i必须要用$i$ 来引用,相当于将字符i变量化
Isa 为固定语句,不可修改,其后接UDF模板的名称
Ball需与创建的UDF模板属性名称一致,如果Input name中对UDF名称修改了,则应与Input name中保持一致。
第二行和末行: 中间控制参数的语句编写都必须有{}
第三行: R=1mm*(1+0.1*$i$)
表达式含义为球体的半径将在1mm基础上以0.1递增,注意因为R是带单位的参数,所以在创建表达式过程中必须右边也带参数,所以需要将mm单位带上
第四行:Ratio=1*$i$ / Number
表达式含义为球心在曲线的百分比位置以1/35、2/35…1。由于Ratio本身定义的就是实数类型,所以无需加上单位
创建完成后确认即可实现图一的效果,且球的数量,大小都可以同步更新变化。
但是需注意,更改完参数后还需要再次打开Loop然后再关闭才可看到更新的变化。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删