### Install Catchnhole as Git Submodule Source: https://github.com/mmalecki/catchnhole/blob/latest/README.md Add the catchnhole library to your project as a git submodule for easy integration and version control. ```bash git submodule add https://github.com/mmalecki/catchnhole catchnhole ``` -------------------------------- ### Basic Usage of Catchnhole in OpenSCAD Source: https://github.com/mmalecki/catchnhole/blob/latest/README.md Demonstrates how to include and use catchnhole functions to create a nutcatch and a bolt within an OpenSCAD model. This example shows creating a nutcatch parallel to the bolt axis and a sidecut nutcatch. ```openscad use ; difference () { translate([-5, -5, 0]) cube([10, 10, 10]); // Draw a nutcatch parallel to bolt shaft: nutcatch_parallel("M3"); // Draw a bolt gripping the nutcatch: bolt("M3", length = 10); // Or, draw a nutcatch sidecut into the part: translate([0, 0, 4]) { nutcatch_sidecut("M3"); // Draw a bolt gripping the nutcatch: bolt("M3", length = 6); } } ``` -------------------------------- ### nutcatch_sidecut Source: https://github.com/mmalecki/catchnhole/blob/latest/README.md Creates a nutcatch feature as a sidecut into the part. Supports clearance adjustments. ```APIDOC ## nutcatch_sidecut(name, kind, height_clearance = 0, width_clearance = 0) ### Description Draw a nutcatch sidecut into the part: ### Parameters #### Path Parameters - **name** (string) - Required - name of the nut, e.g. "M3" - **kind** (string) - Required - the kind of the nut, as noted in `nutcatch_parallel` - **height_clearance** (number) - Optional - additional nut height clearance - **width_clearance** (number) - Optional - additional nut width clearance ``` -------------------------------- ### OpenSCAD Nutcatch Parallel Function Source: https://github.com/mmalecki/catchnhole/blob/latest/README.md Use `nutcatch_parallel` to create a nutcatch that runs parallel to the bolt's axis. Specify the nut name (e.g., 'M3') and optionally add clearance for height and width. ```openscad nutcatch_parallel(name, height_clearance = 0, width_clearance = 0) ``` -------------------------------- ### OpenSCAD Nutcatch Sidecut Function Source: https://github.com/mmalecki/catchnhole/blob/latest/README.md Use `nutcatch_sidecut` to create a nutcatch that is cut into the side of a part. Specify the nut name (e.g., 'M3') and optionally add clearance for height and width. ```openscad nutcatch_sidecut(name, height_clearance = 0, width_clearance = 0) ``` -------------------------------- ### nutcatch_parallel Source: https://github.com/mmalecki/catchnhole/blob/latest/README.md Generates a nutcatch feature parallel to the bolt's axis. Allows for clearance adjustments. ```APIDOC ## nutcatch_parallel(name, kind, height_clearance = 0, width_clearance = 0) ### Description Draw a nutcatch parallel to the bolt axis. ### Parameters #### Path Parameters - **name** (string) - Required - name of the nut, e.g. "M3" - **kind** (string) - Required - the kind of the nut, available values: - "hexagon" - hexagon (ISO 4032) - "hexagon_thin" - thin hexagon (ISO 4035) - "hexagon_lock" - hexagon locknut (ISO 7040) - **height_clearance** (number) - Optional - additional nut height clearance - **width_clearance** (number) - Optional - additional nut width clearance ``` -------------------------------- ### OpenSCAD Bolt Function Source: https://github.com/mmalecki/catchnhole/blob/latest/README.md Use the `bolt` function to draw a bolt along the Z axis. Specify the bolt name, length, and optionally its kind (e.g., 'headless', 'socket_head'). Clearance parameters can be adjusted for a precise fit. ```openscad bolt(name, length, kind = "headless", head_diameter_clearance = 0.1, countersink = 0) ``` -------------------------------- ### bolt Source: https://github.com/mmalecki/catchnhole/blob/latest/README.md Draws a bolt up the Z axis, with the head at the top. Supports various bolt kinds and includes clearance options. ```APIDOC ## bolt(name, length, kind = "headless", head_diameter_clearance = 0.1, head_top_clearance = 0, length_clearance = 0, countersink = 0) ### Description Draw a bolt up the Z axis, with head at the top. ### Parameters #### Path Parameters - **name** (string) - Required - name of the bolt, e.g. "M3" - **length** (number) - Required - length of the bolt - **kind** (string) - Optional - the kind of the bolt, available values: - "headless" - no bolt head - "socket_head" - socket head cap (ISO 4762) - "countersunk" - countersunk head (ISO 10642, DIN 7991) - "hex_head" - hex head (ISO 4014) - **head_diameter_clearance** (number) - Optional - how much side clearance to leave for the bolt head, where applicable - **head_top_clearance** (number) - Optional - how much top clearance to leave for the bolt head, where applicable - **length_clearance** (number) - Optional - how much clearance to leave for the bolt past `length` (down the Z axis; useful if your origin point is a nut and your `length` is calculated, or just want to allow for longer bolts) - **countersink** (number) - Optional - how much to "countersink" the bolt - move it down by the `countersink` * bolt head length ``` -------------------------------- ### OpenSCAD Bolt Head Function Source: https://github.com/mmalecki/catchnhole/blob/latest/README.md Use the `bolt_head` function to draw only the head of a bolt along the Z axis. This is useful when the bolt shaft is modeled separately or not needed. Specify the bolt name and kind. ```openscad bolt_head(name, kind, head_diameter_clearance = 0.1) ``` -------------------------------- ### bolt_head Source: https://github.com/mmalecki/catchnhole/blob/latest/README.md Draws only the head of a bolt up the Z axis. Useful for creating custom bolt assemblies. ```APIDOC ## bolt_head(name, kind, head_diameter_clearance = 0.1, head_top_clearance = 0) ### Description Draw a bolt head up the Z axis. ### Parameters #### Path Parameters - **name** (string) - Required - name of the bolt, e.g. "M3" - **kind** (string) - Required - the kind of the bolt, available values: - "socket_head" - socket head cap (ISO 4762) - "countersunk" - countersunk head (ISO 10642) - "hex_head" - hex head (ISO 4014) - **head_diameter_clearance** (number) - Optional - how much side clearance to leave for the bolt head, where applicable - **head_top_clearance** (number) - Optional - how much top clearance to leave for the bolt head, where applicable ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.