PCB tools extension === PCB tools extension is a Python library to panelize gerber files. This library is designed based on [PCB tools](https://github.com/curtacircuitos/pcb-tools) which provides cool functionality to handle PCB such as generationg PCB image from gerber files. PCB tools extension adds following function to PCB tools. - Rotate PCB data - Write back loded PCB data (original PCB tools does not work completely) - Merge multiple PCB data - Translate DXF file to gerber data Only RS-274x format and Excellon drill format data can be handled by current version of this library. ## How to panelize Following code is a example to panelize two top metal layer files. ``` python import gerberex ctx = gerberex.GerberComposition() metal1 = gerberex.read('board1.gtl') ctx.merge(metal1) metal2 = gerberex.read('board2.gtl') metal2.to_metric() metal2.rotate(-20) metal2.offset(30, 0) ctx.merge(metal2) ctx.dump('panelized-board.gtl') ``` ```rotate()``` method can be used to rotate PCB data counterclockwise. you have to specify angle in degree
```offset()``` method can be used to move PCB data. Specified offset values are interpreted according to unit setting of PCB data. In case of the above code, ```board2.gtl``` move to 30mm left since ```to_metric()``` is called. In case of Excellon drill data, you have to use ```DrillCompositon``` instead of ```GerberComposition```. ```python import gerberex ctx = gerberex.DrillComposition() drill1 = gerberex.read('board1.txt') ctx.merge(drill1) drill2 = gerberex.read('board2.txt') drill2.to_metric() drill2.rotate(-20) drill2.offset(30, 0) ctx.merge(drill2) ctx.dump('panelized-board.txt') ``` ## DXF file translation You can also load a dxf file and handle that as same as RX-274x gerber file.
This function is useful to generate outline data of pnanelized PCB boad. ```python import gerberex ctx = gerberex.GerberComposition() dxf = gerberex.read('outline.dxf') ctx.merge(dxf) ``` ## Panelized board image Example This image is generated by original [PCB tools](https://github.com/curtacircuitos/pcb-tools) fucntion.

description

## Installation ```shell $ git clone https://github.com/opiopan/pcb-tools-extension.git $ pip install pcb-tools-extension