2 个版本
0.1.2 | 2022年6月29日 |
---|---|
0.1.1 | 2022年6月29日 |
#1631 在 解析实现
用于 gerber2svg
35KB
437 行
Gerber-parser
使用 Rust 编写的简单 gerber
解析器,用于与 gerber-types
crate 一起使用。
use std::fs::File;
use std::io::{BufRead, BufReader};
use gerber_parser::parser::parse_gerber;
// open a .gbr file from system
let file = File::open(path).unwrap();
let reader = BufReader::new(file);
// Now we parse the file to a GerberDoc
let gerber_doc: GerberDoc = parse_gerber(reader);
// it is possible to convert to an 'atomic' representation purely
// in terms of Vec<Command> of the gerber-types crate
let commands:Vec<Command> = gerber_doc.to_commands();
当前状态
⚠️ 注意:此软件包仍在开发中,并未涵盖完整的 Gerber 规范
目前缺失
- 所有
TD
、TO
命令 - 所有
AM
命令 LM
、LR
、LS
命令SR
命令AB
命令
部分实现
- TF 和 TA 命令仅支持有限的参数范围;自定义属性会导致错误
此外,文件标题部分的注释(即单位类型声明、格式规范和孔径声明)将在解析后的 Gerber 通过序列化转换回字符串时放置在标题下方。
一般待办事项
- 使用
Result
使解析更简洁 - 减少 panic 数量
- 使错误消息更清晰
- 所有命令的迷你测试
- 进行适当的坐标检查(与
格式规范
兼容性)
依赖关系
~4–5.5MB
~100K SLoC