|
|
209268ee18
|
fix: 还原 cmd /c type 读取并移除路径字符黑名单 — 加密钻带文件只能用 cmd type 读取
b75439c 以"命令行是多余的"为由把读取改成 FileStream+StreamReader,是错误前提:
项目存在无法用标准文件 I/O 读取的加密 txt/钻带文件(CLAUDE.md "Encrypted file reading"、
Docs/readme.md "读取加密钻带(使用cmd命令type读取)"、
Docs/刀具列表拖动排序功能说明.md "加密文件:使用 cmd 命令读取"均有记录),
该改动会导致这些文件读取失败。本次回退。
改动:
- 还原 CommandTypeFileReader.cs:cmd.exe /d /c type(ANSI/936 解码),
失败时退出码与 stderr 保留在异常消息里
- 删除 ForbiddenPathChars 与两处字符校验(本次报错根因):
( ) & ^ @ 空格在双引号内对 type 安全,黑名单只会误伤 (D2-f)、(1) 等正常文件名
- 保留"非空路径""文件存在"校验与 ReadAllText(path, encoding) 重载
- 删除 AnsiFileReader.cs,15 处调用点改回
- CLAUDE.md / .trellis/spec/:恢复"加密文件必须用 cmd type"的说明,
并标注为不可优化掉的硬约束(含 b75439c 反例)
验证:demo_drl 全部 36 个文件与 2335894 实现逐字符一致、行数一致;
含 ( ) & 空格路径实测可读(旧黑名单实现抛"文件路径包含不允许的命令行特殊字符");
cmd 失败消息含退出码与 stderr;dotnet build -p:Platform=x86 0 错误,
警告集与 HEAD 基线完全一致。
|
2026-09-20 13:28:37 +08:00 |
|
|
|
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 |
|
|
|
b51a5cecf8
|
fix: 按尾号标准计算最小刀径,排除粉尘刀与去毛刺刀
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-07-09 17:44:07 +08:00 |
|
|
|
3e07873636
|
Exclude 0.749 from minimum diameter display
|
2026-06-06 08:37:11 +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 |
|
|
|
ce81e1cf7d
|
显示 3.175 外围孔间距
|
2026-05-25 10:15:42 +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 |
|
|
|
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 |
|
|
|
81a1726557
|
实现导出孔数量
|
2026-05-16 12:07:32 +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 |
|
|
|
5e8b989add
|
刀具日志增强与PCB钻孔数据大规模更新
本次提交包含以下主要变更:
- 增强了刀具类型、尾号类型及最小直径计算的调试日志,便于问题追踪和数据分析。
- 修正了最小槽刀直径的计算逻辑,EA型槽刀单独处理,提升了判定准确性。
- 针对特殊直径的刀具类型判定增加了专门处理和日志输出。
- 删除了 General_sort.txt 和 s40024079g0-a2-cs-jp-sort.txt 文件内容。
- n40032386g0-a2-cs-jp.drl 文件新增了大量PCB钻孔、槽孔(G85)、外形轮廓等数控加工数据,完善了刀具分组与程序控制指令,满足PCB生产自动化需求。
|
2025-12-31 15:09:14 +08:00 |
|
|
|
837cf6fb12
|
新增钻带刀序多种排序功能及相关文档
本次提交主要内容如下:
- 新增“排序功能”菜单,支持重排刀序、生成/应用排序种子、按参考钻带重排等多种排序方式,提升刀具顺序管理灵活性。
- 支持用户选择参考钻带文件或排序种子文件,自动重排当前刀具顺序,并提供详细的匹配校验、警告提示和重排前后对比确认。
- 新增生成通用排序种子文件(General_sort.txt)功能,便于批量产品排序。
- 优化界面布局,提升信息展示美观性和空间利用率。
- 增加异常处理和详细注释,提升健壮性和可维护性。
- 新增多个文档,详细说明“使用指定钻带的刀序”功能的实现、使用方法、演示流程及开发过程中的问题修复,便于开发和用户理解。
- 新增两个排序种子文件示例(General_sort.txt、s40024079g0-a2-cs-jp-sort.txt),用于刀具顺序自动重排。
- 其他无实际代码变更的文件未影响功能。
本次改动极大提升了钻带刀具顺序管理的自动化、灵活性和用户体验,适用于多样化的生产场景。
|
2025-12-28 13:16:41 +08:00 |
|
|
|
0eab0f42ee
|
钻带解析顺序与格式优化,界面信息增强
本次更新聚焦于钻带文件解析顺序与格式的准确还原,提升了界面基础信息展示,并优化了相关数据结构和辅助方法。主要包括:
- 钻带孔位逐行顺序解析,完整保留原始坐标字符串格式,避免顺序错乱和格式丢失。
- 界面新增基础信息分组,自动统计并展示最小钻咀、槽刀、EA刀直径。
- 数据结构如Point2D等增加运算符重载和构造函数,便于几何计算。
- 机台码(0.499刀具)坐标行顺序提取及正则健壮性提升。
- 移除强制编码指定,提升跨平台兼容性。
- 清理冗余测试代码,更新示例/测试钻带文件内容。
- 新增《必读.md》,明确AI开发不需编写测试单元。
本次无其他功能或逻辑变动的占位diff。
|
2025-12-22 16:50:42 +08:00 |
|
|
|
44de1cb982
|
新增窗口置顶功能并优化sort.txt读取方式
新增窗口“置顶/取消置顶”按钮,支持动态切换窗口置顶状态,按钮文本随状态变化自动更新。优化 sort.txt 文件读取,改用 cmd type 命令读取并按行分割,提升编码兼容性,避免因编码问题导致读取异常。
|
2025-12-17 19:39:57 +08:00 |
|
|
|
c73555cb9b
|
V1.0
|
2025-12-15 20:53:20 +08:00 |
|
|
|
3cdf68651f
|
删除了一些测试方法
新增了刀序重排确认窗口
优化了应用刀序到钻带后的一些操作
|
2025-12-13 12:30:36 +08:00 |
|
|
|
b866365968
|
添加项目文件。
|
2025-12-07 20:25:27 +08:00 |
|