Skip to main content

Crate lib_gerber_edit

Crate lib_gerber_edit 

Source
Expand description

§lib_gerber_edit

Manipulation library for RS-274X (Extended Gerber) and Excellon drill files, built on top of gerber_parser.

All lengths exposed through the public API are in millimetres.

§Key types

TypeDescription
BoardCollection of mixed Gerber/Excellon layers
GerberLayerDataSingle RS-274X layer
AsciiTextRenders vector text into a Gerber layer
LayerTypeIdentifies each layer (copper, silkscreen, drill …)

§Traits

TraitDescription
LayerCornersBounding box (get_corners) and size (get_size)
LayerTransformTranslate by a Pos offset
LayerScaleScale by independent X/Y factors
LayerMergeMerge two layers or boards of the same type
LayerStepAndRepeatTile a pattern across a grid

§Quick start

use lib_gerber_edit::board::Board;
use lib_gerber_edit::{LayerTransform, Pos};
use std::path::Path;

// Load every recognised layer from a directory.
let mut board = Board::from_folder(Path::new("gerbers/")).unwrap();

// Shift the whole board by (10 mm, 5 mm).
board.transform(&Pos { x: 10.0, y: 5.0 });

// Write back to a different directory.
board.write_to_folder(Path::new("output/")).unwrap();

§Rendering text

use lib_gerber_edit::gerber_ascii::{AsciiText, HAlign, VAlign};
use lib_gerber_edit::layer::LayerType;

let fmt = AsciiText::new(3.0)           // 3 mm character height
    .h_align(HAlign::Center)
    .v_align(VAlign::Middle);

// Same format object — render two different strings.
let rev1 = fmt.build("Rev 1.0", LayerType::SilkScreenTop);
let rev2 = fmt.build("Rev 2.0", LayerType::SilkScreenTop);

Re-exports§

pub use gerber_parser;
pub use gerber_parser::gerber_types;

Modules§

board
error
excellon_format
gerber
gerber_ascii
Vector text rendering for Gerber layers.
layer
unit_able

Macros§

load_board_data
And macro to load a board statically
load_layer_data
And macro to load a single layer statically

Structs§

Pos
Position in mm
Size
Size in mm

Traits§

LayerCorners
Bounding-box queries.
LayerMerge
Layer concatenation.
LayerScale
Uniform or anisotropic scaling.
LayerStepAndRepeat
Grid replication.
LayerTransform
Rigid translation.

Type Aliases§

Result