AI 10倍速CAE二次开发1:找到脆弱点,10倍速才有可能
AI的能力越来越强,作为一名工作十多年的CAE工程师,我自然也想把AI用在CAE上,提升仿真效率。从哪方面入手呢?我最先想到的是CAE软件的二次开发:我负责部门的二次开发,对这一块比较熟悉,AI写代码的能力也确实越来越强。
AI能提升多少效率呢?如果只能提升30%的效率,我会失望。我希望它能够带来数量级上的提升,10倍速二次开发。这真的可以实现吗?可以,但要找对二次开发的“脆弱点”,找到最限制二次开发速度的瓶颈,再解决它们。
AI时代之前,限制二次开发效率的问题主要有3个:学习门槛高、开发进度慢和版本兼容难。
学习门槛高
想做好二次开发,必须同时熟悉仿真流程和编程,这样的人不多,大多是CAE工程师。但CAE工程师往往没有系统学过编程,要掌握一种新的思维方式,难度较大。而且,编程命令的数量往往很多。以HyperMesh为例,首先需要掌握tcl或者Python编程语言,然后还要掌握HyperMesh的API命令。
我统计了tcl/tk 8.6 核心命令,其中tcl 101个,tk 71个,一共172个,看上去好像并不多。那么再看看HyperMesh的tcl API命令,分成Modify、Query和GUI三种类型,Modify 2049个,Query 649个,GUI 77个,一共2775个。再加上tcl/tk,一共近3000个命令,新手根本不知道该从哪里学起。
开发进度慢
这是二次开发的又一个瓶颈,主要有两个原因。一个是前面说的学习门槛高,直接导致掌握二次开发技术的人才数量稀少。这也是二次开发明明可以大幅提高工作效率,却无法普及的原因。像我们部门一百多人,也就只有一两个人会做二次开发。
另一个原因是开发时间少。我在部门负责二次开发,但和大多数做二次开发的工程师一样是兼职,大部分时间还是在做仿真分析。我有一个文档专门用来记录同事们的需求,往往积累了十几条还没有实现。
忙的时候,自己的任务都完不成了,哪还有时间做二次开发呢?
版本兼容难
就算公司有人做二次开发,做好版本兼容也不是容易的事情。比如我们公司原来的HyperMesh 脚本是基于14版开发的,后来有的同事升级到了2017版,有人升级到了2021版,结果不少脚本不兼容,无法使用。
而我们的工作流、项目时长、甚至分析结果的评估,都是建立在这些脚本上的,大大影响了项目进度。
好在AI时代来了,AI编程的能力越来越强,二次开发也迎来了新局面。AI是怎么解决这三大问题的?
学习门槛高:AI辅助学习
AI可以写代码,但基础知识还是要掌握,否则AI瞎编也看不出来,全程被AI牵着鼻子走。
即使是基础知识,学习门槛也不低,主要表现在两个方面:编程知识难以理解,以及编程命令数量太多。
不管是编程书籍,还是官方文档,往往晦涩难懂。遇到难点,我更喜欢让AI用通俗易懂的语言来解释。举个例子,对于新手来说,tcl的命令替换功能理解起来比较困难,当时学习这个概念时,细细琢磨了多个例子,才完全弄懂。
现在,我直接调用Claude Code的内置技能/eli5(Explain Like I'm 5,把我当做5岁小孩来解释),它会直接给我生成一个网页文档,图文并茂地解释这个功能。当然,如果你使用的AI工具没有这个内置技能,直接跟AI说“把我当做5岁小孩来解释”,或者“请用高中生能够理解的话解释”,都可以。
另一个难点是编程命令太多了,以HyperMesh二次开发为例,近3000个命令,新手根本无从学起。更好的方法是先学习高频命令,先写出几个基础脚本。其他不常用的命令,等需要的时候再学。
那么问题来了,什么命令是高频命令?直接让AI告诉我吗?可行,但是不太靠谱,高频命令应该从实际的脚本中统计出来。
我整理了自己开发的几十个脚本,再从网上收集了上百个高质量脚本,让AI一起统计。结果发现,覆盖80%使用场景的高频tcl/tk、HyperMesh API命令,只有51个,占总命令数量的1.7%。从2947 降低到51,大大降低了学习门槛。
可能你觉得51个命令还是挺多,还有个小技巧可以降低学习压力:分组。让AI按照不同的类型,对这些命令分组,每组只有四五个命令,很容易记住。限于篇幅,这里不展开介绍。如果你对统计方法和结果有兴趣,欢迎在评论区告诉我,我会再写篇文章详细介绍。
最后,再让AI以真实有用的脚本为主线,把这些命令串联起来,通过编写脚本去学习这些命令,而不是一个一个地零散学习,难度进一步降低。
开发进度慢:AI辅助开发
随着AI编程能力越来越强,vibecoding也流行起来了,让AI写脚本可以极大增强编程速度。
但是,AI编程也会出现一些问题,比如出现幻觉。我记得有一次同事的脚本运行出错,让我帮他看看怎么回事。公司的脚本基本上都是我写的,但是这个我没见过,就问他哪来的。他也不回答,反而是让我先看看。我看了下报错信息,说的是脚本调用了一个不存在的命令。我再次询问,他才告诉我,这是他让AI写的脚本。难怪,AI出现幻觉了,开始瞎编命令。
这种问题不少见,尤其是在二次开发领域。因为二次开发需要使用软件提供的API命令,但是这方面的资料太少了,喂给AI的语料不够,导致AI在这方面的能力较弱。
解决这个问题也有个小技巧,可以让有经验的工程师编写一套SKILL,告诉AI应该怎么去写这些脚本。另外,还可以把官方API 命令提前抓取下来,让AI在写脚本的时候去核对,如果AI用到的API 命令不是来自这里,就让它检索、重写。
版本兼容难:AI检查版本变更
人工查找哪个API 命令版本更新了,难度很大。毕竟公司有几十上百个脚本,一个脚本又有上百行,很难一个个查验。通常都是在脚本报错的时候,才被动发现API 命令变了。
这种大量文本的查找工作,AI很擅长。我抓取了HyperMesh tcl API从14版到2026版的所有命令变更记录,重新整理成文档:每个命令首次出现在哪个版本、每个版本中是否变化、如何变化。这个文档是给AI看的。
我把这个信息告诉AI,让它检查现有脚本中哪些命令因为版本升级而发生了变化。如果发生变化,是新增、修改、移除还是弃用?有了这些检查结果,就可以主动调整脚本了。
以2021版更新到2026版为例,两个版本之间有504个命令存在变化,约占命令总数的17%。
全量API命令(2775个)和版本(25版)数量过于庞大,这里只展示34个高频API命令和14、2017、2021、2026四个版本。
小结
AI时代的变化真的很快。有段时间,IT大厂的技术博客都在讨论MCP这门技术,我还教过这门课。但是,课程结束不到3个月,就很少有人讨论它了。现在,几乎每个月都有新模型、新技术来刷屏。
与其不断追新技术、新概念,不如挑出其中有用的,和自己的业务结合起来。我做的结合,就是AI 10倍速CAE二次开发。这是一个专栏,这篇文章是专栏的总论,后面我会继续分享技术细节。如果你也对这方面感兴趣,或者有什么希望我分享的,欢迎写在评论区。










评论0