Curve Revolution
Curve2SVG Add-on Documentation
Overview
Curve2SVG is a Blender add-on that exports curve objects to SVG file format.
It supports Bezier curves, polylines, NURBS, and more, converting all shapes to SVG paths with full support for colors, holes (inner contours), opacity, and gradients.
The add-on can automatically extract both standard material colors and the Principled BSDF "Base Color", ensuring accurate SVG reproduction even for complex "donut/holes" curves.
Features
-
Export any curve to SVG
-
Bezier handles are preserved as smooth SVG paths
-
Outer and inner contours (holes) are expressed via
fill-rule="evenodd" -
Full support for stroke color, fill color, and opacity (RGBA)
-
Automatically detects Blender material "Base Color"
-
All settings (color, width, scale, etc.) adjustable from the panel
-
SVG gradients (linear/radial) also supported
Installation
-
Launch Blender
-
Go to
Edit > Preferences > Add-ons > Install -
Select the add-on
.pyfile and install -
Enable "Curve to SVG Export" under the "SVG Import Export" category
Usage
-
Select the curve object(s) you want to export
-
Open the "SVG Import Export" panel in the side bar (press
Nif not visible) -
Adjust export settings as needed (projection axis, scale, stroke width, color, etc.)
-
Press the "Export Curves to SVG" button to generate an SVG file
Main Options
-
Projection Axis: Choose the projection plane (XY, XZ, YZ)
-
Export Target: Select from currently selected, current collection, or all curves
-
Scale: Set export scale for SVG
-
Stroke Width: Line thickness
-
Stroke Color: Line color
-
Fill Method: "Single Color" or "Simple Gradient"
-
Fill Source: Use "Direct" color or "Material Color"
-
Fill Color: Fill color (supports RGBA)
-
Start/End Color: For gradients
Automatic Material Color Extraction
When "Fill Source" is set to "Material Color":
-
If using node-based materials, Principled BSDF "Base Color" is used (if present)
-
Otherwise,
diffuse_coloris used as a fallback
Colors are extracted as RGBA and applied to SVG output.
Hole (Inner Contour) Support
-
Curves with multiple splines (outer + holes) are automatically detected
-
Contour orientation (CW/CCW) is detected and corrected if necessary
-
SVG uses
fill-rule="evenodd"to guarantee correct hole rendering
Code Structure Highlights
-
Bezier handles are exported as full SVG cubic curves (
Ccommands) -
Each spline is added to a single
<path>per object (holes supported) -
get_material_color() fetches the correct "Base Color" or diffuse color as RGBA
-
Export logic is in
export_svg_from_curve() -
UI panel and properties follow standard Blender add-on style
FAQ
-
Q: Holes don't appear / color looks wrong!
-
Outer/inner orientation is auto-corrected. If material is too complex, try using Direct color.
-
-
Q: SVG curves look polygonal, not smooth?
-
For Bezier curves, handle information is preserved and exported as SVG cubic Bézier paths.
-
Changelog (Example)
-
v1.2.0: Prioritizes Base Color, strict fill-rule=evenodd hole support
-
v1.1.0: Improved RGBA opacity and material color detection
-
v1.0.0: Initial release
Development & Support
-
For questions and bug reports, contact the author via GitHub or the provided support channel.