设计一款平板包装床
Designing a flatpack bed

原始链接: https://kevinlynagh.com/newsletter/2025_07_flatpack/

## DIY床架与CAD工具探索 受到搬入未带家具的公寓以及木工朋友的新CNC路由器启发,作者正在设计一个适合200厘米 x 180厘米床垫并带有床下储物空间的床架。最初受克里斯托弗·马滕斯(Christoffer Martens)的“Siebenschlafer”床设计的简约风格启发,但发现这种设计不适合隐藏储物空间。重点转向利用CNC路由器的精密切割能力,并可能使用藤条或织物来遮盖储物区域。 这个项目引发了对针对切割设计优化的2D CAD工具的探索。作者对Autodesk Inventor中繁琐的过程感到不满,并调查了Cuttle.xyz、FlatFab、Kyub和Polyboard等选项,记录了它们的优点和局限性。一个关键主题是通用CAD工具与专门用于2D切割和组装的工具之间的平衡。 作者还深入研究了代码驱动CAD的概念,将传统的基于GUI的工作流程与代码作为主要设计成果的潜力进行对比,灵感来自livelove和OnShape的FeatureScript等工具。最终目标是找到一个流畅且强大的CAD系统,能够适应设计过程,随着项目的演进,将重点从抽象几何图形转移到相关的细节上。

## Hacker News 上关于组装式床设计的讨论 最近 Hacker News 上出现了一场关于博客文章(kevinlynagh.com)的讨论,该文章详细介绍了组装式床的设计过程。虽然用户们赞赏其中的努力,但许多人指出存在未优化的机会——特别是最大化板材的使用率,以及使用易得的木材代替昂贵的胶合板。 许多评论者提到了现有的高效设计资源,例如服装的“零浪费”版型制作和 OnShape 用于激光切割的脚本。 对话还涉及了使用 CNC 机床进行简单项目的实用性,以及 3D 打印取代传统工艺的趋势,但也有观点认为高质量的工艺仍然受到重视且易于获取。一个反复出现的主题是现代设计软件的复杂性与更简单、更直接的方法之间的对比。一些用户分享了使用令人沮丧但功能正常的嵌套软件(Mozaik, Cabinet Vision)的经验,以及在自动化与直观设计之间取得平衡的挑战。最终,这场讨论强调了软件驱动的精确性与传统建造技术的触觉和适应性之间的权衡。
相关文章

原文

I just moved into an unfurnished apartment and my professional woodworker friend just got a plywood-sheet-sized CNC router, so I’ve been designing myself a bedframe. The rough scope / requirements:

  • fit a 200 cm x 180 cm mattress
  • have 50 cm of clear space underneath for storage
  • visually hide this space from the front (required) and sides (nice-to-have)
  • CNC-cuttable from a single sheet of baltic birch (2440 mm x 1220 mm)
  • maybe use Ikea LÖNSET slats

Christoffer Martens’s Siebenschlafer bed is probably peak flat-pack brutalism:

I had a go at making a taller version for myself in CAD:

but it became clear that this minimalist design definitely won’t hide the multitude of boxes we’ll be storing underneath.

(Also, while I’m not a super Bauhaus fan, I am somewhat irked that this minimalist design relies on glued/screwed internal rails to support the bed slats, rather than expressing that core functionality externally.)

Since 18mm 13-ply CP/CP Baltic birch is €150/sheet (thanks Putin), rather than throwing more wood at the problem, I’m trying to come up with a design that leans into precise, complex cuts enabled by CNC — perhaps some kind of frame skeletons that can be covered with rattan or fabric to hide the under-the-bed mess.

As always, I’m open to design ideas and suggestions if you have any!

I used Autodesk Inventor to play with the Siebenschlafer design, but I found it a bit tedious. In particular, ensuring that all my parts could be cut from a single sheet:

The process for doing that is, roughly:

  1. Create multiple solid bodies in a single part file.
  2. Use the “make components” button to export all of these bodies into their own part files (which, thankfully, remain linked to the “main” part file).
  3. Import all of these parts into an assembly file.
  4. Outline the plywood sheet in the assembly file.
  5. Assemble everything using explicit constraints (each part must be constrained to the XY axis, some faces made parallel to each other with some cutting offset, etc.)

It reminds me a bit of programming in Rust, actually — yes, there are some situations where I want this level of explict control and detail, but right now, dude, I’m trying to roughly explore the design space. Just let me quickly push some stuff around!

Of course, Inventor, Solidworks, etc. are general-purpose CAD tools for mechanical engineering in 3D, and arguably there’s a trade off between generality / power and the fluidity of use. This got me curious about what tools might exist out there optimized for this kind of 2D cutting and part design?

E.g., CutList Optimizer is a lil’ gem of a web app calculator for cutting rectangular sections from sheet stock.

Cuttle.xyz

Cuttle is a slick web-based 2D graphics editor with reusable components that’s quite code-forward. The backstory is interesting too: It started with Toby Schachman’s 2015-ish Apparatus research project, grew at Dynamicland, and spun out as a company in 2020. (Apparatus is open source, but Cuttle is not.)

This finger joint box demo

solves the “linked view problem” using a component system:

  • Each side of the box is a component
  • A “layout” component instantiates each side in an “unfolded” arrangement
  • A “cut layout” component uses a layout algorithm written in JavaScript to tightly pack the components to be cut out from a sheet of material.

Conceptually there’s a lot of overlap with tradCAD’s Assembly-of-Parts model, though having a programmatic autolayout routine directly in the tool is nice when it finds reasonable solutions. (Though something beyond naive, end-to-end bounding-box layout would be needed for my situation — it’s on my TODO list to try out sparrow, a Rust crate for “State-of-the-art Nesting for 2D irregular strip packing”.)

FlatFab

FlatFab is an open-source academic project from 2014 (presention video) for interactive modeling with planar sections. It appears to be more art rather than engineering/mechanism oriented, as there aren’t e.g., constraints or numeric parameter inputs. The interactions look pretty clever, as they’re oriented around quickly creating new “slices” via sketching and reorienting the camera to perpendicular perspectives on which the next interlocking slice can be created:

I’m also impressed this 11-year-old academic project is still being maintained — one of the original authors is still accepting PRs and cutting new releases as of 2024.

Kyub

Kyub started as an academic project from the Hasso Plattner Institute (2019 PDF) and has a very slick workflow for making laser cut box beam objects:

联系我们 contact @ memedata.com