Pascal Editor门窗开洞技巧:cut_opening参数化放置与窗台高度设置
【免费下载链接】editorCreate and share 3D architectural projects.项目地址: https://gitcode.com/GitHub_Trending/editor93/editor
Pascal Editor 是一个可以创建并分享 3D 建筑项目的设计工具,内置的cut_opening工具能让你用一行指令在墙体上参数化地开出门洞或窗洞——指定墙 ID、位置比例和宽高尺寸即可,系统会自动处理门洞落地、窗洞 0.9 米窗台高度等建筑规范细节,是新手快速完成门窗布置的高效技巧。
为什么用 cut_opening 开门窗洞?
传统建模里,开洞往往是"画一条线→布尔运算→调参"的多步操作。Pascal Editor 的cut_opening把它压缩成一次调用:
- 参数化:门宽 0.9 米、门高 2.1 米,改个数就能换成落地窗或窄条窗
- 位置用 0~1 比例:不需要测量坐标,
position: 0.5就是"放在墙正中" - 自动套用建筑惯例:门洞底部对齐地面,窗洞默认抬高 0.9 米(标准窗台高度)
- 实时同步:创建后立即在编辑器 3D 视口中看到开洞效果
工具实现位于 packages/mcp/src/tools/cut-opening.ts,在 MCP 工具清单中可以看到它的完整输入/输出定义:packages/mcp/README.md。
cut_opening 参数速查表
| 参数 | 类型 | 说明 |
|---|---|---|
wallId | 字符串 | 目标墙体的 ID,必须是真实存在的墙体节点 |
type | door/window | 开洞类型:门洞或窗洞 |
position | 0~1 的数字 | 沿墙中心线的参数化位置,0 是墙起点,1 是墙终点 |
width | 米,正数 | 洞口的宽度 |
height | 米,正数 | 洞口的高度 |
调用成功后返回{ openingId },拿到这个 ID 就能继续微调材质、分格、开启方式等属性。
参数化放置:position 到底怎么算?
position是 0 到 1 之间的比例值,工具会把它换算成墙上的实际米数(洞口中心位置):
position: 0→ 洞口贴近墙体起点position: 0.5→ 洞口位于墙体正中间position: 1→ 洞口贴近墙体终点
换算时会考虑洞口宽度,保证洞口中心点落在墙上且不被裁切。举个例子:在一条 5 米长的墙上放置 1.2 米宽的窗洞,position: 0.25换算后洞口中心约在 1.25 米处——这正是 packages/mcp/src/tools/cut-opening.test.ts 中验证过的行为。
这种"比例定位"的好处是:墙体长度变化时,你只需调整一个 0~1 的数,无需重算绝对坐标。
窗台高度设置:默认的 0.9 米从何而来?
门窗洞口的垂直位置规则,是cut_opening内置的两条关键逻辑:
| 洞口类型 | 垂直定位规则 | 效果 |
|---|---|---|
门洞door | 中心高度 = 门高 ÷ 2 | 门洞底部贴地,标准门洞 |
窗洞window | 中心高度 =0.9 米+ 窗高 ÷ 2 | 窗台默认距地0.9 米,符合住宅常用窗台高度 |
以常见的 1.2 米高窗为例:窗洞中心会自动抬到 0.9 + 1.2 ÷ 2 =1.5 米处。也就是说,你只传height: 1.2,窗台高度 0.9 米已经帮你设置好了。
创建完成后还能进一步定制窗台与窗框:窗户节点内置sill(是否显示窗台)、sillDepth(窗台出挑深度,默认 0.08 米)、sillThickness(窗台厚度,默认 0.03 米)以及frameThickness、frameDepth等参数,完整定义见 packages/core/src/schema/nodes/window.ts。门洞同样支持threshold(门槛)、handleHeight(把手高度)等精细控制,定义在 packages/core/src/schema/nodes/door.ts。
常见报错与自检清单
工具内置了完善的参数校验,遇到报错时按以下清单自查:
Wall not found——wallId拼写错误或节点已删除,先用场景查询工具确认墙体 IDexpected wall—— 传入的节点不是墙体类型Wall ... too short—— 墙长小于洞口宽度,需要加宽洞口或延长墙体(例如 4.8 米的墙放不下 5 米宽的洞口)position超出范围—— 必须落在 0~1 之间,测试用例中position: 1.5会被直接拒绝
实战示例:两分钟布置一个开洞
开一扇标准门(墙正中,0.9 米宽 × 2.1 米高):
{ "wallId": "wall_xxx", "type": "door", "position": 0.5, "width": 0.9, "height": 2.1 }开一扇飘窗(墙前段,1.5 米宽 × 1.5 米高,窗台自动落在 0.9 米):
{ "wallId": "wall_xxx", "type": "window", "position": 0.3, "width": 1.5, "height": 1.5 }两次调用后即可在视口中看到参数化开洞的实时效果;若不满意,openingId返回的节点支持随时调参或撤销。
延伸阅读
- 门窗节点数据模型:packages/core/src/schema/nodes/window.ts、packages/core/src/schema/nodes/door.ts
- 开洞工具测试用例:packages/mcp/src/tools/cut-opening.test.ts
- MCP 工具全景清单:packages/mcp/README.md
掌握cut_opening的参数化放置与窗台高度规则后,你已能用几行指令完成一套完整的门窗布置——下一步可以试试在开洞后切换窗型(固定、推拉、平开)和分格比例,把立面做精致 ✨
【免费下载链接】editorCreate and share 3D architectural projects.项目地址: https://gitcode.com/GitHub_Trending/editor93/editor
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考