Multi file guide¶
This guide shows how to use CompositeView class in par with GerberFile class to
operate on multiple Gerber files at once.
Creating CompositeView instance¶
CompositeView
class is a thin wrapper around multiple
GerberFile
objects. Usually it does not make sense to operate on all files from project at once,
since rendering top layers on top of bottom ones will produce hard to understand
images. It makes more sense to render them separately. Therefore CompositeView is a
way to group files that should be rendered together, for example all parts of top of
PCB, silkscreen, solder mask, top copper etc. while parts of bottom of PCB are
grouped in separate CompositeView, so do internal layers.
CompositeView constructor accepts multiple GerberFile objects as arguments. First
GerberFile is the bottom most, usually copper layer, and last GerberFile is top
most, usually silk screen. Here is an example:
CompositeView((GerberFile(source='@string', sha256='415f75c8fb8ffa30a1c272241e1048186af9d686cc58588c96af859acffc3f0e'), GerberFile(source='@string', sha256='f6cf84f51a7330d9195ea53164e4db7bac0415db5780df3f53e1d2986c85c725'), GerberFile(source='@string', sha256='0957b0e6c778e58507ba848249589bcbfba3a2b7e28c65ab5f07fe08f154d52a'), GerberFile(source='@string', sha256='66e189271f75224c5aa37e1ecf716e0a90f28560f54a49861b21420133c3c530')))
Rendering raster images¶
Image rendering API of CompositeView object is similar to rendering API of
GerberFile object. CompositeView object exposes render_with_pillow() method which
renders all files into single image.
CompositeView automatically aligns all images during grouped rendering, determines how
big final image has to be to fit all images and merges them into single image. It is
still possible to retrieve individual images from result returned by rendering methods.
Image presented above is a result of rendering Gerber files from this project: github.com/AntonioMR/ATMEGA328-Motor-Board
Accessing individual images¶
After rendering a image with CompositeView object you can still access individual
images by using
get_sub_images()
method available on
CompositePillowImage
object returned by render_with_pillow() method.
Further reading¶
Check out full reference of
pygerber.gerber.api.