create_finger_joint
Generate precise finger joints (box joints) between two components in Sketchup for woodworking or 3D modeling projects. Define width, height, depth, finger count, and offsets to customize the joint design.
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-536 (handler)Handler function for the MCP tool 'create_finger_joint'. It logs the call, connects to SketchUp, sends the tool call via JSON-RPC socket communication with the specified parameters, and returns the result as JSON or an error message.@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)}"