当前位置: 首页 > news >正文

Phi-3-mini-128k-instruct辅助3D设计:根据描述生成SolidWorks宏命令思路

Phi-3-mini-128k-instruct辅助3D设计:根据描述生成SolidWorks宏命令思路

1. 引言:当AI遇到CAD设计

如果你是一名机械工程师或者产品设计师,每天的工作是不是都离不开SolidWorks?画草图、拉伸切除、打孔、阵列……这些操作重复又繁琐。尤其是当你接到一个需求,要画一个“带四个均布沉头孔的法兰盘”或者一个“侧面开有腰形槽的支架”时,你脑子里得先想好建模步骤,然后一步步在软件里点选操作。

有没有想过,如果能像说话一样告诉电脑“我要一个什么零件”,它就能自动帮你把建模思路甚至代码都整理出来,那该多省事?今天,我们就来聊聊怎么用一个小巧但聪明的AI模型——Phi-3-mini-128k-instruct,来充当你的“CAD编程助手”。它不能直接打开SolidWorks帮你画图,但它能听懂你对零件的自然语言描述,然后给你输出实现这个零件的SolidWorks宏命令(VBA)的编程思路,甚至是伪代码。

这就像你身边坐着一个经验丰富的编程老手,你告诉他你的设计意图,他帮你把实现这个意图的代码框架搭好。虽然最终还需要你把代码“翻译”成可执行的VBA并调试,但这个思路的启发价值巨大,能极大提升自动化脚本编写的效率,把工程师从重复劳动中解放出来,去专注于更核心的创新设计。

2. 为什么是Phi-3-mini与SolidWorks宏?

在深入具体操作前,我们先简单理解一下这两个核心工具能擦出什么火花。

2.1 SolidWorks宏:自动化的钥匙

SolidWorks宏,本质上是一段用VBA(Visual Basic for Applications)编写的脚本。它能记录你在软件界面上的操作,也可以被编辑来执行更复杂的逻辑。比如,你可以写一个宏,让它自动创建一个指定直径和厚度的圆柱,然后在上面打一圈孔。对于需要频繁创建相似结构(如标准件库、系列化零件)的情况,宏是提升效率的神器。

但问题在于,不是每个工程师都熟悉VBA语法和SolidWorks的API(应用程序编程接口)。API就像软件提供给外部程序的一套操作说明书,非常庞大和复杂。让工程师从头学起,成本太高。

2.2 Phi-3-mini-128k-instruct:理解与翻译的桥梁

这就是Phi-3-mini-128k-instruct出场的时候了。这个模型有几个特点特别适合我们这个场景:

  • 小巧高效:对硬件要求相对不高,部署和运行起来比较方便。
  • 指令跟随能力强:它经过大量指令微调,擅长理解用户的意图并给出结构化的回应。
  • 长上下文:128k的上下文长度,意味着它能处理和理解相当长的技术描述和对话历史。

我们的核心思路就是:让AI充当“翻译官”。它将工程师用自然语言描述的零件(输入),“翻译”成用SolidWorks API概念和VBA编程逻辑组织的思路(输出)。它生成的不是直接可运行、毫无错误的最终代码,而是一个高质量的、可供工程师参考和完善的“编程蓝图”或伪代码。

3. 实战演练:从描述到宏命令思路

光说不练假把式。我们用一个经典的机械零件——带孔法兰盘——作为例子,全程走一遍。

假设你是工程师,你需要创建一个法兰盘,它的规格如下:

“创建一个法兰盘,外径100mm,内径30mm,厚度10mm。在法兰盘上均布6个通孔,这些孔的圆心位于直径80mm的螺栓圆上,孔径为10mm。”

3.1 第一步:与AI对话,明确任务

你不能直接对AI说“给我写个SolidWorks宏”。你需要设定一个清晰的对话场景和角色,这样AI才能更好地理解任务。你可以这样开始与Phi-3-mini的对话:

你是一个资深的SolidWorks二次开发专家,精通VBA和SolidWorks API。我将用自然语言描述一个零件的几何特征和尺寸,请你根据我的描述,输出创建该零件的SolidWorks宏命令的编程思路、关键API调用顺序以及伪代码。请注意,你不需要生成绝对精确、可立即运行的代码,重点是提供清晰、逻辑正确的实现框架和思路。

接下来,给出我们的零件描述:

请为以下零件生成建模思路: 零件:法兰盘。 特征: 1. 基体:一个圆形盘,外径100mm,内径30mm,厚度10mm。 2. 孔特征:在盘面上有6个均布的通孔。所有孔的中心位于一个直径为80mm的虚拟圆(螺栓圆)上。每个孔的直径为10mm。

3.2 第二步:解析AI的输出——编程思路

一个训练良好的Phi-3-mini模型可能会给出类似下面的回复。我们来拆解一下,看看它提供了哪些有价值的信息:

AI可能提供的思路摘要:

  1. 初始化与文档设置:启动SolidWorks应用程序,创建新的零件文档,并设置好单位系统(如MMGS)。
  2. 创建草图1(法兰轮廓)
    • 选择前视基准面,新建草图。
    • 绘制两个同心圆。第一个圆直径100mm(外径),第二个圆直径30mm(内径)。
    • 使用SketchManagerCreateCircle等方法。
    • 添加“同心”几何关系约束两个圆的圆心。
  3. 创建特征1(拉伸凸台)
    • 退出草图,使用FeatureManagerFeatureExtrusion2方法。
    • 参数:选择草图1,给定深度10mm,方向为单向。
  4. 创建草图2(螺栓孔位置)
    • 选择法兰的一个端面作为草图平面。
    • 绘制一个构造线圆(直径80mm),用于定位。
    • 在该构造圆上绘制一个点(或一个小圆),作为第一个孔的中心。
    • 使用SketchManagerCreateCircleCreatePoint等方法。
    • 为该点添加与构造圆的“重合”约束。
  5. 创建特征2(第一个孔)
    • 退出草图2(实际上,通常直接在该草图上绘制孔轮廓并拉伸切除。更优思路是:在草图2上,以该点为中心画一个直径10mm的圆,然后进行拉伸切除)。
    • 使用FeatureManagerFeatureCut方法,完全贯穿。
  6. 创建特征3(圆周阵列)
    • 使用FeatureManagerFeatureCircularPattern方法。
    • 参数:要阵列的特征是上一步创建的孔特征,阵列轴选择法兰的圆柱面或临时轴,实例数6个,等间距360度。
  7. 保存与清理:保存零件文档,必要时释放对象引用。

伪代码框架:

Sub CreateFlangePlate() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swSketchMgr As SldWorks.SketchManager Dim swFeatMgr As SldWorks.FeatureManager ' ... 其他变量声明 ' 1. 连接到SolidWorks并创建新零件 Set swApp = Application.SldWorks Set swModel = swApp.NewDocument(“零件模板路径”, 0, 0, 0) ' 2. 创建法兰盘基体 Set swSketchMgr = swModel.SketchManager swSketchMgr.InsertSketch(True) ‘ 进入草图模式 ‘ 绘制外圆和内圆... swModel.ClearSelection2(True) swModel.FeatureManager.FeatureExtrusion2(..., 10/1000, ..., swEndCondBlind, ...) ‘ 注意单位转换 ' 3. 创建第一个螺栓孔 ‘ 选择端面,插入新草图... ‘ 绘制构造圆和孔中心... ‘ 绘制孔轮廓圆... swModel.ClearSelection2(True) swModel.FeatureManager.FeatureCut4(..., swCutThroughAll, ...) ' 4. 圆周阵列螺栓孔 ‘ 选择孔特征... ‘ 选择阵列轴(可获取临时轴)... swModel.FeatureManager.FeatureCircularPattern4(6, 360, ..., True, True) ' 5. 保存文件 swModel.SaveAs3(“文件路径.swb”, 0, 2) MsgBox “法兰盘创建完成!” End Sub

3.3 第三步:工程师如何利用这份输出

现在,你拿到了一份AI生成的“思路图”。它可能不完美,比如API方法名可能不精确、缺少详细的参数列表、单位转换需要处理(SolidWorks API通常使用米制)。但这已经解决了最困难的部分——设计逻辑到编程逻辑的转换

作为一名工程师,你可以这样利用它:

  1. 验证逻辑流程:AI给出的“草图1 → 拉伸 → 草图2 → 切除 → 阵列”流程是否符合SolidWorks的最佳建模实践?是的,这很标准。
  2. 填充API细节:打开SolidWorks的宏录制功能,手动操作一遍类似的简单步骤,然后查看录制的VBA代码。对比AI给出的FeatureExtrusion2FeatureCircularPattern等方法名,在录制的代码中找到精确的方法名和参数顺序。用真实代码替换AI的伪代码。
  3. 添加错误处理和健壮性:AI的伪代码很少考虑异常。你需要添加判断(如文档是否成功创建、选择是否有效)、On Error处理等。
  4. 参数化:将尺寸(外径、内径、厚度、孔数、螺栓圆直径、孔径)定义为变量或通过用户窗体输入,让宏变得更加通用。

这个过程,相当于AI帮你完成了方案架构和算法设计,而你负责具体的“编码实现”和“调试优化”。效率提升是显而易见的。

4. 扩展场景与进阶思路

带孔法兰盘只是一个开始。我们可以让Phi-3-mini处理更复杂的描述,探索更广阔的应用场景。

4.1 处理更复杂的描述

试试这个描述:“创建一个L型支架,长臂100mm,短臂70mm,宽度30mm,厚度5mm。在长臂末端有一个φ12mm的安装孔,在拐角处有R15mm的圆角,在短臂上开一个长30mm、宽10mm的腰形槽。”

AI需要理解并分解出更多特征:多个拉伸(可能用到多实体)、圆角、异形孔(腰形槽)。它输出的思路会涉及:

  • 可能创建两个矩形草图并分别拉伸。
  • 使用FeatureFilletAPI 创建圆角。
  • 绘制一个包含直线和半圆的草图来表示腰形槽,然后使用拉伸切除。

4.2 生成系列化零件配置的宏思路

这是宏自动化最具价值的场景之一。你可以描述:“写一个宏的框架,用于生成一个系列的法兰盘,外径从50mm到200mm,以25mm递增,内径为外径的0.3倍,厚度固定15mm,孔数为4、6、8,根据外径自动选择。”

AI应该能给出一个包含循环结构的伪代码框架,提示你使用For...Next循环遍历外径和孔数,在循环体内动态计算内径,并调用之前封装好的单个法兰创建逻辑(可能是另一个子过程)。

4.3 从二维图纸到建模思路

你甚至可以将简单的二维三视图描述给AI:“主视图为一个100x50的矩形,俯视图显示厚度为10,左视图显示有一个φ20的通孔在中心。”

挑战在于让AI进行简单的空间想象,推断出这是一个板状零件,中间有一个通孔。它生成的思路会是:拉伸一个100x50的矩形得到板,然后在板中心创建一个草图点(或圆),再进行拉伸切除。

5. 局限性、技巧与最佳实践

当然,目前这并非魔法,清醒认识其边界并掌握一些技巧能让合作更顺畅。

5.1 当前方法的局限性

  • 非精确代码:AI输出的是思路和伪代码,不是开箱即用的脚本。工程师必须具备基本的VBA和SolidWorks API知识来完成填充和调试。
  • 复杂几何理解有限:对于非常复杂的曲面、放样、扫描等特征,AI可能难以仅从文字描述准确理解并生成正确逻辑。
  • API版本差异:SolidWorks不同版本的API可能有细微差别,AI的知识可能不是最新的。
  • 依赖描述质量:“Garbage in, garbage out”。模糊、歧义或矛盾的描述会导致混乱的输出。

5.2 如何给出更好的描述(Prompt技巧)

  • 结构化:像写技术规格书一样,分点描述特征(基体特征、附加特征、修饰特征)。
  • 定量化:尽量使用精确的尺寸和约束(“均布6个孔”比“打几个孔”好)。
  • 顺序化:按照你认为合理的建模顺序描述(“先做一个圆柱,然后在端面挖一个键槽”)。
  • 使用术语:正确使用“拉伸”、“切除”、“旋转”、“阵列”、“圆角”、“倒角”、“基准面”等CAD术语。
  • 提供上下文:在长期对话中,可以定义一些变量或常用操作,让AI保持一致性。

5.3 最佳实践工作流

  1. 简单验证:从一个极其简单的零件(如一个带盲孔的方块)开始,测试你和AI的沟通效果。
  2. 迭代优化:根据AI输出的思路,你可以追问:“如何用API选择临时轴作为阵列轴?”或者“拉伸切除的深度参数如何设置为完全贯穿?”。
  3. 结合宏录制:永远将AI的思路与SolidWorks自带的宏录制功能结合使用。录制操作是获取精确API语法的最快途径。
  4. 模块化封装:将AI帮你理清的、验证可用的常见特征创建逻辑(如“创建均布孔”、“创建倒角”)封装成独立的VBA函数或子过程,积累你自己的自动化代码库。

6. 总结

回过头看,我们做了一件很有意思的事情:让一个擅长处理自然语言的AI模型,去理解机械工程领域的特定需求,并输出编程领域的解决方案思路。Phi-3-mini-128k-instruct在这里扮演的不是一个代码生成器,而是一个跨领域的思维加速器和灵感催化剂

它把工程师从“我该怎么用VBA表达这个设计逻辑”的初始迷茫中拉出来,直接给出一张值得参考的“地图”。虽然最后一段路——将地图变为现实——仍需工程师自己走完,但整个旅程的效率和体验已经得到了质的提升。对于重复性的、规则明确的建模任务,这种“AI提供思路,工程师实现代码”的模式,无疑是一种强大的增效工具。你不妨从下一个简单的标准件开始,尝试与AI搭档,看看它能为你打开怎样的自动化新思路。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

http://www.jsqmd.com/news/537379/

相关文章:

  • vLLM-v0.17.1开发者案例:VS Code插件集成vLLM实现本地代码补全
  • 科哥定制FunASR镜像:一键开启中文语音识别,支持实时录音和文件上传
  • ai辅助开发新思路:让快马kimi模型将ps“液化”滤镜创意变成网页动画
  • 毕设园区网络设计实战:从拓扑规划到安全策略落地
  • IPC-TM-650 2023版测试方法深度解析:从标准解读到实践应用
  • PyTorch 2.7镜像体验报告:开箱即用的AI开发环境实测
  • 告别代码异味!在PyCharm 2024.1中配置pylint的保姆级教程(含常见错误排查)
  • CentOS 7/8 实战:从零搭建高可用STT语音识别工具链
  • OpenClaw性能测试:Qwen3-32B在RTX4090D上的极限并发数
  • Cesium 视角控制全攻略:禁用鼠标交互的多种方法
  • IndexTTS 2.0进阶使用:如何混合拼音输入,纠正多音字发音?
  • 手把手教你用Python处理FY-4A卫星数据:从原始DN值到反照率/亮温的完整流程
  • Spring_couplet_generation 面试实战:如何向面试官介绍这个AI项目
  • MogFace人脸检测惊艳效果:CVPR22模型在极端光照(强逆光/频闪光)下的人脸召回提升实测
  • Markdown写作流水线:OpenClaw+GLM-4.7-Flash内容生产闭环
  • openclaw配置自定义的Gemini接口地址实践总结
  • ChatGPT归档数据恢复机制深度解析:原理与实战指南
  • 力扣原题《盛最多水的容器》,纯手搓,待验证
  • 突破语言壁垒:XUnity.AutoTranslator全场景应用策略
  • XUnity.AutoTranslator IL2CPP翻译失效深度解决方案:从现象到根治
  • 告别格式混乱!用Pandoc把AI生成内容完美导入WPS的3种方法
  • RWKV7-1.5B-g1a效果展示:技术白皮书→PPT大纲→演讲备注→QA预设四件套生成
  • Qwen3-0.6B-FP8项目实战:搭建个人知识库问答系统
  • 《Essential Macleod中文手册》实战指南:从入门到精通的光学薄膜设计
  • YOLO26开箱即用镜像:从环境搭建到模型训练全流程实战
  • 一文搞懂概率分布距离:KL散度、JS散度和Wasserstein距离的直观解释
  • Cogito-v1-preview-llama-3B惊艳效果展示:STEM任务与编码能力实测集
  • 告别弹窗:PyCharm中Matplotlib交互模式警告的三种根治方案
  • Alpamayo-R1-10B入门指南:nvidia-smi监控+supervisorctl管理GPU服务实操
  • s2-pro镜像实操手册:上传参考音频→填写文本→生成下载全流程图解