Create Complex Procedural Meshes With Curves and Curve Booleans
Curve booleans allow you to create complex 2D shapes using curve tools and then create a system of booleans to convert your 2D curves into 3D models. This tool can be used in both direct modeling and procedural.
Direct Modeling Command
You can run the curve.boolean command to apply the curve boolean tool to selected curve polygons in an active mesh.
1.  Click on the Edit tab on the left hand side. 
2.  Under Booleans & Drill, click the Curve Boolean button. 
Procedural Modeling Mesh Operator
The Curve Boolean mesh operator is available in the Edit category of the Mesh Operations.
Options
Just like with regular booleans, there are four types of curved boolean you can create: Slice, Union, Intersect and Subtract.
Operation
Slice  allows you to overlap multiple curves and create new control points where the curves intersect.
Union  allows you to merge multiple overlapping curves into one shape and remove any overlapping curve segments.
Intersect  allows you to overlap two curves and then delete anything that exists outside of the overlap.
Subtract  allows you to use a curve to remove segments of another curve and can be used to cut out shapes from a base mesh.
Axis
Here you can specify the axis which defines the 2D plane for the boolean operation. Auto is the default mode, which computes the fitting plane from point positions of active curves.
Driver Curve
Unselected Curve operates selected curves by unselected curves in same mesh item.
When mode is Union and all curves are selected, curve boolean makes union curves with all selected curves.
When Driver Mesh is set, curve boolean operates selected curves in active mesh by curves in specific separated mesh item.
Driver Mesh Item
A driver mesh is a mesh that is used to create, or drive, the boolean.
Choose a mesh item with driver curves from this list when Driver Curve is Driver Mesh. If you're going to be adding multiple drivers it is recommended that you use the schematic viewport, because it keeps organization a bit easier and means you donâ€™t have to keep jumping between mesh items.
Constraint Target
The Constraint Target option is useful for applying boolean operations to 3D curves which are then constrained to a target 3D mesh surface. When a mesh item is assigned a Constraint Target the curves are given new vertex positions on the constraint target mesh surface.


Curve before Constraint Target 
Curve after Constraint Target 
The Offset from Target property defines how far along the normal vector from the constraint target the curve is positioned. Higher values move the curves away from the target mesh.


Offset from Target 0 
Offset from Target 10 mm 
Once the curve is constrained to the target mesh, you can use the translate handles to position the curve by moving it along the constrain surface.
Clip
When Clip is enabled, the curve boolean cuts the active curves. It does not append curve segments from driver curves.
Merge Curves
When Merge Curves is enabled, the curve boolean joins split curve segments into a new curve polygon. This applies to Polyline and Bezier polygon types. Curve and BSpline types are not merged so as to maintain sharp corners.
Close Open Curves
When Close Open Curves is enabled, the curve boolean treats opened curves as a closed loop by connecting the 1st and last points. This is useful for applying Subtract or Intersect to opened curves.
Trim Open Curves
When Trim Open Curves is enabled, the Curve Boolean trims opened curves at the point of intersection.
Overlapping curves with Trim Open Curves disabled. 
Trim Open Curves is enabled. The overlapping curves are merged into a single shape, and excess parts of the curve are removed. 
Self Intersection
When Self Intersection is enabled, Curve Boolean makes intersections by segments in the same curve loop.
 Slice mode adds the intersection points on the interfering segments.
 Union mode removes the sliced segments inside the curve loop.
Self Intersection disabled. 
Self Intersection enabled with 
Self Intersection enabled 