程序员的1024-给自己找个开发小助手
文章摘要:作者分享了使用阿里Qoder AI辅助工具的经历,该工具能帮助优化代码、撰写文档和设计WinForm窗体。虽然初期因缺少中文支持感到失望,但实际体验后发现其文档生成和代码优化效果不错。工具提供15天试用期和1000积分,作者用它完成了多个项目文档和代码优化。缺点是有时会误改项目文件,但可通过Git管理解决。总体认为Qoder是一个实用的小助手,适合入门级开发者使用。文末附有推荐注册链接和
先祝家人们、宝子门、搬砖工等各行各业的节日快乐。

感觉是走错了直播间的感觉哈。。。
开始正题
最近项目比较满,所以交付的各种文档就上了来了,再加上有些公司要各种说明 ,SOP文档,使用帮助等东西, 弄起来好头疼。
刚好就在那个时间,我的QQ邮箱接收到了一个广告,提示阿里出了一个Qoder 属于类似于Cursor的AI智能辅助工具。我就想起来试一下,之前测试Cursor和github Copilot ,感觉效果都不是太好,所以本来也没做太大指望,只是阿里出的,对于国内用户应该是要友好一点的吧。至少文档应该有个中文嘛。
所以我就去找了Qoder的主页。
结果没发现中文,好伤心。
算了,虽然 其它单词不认识,但是中间的个绿色的我好像在哪见过。
你懂的。。。
其它的我就不多说了,登录–注册–上号 一条龙。
启动手其实让你选是从vs code导入设置还是从cursor导入设置。可能 我电脑上都有安装,所以让 我选的。
我还是习惯我的黑暗模式。
然后打我的代码仓库。

我在右侧写了一些内容,让它帮我优化输入,这里指的是让AI更容易听懂的一个办法。点完就变成了这个了,当然可以退回去。明显要专业很多,对于刚入门的选手还是比较友好的。
我们选的智能体,这个是能在本地自动修改文档,全自动处理相关操作的。
我现在能看到执行过程:
完成
写的那是相当的好,反正比我自己写的好。转成pdf后 ,有模有样。
这只是文档的整理,代码的读取。我也测试了一些帮我优化代码的工作,比如性能可能 发生在哪些地方。
使用下来还不错,目前是注册后有1000个积用,试用半个月时间。
用用还是不错的。
顺便打个广告,注册可以用我这推荐的**[注册链接]**(https://qoder.com/referral?referral_code=4YOX04lhJ7TYDEy7SwUKey2RuXpGLAzK)。
虽然我现在已经为它充值,万一还有用呢。哈哈

说完优点,说一下缺点,有时候会修改c# .net framework的项目信息,导致直接打不开。 还经常有同一个错误。
这个对于使用git管理代码的人来说,也不是什么大事,知道它改了啥。
到目前,我大概用了半个月,用它写了一部分代码功能,写了几个文档,使用说明,SOP手册,而且还支持你截图让它帮你设计winform窗体。 还有些的方法的优化,同时还学到了一些新的知识点,我觉得还是物有所值 。 相当于请了个小助手,虽然 太专业的事情它确实也干不了,但当个小学生肯定没有问题。
后面有啥问题,再聊吧。
今天1024 就聊这么多。
顺便贴一点它写的代码:
var swApp = Connect.GetRunningSolidWorks();
if (swApp!=null)
{
// 获取当前活动的装配体文档
var swAsm = swApp.IActiveDoc2 as AssemblyDoc;
if (swAsm == null)
{
MessageBox.Show("请先打开一个装配体文档!");
return;
}
swApp.DocumentVisible(false,(int)swDocumentTypes_e.swDocPART);
var swAsmModel = swAsm as ModelDoc2;
// 设置要打开的零件路径(请根据实际需要修改)
string partPath ="";
// 定义长宽高尺寸(单位:毫米)
double length = 100.0; // 长度
double width = 50.0; // 宽度
double height = 30.0; // 高度
// 定义在装配体中的位置(单位:毫米)
double posX = 0.0;
double posY =500;
double posZ = 0.0;
// 定义X、Y在装配体中的方向向量(归一化向量)
double[] xVector = new double[] { 0, 1, 0 }; // X方向
double[] yVector = new double[] { 0, 0, 1 }; // Y方向
try
{
swApp.CommandInProgress = true;
int errors = 0;
int warnings = 0;
// 1. 隐藏方式打开零件(使用OpenDoc6的隐藏标志)
// swOpenDocOptions_Silent (1) | swOpenDocOptions_ReadOnly (2) | swOpenDocOptions_ViewOnly (16)
var swPart = swApp.OpenDoc6(partPath, (int)swDocumentTypes_e.swDocPART,
(int)swOpenDocOptions_e.swOpenDocOptions_Silent,
"", ref errors, ref warnings) as ModelDoc2;
if (swPart == null)
{
MessageBox.Show($"无法打开零件:{partPath}\n错误代码:{errors}");
return;
}
var partDoc = swPart as PartDoc;
// 2. 修改零件中的长宽高尺寸
// 注意:这里假设零件有全局变量或尺寸特征可以修改
// 方法1: 通过Equation(全局变量)修改
//ModifyPartDimensionsByEquation(swPart, length, width, height);
// 方法2: 通过特征尺寸修改(如果知道具体的尺寸名称)
ModifyDimensionBYDimName(swPart, "D1@草图1", length);
ModifyDimensionBYDimName(swPart, "D2@草图1", width);
ModifyDimensionBYDimName(swPart, "D1@凸台-拉伸1", height);
// 3. 重建零件
swPart.EditRebuild3();
// 4. 获取零件Body的备份
var bodyCopies = GetBodyCopies(partDoc);
if (bodyCopies == null || bodyCopies.Length == 0)
{
MessageBox.Show("零件中没有实体!");
swApp.CloseDoc(partPath);
return;
}
// 切换回装配体
//swApp.ActivateDoc3(swAsmModel.GetPathName(), false, (int)swRebuildOnActivation_e.swDontRebuildActiveDoc, ref errors);
// 5. 将Body显示在装配体中
// 创建坐标变换矩阵
MathTransform transform = CreateTransformFromPositionAndVectors(swApp, posX, posY, posZ, xVector, yVector);
// 将Body插入到装配体中
InsertBodiesIntoAssembly(swApp, swAsmModel, bodyCopies, transform);
// 关闭隐藏打开的零件
//swApp.CloseDoc(partPath);
// 重建装配体
swAsmModel.EditRebuild3();
swAsmModel.GraphicsRedraw2();
MessageBox.Show($"成功插入 {bodyCopies.Length} 个实体到装配体中!");
}
catch (Exception ex)
{
MessageBox.Show($"操作失败:{ex.Message}\n{ex.StackTrace}");
}
finally
{
swApp.CommandInProgress = false;
}
}
更多推荐


所有评论(0)