OpenSCAD User Manual/SVG Import
[Note: Requires version 2019.05]
OpenSCAD can import the geometric structure of SVG files.
import("file.svg"); import(file = "file.svg", center = false, dpi = 96);
- String. The name of the file to import.
- Boolean. If set to true, the imported geometry is centered by bounding box of the geometry.
- Double. Use this DPI value for calculating the size of the viewbox if no unit is given for width/height. If no width/height is given at all the viewbox is used instead (e.g. for files created with older versions of Adobe Illustrator). If an absolute unit is given for width/height (px/pt/pc/in/mm/cm) the DPI value is ignored.
Scalable Vector Graphics (SVG), as the name already implies, is designed to be a scalable graphics format targeting rendering on Web pages with support for interactivity and animation.
This means there are a number of features that do not translate well into the use as CAD format. Especially all animation features and most visual properties in the SVG file are ignored. In general the OpenSCAD SVG import will extract the core geometric information of the objects and transform that into closed 2D polygons.
Main features not imported are:
- Text / Fonts
- Clipping and Masking
- Objects using templates
The ViewBox attribute of the SVG file defines the initial coordinate system for displaying it's content. The OpenSCAD import supports the tranformations including the preserveAspectRatio attribute. The article Understanding SVG Coordinate Systems and Transformations gives a nice introduction of how all combinations of the viexBox related attributes affect the display.
Open / Closed shapes
OpenSCAD only handles closed polygons, so importing lines or open polygons is not possible. Instead open polygons are treated as shapes defined by their stroke-width.
Closed shapes are always using the geometric specification regardless of fill or stroke-with defined in the SVG file.