1. 项目概述
3070文件格式中的boardxy文件是PCB设计制造领域的重要数据交换格式,主要用于描述电路板的物理布局和坐标信息。作为一名在EDA行业摸爬滚打十年的工程师,我经常需要处理各种Gerber文件和制造数据,而boardxy文件作为3070测试机台的专用格式,其重要性不亚于IPC-2581或ODB++这些通用标准。
这个文件本质上是一个结构化的文本文件,包含了测试点坐标、网络关系、器件位置等关键制造信息。与常见的Excel或CSV格式不同,boardxy文件采用特定的字段分隔符和记录结构,需要专门的解析器才能正确读取。在实际项目中,我们经常遇到不同版本机台对文件格式的兼容性问题,这也是为什么需要深入理解其二进制结构和字段定义。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文件结构深度解析
2.1 文件头信息规范
boardxy文件的头部通常以"FILE_TYPE=BOARDXY_8"这样的声明开始,这个版本标识直接影响后续数据的解析方式。我遇到过最棘手的情况是客户发来的文件头写着"BOARDXY_7",但实际内容却是8版本的格式,导致整个测试程序无法加载。
典型的文件头包含以下关键字段:
- FORMAT_VERSION:必须与文件内容实际版本一致
- UNITS:毫米/英寸单位声明(影响所有坐标值)
- DATE_CODE:文件生成时间戳
- BOARD_THICKNESS:基板厚度参数
重要提示:某些老版本机台会忽略DATE_CODE校验,但新型号测试机对此要求严格,格式错误会直接导致文件被拒绝。
2.2 坐标记录结构
坐标数据是boardxy文件的核心,采用分层存储结构。每个物理层(TOP/BOTTOM/INNER)有独立的坐标区块,由BEGIN_LAYER和END_LAYER标记包裹。在解析时最容易出错的是以下字段:
code复制RECORD_TYPE=TEST_POINT
X_COORD=125.70
Y_COORD=88.33
NET_NAME=VDD_3V3
COMPONENT_ID=U12-PIN7
实测发现,当坐标值超过5位小数时,某些测试机台会出现舍入误差。我的经验是提前用Python的decimal模块进行四舍五入处理:
python复制from decimal import Decimal, R
