找回密码
 注册
Simdroid-非首页
查看: 92|回复: 1

[08.其他] 快速指南:几何脚本的创建

[复制链接]
发表于 2019-2-15 10:53:07 | 显示全部楼层 |阅读模式 来自 江苏南京
本帖最后由 天洑软件 于 2019-3-27 17:58 编辑


录制/创建几何建模的脚本是件很酷的事!它能够让你创建出高度定制的几何部件——这些部件通常不能很方便的在普通图形界面中创建出来。市场上大部分的CAD工具都至少会提供一些基本的小程序或者脚本,使用户能够自动的重新生成几何或者使用调用宏运行重复的任务。通常,这些脚本是可以录制的,或者可以由用户在某种专有的编译环境中手动创建。这类有录制脚本功能的软件工具有SpaceClaim、FreeCAD、在线CAD平台Onshape等。


对于我们的CAD建模和优化平台CAESES来说,这种自动化的理念10年之前就有了。CAESES是一个完全基于命令和面向对象的结构,一直致力于脚本编写及几何自动创建的工作。在这个面向对象的结构之上,我们创建了一个直观的图形用户界面。


这篇快速指南概述了CAESES中的建模理念和编程功能。



对象类型和命令

首先,我们来快速浏览一下CAESES的基础:基本上所有东西都是一个特定类型的对象。譬如,你创建了一个名为“P1”的3D点,它会出现在对象树并且它的类型是F3DPoint(所有的类型都以“F”打头)。选中这个点之后,你可以设置它的X、Y、Z坐标。


然而,如果你点击了编辑域旁边的“帮助”按钮,你就能看到在后台实际触发了哪个命令。在我们这个案例中,它采用了“setX()”这个命令。换句话说,一旦你为“X”设定了一个值,后台就执行了“p1.setX(0.5)”(为P1点的X坐标赋值0.5)这个命令。


为一个点设置X坐标:在后台显示触发的命令

参考手册

在软件的参考手册Documentation中有每个几何类型的命令和类型层次结构的说明文档。只需单击对象编辑器中的类型图标,即可在主窗口中显示文档。它包含了类似于设置X坐标这种类型的命令以及一些其他功能的命令。


查找类型文档以查看所有可用的命令

层次结构

正如前面提到的,CAESES是一个面向对象的平台——类似于其他一些包含类结构的编程语言。子类型可以从父类型派生属性和命令。譬如,圆(FCircle)是一种特殊类型的曲线(FCurve)。其他类型的曲线,如贝塞尔曲线或者插值曲线,所有这些专用曲线都可以使用从父曲线类型派生的命令。


譬如:你可以使用“getLength()”这些命令来计算任意曲线的长度,计算曲率,抓取曲线的位置,或者寻求曲线的起点和终点。所有这些命令都来自父类型“FCurve”,并且它们适用于所有派生的曲线类型。另一方面,“getRadius()”命令则只适用于圆。


从父类型FCurve派生的圆的曲线命令列表

在GUI中使用命令

目前为止,我们知道了去哪儿找到这些命令。那么怎么使用它们呢?首先,在GUI中我们可以在任何编辑器中直接定义公式,这里就可以使用这些类型的命令。


表达式的简单示例:使用圆弧半径作为所选点的输入

另外也可以通过CAESES的控制台来启动命令。选中对象,输入”.”及相关命令,譬如,“设置半径为0.5”(“.setRadius(0.5)”)命令就可以设置所选中圆的半径。或者,如果没有选择任何对象,就需要使用全名加命令,譬如,“circle.setRadius(0.5)”.这种模式也适用于CAESES批处理模式编写的脚本,即非GUI模式下的操作。


可以使用控制台来设置诸如半径之类的属性

特征定义编辑器

CAESES提供了一个创建脚本的环境,提供全面的调试功能。在编辑器内可以使用平台的整个命令集定义相关的功能。请参阅下面的屏幕截图,其中创建了名称为“inlet”的简单圆弧。


CAESES脚本编辑器:创建一个叫“inlet”的圆弧,半径R由用户自己输入

在编辑器的“Arguments”选项卡中预先定义变量“R”,它由用户自己输入。此代码片段的结果在下一个屏幕截图中给出,其中此功能定义的实例显示在对象树中:


结果:用脚本编辑的圆弧


对象“test”是特征定义“myComponent”的一个实例,而且唯一的输入是半径“R”。这个特征定义可以显示在对象树里,在节点“Feature Definitions”的正下方,并可以导出为文件,在其他工程文件中调用。它可以随时进行修改,所有已创建的实例都将自动更新。


控制语句

与对象树中的交互式几何设置相比,在这里你可以使用各种控制语句,实现更丰富的功能。它会带来更高的灵活性,并允许你创建任何类型的复杂几何图形。CAESES提供以下语句:

●  If/else

●  While

●  Loop

●  For each

●  Switch


几何脚本示例:控制语句,如循环和if语句


数学函数:

在CAESES的参考手册中,有一栏“Global Commands”,这里边包含一些数学函数。这些函数也可以在你创建自定义功能时使用。典型的有:

●  sin(), cos(), tan(), atan()
●  ln(), log()
●  crossproduct(), dotproduct()
●  floor(), ceil()
●  min(), max(), modulo()
●  pow(), sqrt()
●  rand()

I/O文件处理

使用CAESES的特征编辑器,你不但可以脚本化几何体生成过程,还可以利用文件I/O方法来写出或读入文件。这是实现定制化导入和导出格式的一种简便方法。


以定制格式将几何图形导出到文件中的功能定义


外部过程

类似于典型的编程语言,在这里也可以启动外部进程。等待该进程终止,可以继续进行下一步的操作,例如收集结果数据等。以下是触发外部进程的示例:


运行一个外部进程并定义相关参数和工作目录


批处理模式

除此之外,脚本和自动化的功能还可以应用在CAESES的批处理模式中。这种模式不需要启动GUI,它允许用户将强大的几何引擎插入到现有设计流程中,可以通过简单的脚本调用生成新的几何模型。


一个CAESES工程文件中的设计参数可以通过set()命令来更改。下面是一个典型的批处理模式下CAESES的控制脚本:


CAESES批处理模式的脚本文件

运行批处理模式调用脚本的语句是“CAESES_crt.exe turbocharger.fsc”.

1.  打开工程文件(例如一个参数化的涡轮增压器模型)

2.  根据给定的值来更改参数(比如由一个第三方优化软件来给定)

3.  输出新的几何到现有工程目录

以上是对CAESES脚本语言总体概念和主要特征的概述。对于资深的CAESES用户来说,这些脚本功能是必不可少的,这也使得CAESES成为一个更强大有趣的工具。



关注公众号“天洑CAE技术源”了解更多相关资讯


您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-20 03:56 , Processed in 0.031068 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表