fabex.operators.curve_tools_ops#
Fabex ‘curve_cam_tools.py’ © 2012 Vilem Novak, 2021 Alain Pelletier
Operators that perform various functions on existing curves.
Classes#
Perform Boolean Operation on Two or More Curves |
|
Perform Hull Operation on Single or Multiple Curves |
|
Makes Curve Cuttable Both Inside and Outside, for Intarsion and Joints |
|
Adds Simple Fillets / Overcuts for Slots |
|
Adds Dogbone, T-bone Fillets / Overcuts for Slots |
|
Remove Duplicate Points from the Selected Curve |
|
Detect Pockets in a Mesh and Extract Them as Curves |
|
Offset Object Silhouette |
|
Create Object Silhouette |
Functions#
|
Rounds sharp corners of a curve with radius |
Module Contents#
- class CamCurveBoolean[source]#
Bases:
bpy.types.OperatorPerform Boolean Operation on Two or More Curves
- class CamCurveConvexHull[source]#
Bases:
bpy.types.OperatorPerform Hull Operation on Single or Multiple Curves
- simple_intarsion(context, radius=0.0)[source]#
Rounds sharp corners of a curve with radius :param context: bpy.context :param radius: Radius of rounding
Returns: Renames result to original curve name
- class CamCurveIntarsion[source]#
Bases:
bpy.types.OperatorMakes Curve Cuttable Both Inside and Outside, for Intarsion and Joints
- diameter: FloatProperty(name='Cutter Diameter', default=0.003175, min=0, max=0.5, 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_bottom: FloatProperty(name='Backlight distance from bottom', default=0.0, min=0, max=0.1, precision=4, unit='LENGTH')[source]#
- standoffHeight: FloatProperty(name='Standoff Height', default=0.01, min=0.0, max=0.1, precision=4, unit='LENGTH')[source]#
- standoffSilhouette: FloatProperty(name='Standoff Offset', default=-0.001, min=-0.1, max=0.1, precision=4, unit='LENGTH')[source]#
- diffuserTopThickness: FloatProperty(name='diffuser top thickness', default=0.0006, min=0, max=0.1, precision=4, unit='LENGTH')[source]#
- stripWidth: FloatProperty(name='LED strip width', default=0.004, min=0, max=0.1, precision=4, unit='LENGTH')[source]#
- stripThickness: FloatProperty(name='LED thickness', default=0.002, min=0, max=0.1, precision=4, unit='LENGTH')[source]#
- stripBendRadius: FloatProperty(name='LED strip bend radius', default=0.0015, min=0, max=0.1, precision=4, unit='LENGTH')[source]#
- draw(context)[source]#
Draws the user interface layout for interlock type properties.
This method is responsible for creating and displaying the layout of various properties related to different interlock types in the user interface. It dynamically adjusts the layout based on the selected interlock type, allowing users to input relevant parameters such as dimensions, tolerances, and other characteristics specific to the chosen interlock type.
- Parameters:
context – The context in which the layout is being drawn, typically provided by the user interface framework.
- Returns:
- This method does not return any value; it modifies the layout
directly.
- Return type:
None
- class CamCurveSimpleOvercuts[source]#
Bases:
bpy.types.OperatorAdds Simple Fillets / Overcuts for Slots
- diameter: FloatProperty(name='Diameter', default=0.003175, min=0, max=100, precision=4, unit='LENGTH')[source]#
- class CamCurveBoneFilletOvercuts[source]#
Bases:
bpy.types.OperatorAdds Dogbone, T-bone Fillets / Overcuts for Slots
- 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, step=500, 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]#
- class CamCurveRemoveDoubles[source]#
Bases:
bpy.types.OperatorRemove Duplicate Points from the Selected Curve
- class CamMeshGetPockets[source]#
Bases:
bpy.types.OperatorDetect Pockets in a Mesh and Extract Them as Curves
- 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]#
- class CamOffsetSilhouete[source]#
Bases:
bpy.types.OperatorOffset Object Silhouette
- offset: FloatProperty(name='Offset', default=0.003, min=-100, max=100, precision=4, unit='LENGTH')[source]#
- mitre_limit: FloatProperty(name='Mitre Limit', default=2, min=1e-08, max=20, precision=4, unit='LENGTH')[source]#
- style: EnumProperty(name='Corner Type', items='1', 'Round', '', '2', 'Mitre', '', '3', 'Bevel', '')[source]#
- caps: EnumProperty(name='Cap Type', items='round', 'Round', '', 'square', 'Square', '', 'flat', 'Flat', '')[source]#
- align: EnumProperty(name='Alignment', items='worldxy', 'World XY', '', 'bottom', 'Base Bottom', '', 'top', 'Base Top', '')[source]#