Skip to content

Latest commit

 

History

History
101 lines (72 loc) · 5.11 KB

ReadMe.md

File metadata and controls

101 lines (72 loc) · 5.11 KB

Welcome to GerberParser 👋

GerberParser

English

Version Documentation License: LICENSE

MacOS Ubuntu Windows

GerberParser是一个gerber文件解析库。采用标准c++编写,支持rs274x标准。gerber文件解析部分提供预编译好的动态链接库,包含Windows,Macos和Linux三大平台的。如果你需要其他平台或环境下的库,请联系作者(联系方式见后文)。图像渲染部分默认提供Qt版本。你可以直接绘制到Qt的QWidget上,也可以绘制到Qt的图像上,然后导出成图片文件。Qt支持的图像格式都支持,包括BMP、GIF、JPEG、PNG等,利用QSvgGenerator和QPDFWriter,你也可以将gerber文件绘制到svg格式的图像或pdf格式的文件中,具体请查阅Qt的文档。

仓库example目录下提供了两个示例程序。一个用来将gerber文件导出成图像文件,支持超高分辨率的导出,对于低分辨率的会导出成一个文件,对于高分辨率(分辨率高到超出了限制)的,会自动切割,导出成多个片段。另外一个是gerber_viewer,它是一个交互式的界面程序,用来预览gerber文件,支持简单的放大缩小的交互。如果你想编译example程序,请在CMake时设置"BUILD_EXAMPLES"的选项。

渲染样图

gerber image

Demo

安装

依赖库

Qt,请在你的电脑上预先安装Qt库,请到Qt官网下载安装。目前默认使用的是Qt6。

克隆代码:

git clone https://github.com/hsiang-lee/gerber-parser //克隆代码仓库到本地
git submodule update --recursive --init //拉取子模块,会自动拉取依赖的第三方库gfalg、gtest等

CMake:

你可以使用下面的命令来cmake。或者你也可以使用cmake gui程序来cmake,cmake时如果找不到Qt,请手动设置Qt的路径。

cd gerber-parser
mkdir build
cd build
cmake .. -G "NMake Makefiles" -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DQt6_DIR=path/of/Qt

构建:

如果你在终端中编译,使用下面的命令即可。或者你也可以使用IDE来编译(visual studio,vs code,xCode等)。 Linux(Ubuntu) or Mac: make

Windows: nmake

使用示例

auto parser = std::make_shared<GerberParser>(gerber_file_path);
auto gerber = parser->GetGerber();
//Construct a Gerber object,gerber file will be parsed here。

auto image = std::make_unique<QBitmap>(1920, 1280);//Create a QBitmap(for export bitmap image).Other images can also be exported, eg: QPixmap or QImage.
auto engine = std::make_unique<QPainterEngine>(image.get());//Construct a QtEngine
engin->RenderGerber(gerber);//Render the gerber file to a bitmap image created above

image->save(path_you_want_to_save_image);//Save the image rendered to file.

也可参考example中的代码。

授权

使用gerber-parser需要获取license授权。未获取license的版本可以使用,但会出现随机错误,并且运行效率较低。获取授权请联系作者,可以获取试用版授权,或永久授权。

关于作者

👤 leehsiang

🤝 贡献代码

欢迎提交issue或功能请求
Feel free to check issues page. You can also take a look at the contributing guide.

支持作者

记得点赞,给星⭐️ 哟~

Stargazers

Stargazers repo roster for @hsiang-lee/gerber-parser

Forkers

Forkers repo roster for @hsiang-lee/gerber-parser

📝 License

Copyright © 2022 leehsiang.
This project is MIT license licensed.