VBA 与并行计算|VBA/OLE 辅助分析
1
Faq-060110: 使用 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 宏。
2
CST 工作室套装™–常见问题解答 FAQs
要生成 VBA 宏,你需要先选中历史列表创建此模型的所有操作(按 Shift 可多行选择,操作同 Word)。本例
中,只有 1 行。然后点击 Macro…按钮,在弹出的对话框中为此宏取一个名字,本例中为 Brickmacro1:
点击 OK 按钮后,CST 会自动将 VBA 宏用自带的宏编辑器打开,如下图中所示。
VBA 与并行计算|VBA/OLE 辅助分析
3
参数
转到 CST 微波工作室界面下,打开 Macros 菜单,您可以看到在此菜单最后,多出一项局部宏 Brickmacro1:
使用 CST 平移操作(Transform-Copy)可实现复制原模块到指定位置的目的。这里换一种思路,我们移动坐标
系到指定位置,然后重新创建一个模块,同样可实现上述目的。为此,我们激活局部坐标系,并移动到相应位置。
本例中为 u 方向平移 3:
4
CST 工作室套装™–常见问题解答 FAQs
激活局部坐标系
(WCS)
下面来说明如何用刚才创建的宏来完成方块的创建。首先转到 VBA 编辑器界面,如下图。将 solid1 修改为
solid2,这样做是为了使宏创建的宏与已经创建 solid1 不重名(只要保证 VBA 宏最终创建的模块与已有模块没有重
名即可,中间步骤的命名无所谓),此外可对指定参数进行修改,本例中将原先的参数 a 改为参数 a1。点击保存。
注意,不要使用 VBA 编辑器中 RUN 来运行此宏,这样创建操作不会被纪录到历史列表中!
保存
不能重名
不要使用此处的 RUN!
将参数 a 改为 a1
回到 CST 微波工作室界面,从 Macros 菜单运行宏 Brickmacro1,弹出对话框要求输入新参数 a1 的值,本例中
输入 1.5,点击 OK。可以看到,新的方块模型创建完毕了。新参数 a1 也存在了变量列表内。
VBA 与并行计算|VBA/OLE 辅助分析
5
现在你可以根据不同参数 a 和 a1 来控制模块 solid1 和模块 solid2 了。在参数列表中将 a 改为 0.5,将 a1 改为
2.5,更新后,您可以看到,它们只随着自己的参数变化,互不影响:
6
CST 工作室套装™–常见问题解答 FAQs
用同样的方法,可以继续创建其他位置方块模型。
这种使用 VBA 宏半自动创建模型的方法是处理相同结构模型的连续创建,并有要求模型具有不同的参数控制
时的一种选择,尤其对于模型结构复杂问题,更为高效。
最后,总结一下使用此方法的几点注意事项:
1、 参数创建第一个模型(块)时,尽量一步到位。保证历史列表“干净”。
2、 VBA 宏最终创建的模型名不能和已有的模型名重复。
3、 不要直接从 VBA 编辑器中直接运行宏,而总是从 Macros 菜单运行宏。
有关 VBA 语言的更多内容,请查阅 CST 工作室套装丛书 2《CST 工作室套装™ 2006 – 高级概念》或 CST 在线
帮助。