Curve Revolution

shigeru ozawa in Modeling


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

  1. Launch Blender

  2. Go to Edit > Preferences > Add-ons > Install

  3. Select the add-on .py file and install

  4. Enable "Curve to SVG Export" under the "SVG Import Export" category


Usage

  1. Select the curve object(s) you want to export

  2. Open the "SVG Import Export" panel in the side bar (press N if not visible)

  3. Adjust export settings as needed (projection axis, scale, stroke width, color, etc.)

  4. 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":

  1. If using node-based materials, Principled BSDF "Base Color" is used (if present)

  2. Otherwise, diffuse_color is 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 (C commands)

  • 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.

$10

Have questions about this product?
Login to message

Details
Blender Extension Compatible Yes
Sales 10+
Rating
1 ratings
Published over 1 year ago
Blender Version 4.3 - 5.2
Extension Type Add-on
Render Engine Used Cycles, Eevee
License GPL
Discover more products like this

Edit Bezier BezierCurve PolyCurve curve