|
|
b75439cff4
|
fix: 修复含特殊字符路径的钻带文件读取失败 — 移除 cmd /c type,改为 AnsiFileReader 直接文件IO
问题:路径含 ( ) & % ! ^ @ 等字符时报"文件路径包含不允许的命令行特殊字符",
(D2-f)、(1) 这类正常业务文件名直接命中。
根因:读取统一入口把路径拼进命令行(cmd.exe /d /c type "..."),为"防炸"在 03d9b8b
引入 ForbiddenPathChars 黑名单——并非业务需求,是实现的自我约束。
实测:真正会坏的只有 %VAR%(必坏) 与延迟展开开启时的 !VAR!,而 ( ) & ^ @ 空格在
双引号内均正常;且 type 是字节透传,这层 cmd 对当初的编码问题毫无帮助。
改动:
- 新增 AnsiFileReader.cs:FileStream + StreamReader(默认 936 解码 + BOM 探测,
与旧 StreamReader 解码路径逐字符等价),不经命令行
- 删除 CommandTypeFileReader.cs 及其 ForbiddenPathChars 字符校验
- 路径只保留"非空"与"文件存在"校验;IO 异常包装为
InvalidOperationException("读取文件失败:{路径}({原因})")并保留 InnerException
- 15 处调用点同步改名;更新 CLAUDE.md 与 Docs 说明
验证:14 个 demo_drl 样例新旧实现字符串/行数逐字符一致;含特殊字符路径(含 %TEMP% 字面
路径,旧实现 rc=1)可读可解析;UTF-8/UTF-16 BOM 结果与旧实现一致;
dotnet build -p:Platform=x86 0 错误且警告集与基线逐条相同。
|
2026-09-20 11:30:04 +08:00 |
|
|
|
2335894be7
|
fix: 取消PP钻带外框13/15孔规则 — GetPpGenerationRule仅返回Legacy 3孔规则;删除外框规则及专属辅助死代码(SelectPpDrillTapeLocations/ParsePpHolePoints/SelectMiddlePoint/PpHolePoint/PpSideCoordinateTolerance)
|
2026-08-12 10:25:14 +08:00 |
|
|
|
5365791acd
|
feat: 铆钉孔4.503作为PP钻带来源孔径 — PpSourceDiameters集合含3.203/4.503,legacy 3孔与外框13/15孔规则不变
|
2026-08-12 10:11:57 +08:00 |
|
|
|
ae2916cd6c
|
feat: 铆钉孔孔径新增4.503mm — IsSpecialFixedDiameter 增加 4.503,固定为圆孔且不参与叠板/最小刀径计算
|
2026-08-12 09:57:02 +08:00 |
|
|
|
d4ecad6077
|
fix: DRL无参数文件替换bug — 刀径行无H参数段时追加参数段;M48后非注释行不再覆盖,改为插入描述行
|
2026-08-07 10:35:24 +08:00 |
|
|
|
d234bb06dc
|
feat: DRL钻带更改参数功能 — 支持.drl文件从A01-A14参数文件按直径替换H/Z/S/F/U参数段
|
2026-08-07 07:18:23 +08:00 |
|
|
|
8a0222e903
|
fix: ROU重复直径去重 — 两遍扫描分配参数槽位 + 输出修改直径文本为三位小数
- 两遍扫描算法:Pass1 收集头部所有刀径并分配参数键,Pass2 重建行并追加参数
- 输出直径文本规范化到三位小数,重复直径依次 +0.001
- 参数字典键和ROU直径均 Math.Round(x,3) 消除浮点精度问题
- 匹配策略:在 [baseDiam, baseDiam+0.01) 内找候选键,按序分配
|
2026-08-03 20:31:32 +08:00 |
|
|
|
5ee4fb9c59
|
feat: 未匹配直径在完成弹窗中提示 — ReplaceParameters 返回 unmatchedDiameters 列表
|
2026-08-03 18:28:36 +08:00 |
|
|
|
5c9a70c9f0
|
feat: ROU成型参数替换功能 — 支持 .rou/.rou1/.rou2/.roux 文件从参数 txt 自动补充 S/F/R/Z/H
|
2026-08-03 18:19:33 +08:00 |
|
|
|
b51a5cecf8
|
fix: 按尾号标准计算最小刀径,排除粉尘刀与去毛刺刀
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-07-09 17:44:07 +08:00 |
|
|
|
c20a2c62b8
|
fix: 排除3.203等特殊孔径参与叠板计算,槽刀统计对齐真实槽孔
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-06-30 17:00:56 +08:00 |
|
|
|
8d6efa9e86
|
fix: 修复EA刀叠板查表直径区间匹配,叠板区改为折叠输入即算
EA刀/短槽刀列按参数表下限区间 [0.60,0.65)/[0.65,0.70)/[0.70,0.75)/>=0.75 匹配,修复 0.706mm 等刀径查表失败;叠板计算改为 Expander 默认收折、移除计算按钮、输入变化自动计算。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-06-29 22:01:15 +08:00 |
|
|
|
c0e4bb72cd
|
docs: 归档叠板计算 PRD,标记全部 AC 已完成
|
2026-06-27 16:25:52 +08:00 |
|
|
|
fa697c9fd0
|
feat: 基础信息叠板计算功能
- 新增 StackCountCalculator: 数字化规则表(短槽刀/EA刀10×4、槽刀10×4、钻针10×6),公开Calculate方法,输入校验,查表逻辑,16oz铜厚递减
- 新增 StartupSelectionViewModel: 替换匿名DataContext,保留所有显示属性,新增板厚/铜厚输入、计算结果/明细、CanCalculate
- 新增 NonEmptyToVisibilityConverter
- 修改 StartupSelectionWindow.xaml: 增宽680px,新增3行(输入+结果+明细),计算按钮在基础信息内部
- 修改 StartupSelectionWindow.xaml.cs: 构造函数接收ViewModel,新增计算按钮事件
- 修改 App.xaml.cs: 构建ViewModel实例,CalculateStackMinDiameters独立遍历Tools(含0.749mm,排除机台码)
- 修改 App.xaml: 注册NonEmptyToVisibilityConverter
|
2026-06-27 16:24:45 +08:00 |
|
|
|
e27636dd93
|
fix: 二钻涨缩系数记忆在写回钻带后立即落盘
原实现 Save 在'涨缩完成'MessageBox(模态阻塞)之后才执行,配置滞后到用户点掉弹窗。改为写回钻带后立即 Save,失败信息并入完成提示,避免两个连续模态框。
|
2026-06-14 13:43:59 +08:00 |
|
|
|
fe3df98297
|
chore: 将 .mindfs 会话目录加入 git 忽略
.trellis/ 此前已忽略,本次补 .mindfs/。
|
2026-06-14 12:25:38 +08:00 |
|
|
|
29c7be3fac
|
feat: 二钻涨缩系数记忆,载入上次系数
涨缩完成后将模式与系数写入 %LocalAppData%\DrillTools\scaling.ini,涨缩窗口新增"载入上次系数"按钮实时读取回填。每次完成涨缩覆盖更新,只保留最新一条记录(含源文件名追溯)。ini 使用 UTF-8 无 BOM,损坏时容错返回空。
|
2026-06-14 12:16:17 +08:00 |
|
|
|
906de9e265
|
chore: 将 demo_drl 目录加入 git 忽略并取消跟踪
|
2026-06-14 08:00:36 +08:00 |
|
|
|
0722a6bdf7
|
fix: 保留涨缩钻带坐标前导零
|
2026-06-06 22:17:38 +08:00 |
|
|
|
3e07873636
|
Exclude 0.749 from minimum diameter display
|
2026-06-06 08:37:11 +08:00 |
|
|
|
a08a2dfee4
|
fix: 调整涨缩窗口输入框高度,按钮和标题更名为二钻涨缩
|
2026-06-05 23:02:42 +08:00 |
|
|
|
cacbbe6c33
|
feat: 增加钻带涨缩功能,支持倍率/PPM模式缩放坐标
- 新增 ExcellonScaler 引擎:普通孔缩放坐标,G85槽孔保护槽长,刀具定义行原样保留
- 新增 DrillScalingWindow 参数设置窗口:倍率/PPM模式切换,X/Y独立输入
- 集成到启动功能菜单:.dr2/.dpin 文件显示"涨缩"按钮
- 输出覆盖原文件 + .bak 备份,GB2312 编码
|
2026-06-05 22:17:15 +08:00 |
|
|
|
f050a606ef
|
fix: 启动功能选择菜单窗口强制置顶
|
2026-05-31 12:20:38 +08:00 |
|
|
|
c9d2f49eda
|
fix: 3.175外围孔间距算法,兼容轮廓式分布和侧面凸出点
旧算法要求最上/最下排各≥2个点,无法处理角上只有单个孔的板边轮廓分布。
新算法:X间距取上下排边缘点的极值(过滤侧面凸出点),Y间距取所有点极值。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-25 16:55:03 +08:00 |
|
|
|
c7f982c145
|
feat: 增加3.203孔PP钻带生成逻辑
|
2026-05-25 16:35:41 +08:00 |
|
|
|
04d4cd84d6
|
修复主窗口基础信息高度
|
2026-05-25 11:44:19 +08:00 |
|
|
|
0b4f55c352
|
chore: 将 .trellis 加入 .gitignore 并移除已跟踪文件
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-25 10:24:22 +08:00 |
|
|
|
ce81e1cf7d
|
显示 3.175 外围孔间距
|
2026-05-25 10:15:42 +08:00 |
|
|
|
41bba7f8aa
|
perf: 启动时合并4次文件读取解析为1次,加速右键打开大钻带
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 17:13:53 +08:00 |
|
|
|
b009ece1cd
|
feat: 注册右键菜单"用DrillTools打开",新增.dr3/.trg后缀支持
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 16:35:56 +08:00 |
|
|
|
cb27e8917a
|
feat: PP钻带基础信息显示X/Y间距
检测PP钻带(文件名-pp结尾、4孔、直径4.000),计算上下孔X间距和左右孔Y间距
(欧氏距离),在MainWindow和StartupSelectionWindow的基础信息中显示。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 16:04:51 +08:00 |
|
|
|
9896e54e93
|
fix: 排序种子与当前刀序一致时跳过提示
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 15:39:16 +08:00 |
|
|
|
473b2ca9cf
|
fix: 统一输出文件编码为ANSI,修复.NET 6下Encoding.Default回退为UTF-8的问题
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 15:35:11 +08:00 |
|
|
|
79021aa86b
|
fix: 将应用并保存按钮移至工具栏末位
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 12:27:33 +08:00 |
|
|
|
ceb88c216a
|
feat: 在启动功能选择窗口中显示基础信息
在 StartupSelectionWindow 顶部添加基础信息展示模块,
显示文件名、最小钻咀、最小槽刀、最小EA刀直径,
与 MainWindow 中的基础信息面板布局一致。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 12:23:28 +08:00 |
|
|
|
cbaac0e034
|
chore: record journal
|
2026-05-22 22:51:17 +08:00 |
|
|
|
783d99a3d8
|
chore(task): archive 05-22-defer-sort-seed-check
|
2026-05-22 22:51:09 +08:00 |
|
|
|
d1cdf081fe
|
移除主窗口置顶功能
|
2026-05-22 22:48:37 +08:00 |
|
|
|
4b2eff1c7e
|
Defer sort seed checks until adjust-order startup
|
2026-05-22 22:44:56 +08:00 |
|
|
|
e438386e68
|
Reuse open Explorer window when selecting files
|
2026-05-21 13:33:25 +08:00 |
|
|
|
25a7458db3
|
Add startup PP drill tape generation
|
2026-05-21 13:16:39 +08:00 |
|
|
|
951486202e
|
Add startup drill tape parameter cleanup
|
2026-05-21 12:49:19 +08:00 |
|
|
|
21fc6d4c4c
|
Handle G84 circular expansion hole counts
|
2026-05-21 12:39:46 +08:00 |
|
|
|
a27cef82b2
|
新增启动菜单
|
2026-05-17 21:56:57 +08:00 |
|
|
|
e006f83a19
|
优化对齐方式
|
2026-05-16 16:41:59 +08:00 |
|
|
|
81a1726557
|
实现导出孔数量
|
2026-05-16 12:07:32 +08:00 |
|
|
|
51de98bd5b
|
Add a splitter to resize the main panes
|
2026-05-16 11:02:00 +08:00 |
|
|
|
fc5b2b16fa
|
Hide slot and regular hole columns in main list
|
2026-05-16 10:56:12 +08:00 |
|
|
|
03d9b8baa2
|
Refactor drill tape reading and reorder logic
|
2026-05-16 10:23:55 +08:00 |
|
|
|
0c14c16a21
|
修复钻带文件输出末尾缺少空行的问题
在 DrillTapeProcessor 和 MainWindowViewModel 中的钻带生成逻辑里,
为 M30 结束标记后添加换行符,确保输出文件符合标准钻带文件格式。
🤖 Generated with [Claude Code](https://claude.com/claude-code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
|
2026-03-02 11:06:02 +08:00 |
|