Wiki

Clone wiki

FlatCAM / betadocs

This section documents features that have not made it to the manual yet. They are simply missing from the manual or describe features that have not made it into a release yet (only in the development source).

SVG Import

FlatCAM supports importing Scalable Vector Graphics (SVG) as FlatCAM Geometry Objects. SVG drawings can be created with a multitude of applications such as Inkscape or Illustrator.

It's important to understand that FlatCAM Geometry Objects are made of paths (lines) only, therefore, certain SVG features cannot be imported. Polygons for instances are imported as only their boundary (perimeter). Texts, gradients, and other features are not supported and are simply ignored.

Shell Commands

aligndrill

Create excellon with drills for alignment.

#!text

> aligndrill <name> [-dia <3.0 (float)>] -axis <X|Y> [-box <nameOfBox> -minoffset <float> [-grid <10 (float)> -gridoffset <5 (float)> [-axisoffset <0 (float)>]] | -dist <number>]
   name: Name of the object (Gerber or Excellon) to mirror.
   dia: Tool diameter
   box: Name of object which act as box (cutout for example.)
   grid: aligning  to grid, for thouse, who have aligning pins inside table in grid (-5,0),(5,0),(15,0)...
   gridoffset: offset of grid from 0 position
   minoffset: min and max distance between align hole and pcb
   axisoffset: offset on second axis before aligment holes
   axis: Mirror axis parallel to the X or Y axis.
   dist: Distance of the mirror axis to the X or Y axis.

aligndrillgrid

Create excellon with drills for alignment grid.

#!text

> aligndrillgrid <outname> [-dia <3.0 (float)>] -gridx <float> [-gridoffsetx <0 (float)>] -gridy <float> [-gridoffsety <0 (float)>] -columns <int> -rows <int>
   outname: Name of the object to create.
   dia: Tool diameter
   gridx: grid size in X axis
   gridoffsetx: move grid  from origin
   gridy: grid size in Y axis
   gridoffsety: move grid  from origin
   colums: grid holes on X axis
   rows: grid holes on Y axis

subtract_poly

Subtract polygon from the given Geometry object.

#!text

> subtract_poly <name> <x0> <y0> <x1> <y1> <x2> <y2> [x3 y3 [...]]
   name: Name of the geometry object, which will be subtracted.
   xi, yi: Coordinates of points in the polygon.'

join_excellons

Runs a merge operation (join) on the excellon objects.

#!text

> join_excellons <out_name> <obj_name_0>...
   out_name: Name of the new excellon object.
   obj_name_0... names of the objects to join

panelize

Simple panelize geometries.

#!text

> panelize <name> [-box <nameOfBox>]  [-spacing_columns <5 (float)>] [-spacing_rows <5 (float)>] -columns <int> -rows <int>  [-outname <n>]
   name: Name of the object to panelize.
   box: Name of object which act as box (cutout for example.) for cutout boundary. Object from name is used if not specified.
   spacing_columns: spacing between columns
   spacing_rows: spacing between rows
   columns: number of columns
   rows: number of rows
   outname: Name of the new geometry object.

subtract_rect

Subtract rectangle from the given Geometry object.

#!text

> subtract_rect <name> <botleft_x> <botleft_y> <topright_x> <topright_y>
   name: Name of the geometry object, which will be subtracted.
   botleft_x, botleft_y: Coordinates of the bottom left corner.
   topright_x, topright_y Coordinates of the top right corner.

geocutout

Cut holding gaps from geometry.

#!text

> geocutout <name> [-dia <3.0 (float)>] [-margin <0.0 (float)>] [-gapsize <0.5 (float)>] [-gaps <lr (8|4|tb|lr|2tb|2lr)>]
   name: Name of the geometry object
   dia: Tool diameter
   margin: Margin over bounds
   gapsize: size of gap
   gaps: type of gaps

   example:

      #isolate margin for example from fritzing arduino shield or any svg etc
      isolate BCu_margin -dia 3 -overlap 1

      #create exteriors from isolated object
      exteriors BCu_margin_iso -outname BCu_margin_iso_exterior

      #delete isolated object if you dond need id anymore
      delete BCu_margin_iso

      #finally cut holding gaps
      geocutout BCu_margin_iso_exterior -dia 3 -gapsize 0.6 -gaps 4

Updated