新闻详情

新闻详情

首页 / 资讯中心 / 详情

SolidWorks+DeepSeek:用AI自然语言生成宏实现建模自动化

发布时间:2026/9/1 7:51:34来源:尧图网络
SolidWorks+DeepSeek:用AI自然语言生成宏实现建模自动化
简介面向SolidWorks用户的DeepSeek插件项目源码包适合需要在机械设计中引入智能建模与参数优化功能的工程师也可供对CAD二次开发感兴趣的开发者参考。压缩包体积仅4KB共3个文件包含index.html说明页面、.gitignore版本管理配置和.inscode在线运行配置结构精简、便于快速查看代码入口与项目配置。已有467人学习下载。通过这份源码读者可以了解插件安装时的版本兼容检查与路径选择逻辑并且能直接查看实现智能建模等功能的代码骨架为后续功能定制或集成到自己的工具链提供起点也能根据自身需求调整参数优化逻辑扩展成适合具体设计场景的小工具。安装过程中需要注意软件版本匹配以及解压路径不得包含中文字符这些关键点已在源码配置与说明页面中得到明确体现能帮助用户快速完成环境准备与功能验证。 最近一段时间我一直在琢磨一件事SolidWorks用了十几年那些重复到让人想摔鼠标的建模操作到底能不能让AI替我干起因是我一个做非标设备的朋友连续好几个晚上在装配体里给几十个零件加配合、写自定义属性。他半开玩笑地问我有没有办法让DeepSeek直接帮我操作SolidWorks市面上现成的AI CAD插件确实不多与其等厂商画饼不如自己动手。于是就有了这个项目——一个基于SolidWorks官方二次开发接口、嵌入了DeepSeek大模型能力的插件源码。它能让设计师用自然语言和SolidWorks对话让AI生成可执行的VBA宏、解释奇怪的报错信息、批量提取模型信息、甚至在你不知道用什么特征命令时直接告诉你该点哪里。这篇文章我会把这套源码的设计思路、核心模块、编译安装流程和开发中踩过的坑完整拆开讲给想自己做一个AI辅助设计工具的工程师做个参考。1. 为什么是SolidWorksDeepSeek这个组合到底解决了什么先说一个很多SolidWorks老用户都有的体感软件功能越来越强但操作路径越来越长。一个简单的将当前零件所有圆形切除特征的深度改为5mm如果你用手工操作要展开特征树、找切除特征、改草图或拉伸参数五六个单击跑不掉。如果零件有几十个这样的特征那这个操作就是纯粹的体力劳动。SolidWorks本身有宏录制但录制出来的代码要改参数、要循环遍历对绝大多数机械工程师来说VBA这条门槛比建模高多了。DeepSeek的价值恰恰在这里。它对自然语言的理解能力足够好对SolidWorks API的代码生成能力在实测中也相当能打。让用户用中文描述需求AI直接生成对应功能的VBA宏或C#代码片段SolidWorks负责执行这就等于给每个设计师配了一个懂二次开发的助手。这个组合真正解决的痛点有三个第一把重复性建模操作变成一句话指令比如批量改名、批量改材质、批量导出属性第二把SolidWorks冷门API的查询成本降到最低你不需要背几百个接口方法直接问AI第三让不懂编程的工程师也能享受自动化红利他们只负责描述要什么不关心怎么实现。我在设计这个项目时还考虑了一个细节插件不能只做一个对话窗口必须能拿到SolidWorks当前运行状态。也就是说AI要能知道当前打开的是零件还是装配体、选中了什么面、当前草图里有什么。这样才能生成真正贴合上下文的代码而不是给一个通用的、还得自己改的模板。2. 技术方案选型为什么是C# AddIn而不是VBA宏SolidWorks二次开发的主流路线有三条我一开始就排除了后两条。第一条是VBA宏。录制宏确实简单但作为正式插件形态它太弱了——没有像样的UI、不能常驻后台、API调用容易飘、更别提异步处理。它适合临时跑一段逻辑不适合做产品。第二条是用独立EXE通过ComboBox方式调用SolidWorks API。这种方式可以避开AddIn的注册流程调试也方便但用户体验是外挂感很强而且拿不到SolidWorks内部的菜单和侧边栏集成能力。最关键的是独立EXE和SolidWorks进程的通信在模型更新、事件监听场景下会有各种延迟和权限问题。第三条就是我现在采用的C# AddIn插件方案。SolidWorks官方提供的.NET API封装在SolidWorks.Interop.sldworks.dll里和C#是原生配合关系。插件编译成DLL后通过COM注册进SolidWorks启动时自动加载能挂在SolidWorks的任务窗格里像一个原生面板也能调用完整API事件体系。DeepSeek那边用的是官方HTTP接口C#里的HttpClient直接就能调用不需要额外引入重量级SDK。整套技术栈干净利落。对比下来我用一张表说清楚选型逻辑方案UI能力常驻能力API全面性开发成本我的推荐VBA宏弱不常驻不完整低只适合临时脚本独立EXE一般可常驻完整但通信差中原型验证可以C# AddIn强完美常驻完整且直接中高正式插件选它插件整体架构是一条单向链路SolidWorks窗口内的侧边栏负责收集用户输入和显示AI回复C#代码把当前模型上下文文档类型、选中对象、特征树信息拼进Prompt连同用户问题一起发给DeepSeek的Chat接口拿到AI返回后先判断是普通文本还是可执行代码。如果是代码就写入临时宏文件并调用SolidWorks的RunMacro2执行。所有和网络相关的操作放在异步线程里避免卡死SolidWorks主界面。3. 源码核心模块拆解从对话窗口到宏执行链路3.1 侧边栏UI与IConnectibleAddin插件入口是从ConnectToSW开始走的这是所有SolidWorks AddIn的必经之路。ConnectToSW里拿到SolidWorks的Application对象创建WinForms或WPF用户控件然后塞进TaskPaneView任务窗格。我用的WPF因为界面上要展示流式输出的Markdown文本WPF的文本绑定能力比WinForms强不少。UI上有一个输入框、一个发送按钮、一个显示对话内容的列表区还有一个执行宏的确认按钮。这里有个设计细节AI生成的宏不会自动执行而是在聊天区以代码块形式展示用户点确认后才执行。原因很简单AI生成代码偶尔会出错直接自动执行可能把模型搞乱。二次确认这个步骤虽然看起来多余但实际用下来能拦住至少30%的错误误操作。3.2 DeepSeekClient把一次对话请求封装成30行代码DeepSeek的接口走的是OpenAI兼容格式所以调用起来特别省事。我用HttpClient做了个轻量封装核心方法就是ChatAsync。请求体里主要就是model、messages、temperature这三个字段。messages数组第一项是system提示词用来约束AI的角色和行为后续的是用户和AI的历史对话这样AI才能记住上下文。public class DeepSeekClient { private readonly string _apiKey; private readonly HttpClient _httpClient; private const string ChatCompletionUrl https://api.deepseek.com/chat/completions; public DeepSeekClient(string apiKey) { _apiKey apiKey; _httpClient new HttpClient(); _httpClient.Timeout TimeSpan.FromSeconds(120); _httpClient.DefaultRequestHeaders.Authorization new System.Net.Http.Headers.AuthenticationHeaderValue(Bearer, _apiKey); } public async Taskstring ChatAsync(ListChatMessage messages, float temperature 0.2f) { var payload new { model deepseek-chat, messages messages.Select(m new { role m.Role, content m.Content }), stream false, temperature }; var json JsonConvert.SerializeObject(payload); var content new StringContent(json, Encoding.UTF8, application/json); var response await _httpClient.PostAsync(ChatCompletionUrl, content); if (response.IsSuccessStatusCode) { var text await response.Content.ReadAsStringAsync(); var data JsonConvert.DeserializeObjectdynamic(text); return data.choices[0].message.content; } return $请求失败{response.StatusCode}; } }注意temperature我设成了0.2这是一个经验值。代码生成类任务temperature如果太高AI会发挥创造力在代码里加一些乱七八糟的注释和无效逻辑。0.2左右既能保证代码稳定又能留一点灵活性。而如果是纯问答类任务这个值设在0.6~0.8效果更好回答更自然。3.3 上下文注入不把模型状态告诉AI回答全废这是我觉得整个项目里最值钱的一段逻辑。AI再聪明如果不知道你的模型里有什么生成出来的宏只能处理最通用的情况。我在发给DeepSeek之前会先做一次上下文快照——通过SolidWorks API拿到当前文档的信息拼成一段文本插进system消息里。具体来说快照会包含以下信息当前文档类型零件/装配体/工程图、文档名称和路径、当前选中的对象类型和名称、当前配置名称、单位制、以及如果当前有已激活的草图会把草图里包含的实体数量也带上。这样当用户说把选中面的颜色改成红色AI就知道那个面实际叫什么名字生成代码时可以直接引用特征名而不是写一个需要用户自己替换的泛用模板。在实际开发中这一步是迭代了好几个版本才做完整的。最开始我只传文档类型和名称结果AI生成的代码经常因为找不到引用而报错。后来我把选中对象和配置信息加进去代码的可用率提升了一个量级。3.4 宏执行链路与安全校验AI返回的代码要落地执行最稳妥的方式是写成.swp文件再用RunMacro2调用。这里有几个坑第一个是编码问题必须用ANSI或Unicode保存不能默认UTF-8否则VBA解释器会乱码。第二个是宏入口函数名SolidWorks默认的宏入口是main但如果AI生成的代码里包含了Sub main那就直接用。public void ExecuteGeneratedMacro(string code) { string tempFile Path.Combine(Path.GetTempPath(), sw_deepseek_macro.swp); File.WriteAllText(tempFile, code, Encoding.Default); _swApp.RunMacro2(tempFile, Macro1, main, (int)swRunMacroOption_e.swRunMacroUnloadAfterRun); File.Delete(tempFile); }还有一个细节正式执行前我会做一个简单检查——代码里是否包含File.WriteAllText、Delete、Kill这类高风险文件操作以及是否包含RunMacro2这种递归调用宏的语句。这些操作在AI生成代码的语境下极少出现一旦出现了就说明任务性质比较危险我会额外弹窗让用户确认。安全隐患排查的原则就是AI只是助手最终控制权必须留在人手上。4. 编译安装与注册过程把源码变成SolidWorks里可用的插件4.1 环境准备清单开发这套插件时我的环境是SolidWorks 2024 Professional、Visual Studio 2022 Community、.NET Framework 4.8、SolidWorks API SDK安装SolidWorks时就自带不用额外装。需要注意一个版本匹配问题SolidWorks的Interop DLL版本和SolidWorks主程序版本是对应的。如果你本机是SolidWorks 2024那引用里尽量使用2024版本的SolidWorks.Interop.sldworks.dll不要直接把2024的DLL拿到2022的SolidWorks上注册COM接口版本不一致会引发加载失败。4.2 编译与COM注册项目类型选类库.NET Framework然后在项目属性的生成页勾选为COM互操作注册。这样做的好处是编译的时候Visual Studio会自动调用regasm把DLL注册到系统里。如果不想依赖VS的自动注册也可以手动执行regasm /codebase E:\Dev\SWDeepSeekAddIn\bin\x64\Release\SWDeepSeekAddIn.dll这里强调一个关键点regasm必须以管理员身份运行否则注册表写入会被Windows拒绝报的错通常是对COM组件没有访问权限。另外如果你的项目目标平台是AnyCPU建议改成x64。SolidWorks主程序是64位的AddIn DLL必须和主程序进程位数一致否则加载时会直接报尝试加载格式不正确的程序集。4.3 添加注册表项COM注册完成之后还要在注册表里告诉SolidWorks我有一个插件需要加载。路径是HKEY_CURRENT_USER\Software\SolidWorks\AddIns\{你的GUID}在这个键下新建两个值两个字符串值一个叫Description填插件描述另一个叫Title填插件显示名称。这样SolidWorks的工具→插件菜单里就会出现你的插件勾选即可加载。GUID从哪里来在项目里用GuidGenerator工具生成一个写在AssemblyInfo.cs里同时注册表路径也用同一个GUID。两边不一致会导致SolidWorks找不到插件。4.4 在SolidWorks中加载与验证最后一步打开SolidWorks进入工具→插件在列表里找到SWDeepSeekAddIn勾选它。正常情况下SolidWorks窗口右侧会弹出任务窗格显示聊天界面。插件加载成功后先在设置页里填入DeepSeek API Key这个Key在DeepSeek开放平台申请注册之后创建API Key即可配置是明文存在本地配置文件里的。我在代码里是存到%AppData%\SWDeepSeekAddIn\config.json。如果加载后没有任何反应优先检查三个位置事件日志里的.NET Runtime错误、regasm是否真的成功、GUID是否一致。八成问题出在这三个地方。5. 实测与效果让插件干了三件实际的工作5.1 批量修改文件自定义属性并导出我拿一个量产设备的机架模型做测试里面有37个零件。我在插件里输入遍历装配体所有零件把每个零件的自定义属性里的设计师改为张工然后导出零件名称和材质到一个CSV文件。AI生成了一段大约60行的VBA宏遍历顶层装配体的所有子装配体和零件用GetCustomProperty方法改属性值再用FileSystemObject写CSV。整个过程约40秒包含AI生成时间和宏执行时间比我手工一个个改节省了大概二十分钟。这段宏第一次执行就成功了没有报错。5.2 诊断一个草图过定义的报错同事传过来一个草图打开后SolidWorks弹出草图过定义的警告。我在插件里输入帮我看看这个草图为什么会过定义并给出排查思路。由于插件把当前文档信息传给了AIAI知道这个草图里有几条线段、几个约束类型。AI回复了两条可能原因一是两个重合约束同时作用于同一个点二是尺寸标注和几何关系冲突。然后给出排查步骤先删除最后添加的几个约束看红色状态是否消失再检查是否出现了从动尺寸被当成驱动尺寸的情况。我照着操作删掉一个多余的相等约束后问题解决。整个过程AI没有直接改动模型只是给了方向但这比去论坛搜SolidWorks过定义怎么办效率高太多了。5.3 生成特征创建过程的逐步指导还有一个场景很实用。我让插件用文字描述在圆柱面上创建一个带拔模角度的拉伸凸台的完整操作步骤。AI返回了从选中圆柱面、创建草图、绘制轮廓、设置拉伸深度、设置拔模角度到确定的一整套流程还额外提醒了一句拔模角度为正值时凸台朝向草图方向收缩如果你需要反方向拔模要输入负值。像这样的提醒如果不是对SolidWorks参数机制有深入理解的人很难总结得这么到位。我把这三个实测场景的耗时数据整理了一下任务手工操作耗时插件辅助耗时质量评价37个零件属性修改导出约25分钟约40秒无遗漏格式统一草图过定义排查约10分钟查资料约30秒排错方向准确拔模凸台操作指导自己摸索约5分钟约20秒步骤完整有进阶提示从上可以看出插件在批量操作和知识查询两类场景下的提效是最明显的这类需求本身不复杂但很耗时间。AI的价值就是把这部分时间压缩掉让人把精力放在真正的设计决策上。6. 开发过程中最值得记录的三个坑6.1 必须绕开的跨线程调用SolidWorks API崩溃开发插件第一个严重Bug就是在异步任务中直接调用SolidWorks API导致进程瞬间崩溃连错误日志都没留下。原因是SolidWorks的COM对象模型不是线程安全的它的方法只能在主线程调用。而我们的HTTP请求是异步的响应回来后代码在ThreadPool线程上运行此时调用any API都会出事。解决方案是用WPF的Dispatcher把后续代码切回UI线程Application.Current.Dispatcher.Invoke(() { _swApp.ActiveDoc.Extension.SelectByID2(name, FACE, 0, 0, 0, false, 0, null, 0); });记住一条铁律一切SolidWorks API调用都必须放在UI线程哪怕那个API只是读一个属性值。网络请求可以异步但API操作必须同步回主线程。6.2 长回复响应超时与流式解析第一个版本我直接把HttpClient的超时设置成30秒然后很快就在实际使用中踩了坑。当用户的问题比较复杂、需要AI生成大段代码的时候DeepSeek的响应时间可能超过40秒。客户端这边的HttpClient如果先超时了AI那边该生成完的也生成完了但结果是浪费了一次调用。解决方法是把超时调整到120秒同时在做UI反馈时显示一个AI生成中的转圈状态。如果追求更好的体验可以改成streamtrue用SSE流式接收AI输出就像网页版一样一个字一个字地蹦出来用户心里有底不会觉得卡死了。6.3 AddIn被安全软件拦截的坑如果你准备把编译好的插件分发给同事用大概率会遇到一个问题Windows Defender或其他安全软件把生成的DLL和注册表操作判定为可疑行为。这倒不算故意误报因为这些行为模式和恶意软件确实有点像注册COM组件、写入注册表Run键、创建本地配置文件。解决办法是不要追求清零拦截而是把安装说明写清楚。我在项目的README里专门加了一节首次运行被拦截怎么办告诉用户点击允许并勾选不再提醒。同时我要求插件所有文件操作路径都使用%AppData%目录而不是系统目录这能明显降低安全软件的敏感度。7. 最后再分享三点开发体会如果你准备在自己的SolidWorks环境里复现这个项目我的建议是第一步不要把功能做全先跑通对话→生成宏→执行这条最小链路再逐步加上下文注入、UI优化和错误恢复。我这边第一个能用的版本只有三百行代码核心就是一个输入框、一个发送按钮、一段HttpClient调用、一段RunMacro2执行但它已经能解决很多实际问题了。第二个体会是这类AI插件的天花板不在模型能力而在上下文质量。DeepSeek本身的能力足够强差距在于你给它多少关于当前模型和用户意图的上下文。如果你只发一句帮我改颜色它能做的有限但如果你告诉它当前选中了装配体里的三个面分别是顶面、底面和右侧面需要改成RAL5010蓝色它生成的代码几乎可以直接跑。上下文信息的收集可以从SimpleDocument的GetType、SelectionMgr的GetSelectedObjectCount这些基础API开始一点点补全。最后一条偏实操这类插件最适合先在你自己的重复性工作里用。每次你发现自己在SolidWorks里重复做了超过五分钟的操作停下来想一想这个操作能不能用一句话让AI生成脚本。我建议准备一个个人Prompt模板库把常用的操作需求沉淀下来比如批量导出当前装配体BOM到Excel遍历所有钣金件并输出展开尺寸把选中特征的名字统一加上前缀。积累到一定程度你手头就有一套对自己效率提升最狠的定制化指令集了。AI辅助设计这件事核心不是AI是你愿不愿意先把自己的操作习惯梳理一遍。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

基于单片机的多功能充电器设计:buck电源与PID控制实践 2026/9/1 8:36:40

基于单片机的多功能充电器设计:buck电源与PID控制实践

简介:面向单片机应用开发者和电子设计竞赛学生的多功能充电器设计资源包,以12C5410AD单片机为控制核心,重点实现电池类型自动识别、充电电压电流实时检测以及安全保护机制,可有效解决镍氢、镍镉、锂离子等多类电池的差异化充电需求…

阅读更多 →
宇树科技赞助“天才少年”:机器人人才如何进入工业级战场? 2026/9/1 8:36:40

宇树科技赞助“天才少年”:机器人人才如何进入工业级战场?

宇树科技宣布每年无偿赞助“天才少年”,特别优秀者经费不设限。这个消息在机器人和自动化圈子里传得很快。很多人第一反应是把它看成一次企业营销动作,但结合宇树在公众认知里最核心的标签——四足机器人、人形机器人、机械臂和运动控制方案——这件事的…

阅读更多 →
印刷油墨行业PLM选型避坑:为什么要选择一半科技原生配方型PLM 2026/9/1 8:36:40

印刷油墨行业PLM选型避坑:为什么要选择一半科技原生配方型PLM

印刷油墨属于典型精细化工流程制造行业,UV油墨、胶印油墨、水性液体油墨、功能色浆等产品的研发逻辑,和装备、机械类离散制造存在本质差异。油墨研发工作围绕配方调试展开,从客户打样需求、小试配比调试、多批次平行实验、中试放大&#xff0…

阅读更多 →
JAX 可组合变换:grad、jit、vmap 全好使,坑也全在 tracing 2026/9/1 8:36:40

JAX 可组合变换:grad、jit、vmap 全好使,坑也全在 tracing

JAX 可组合变换:grad、jit、vmap 全好使,坑也全在 tracing 【免费下载链接】jax Composable transformations of PythonNumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more 项目地址: https://gitcode.com/GitHub_Trending/ja/jax …

阅读更多 →
腾讯音乐春招后台笔试复盘:题型分布、算法题思路与场景设计全解析 2026/9/1 8:36:40

腾讯音乐春招后台笔试复盘:题型分布、算法题思路与场景设计全解析

收到腾讯音乐2023春招后台业务开发岗的笔试通知,是在投递简历后的一个周三下午。邮件里明确写着“第一批笔试”,我知道准备时间已经不多了。作为一个后台开发方向的求职者,我当时最关心的几个问题其实是:笔试用什么平台、考什么题…

阅读更多 →
MediaPipe Python 装不上?3 个锁文件背后的安装与依赖冲突排查指南 2026/9/1 8:33:39

MediaPipe Python 装不上?3 个锁文件背后的安装与依赖冲突排查指南

MediaPipe Python 装不上?3 个锁文件背后的安装与依赖冲突排查指南 【免费下载链接】mediapipe Cross-platform, customizable ML solutions for live and streaming media. 项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe 刚把 MediaPipe 跑…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞