自动化项目的可行性通常取决于投资回报率,您可以从制作脚本或工具所需的投入中获得回报。这种收益通常反映在一段较长的时间内,工具的使用频率以及它如何能够简化它所建立的相关任务。
计算机辅助工程(CAE)是一个严重依赖于计算系统及其性能的领域。这大大增加了自动化 - 帮助我们更快速地执行重复和耗时的任务。
如果我们真的不担心长期的投资回报率呢?如果我们专注于手头的任务 - 制定即时解决方案,并完成它们,而不必担心:(a)长期利益,(b)可重用性? 虽然长期ROI的相关性,CAE工程师在日常工作中遇到了很多暂时的问题 - 这些问题可以通过使用几行代码编写脚本来解决。
根据我个人的经验,我看到团队成员在一些场景下苦苦挣扎,几分钟后编写几行代码可能为他们节省了几个小时的工作时间。当然,这可能会或可能不会在将来有用,但嘿,我们仍然让我们的生活变得轻松!
这只是完全利用我们使用的计算能力 - 而且工作更智能。显然,学习一些编码和脚本有助于!
让我们来讨论一个CAE工程师常常会遇到的非常简单的情景:我们需要在一些FE组件(比如100+)之间创建大量的1D-rigid,
接近问题:
现在,我需要花费最少的时间(最好几分钟)来创建一个稳定的脚本,我可以使用它来减少此手动任务所需的时间。我们来回顾一下一些注意事项:
现在完成了,我们可以开始编码!以下是简要中的算法:
以下是以下代码:
proc RigidCreateWithElements {} {
#initialising to something other than null, so that the loop starts#
set selected_elem_ids 0 while {$selected_elem_ids!=""} { #asking the user to select some elements as input#
*createmarkpanel elems 1 "Select element(s) from both components"
#Store selected element ids to a list#
set selected_elem_ids [hm_getmark elems 1] #checking if user has selected any elements at all#
if {$selected_elem_ids==""} { #if nothing is selected, continue to next iteration of the loop#
#where the while condition exits the loop#
tk_messageBox -message "Exiting rigid creation tool"
continue;
}
#Checking if a collector named "rigids" exists#
if {[catch {*collectorcreateonly comps "Rigids" "" 7}]} { #if collector already exists, make it current#
*currentcollector component "Rigids"
}
#getting list of all nodes from the selected elements#
hm_createmark nodes 1 "by elem id" $selected_elem_ids
set node_ids [hm_getmark nodes 1]
#creating the 1D-rigid#
#1st node from the list is fed as the independent node id#
#rest of them are supplied as dependent nodes#
eval *createmark nodes 1 [lrange $node_ids 1 end]
*rigidlinkwithset [lindex $node_ids 0] 1 0 123456
}
}
结果看起来像这样:
现在,您可以更轻松地快速创建任意数量的装备。虽然这是一个相当基本的应用程序,但可以稍后修改,稍后可能会在某些其他情况下找到使用。尝试编写这样的小脚本以最大限度地提高效率,甚至可以对让其他人更容易生活的业务产生兴趣。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删