create_finger_joint
Generate finger joints (box joints) between two components in SketchUp for secure and precise woodworking connections. Customize joint depth, width, height, number of fingers, and offsets for accurate 3D modeling.
Instructions
Create a finger joint (box joint) between two components
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| board1_id | Yes | ||
| board2_id | Yes | ||
| depth | No | ||
| height | No | ||
| num_fingers | No | ||
| offset_x | No | ||
| offset_y | No | ||
| offset_z | No | ||
| width | No |
Implementation Reference
- src/sketchup_mcp/server.py:494-537 (handler)The handler function decorated with @mcp.tool(), which registers and implements the 'create_finger_joint' tool. It proxies the call to the SketchUp extension's corresponding tool via JSON-RPC.@mcp.tool() def create_finger_joint( ctx: Context, board1_id: str, board2_id: str, width: float = 1.0, height: float = 1.0, depth: float = 1.0, num_fingers: int = 5, offset_x: float = 0.0, offset_y: float = 0.0, offset_z: float = 0.0 ) -> str: """Create a finger joint (box joint) between two components""" try: logger.info(f"create_finger_joint called with board1_id={board1_id}, board2_id={board2_id}, width={width}, height={height}, depth={depth}, num_fingers={num_fingers}") sketchup = get_sketchup_connection() result = sketchup.send_command( method="tools/call", params={ "name": "create_finger_joint", "arguments": { "board1_id": board1_id, "board2_id": board2_id, "width": width, "height": height, "depth": depth, "num_fingers": num_fingers, "offset_x": offset_x, "offset_y": offset_y, "offset_z": offset_z } }, request_id=ctx.request_id ) logger.info(f"create_finger_joint result: {result}") return json.dumps(result) except Exception as e: logger.error(f"Error in create_finger_joint: {str(e)}") return f"Error creating finger joint: {str(e)}"