一、对着满屏剪切板,我陷入了沉思
凌晨一点,我盯着手机里密密麻麻的剪切板记录——
```
SolidWorks.Interop.sldworks.dll 找不到
CS1503: 无法从"bool"转换为"int"
server_remove.bat 以管理员身份运行
btnCub 当前上下文中不存在
FeatureExtrusion2 缺少 UseFeatScope 参数
```
30多条复制粘贴的记录,从下午六点到凌晨,铺满了整个屏幕。
每一行都是一个报错。每一个报错都是一次崩溃。每一次崩溃之后,又爬起来继续搜、继续问、继续试。

我本来是干嘛来着?哦对,想给即将做的小机器人画个外壳。
结果外壳没画成,先给自己挖了一座“屎山”。
二、为什么非要折腾这个?
其实B站上有人做过现成的插件,接上DeepSeek,输入文字就能生成模型。
但我有两个想法在打架:
想法A 🤔:我想自己搞一遍。不是为了炫技,是想摸清楚这东西的底层逻辑——以后遇到类似的问题,知道从哪下手。
想法B 🎯:如果真能搞成,以后给小机器人设计外壳就方便多了。不用每次都手动画,说句话它就出来了。
两套想法,一个目标:搞出来。
三、从Visual Studio到“引用”,每一步都是坑
1. 装Visual Studio,第一脚就踩空 😅
之前用VS Code比较多,觉得Visual Studio应该也差不多——下载、安装、开写。
结果一打开就懵了:什么“工作负载”?什么“.NET桌面开发”?什么“框架版本”?
后来才明白:VS Code是“毛坯房”,你想怎么装就怎么装;Visual Studio是“精装房”,它把干这行需要的工具都给你备齐了——编译器、调试器、项目模板,直接拎包入住。
这叫“成品”。
2. “引用”是什么东西?为什么要引用? 📎
项目建好了,下一步:添加引用。
我第一次看到“引用”这个词,以为是写论文那种“参考文献”。后来才明白:
引用 = 告诉你的项目:“我要用别人的工具了,帮我连一下。”
你想在C#里控制SolidWorks,就得告诉Visual Studio:
“我要用SolidWorks的那些功能,它们在 SolidWorks.Interop.sldworks.dll 这个文件里,帮我连上。”
怎么连?
· 右键“引用”
· 点“添加引用”
· 点“浏览”
· 去SolidWorks安装目录找那三个 .dll 文件
问题来了:那三个文件在哪个盘? 🤷
网上说在C盘。我找了半天,没有。
后来直接在此电脑里搜索,搜出来了——在D盘。
这一刻我悟了:
路径是死的,人是活的。找不到的时候,别硬找,搜。
小插曲:后来我才知道,DLL的全称是Dynamic Link Library(动态链接库),就是“别人写好的功能包”。你不用自己写怎么连SolidWorks、怎么画图——SolidWorks自己已经把功能包好了,放在那几个.dll文件里。你做的“添加引用”,就是告诉Visual Studio:“我要用这个功能包了,帮我连上。”
3. “设为启动项目”是啥意思? 🚀
引用加完了,写了几行测试代码,一运行——报错:
“缺少调试目标”
折腾半天才明白:Visual Studio里可以有好几个项目,你得告诉它“先跑哪一个”。
就像你做了三菜一汤,得告诉服务员“先上哪道菜”。
操作也很简单:
· 在“解决方案资源管理器”里
· 右键你的项目
· 点“设为启动项目”
· 项目名字变成粗体——好了,这道菜先上。
这个逻辑让我想起之前在CSS里写 !important——都是告诉系统:“听我的,用这个!”
4. 代码报错:参数不对 = 插头插座没对齐 🔌
终于开始写正经代码了。AI给我一段:
```csharp
swApp.SendMsgToUser("连接成功", 0, 0)
```
报错:没有三个参数的重载
改成:
```csharp
swApp.SendMsgToUser("连接成功")
```
好了。
这是怎么回事?后来想明白了:
API调用就像插头和插座。
· 你给的参数 = 插头的形状
· API要求的参数 = 插座的形状
软件更新了,插座改版了,你拿着老插头(老教程的代码)去插,当然插不进去。
所以你得去看新插座的形状——也就是对应版本的API文档。
5. FeatureExtrusion2:22个参数的噩梦 😱
最崩溃的是拉伸功能。
SolidWorks里画一个矩形,点一下“拉伸”按钮,输入深度,确定——5秒钟的事。
用代码写:
```csharp
Feature myFeature = Part.FeatureManager.FeatureExtrusion2(
true, false, false, 0, 0, 0.02, 0.0,
false, false, false, false, 0.0, 0.0,
false, false, false, false, false, false, false,
0, 0.0, false
)
```
22个参数。 一个都不能少,一个都不能错。
我对着这一行,盯了十分钟,脑子里只有一个念头:
谁设计的这玩意儿?他晚上睡得着吗? 💀
后来查到,这是因为SolidWorks版本更新,老版本只要18个参数,新版本要22个。
AI的知识库没更新,给的还是老版本代码,所以一直报错“缺少UseFeatScope参数”。
这一刻我彻底理解了一个道理:
AI是工具,不是神。它给的代码,你得自己判断、自己改。
6. 宏录制:让SolidWorks自己教我怎么写代码 📼
参数对不上怎么办?
突然想起之前玩ESP32的时候,用过一个方法:录宏。
在SolidWorks里:
· 工具 → 宏 → 录制
· 手动画一个矩形,拉伸
· 停止录制
· 打开宏文件
里面是一段VBA代码,清清楚楚写着每一步调用了什么函数、传了什么参数。
我把这段VBA扔给AI:
“帮我转成C#”
一分钟之后,可用的C#代码就出来了。
这个方法的本质是:让SolidWorks自己当老师,录一段“标准答案”,然后AI帮你翻译。
7. 刚要成功,SolidWorks崩了 💥
代码终于改完了,编译通过,点运行——
SolidWorks卡住,然后弹窗:
“无法获得许可,无法连接到服务器”
刚写好的插件还没用上,软件先挂了。
查了半天,是SolidWorks的许可证服务(Flexnet Server)出问题了。
找到安装目录下的 server_remove.bat 和 server_install.bat,以管理员身份运行,重启电脑——
好了。
这一刻我想的是:
如果以后有人问我“学编程最难的是什么”,我会告诉他:
不是语法,不是算法,是环境。
你写代码只花20%,剩下80%都在和“环境”搏斗。
四、跨界的联想:从游戏Mod到插件,本质都是“调用” 🔗
晚上整理思路的时候,突然想到之前折腾过的几件事:
· 做游戏Mod:改游戏的参数,本质是调用游戏提供的接口
· 写HTML+Live Server:改代码实时看效果,本质是调用浏览器的渲染接口
· 现在写SolidWorks插件:调用SolidWorks的API
三件事,本质一模一样:都是“A调用B”。
VS Code和Visual Studio的区别也是:
VS Code是编辑器加插件,你装什么插件就有什么功能,像乐高积木一样自己拼。
Visual Studio是全套开发环境,自带所有工具,开箱即用,像一套成品工具箱。
一个灵活轻便,一个功能齐全——没有谁更好,只看你要干什么。
想明白这个,突然觉得之前那些“跨界”的经历,其实都没白费。😌
小插曲:这让我想到一个词——“逆向工程”。如果有人没给你DLL,或者没给你说明书,你想用它的功能怎么办?那就得把DLL拆开,看里面是怎么写的。但今天还好,SolidWorks给了文档,我们走的是“正门”,不是“爬窗”。
五、关于Workflow的胡思乱想 🧠
做完这些,我突然想到最近很火的一个词:Workflow。
不管是AI视频那边用的ComfyUI(拖拽节点连线),还是程序员常说的LangChain(组装AI流程),本质都是同一件事:把“怎么做”拆成一步步,然后让工具按步骤走。
那今天我做的是什么?
回头看:遇到问题 → 问AI → 报错 → 分析 → 搜索 → 录宏 → 让AI翻译 → 改代码 → 再试。
这也是一个Workflow——只不过不是写在代码里,是踩坑踩出来的、长在脑子里的。
有人说这是“调试工作流”,有人说这是“学习工作流”。叫什么都行,反正下次再遇到类似的问题,我知道第一步该干啥了。💪

六、最后:给和我一样的新手 💪
插件写完了,功能极其简陋——只能画一个固定大小的矩形,拉伸固定厚度。
但它能动。
从下午六点到凌晨,我:
· 装了Visual Studio
· 加了引用
· 设了启动项目
· 改了22个参数的拉伸函数
· 录了宏
· 修好了崩溃的SolidWorks
每一步都是坑,但每一步都爬出来了。
如果你也是新手,想搞类似的东西,我有几点建议:
1. 先让“最简单的版本”跑起来 🏃
别一上来就想做完美。先让按钮能动,先让消息能弹出来,先让一个小功能跑通。
能跑 = 赢了。
2. AI是工具,不是神 🤖
AI给的代码经常过时、参数不对。你得学会:
· 看报错
· 搜文档
· 自己改
越复杂的功能,越需要你自己懂。
3. 录宏,让软件自己教你怎么写 🎥
这是今天最大的收获。
不会写?没关系。让软件录一遍你怎么做的,把录下来的代码扔给AI翻译。
这是最稳的路。
4. 广而不精?三分钟热度?不,这叫“目标导向” 🎯
有人问我:你一会搞ESP32,一会搞SolidWorks,一会搞插件,是不是太散了?
我想了想:不是散,是目标导向。
我的目标是做一个小机器人。为了这个目标,我需要:
· 控制板知识(ESP32)
· 外壳设计(SolidWorks)
· 自动化工具(插件)
每一块只学到“够用就行”,但拼在一起,就是一个小机器人。
所以,别怕“广”。怕的是“广了之后不连起来”。
七、最后的最后 🌙
写完这篇文章,我回头看了一眼手机里的剪切板——还是满屏,但现在已经知道每一行是什么意思了。
插件还会继续改,机器人还会继续做,代码还会继续学。
还是那句话,反正最坏的结果,也就是再写一篇文章。 😎

本文由AI辅助润色,但每一个坑都是我亲自踩的。
如果你也想从零开始折腾点什么,欢迎关注。
我们一起,从“按步骤做”走到“想明白为什么”。
(完)
网硕互联帮助中心




评论前必须登录!
注册