cam.curvecamtools

Contents

cam.curvecamtools#

BlenderCAM ‘curvecamtools.py’ © 2012 Vilem Novak, 2021 Alain Pelletier

Operators that perform various functions on existing curves.

Classes#

CamCurveBoolean

Perform Boolean Operation on Two or More Curves

CamCurveConvexHull

Perform Hull Operation on Single or Multiple Curves

CamCurveIntarsion

Makes Curve Cuttable Both Inside and Outside, for Intarsion and Joints

CamCurveOvercuts

Adds Overcuts for Slots

CamCurveOvercutsB

Adds Overcuts for Slots

CamCurveRemoveDoubles

Curve Remove Doubles

CamMeshGetPockets

Detect Pockets in a Mesh and Extract Them as Curves

CamOffsetSilhouete

Curve Offset Operation

CamObjectSilhouete

Object Silhouette

Module Contents#

class CamCurveBoolean[source]#

Bases: bpy.types.Operator

Perform Boolean Operation on Two or More Curves

bl_idname = 'object.curve_boolean'[source]#
bl_label = 'Curve Boolean'[source]#
bl_options[source]#
boolean_type: EnumProperty(name='Type', items='UNION', 'Union', '', 'DIFFERENCE', 'Difference', '', 'INTERSECT', 'Intersect', '', description='Boolean type', default='UNION')[source]#
classmethod poll(context)[source]#
execute(context)[source]#
invoke(context, event)[source]#
class CamCurveConvexHull[source]#

Bases: bpy.types.Operator

Perform Hull Operation on Single or Multiple Curves

bl_idname = 'object.convex_hull'[source]#
bl_label = 'Convex Hull'[source]#
bl_options[source]#
classmethod poll(context)[source]#
execute(context)[source]#
class CamCurveIntarsion[source]#

Bases: bpy.types.Operator

Makes Curve Cuttable Both Inside and Outside, for Intarsion and Joints

bl_idname = 'object.curve_intarsion'[source]#
bl_label = 'Intarsion'[source]#
bl_options[source]#
diameter: FloatProperty(name='Cutter Diameter', default=0.001, min=0, max=0.025, precision=4, unit='LENGTH')[source]#
tolerance: FloatProperty(name='Cutout Tolerance', default=0.0001, min=0, max=0.005, precision=4, unit='LENGTH')[source]#
backlight: FloatProperty(name='Backlight Seat', default=0.0, min=0, max=0.01, precision=4, unit='LENGTH')[source]#
perimeter_cut: FloatProperty(name='Perimeter Cut Offset', default=0.0, min=0, max=0.1, precision=4, unit='LENGTH')[source]#
base_thickness: FloatProperty(name='Base Material Thickness', default=0.0, min=0, max=0.1, precision=4, unit='LENGTH')[source]#
intarsion_thickness: FloatProperty(name='Intarsion Material Thickness', default=0.0, min=0, max=0.1, precision=4, unit='LENGTH')[source]#
backlight_depth_from_top: FloatProperty(name='Backlight Well Depth', default=0.0, min=0, max=0.1, precision=4, unit='LENGTH')[source]#
classmethod poll(context)[source]#
execute(context)[source]#
invoke(context, event)[source]#
class CamCurveOvercuts[source]#

Bases: bpy.types.Operator

Adds Overcuts for Slots

bl_idname = 'object.curve_overcuts'[source]#
bl_label = 'Add Overcuts - A'[source]#
bl_options[source]#
diameter: FloatProperty(name='Diameter', default=0.003175, min=0, max=100, precision=4, unit='LENGTH')[source]#
threshold: FloatProperty(name='Threshold', default=pi / 2 * 0.99, min=-3.14, max=3.14, precision=4, subtype='ANGLE', unit='ROTATION')[source]#
do_outer: BoolProperty(name='Outer Polygons', default=True)[source]#
invert: BoolProperty(name='Invert', default=False)[source]#
classmethod poll(context)[source]#
execute(context)[source]#
invoke(context, event)[source]#
class CamCurveOvercutsB[source]#

Bases: bpy.types.Operator

Adds Overcuts for Slots

bl_idname = 'object.curve_overcuts_b'[source]#
bl_label = 'Add Overcuts - B'[source]#
bl_options[source]#
diameter: FloatProperty(name='Tool Diameter', default=0.003175, description='Tool bit diameter used in cut operation', min=0, max=100, precision=4, unit='LENGTH')[source]#
style: EnumProperty(name='Style', items='OPEDGE', 'opposite edge', 'place corner overcuts on opposite edges', 'DOGBONE', 'Dog-bone / Corner Point', 'place overcuts at center of corners', 'TBONE', 'T-bone', 'place corner overcuts on the same edge', default='DOGBONE', description='style of overcut to use')[source]#
threshold: FloatProperty(name='Max Inside Angle', default=pi / 2, min=-3.14, max=3.14, description='The maximum angle to be considered as an inside corner', precision=4, subtype='ANGLE', unit='ROTATION')[source]#
do_outer: BoolProperty(name='Include Outer Curve', description='Include the outer curve if there are curves inside', default=True)[source]#
do_invert: BoolProperty(name='Invert', description='invert overcut operation on all curves', default=True)[source]#
otherEdge: BoolProperty(name='Other Edge', description='change to the other edge for the overcut to be on', default=False)[source]#
classmethod poll(context)[source]#
execute(context)[source]#
invoke(context, event)[source]#
class CamCurveRemoveDoubles[source]#

Bases: bpy.types.Operator

Curve Remove Doubles

bl_idname = 'object.curve_remove_doubles'[source]#
bl_label = 'Remove Curve Doubles'[source]#
bl_options[source]#
merg_distance: FloatProperty(name='Merge distance', default=0.0001, min=0.0, max=0.01)[source]#
keep_bezier: BoolProperty(name='Keep bezier', default=False)[source]#
classmethod poll(context)[source]#
execute(context)[source]#
draw(context)[source]#
invoke(context, event)[source]#
class CamMeshGetPockets[source]#

Bases: bpy.types.Operator

Detect Pockets in a Mesh and Extract Them as Curves

bl_idname = 'object.mesh_get_pockets'[source]#
bl_label = 'Get Pocket Surfaces'[source]#
bl_options[source]#
threshold: FloatProperty(name='Horizontal Threshold', description='How horizontal the surface must be for a pocket: 1.0 perfectly flat, 0.0 is any orientation', default=0.99, min=0, max=1.0, precision=4)[source]#
zlimit: FloatProperty(name='Z Limit', description='Maximum z height considered for pocket operation, default is 0.0', default=0.0, min=-1000.0, max=1000.0, precision=4, unit='LENGTH')[source]#
classmethod poll(context)[source]#
execute(context)[source]#
class CamOffsetSilhouete[source]#

Bases: bpy.types.Operator

Curve Offset Operation

bl_idname = 'object.silhouete_offset'[source]#
bl_label = 'Silhouette & Offset'[source]#
bl_options[source]#
offset: FloatProperty(name='Offset', default=0.003, min=-100, max=100, precision=4, unit='LENGTH')[source]#
mitrelimit: FloatProperty(name='Mitre Limit', default=2, min=1e-08, max=20, precision=4, unit='LENGTH')[source]#
style: EnumProperty(name='Type of Curve', items='1', 'Round', '', '2', 'Mitre', '', '3', 'Bevel', '')[source]#
opencurve: BoolProperty(name='Dialate Open Curve', default=False)[source]#
classmethod poll(context)[source]#
execute(context)[source]#
draw(context)[source]#
invoke(context, event)[source]#
class CamObjectSilhouete[source]#

Bases: bpy.types.Operator

Object Silhouette

bl_idname = 'object.silhouete'[source]#
bl_label = 'Object Silhouette'[source]#
bl_options[source]#
classmethod poll(context)[source]#
execute(context)[source]#