沙发能不能通过入户门?
用一组可复现的尺寸回答「沙发能不能进门」:投影宽度为何随姿态改变、为什么条件性结论不等于「能进」,以及哪些情况引擎根本不检查。
- 发布日期
- 更新日期
- 计算方法版本
- 2.0.0
- 内容维护
- 本页内容与本仓库中的计算引擎一同维护。几何或结论逻辑一旦变更,必须在同一次变更中同步更新已发布的方法说明及其自动检查。不存在单独署名的编辑团队,也没有外部审核方。
本文要回答的问题
沙发和门洞都量好了,这组尺寸下沙发到底能不能通过?需要换成哪种姿态?
直接回答
答案取决于姿态,而不只取决于标称宽度。900 mm 宽的沙发直立时过不了 800 mm 净宽的门洞,但侧放后朝向门洞的轮廓会变窄。计算器会测试六种轴对齐姿态并给出推荐;只要必须换姿态才能得到可行解,结论就是「条件性」,而不是干脆的「通过」。这个条件性是明确的判定,不是模棱两可。下方示例就是这种情况的引擎实跑输出。
详细解释
标称宽度不是轮廓宽度
家具尺寸描述的是盒子沿自身三个轴的长度。门洞看到的是一个二维轮廓。把盒子转 90 度,构成轮廓宽度和高度的就是另一对尺寸了。
这正是「拿参数表上一个数跟卷尺上一个数比一下」经常出错的原因:比较必须发生在姿态确定之后。
三种结论分别代表什么
PASS 表示当前姿态同时满足门洞截面和房间静态体积,且没有阻断性限制。CONDITIONAL 表示存在真实的不确定性:要求的操作余量无法满足、没有单一姿态能同时通过两项检查,或当前姿态失败但另一种被测姿态可行。FAIL 表示在被测姿态范围内冲突无解。
页面渲染的是引擎产出的状态,不会自己拼布尔值下结论。所以屏幕上的文字和比较表里的数字,始终来自同一次计算。
过了门只算一半
引擎在同一轮里检查门洞截面与房间体积,并报告是否存在单一姿态同时满足两者。沙发进了门,不代表放得进目标房间。
两项检查都不建模两者之间的路线。窄走廊、楼梯平台转角、楼梯都不在第一版范围内;条件性结论不是「搬运一定顺利」的承诺。
可操作的步骤
- 01
沿沙发自身轴向测量
用同一种单位记录长(前后)、宽(左右)、高三个数。固定扶手和靠背要算进去;沙发腿或包装是否拆除要单独决定,并按实际搬运时的状态测量。
- 02
量门洞净开口
三次宽度读数取最小,门楣高度取最低点。不要用门框外沿尺寸。够得到的话,把门框深度也记下来。
- 03
量目标房间
记录可用矩形空间的宽、长、高。房间检查是静态的:它只问包围盒放不放得下,不问你能不能把它搬到位。
- 04
跑工具,再切换姿态
填入数值,先看总体状态和比较表,再试推荐姿态。若你额外要求的操作余量无法满足,工具会明确说出来,而不是悄悄把它抹掉。
计算示例:900 mm 沙发遇上 800 mm 门洞
三人沙发长 2100 mm、宽 900 mm、高 800 mm;门洞净宽 800 mm、净高 2000 mm、门框深 150 mm;目标房间 3500 × 4500 × 2600 mm。不额外要求操作余量,选择直立姿态。以上均为输入值。下方的状态、推荐姿态与各项剩余余量由引擎实时计算。
输入数据
| 物品 | 三人沙发 |
|---|---|
| 长 | 2100 mm |
| 宽 | 900 mm |
| 高 | 800 mm |
| 门洞净宽 | 800 mm |
| 门洞净高 | 2000 mm |
| 门框深度 | 150 mm |
| 房间宽 | 3500 mm |
| 房间长 | 4500 mm |
| 房间高 | 2600 mm |
| 额外余量 | 0 mm |
| 选定姿态 | 直立 |
计算过程
- 01输入本身已是毫米。直立姿态下,包围盒把 900 mm 宽度朝向 800 mm 净开口,因此这一种姿态无法满足截面要求。
- 02引擎不会在第一处失败就停下:它把六种轴对齐姿态分别用于门洞截面与房间体积检查,再判断是否存在单一姿态同时满足两者。
- 03由于换成另一种被测姿态会改变投影轮廓,结果是「条件性」结论并附带推荐姿态,而不是直接判失败。下方表格是引擎自己的输出:负的宽度余量属于当前选中的直立姿态,推荐姿态则来自联合姿态矩阵。
引擎实跑结果
表中每一项数值都在页面渲染时由计算器所用的同一个引擎实时生成,文章只提供输入数据。
- 总体状态
- CONDITIONAL
几何上无法给出确定结论:局部检查需要换姿态、存在阻断性限制,或没有单一姿态能同时满足两项检查。
- 推荐姿态
- 直立 · 旋转 90°
| 比较项 | 需要 | 可用 | 剩余 |
|---|---|---|---|
| 门洞净宽 | 900 | 800 | -100 |
| 门洞净高 | 800 | 2000 | 1200 |
| 房间宽度 | 900 | 3500 | 2600 |
| 房间长度 | 2100 | 4500 | 2400 |
| 房间层高 | 800 | 2600 | 1800 |
- DOORWAY_REQUIRES_POSE_CHANGE
- ROOM_FIT_PASS
计算方法版本 2.0.0
适用范围
适用于一个近似长方体的沙发、一段直线门洞截面、六种轴对齐姿态,以及按静态体积处理的矩形房间。
本例的限制条件
- 只测试六种轴对齐姿态。斜着一点也许能挤过去,但不做连续角度搜索,因此条件性结论不能证明物理上一定无解。
- 软包压缩、拆沙发腿、拆扶手、去包装均未建模。搬运时若形状变了,就按改变后的形状重新测量。
- 搬运路径、门扇、把手、拐角与楼梯均未建模。
- 轮廓与开口恰好相等按「贴面」处理,不算冲突;真实搬运仍需留出操作余量。
使用的公式
轴对齐包围盒
h盒 = |R| · h
R 为六种被测姿态对应的 3×3 旋转矩阵之一,|R| 取元素绝对值,因此包围盒三边是长宽高的一个排列。
截面比较
ΔW = W净 − W盒(姿态, 宽) ΔH = H净 − H盒(姿态, 高)
同一姿态下两项都非负,门洞截面才算通过。
结论合并
任一 FAIL → FAIL;任一 CONDITIONAL / 无共同可行姿态 / 阻断性限制 → CONDITIONAL;否则 PASS
这是引擎的合并规则。界面只显示得出的 overallStatus,不得用本地布尔值重新拼装。
适用边界
- 门洞评估为 SECTION_ONLY,房间评估为 STATIC_VOLUME_ONLY,两者分开报告。
- 不支持连续旋转角(AXIS_ALIGNED_POSES_ONLY)。
- 门扇、把手、障碍物以及门框深度内的旋转均未建模。
- 搬运路径、拐角与楼梯未建模(PATH_NOT_MODELLED / ROOM_PATH_NOT_MODELLED)。
- 非法或缺省输入返回结构化的无效输入失败,绝不会给出一个看似合理的几何结论。
常见错误
只把参数表宽度与门宽比一次
那只测了一种姿态。沙发可能直立过不去、侧放却能通过,因为轮廓换了另一对尺寸来比较。
把条件性结论读成「大概能进」
CONDITIONAL 有具体成因:需要换姿态、要求的余量无法满足,或没有单一姿态同时通过两项检查。原因列表会点名是哪一种。
忘了房间
沙发能进门,也可能放不进目标空间。引擎两项都查,并报告是否有单一姿态同时满足。
以为工具会算走廊
不会。拐角和楼梯不在第一版范围内,换多少次姿态都改变不了这一点。
打开适配计算器
把你自己量到的沙发、门洞与房间数值填进计算器,结合总体状态和原因列表一起读。切换姿态时,比较表由同一个引擎重新计算,你能看清是哪一种轮廓可行,而不必只信一个「能/不能」的标签。
填入你实测的家具、门洞与房间尺寸,即可看到同一套比较在真实情况下的结果。
打开计算器