Token导航 LogoToken导航TokenDH.com
待分类可写文件github未标认证来源可访问许可证需确认审计通过

openscad-cutlist-woodworkersopenscad 切割清单木工

Agent Skill

openscad-cutlist-woodworkers 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

235

周安装

10

GitHub Stars

1

下载量

82
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:openscad-cutlist-woodworkers(openscad 切割清单木工)
来源仓库:https://github.com/dawiddutoit/custom-claude
仓库路径:skills/openscad-cutlist-woodworkers
安装命令:
npx skills add https://github.com/dawiddutoit/custom-claude --skill openscad-cutlist-woodworkers
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/dawiddutoit/custom-claude --skill openscad-cutlist-woodworkers

简介

openscad-cutlist-woodworkers 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适用于 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理的场景。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装,需结合原始 README 核验具体用法。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写操作。
  • 该技能当前归类为待分类,适合木工切割清单相关的 OpenSCAD 协作支持。

SKILL.md

OpenSCAD Cut List Generation (woodworkers-lib)

Generate accurate cut lists from OpenSCAD furniture designs using the woodworkers-lib library's automatic ECHO output for panel dimensions and edge banding specifications.

Quick Start

include <woodworkers-lib/std.scad>

cabinet = [800, 400, 1200];  // width × depth × height

planeLeft(cabinet, f=-1, t=-1, b=-1, af=4);      // Side panel with front edge band
planeRight(cabinet, f=-1, t=-1, b=-1, af=4);     // Side panel with front edge band
planeTop(cabinet, f=-1, af=4, al=4, ar=4);       // Top with 3 edge bands
planeBottom(cabinet, f=-1, af=4, al=4, ar=4);    // Bottom with 3 edge bands
planeBack(cabinet, thick=4);                      // Thin back panel (fiberboard)

Render to see cut list:

openscad cabinet.scad 2>&1 | grep "ECHO: \"plane"

Output:

ECHO: "plane (left):   18 × 378 × 1164(4)"
ECHO: "plane (right):  18 × 378 × 1164(4)"
ECHO: "plane (top):    782(4,4) × 378(4) × 18"
ECHO: "plane (bottom): 782(4,4) × 378(4) × 18"
ECHO: "plane (back):   800 × 4 × 1200"

Interpretation:

  • 18 × 378 × 1164(4) = 18mm thick panel, 378mm × 1164mm, with 4mm edge band on one edge
  • 782(4,4) × 378(4) × 18 = 18mm thick panel, 782mm × 378mm, with edge bands on 3 edges (4mm each)

Usage

See Core Workflow below for complete step-by-step process.

Core Workflow

1. Design Furniture with Plane Modules

Define furniture dimensions:

include <woodworkers-lib/std.scad>

thick = 18;  // Override default panel thickness if needed
rounding = 2;  // Edge rounding radius

wardrobe = [1000, 400, 1200];  // W×D×H in mm

Decompose into panels using plane modules:

ModuleOrientationParameters for Sizing
planeLeft()Left side (YZ plane)f, B, t, b (front, Back, top, bottom)
planeRight()Right side (YZ plane)f, B, t, b
planeFront()Front face (XZ plane)l, r, t, b (left, right, top, bottom)
planeBack()Back face (XZ plane)l, r, t, b
planeTop()Top (XY plane)l, r, f, B (left, right, front, Back)
planeBottom()Bottom (XY plane)l, r, f, B

Example: Basic cabinet frame

translate([10, 0, 0]) {
    planeLeft(wardrobe, f=-1, t=-1, b=-1);
    planeRight(wardrobe, f=-1, t=-1, b=-1);
    planeTop(wardrobe, f=-1);
    planeBottom(wardrobe, f=-1);
    planeBack(wardrobe, thick=4);  // Thin fiberboard back
}

Add internal components (shelves, dividers):

// Shelf at 400mm height
translate([0, 0, 400])
    planeBottom(wardrobe, l=-1, r=-1, f=-1);

// Vertical divider at 500mm from left
translate([500, 0, 0])
    planeLeft(wardrobe, f=-1, t=-1, b=-1);

2. Understand Parameter System

The woodworkers-lib uses three parameter types:

A. Thickness-Relative Increments (multiplied by thick)

Parameters: l, r, t, b, f, B

ValueEffectExample (thick=18)
0No changePanel fits exactly
-1Shorten by 1×thick-18mm (fit inside frame)
1Extend by 1×thick+18mm (overlap frame)
-2Shorten by 2×thick-36mm (fit between two panels)

Use case: Fit panels inside frames without manual calculation.

// Side panels fit between top and bottom (-1 on top, -1 on bottom)
planeLeft(cabinet, t=-1, b=-1);

// Top panel extends over sides (no reduction)
planeTop(cabinet);

B. Absolute Increments (exact mm values)

Parameters: ll, rr, tt, bb, ff, BB

ValueEffectExample
0No changeStandard dimension
10Extend by 10mmAdd 10mm to that edge
-5Shorten by 5mmRemove 5mm from that edge

Use case: Precise adjustments, gaps, door clearances.

// Door panel 4mm narrower on each side for clearance
planeFront(cabinet, ll=-4, rr=-4);

// Extend shelf 10mm past frame edge
planeBottom(cabinet, ff=10);

C. ABS Edge Banding (visualized and reported)

Parameters: al, ar, at, ab, af, aB

ValueEffectReporting
0No edge bandDimension only
44mm ABS edge tapeDimension(4)
22mm edge bandDimension(2)

Use case: Specify which edges need edge banding tape (typically front-facing edges).

// Top panel with edge band on front, left, and right
planeTop(wardrobe, f=-1, af=4, al=4, ar=4);

// Output: "plane (top): 992(4) × 378(4,4) × 18"
//                           ^        ^^
//                        front    left,right

Parameter Interaction:

Edge banding affects absolute increments automatically:

planeLeft(wardrobe, f=-1, ff=10, af=4);
// Effective front dimension: base + (-1×thick) + 10 - 4
// The 'af=4' reduces effective dimension by 4mm

3. Capture Cut List Output

Method 1: OpenSCAD GUI Console

  1. Open .scad file in OpenSCAD
  2. Press F5 (Preview) or F6 (Render)
  3. View Console window (bottom panel)
  4. Copy ECHO lines starting with "plane (

Method 2: Command Line (Recommended)

# Capture all ECHO output
openscad --render furniture.scad 2>&1 | grep "ECHO: \"plane"

# Save to file
openscad --render furniture.scad 2>&1 | grep "ECHO: \"plane" > cutlist.txt

# Count unique panels
openscad --render furniture.scad 2>&1 | grep "ECHO: \"plane" | sort | uniq -c

Method 3: Script Integration

See scripts/extract_cutlist.py for automated extraction with CSV export.

4. Parse ECHO Output

Output Format:

ECHO: "plane (FACE):  DIM1(edges) × DIM2(edges) × THICK"

Parsing Rules:

  1. Three dimensions always present: DIM1 × DIM2 × THICK
  2. Thickness is smallest dimension (typically 18mm, 16mm, or 4mm)
  3. Edge bands in parentheses after dimension: 782(4) = 782mm with one 4mm edge
  4. Multiple edges separated by commas: 378(4,4) = 378mm with two 4mm edges
  5. Panel orientation from face name: (left), (right), (top), (bottom), (front), (back)

Examples:

ECHO OutputInterpretation
18 × 378 × 1164(4)18mm thick, 378×1164mm panel, one 4mm edge band on the 1164mm edge
782(4,4) × 378(4) × 1818mm thick, 782×378mm panel, three edge bands (two on 782mm edge, one on 378mm edge)
1000 × 4 × 12004mm fiberboard, 1000×1200mm, no edge banding
964(4) × 378 × 1818mm thick, 964×378mm panel, one 4mm edge band on the 964mm edge

Identifying edge band locations:

The edge band notation appears on the dimension where the edge is applied:

  • 782(4,4) × 378(4) × 18 = edges on 782mm side (2 edges) + 378mm side (1 edge) = 3 total edges
  • For rectangular panels, this typically means 3 visible edges (4th hidden against wall/back)

5. Export for Optimization Tools

Manual CSV Creation:

Create spreadsheet with these columns:

Part Name, Width, Height, Thickness, Quantity, Edge1, Edge2, Edge3, Edge4
Left Side, 378, 1164, 18, 2, 4, 0, 0, 0
Top Panel, 782, 378, 18, 1, 4, 4, 4, 0
Back Panel, 1000, 1200, 4, 1, 0, 0, 0, 0

Using Utility Script:

# Generate CSV from SCAD file
python3 scripts/extract_cutlist.py furniture.scad -o cutlist.csv

# Import to CutListOptimizer.com or optiCutter.com

Upload to CutListOptimizer:

  1. Visit cutlistoptimizer.com
  2. Click "Import" → "CSV File"
  3. Upload generated CSV
  4. Set sheet dimensions (e.g., 2440×1220mm for standard plywood)
  5. Set blade thickness (typically 3mm for table saw)
  6. Click "Optimize"

Output formats supported:

  • CSV (comma-separated)
  • TSV (tab-separated)
  • JSON (for programmatic integration)

See examples/cutlist_export.csv for reference format.

Resources

examples/

  • wardrobe_example.scad - Complete wardrobe design from library README with annotations
  • cabinet_variations.scad - Different cabinet configurations and cut list outputs
  • cutlist_export.csv - Sample CSV format for CutListOptimizer import

scripts/

  • extract_cutlist.py - Python script to automate ECHO parsing and CSV generation

- Usage: python3 extract_cutlist.py input.scad -o cutlist.csv

  • validate_cutlist.py - Checks for duplicate panels and calculates total material

- Usage: python3 validate_cutlist.py cutlist.csv

references/

  • parameter_reference.md - Complete parameter documentation with visual diagrams
  • edge_banding_guide.md - Edge banding best practices and notation examples

Expected Outcomes

Successful Cut List Generation:

✅ Cut List Generated Successfully

Source: workshop/cabinets/workbench-cabinet.scad
Panels found: 15
Unique panels: 8

Panel breakdown:
  - 18mm panels: 12 (total area: 4.2 m²)
  - 4mm panels: 3 (total area: 1.8 m²)

Edge banding required:
  - 4mm ABS tape: 18 edges (total length: 24.5m)

Output saved: cutlist.csv
Ready for import to CutListOptimizer

Next steps:
1. Upload cutlist.csv to optimization tool
2. Set sheet size (2440×1220mm standard)
3. Generate cutting diagrams
4. Calculate material cost

Validation Warnings:

⚠️  Validation Warnings

Potential issues detected:
1. Duplicate panel: "378 × 1164 × 18" appears 4 times
   → Confirm quantity is correct (not accidental duplication)

2. Unusual thickness: "12mm" found (expected 18mm, 16mm, or 4mm)
   → Verify panel specification

3. Large panel: "1200 × 2400 × 18" exceeds standard sheet size
   → May require joining or special order

4. Missing edge bands: Panel "front (door)" has no ABS parameters
   → Add af/al/ar/at parameters if visible edge

Review design before ordering materials.

Requirements

Software:

  • OpenSCAD 2021.01+ (tested with 2025.12.14 development snapshot)
  • woodworkers-lib installed: ~/Documents/OpenSCAD/libraries/woodworkers-lib/
  • (Optional) Python 3.8+ for utility scripts

Installation:

cd ~/Documents/OpenSCAD/libraries/
git clone https://github.com/fxdave/woodworkers-lib.git

Knowledge:

  • Basic OpenSCAD syntax (modules, translate, include)
  • Understanding of furniture construction (frames, panels, shelves)
  • Familiarity with plywood/MDF sheet goods (standard thicknesses: 18mm, 16mm, 12mm, 4mm)

Red Flags to Avoid

  • Using cube() instead of plane*() modules (no cut list output)
  • Forgetting -1 thickness adjustments for nested panels (dimensions wrong)
  • Mixing absolute increments and thickness increments incorrectly
  • Not accounting for edge banding thickness in tight-fit joints
  • Ignoring duplicate panel warnings (over-ordering material)
  • Using non-standard thicknesses without supplier confirmation
  • Exceeding standard sheet size (2440×1220mm) without planning joins
  • Missing edge bands on visible edges (unprofessional finish)
  • Not validating cut list against 3D model before ordering
  • Capturing ECHO output from old/stale render (dimensions outdated)

Notes

Parameter Naming:

  • f = front, B = Back (capital B to distinguish from b = bottom)
  • Single letter = thickness-relative, double letter = absolute (e.g., l vs ll)
  • a prefix = ABS edge banding (e.g., al = ABS left)

Edge Banding Best Practices:

  • Apply to all visible front-facing edges
  • Skip back edges (against walls) and hidden internal edges
  • Standard widths: 19mm, 22mm, 40mm (4mm thickness for ECHO notation means ABS tape thickness)
  • Use matching wood grain direction for professional appearance

Material Standard Thicknesses:

  • Plywood/MDF: 18mm (most common), 16mm, 12mm, 9mm, 6mm
  • Fiberboard (backs): 4mm, 3mm
  • Verify supplier availability before designing with non-standard thickness

Performance:

  • woodworkers-lib renders fast (uses basic cubes with hull() rounding)
  • Complex furniture (20+ panels): <5 seconds preview, <30 seconds full render
  • ECHO output generation: instant (happens during preview/render)

Troubleshooting:

  • If no ECHO output: Check include <woodworkers-lib/std.scad> is present
  • If dimensions wrong: Verify thick=18 matches your material thickness
  • If edge bands missing: Ensure a* parameters specified on correct plane module
  • If panels overlap: Check thickness-relative parameters (l, r, t, b, f, B)

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

38.78%
按下载量换算32

Claude

29.24%
按下载量换算24

Cursor

19.07%
按下载量换算16

Gemini CLI

10.26%
按下载量换算8

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

可写文件

该 Skill 可能写入或修改本地文件,使用前需要确认目标目录和修改范围。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills