Workbench 二次开发
从事 Workbench 二次开发已经有很长一段时间了,当然取得了一定的成果。我发了几
篇关于 Workbench 二次开发的博客
(https://blog.csdn.net/weixin_42182348/article/details/85092144),看到有的道友蛮感兴趣
的。这次就再次放出点“干货”来。
用过 Workbench 进行分析的大佬们都知道,要进行分析在界面导入要设置的材料和待
分析的模型是必不可少的。那要实现 Workbench 的自动化分析(即 Workbench 二次开
发),就要有相关的技术去实现模型和材料的自动导入。
研究过 Workbench 二次开发的道友们可能知道,通过录制宏文件就可以获得导入材料
和模型的代码了,接下来我将给不太了解的道友们演示下如何录宏获得导入材料和模型的
代码:
1、 打开 Workbench.
2、 单击指定路径下的 Recond Journal… 按钮,就可以录宏了。
3、 接下来,操作软件导入材料和模型,创建一个静力分析。
4、 查看刚才录制的宏文件。
# encoding: utf-8
SetScriptVersion(Version="15.0")
fileType1 = GetFileType(Name="EngineeringData")
ImportFile(
FilePath="F:/TKLTOOLS/application/618codecollection/AddMaterail/General_Material
s.xml", //导入材料路径
FileType=fileType1)
template1 = GetTemplate(TemplateName="Geometry")
system1 = GetSystem(Name="Engineering Data")
system2 = template1.CreateSystem(
Position="Below",
RelativeTo=system1)
geometry1 = system2.GetContainer(ComponentName="Geometry")
geometry1.SetFile(FilePath="C:/Users/Administrator/Desktop/ModelBase/ModelFo
r618Show/ModelFor618Show/newmodel/1408_x_t.prt") //导入模型路径
template2 = GetTemplate(TemplateName="Mechanical Model")
system3 = template2.CreateSystem(
Position="Right",
RelativeTo=system2)
component1 = system3.GetComponent(Name="Engineering Data")
component2 = system1.GetComponent(Name="Engineering Data")
component1.ReplaceWithShare(
TargetSystem=system3,
ComponentToShare=component2,
SourceSystem=system1)
component3 = system3.GetComponent(Name="Geometry")
component4 = system2.GetComponent(Name="Geometry")
component3.ReplaceWithShare(
TargetSystem=system3,
ComponentToShare=component4,
SourceSystem=system2)
template3 = GetTemplate(
TemplateName="Static Structural",
Solver="ANSYS")
component5 = system3.GetComponent(Name="Model")
system4 = template3.CreateSystem(
ComponentsToShare=[component1, component3, component5],
Position="Right",
RelativeTo=system3)
看到这里,想必有些道友已经完全搞清楚如何导入我们自己的材料和模型了吧。没
错,我们不用花很大的精力去搞清楚每一句到底是什么意识。我们只要将里面的模型路径
和材料路径换成我们自己的就可以导入自己的模型和材料了。
我们都很清楚,知道如何生成导入模型和材料的宏文件之后,我们确实应该考虑下如
何实现自动的导入模型和材料呢?看过我的关于 ANSYS 开发技术的道友们可能想到了能
不能通过在调用 Workbench 的时候,传入相关的参数来实现自动导入模型和材料呢?恭喜
你,Workbench 二次开发技术你已经成功入门了。接下来,我将阐述如何通过命令行参数
调用 Workbench 自动创建分析工程、导入模型和材料。
看过我上传的 ANSYS Customization toolkit 开发技术文档
(https://download.csdn.net/download/weixin_42182348/10723385)的,应该知道这个是摘自
其中一个文档的一部分内容。描述的就是如何通过命令行参数调用 Workbench 的。
感兴趣的可以去好好研究下,接下来直接上代码。
if (wbjn_path!="")
{
try
{
string path = prepare.AnsPath + "/Framework/bin/Win64/RunWB2.exe -R " +
wbjn_path + " -I";
WinExec(path.c_str(), WM_SHOWWINDOW);
}
catch (int e)
{
cout << "the file to create simulation type is incorrect,pleace ckeck and
try later!" << endl;
}
}
我是用 C++实现的,其他语言稍微做些改动就可以了。我一共穿了四个参数:
RunWB2.exe 的路径、-R 表示在调用 workbench 的时候会去执行脚本文件、紧跟-R 是刚才
录制的宏文件的路径、-I 表示已交互的方式调用 Workbench 区别于 B(批处理方式,没有
界面)。
看了这篇再加上我原来发表的一篇,Workbench 的二次开发就可以说是入门了。再参
考下我上传的示例代码,大家就可以对 workbench 进行一些自己想要的开发了。
有问题的道友,可以通过我的邮箱联系我。zwp_154979@163.com