Narcoleptic Possum Mob

    @nplayfair/npe_gerber

    0.2.0 • Public • Published

    npe_gerber

    npm (scoped)

    This is still being developed and isn't ready for production! Only tested with gerbers generated by EAGLE.

    Requires node version 10 or higher.

    Usage

    Save a PNG file

    const { ImageGenerator } = require('@nplayfair/npe_gerber');
    
    const folderConfig = {
        tmpDir: path.join(__dirname, 'tmp'),
        imgDir: path.join(__dirname, 'img')
    }
    
    const imageConfig = {
        resizeWidth: 600,
        density: 1000,
        compLevel: 1
    }
    
    const layerNames = [
      'CAMOutputs/DrillFiles/drills.xln',
      'CAMOutputs/GerberFiles/copper_top.gbr',
      'CAMOutputs/GerberFiles/silkscreen_top.gbr',
      'CAMOutputs/GerberFiles/soldermask_top.gbr',
      'CAMOutputs/GerberFiles/solderpaste_top.gbr',
      'CAMOutputs/GerberFiles/profile.gbr',
    ];
    
    const gerberArchive = '/path/to/gerber.zip';
    
    const fileProc = new ImageGenerator(folderConfig, imageConfig, layerNames);
    
    fileProc.gerberToImage(gerberArchive)
          .then(filename => {
            console.log(`Generated image ${filename}`);
          })
    

    Return a PNG stream

    const { ImageGenerator } = require('@nplayfair/npe_gerber');
    
    const folderConfig = {
        tmpDir: path.join(__dirname, 'tmp'),
        imgDir: path.join(__dirname, 'img')
    }
    
    const imageConfig = {
        resizeWidth: 600,
        density: 1000,
        compLevel: 1
    }
    
    const layerNames = [
      'CAMOutputs/DrillFiles/drills.xln',
      'CAMOutputs/GerberFiles/copper_top.gbr',
      'CAMOutputs/GerberFiles/silkscreen_top.gbr',
      'CAMOutputs/GerberFiles/soldermask_top.gbr',
      'CAMOutputs/GerberFiles/solderpaste_top.gbr',
      'CAMOutputs/GerberFiles/profile.gbr',
    ];
    
    const gerberArchive = '/path/to/gerber.zip';
    
    const fileProc = new ImageGenerator(folderConfig, imageConfig, layerNames);
    
    fileProc.gerberToStream(gerberArchive)
          .then(stream => {
            // Do something with the stream
          })
    

    Layer Names

    The constructor must be passed an array of filenames that correspond to the layers in the gerber archives you expect to be uploaded. The example above shows which names are used by EAGLE but other applications may use different filenames.

    Image Processing Configuratation

    Several values need to be set in the image configuration object. An SVG vector is first created as an intermediate step before being converted to a PNG. These correspond to the parameters passed to sharp for resizing the intermediary SVG and output PNG file. These settings are:

    • resizeWidth: Width in pixels of the output image.
    • density: DPI to create the SVG with. Low values will result in a poor quality output image.
    • compLevel: PNG compression level.

    More information about these settings can be found in the sharp documentation.

    Install

    npm i @nplayfair/npe_gerber

    DownloadsWeekly Downloads

    1

    Version

    0.2.0

    License

    MIT

    Unpacked Size

    473 kB

    Total Files

    23

    Last publish

    Collaborators

    • nplayfair