机房设计中的排布规则自动化:通道POD、编号递增、互斥推挤与通道宽联动

机房设计中的排布规则自动化:通道 POD、编号递增、互斥推挤与通道宽联动

摘要:机房平面布置里大量工作不是「设计」而是「规则计算」------冷热通道朝向、排间距、编号连续性、设备不重叠、通道宽变化后的整排位移。把这些规则交给软件执行,人只负责判断,是 DCDesigner 在机房设计中最重要的效率来源。本文拆解四组规则自动化的机制、边界与工程价值。


一、把「靠人记的约定」变成「软件执行的不变量」

机房布置有几条业内人尽皆知的约定,同时也是最容易被记错的地方:

  • 冷通道是两排机柜正面相对 ,热通道是背面相对;
  • 相邻排中心距 = 柜深 + 通道宽;
  • 同一排机柜编号连续,排与排之间编号递增;
  • 机柜、空调、UPS 等实体设备不能互相压占;
  • 通道加宽后,两侧机柜要跟着动,而不是只改标注。

这些约定有一个共同特点:它们可以被形式化。能被形式化的东西,就应该由软件执行,而不是依赖现场记忆与事后检查。DCDesigner 围绕这一点做了四组机制。


二、第一组:通道 POD 生成------把冷热关系交给软件

2.1 生成规则

在向导第 2 步填写机柜排数 ≥2 时,按通道 POD 成组生成:

  • 冷通道 = 两排正面相对(面对面);
  • 热通道 = 两排背面相对(背对背);
  • 首个通道类型由使用者选择,所选类型即封闭类型(选冷 → 仅冷通道封闭;选热 → 仅热通道封闭);
  • 此后冷、热通道自动交替,宽度分别取「冷通道宽度」与「热通道宽度」两个独立输入;
  • 相邻排中心距 = 柜深 + 对应通道宽(几何由参数唯一决定,不需要手工排位)。

2.2 封闭通道的表达不止「有没有封顶」

通道带是一个结构化对象,属性包括:名称、冷/热(kind)、宽/长/高 、是否封闭(enclosed),以及封闭时的端门配置:

端门属性 取值 含义
endDoors 两端 / 仅一端 / 无(封板) 仅一端时旋转 180° 可换端
doorType 推拉 / 双开 / 单开 2D 分别绘制两片错位实线 / 门扇 90° 外开+开启弧 / 单扇;3D 分别为两片错位玻璃 / 两扇对开 / 单扇
doorW 门洞净宽(0 = 与通道同宽) 小于通道宽时门洞居中、两侧固定封窗

2D 推拉/平开符号可以核对端部回转空间;3D 中端门门扇高与机柜齐平,通道高超过机柜时门上为固定封窗,并带铝型材结构框架(角柱/顶梁/门楣/中梃/地轨/拉手)。

这组属性的意义在于:封闭通道不是「画一个框」,而是可核对的可建造对象------端门是推拉还是平开、门洞多宽、开向哪边,都能在图纸阶段确定,避免交付后因为端部回转空间不足返工。


三、第二组:编号体系------自动递增、可重排、可补插

3.1 模板自动递增

编号模板语法把「固定文本」与「可变数字段」分开:

  • A## → A01、A02...(# 个数=序号最小位数,超出自动扩位)
  • A### → A001...
  • 101-A## → 101-A01...
  • 1F-A##-主 → 前后缀与楼层、机房号一并保留
  • 多排生成时,模板中的排号字母自动递增(A→Z→AA→AB...)

放置后自动切换为下一排号,编号连续性的记账工作从人转移到软件。

3.2 原位替换与重排

现场情况往往与标准布局有出入,DCDesigner 提供了一组「按现场实况改局部」的操作:

  • 右键机柜 → 替换为 ▸ 柱子 / 列间空调 / 列头柜:原位同槽转换,继承坐标与朝向,整批一步撤销;
  • 替换后画布顶部弹出非模态提示条询问「是否重排本排序号」,画布原位以灰色虚线框 + 灰字预览新编号,点「重排」即按排内位置连续重编;
  • 提示条内置编号模板输入框 ,可改排号与编号方式(A##→C##、101-A##、A##-主 等);多排模板为全部重置------输入首排排号,各排按几何顺序(先 X 向排南→北、再 Y 向排西→东)逐排递增;
  • 重排保留排编号前缀/后缀与排号,同排混入其他格式编号或自定义名时默认跳过并提示,可选择「整排按位置重排」一并统一;
  • 反向替换:选中列间空调 / 列头柜可替换回机柜(继承坐标、朝向、宽深),同样触发重排提示;
  • 检测空位补插:旧图缺槽位时按剩余机柜最窄间距外推缺失槽位,虚线预览后一键补插柱子/列间空调(每段连续空位只插 1 个对象并居中)。

替换与重排是两步独立撤销------改错了可以只回退其中一步。


四、第三组:互斥推挤------设备不重叠,但不是「乱推」

实体对象(机柜、柱子、空调、UPS、蓄电池、灭火器、风口、列头柜)之间不允许重叠。在已有对象上放置新对象,或拖动对象压到邻居时,工具会执行推挤求解。它的关键设计不在「会推开」,而在推开的时机与可逆性:

机制 设计 解决的问题
停留判定 拖动物与对象持续重叠 ≥150ms 才推挤(DWELL_MS = 150) 拖动路径上「快速掠过」的对象不误推,避免一路扫乱
回弹 拖动物离开后,被推对象自动回弹到原位 拖过去看一眼不会永久改变布局
插入语义 松手时仍被压住的保持推开 「在中间插入一台设备」符合直觉
级联 沿重叠方向找最近空闲机位,级联推开后续对象 整排被带动时不会互相压住
网格化 位移取整到 100mm 网格 推完的布局仍是整数值,便于复核
原子撤销 放置 + 推挤为同一撤销单元 一次 Ctrl+Z 回到操作前
空间不足 密集区域无处可推时提示「空间不足」 明确失败,而不是静默重叠

旋转后同样会推开被压到的邻居;状态栏提示「推开 N 个对象」(N 为最终仍被推开的对象数)。墙、桥架、门窗、通道带不参与推挤------它们是结构或标注,不参与机位竞争。


五、第四组:通道宽联动------改一个数字,整排跟着走

通道宽是机房设计中改动最频繁的参数之一。若「改通道宽」只改一条色带,两侧机柜留在原位,就会出现图纸与意图不符。DCDesigner 的做法是把通道宽变成带动排位的参数:

  • 修改通道带「通道宽」(属性面板直接改、格式刷批量刷,或单选后拖拽两侧长边手柄 )时:
    • 西/南侧那一排锚定不动,远侧整排平移对应增量;
    • 拖拽近侧边时镜像为近侧排平移------拖哪侧哪侧排跟随;
    • 通道带自身近侧边同步锚定,中心自动平移 Δ/2,仅向远侧伸缩,调整后仍对齐两排实际间距;
  • 多排 POD 级联:中间通道带与后续排一并平移,其余通道宽度不变;
  • 同一物理通道上的并列通道带自动同步调宽移心(格式刷逐条刷不重复联动);
  • 排内列间空调随行;移动后仍按互斥规则推开沿途对象(柱子/相邻 POD/风口等),通道内风口不随排平移;
  • 全部变动与通道宽修改为同一步撤销;
  • 识别是纯几何的(朝向 + 边缘贴合),不依赖生成历史,因此旧项目零迁移;
  • 通道带属性面板提供「联动机柜」全局开关,关闭后通道仅作标注;非常规角度的通道带不联动。

这条机制把「修改的设计意图」和「修改的实际结果」绑定在一起,是设计迭代效率的关键来源。


六、配套:格式刷、对齐与多选批量

规则自动化之外,还有一组降低重复劳动的操作:

  • 格式刷(M) :拾取一个对象为源,单击或框选其他同类型对象批量应用属性。名称/编号、位置坐标、旋转朝向不复制(保持唯一、不错位);机柜等实体对象尺寸变大压到邻居时自动推挤让位;门窗/格栅宽度变化后自动重新约束在所属墙范围内。每次应用为一步撤销,Esc 退出。
  • 多选对齐 :框选/点选 ≥2 个对象后,右键菜单「对齐」或属性面板按钮组,一键左对齐/水平居中/右对齐/底对齐/垂直居中/顶对齐;以选区联合包围盒 为基准;墙/桥架两端点整体平移(其上门窗随墙跟随),挂墙门窗/格栅不参与对齐;整批一步撤销,对齐组作为互斥锚点推开未选中的重叠邻居。
  • 多选批量操作:整体拖动移动、Ctrl+拖动复制(副本自动编号)、R 批量旋转、Del 批量删除;多选面板显示组合统计与批量操作入口。
  • 默认值跟随:属性面板中修改的任何字段自动成为下一次创建同类对象的默认值(字段级跟随,localStorage 持久化,不参与撤销)。

七、价值与边界

7.1 价值

  • 防错:冷热通道关系、封闭类型、编号连续性由软件执行,结构性消除经典错误;
  • 省时:POD 批量生成 + 编号自动递增 + 通道宽联动,把「逐台操作」变成「参数操作」;
  • 可逆:推挤有停留判定与回弹、替换与重排分两步撤销、通道调整与机柜位移同一步撤销------激进操作的风险被撤销机制兜住;
  • 可维护:实体的推挤边界、通道的联动开关、对齐的排除清单都是显式规则,团队可以按项目习惯调整(例如关闭通道联动只作标注)。

7.2 边界

  • 互斥推挤解决「不重叠」,不解决「最优布置」;排布是否合理仍依赖设计与自检规则;
  • 通道宽联动识别基于朝向与边缘贴合,非常规角度的通道带不联动;
  • 编号重排依赖可识别的编号格式(模板/前缀后缀),自定义名称默认跳过并提示;
  • 列间空调与精密空调以 kind=row 标记区分,替换操作不会作用于精密空调。

附:事实来源与核验方式

  • POD 生成与正面朝向约定:public/js/tools.js(podGeometry);说明见 README.md「工勘思维设计」
  • 编号解析/模板/重排:public/js/naming.js、public/js/rowops.js;单测 node tests/numbering.test.mjs
  • 互斥推挤:public/js/collision.js(DWELL_MS、springBack、100mm 网格);回归 node tests/layout.test.mjs
  • 通道宽联动:public/js/aislelink.js;回归 node tests/aisle-resize.cdp.mjs
  • 对齐与格式刷:public/js/align.js、public/js/tools.js;单测 node tests/align.test.mjs
  • 右键菜单与重排提示条:public/js/ctxmenu.js
  • 封闭通道端门:README.md「建模对象·通道」;回归 node tests/aisle-doors.cdp.mjs
  • 可复现核验:
bash 复制代码
node tests/numbering.test.mjs
node tests/layout.test.mjs
node tests/align.test.mjs
node tests/aisle-resize.cdp.mjs
node tests/aisle-doors.cdp.mjs
相关推荐
nVisual3 天前
机房工勘图纸的毫米可信度:nVisual DCDesigner 的坐标系、标尺与尺寸可溯源设计
数据中心·网络可视化·机房
工作10年+,存储芯片行业8 天前
存储芯片产业全景:从产品矩阵到技术优势与质量体系
ai·nvme·芯片·数据中心·存储·pcie·半导体
deepseek238 天前
PDF 涂黑失效拆解:谷歌数据中心 52.65 兆瓦与 7.65 亿加仑的账本,被一次复制粘贴揭开
人工智能·pdf·数据中心
数字新视界11 天前
动环监控系统优化数据中心管理,提升环境监测与安全效率
大数据·人工智能·数据中心·微模块机房·模块化机房
数字新视界22 天前
数据中心基础设施管理系统的智能监测与运维整合剖析
数据库·物联网·数据中心·数据中心基础设施管理·dcim管理系统
数字新视界23 天前
全国产化动环监控平台引领智能环境管理新趋势
物联网·数据中心·机房管理·动环监控系统·动力环境监控系统
艾德克斯24 天前
从800G到1.6T:AI高速光互联加速演进,测试如何跟上量产节奏?—— ITECH高密度、模块化测试方案,助力高速光模块规模化制造
数据中心·光模块·ai基础设施·芯片器件
数字新视界1 个月前
国产化动环技术提升数据中心监控效率与安全性
大数据·人工智能·数据中心·微模块机房·模块化机房
东鸿电子Eastron1 个月前
AI 算力爆发,数据中心能源管理系统(EMS)正在经历什么?
人工智能·数据中心·智能电表·ai 算力·多回路计量·智能计量