教你使用CST VBA宏实现半自动参数化建模
CST 中创建多个结构一致的模型,但同时又需要对每个模型某些尺寸使用不同的参数化控制的情况下,可以用CST VBA 宏半自动建模来达到简化操作目的,单个模块越复杂,此方法越有其优势。
VBA 实现半自动建模的主要思路是
1、使用重新创建模型办法代替平移复制操作
2、使用VBA 宏创建模型代替从头手动创建模型。
VBA 半自动建模的主要步骤:
1、首先,您需要参数化建立一个模型,建议您完全参数化建立此模型。
2、将此模块创建历史列表转化为VBA 宏。
3、移动局部坐标系到需要再次创建相似模型的地方
4、对此VBA 宏稍作修改,使用此宏创建新的模型
5、重复3.和4.,创建其余模型。
6、依次类推。
下面我们将通过一个简单方块创建的例子来说明如何使用 VBA 半自动建模的方法。假使您对CST VBA 宏语言已非常熟悉,那么您将很容易融会贯通。如果您从未使用过CST VBA,也不必担心,通过下面简单的例子,相信您能很快入门这种方法。
首先我们参数化建立一个方块,各参数设置如下图中给出。
打开历史树列表(History List),你可以看到,所有的操作都记录在此列表中,包括一些误操作。为此,我们建议您在建立模型时,尽量使操作能一步到位,不要在历史列表中留下太多无用的操作记录,当出现误操作时,请打开历史列表,选择相应的错误操作,按Delete 按钮将其删除,并按Update 更新列表。这样建立的模型才是“干
净”的,便于我们用来生成VBA 宏。
要生成 VBA 宏,你需要先选中历史列表创建此模型的所有操作(按Shift 可多行选择,操作同Word)。本例中,只有1 行。然后点击Macro…按钮,在弹出的对话框中为此宏取一个名字,本例中为Brickmacro1:
点击 OK 按钮后,CST 会自动将VBA 宏用自带的宏编辑器打开,如下图中所示。
转到 CST 微波工作室界面下,打开Macros 菜单,您可以看到在此菜单最后,多出一项局部宏Brickmacro1:
使用 CST 平移操作(Transform-Copy)可实现复制原模块到指定位置的目的。这里换一种思路,我们移动坐标系到指定位置,然后重新创建一个模块,同样可实现上述目的。为此,我们激活局部坐标系,并移动到相应位置。
本例中为u 方向平移3:
下面来说明如何用刚才创建的宏来完成方块的创建。首先转到 VBA 编辑器界面,如下图。将solid1 修改为solid2,这样做是为了使宏创建的宏与已经创建solid1 不重名(只要保证VBA 宏最终创建的模块与已有模块没有重名即可,中间步骤的命名无所谓),此外可对指定参数进行修改,本例中将原先的参数a 改为参数a1。点击保存。
注意,不要使用 VBA 编辑器中RUN 来运行此宏,这样创建操作不会被纪录到历史列表中!
回到 CST 微波工作室界面,从Macros 菜单运行宏Brickmacro1,弹出对话框要求输入新参数a1 的值,本例中输入1.5,点击OK。可以看到,新的方块模型创建完毕了。新参数a1 也存在了变量列表内。
现在你可以根据不同参数 a 和a1 来控制模块solid1 和模块solid2 了。在参数列表中将a 改为0.5,将a1 改为2.5,更新后,您可以看到,它们只随着自己的参数变化,互不影响:
用同样的方法,可以继续创建其他位置方块模型。
这种使用 VBA 宏半自动创建模型的方法是处理相同结构模型的连续创建,并有要求模型具有不同的参数控制时的一种选择,尤其对于模型结构复杂问题,更为高效。
最后,总结一下使用此方法的几点注意事项:
1、参数创建第一个模型(块)时,尽量一步到位。保证历史列表“干净”。
2、VBA 宏最终创建的模型名不能和已有的模型名重复。
3、不要直接从 VBA 编辑器中直接运行宏,而总是从Macros 菜单运行宏。
效率真高……
挺不错的,嘿嘿。
我顶啊-------------
学习了,谢谢楼主
此贴是精华,顶