机房工勘图纸的毫米可信度:nVisual DCDesigner 的坐标系、标尺与尺寸可溯源设计
摘要:工勘图纸的质量标准不是「画得像」,而是「经得起追问」——任何一个尺寸都能说清从哪里量、在哪里、为什么是这个值。DCDesigner 用一套完整的坐标约定、录入约束与标尺体系支撑这件事:原点与卷尺一致、尺寸按毫米录入、标注与净距在图上实时可见、导出可 1:1 复核。本文从四个层次拆解这套「尺寸可信度」设计。
一、可信度的四个层次
「这张图上的尺寸准不准」,可以被拆成四个可检验的问题:
量到的数有没有对齐口径?(现场量的是内空,图上画的是不是同一件事)
录入时会不会失真?(鼠标画的线,能不能保证是 6000mm 而不是 5987mm)
图上能不能读到、能不能核?(不借助外部资料,能否回答「这两排距墙多少」)
数据层能不能复算?(导出与统计是否来自同一组坐标)
DCDesigner 的设计在这四个层次上都有对应机制。
二、第一层:与卷尺对齐的坐标系
坐标系只有一个约定,且直接对应卷尺读数:
房间西南角内表面为原点 (0,0);
X 轴向东、Y 轴向北;
全部单位毫米;
向导生成矩形房间时,内空尺寸 = 使用者输入尺寸,墙中心线在输入尺寸之外再偏移半墙厚;
画布上有橙色十字原点标记与东/北方向箭头,位置随视图平移缩放。
由此得到的便利是「零换算」:
现场动作 录入方式 量机柜距西墙内表面 1500、距南墙内表面 2100 机柜属性填 X=1500、Y=2100 量门在墙上距墙起点 3000 门属性填「距墙起点 3000mm」 量柱子距西墙 3000、距南墙 3000 柱子坐标填 (3000, 3000) 量房间内空 12000×9000 向导第 1 步填 12000 / 9000
坐标口径统一带来的另一个好处是可复核:两个人分别到现场复核,只需各量一次「距西/距南」,数值直接可比,不需要换算中心线、扣墙厚。
不规则机房用逐段墙绘制时,每条墙段的两个端点也可能是负数或超出房间——工具不阻止这种表达(现实中的隔断、风墙本来就可能位于原坐标系各处),但越出房间的对象会被合规自检标记为「越出房间」。
三、第二层:录入即精确的约束 3.1 键盘直接距离输入
画墙体与桥架时,鼠标只负责定方向:移动到目标方向后,键盘敲入实测长度并回车,该段严格按输入值生成(CAD 式直接距离输入),支持连续绘制与 Shift 正交。
这条交互看起来朴素,却是「实测建模」和「鼠标画图」的分界线:鼠标只能表达「大概」,键盘才能表达「实测 6480mm」。
3.2 网格与捕捉
100mm 网格捕捉:放置、拖动、拉伸默认落在 100mm 网格上;
600mm 模数网格:与静电地板模数一致,用于视觉参照(屏幕上细线 100mm 级、粗线 600mm 模数级,随缩放自适应);
智能对齐标尺:拖动对象时自动吸附其他对象的边缘、中线(含旋转对象包围盒、墙/桥架端点与中点、门窗中心),命中时显示红色虚线参考线(容差 8px)。
网格捕捉保证「整」,对齐吸附保证「齐」,两者共同减少手工放置的随机误差。
3.3 属性面板与微调
所有对象选中后可在右侧属性面板修改精确参数(坐标、尺寸、旋转、定位)。对于「差一点点」的调整:
方向键微调:按一下 1mm,Alt + 方向键 加速为 10mm/次;同一段连续微调合并为一步撤销;
尺寸、功率、制冷量、风量、U 数、RPDU 数量等非负物理量带下限约束,越限输入自动夹紧并在状态栏给出警告(坐标、旋转、温度不受此限)。
也就是说,异常值不会静默写进数据——要么被约束,要么被明确提示。
四、第三层:图上可读、可核的标尺体系 4.1 常驻标注
墙体尺寸标注:所有墙体沿墙方向自动标注毫米长度,统一注在外墙侧(建筑外部尺寸惯例,避开贴墙机柜);
比例尺:画布左下角随缩放自适应,导出 PNG 时同步绘制;
原点标记:橙色十字 + 东/北箭头。
4.2 两组「实时净距」标尺
拖动或放置实体对象(机柜、柱子、空调、UPS、蓄电池、灭火器、风口、列头柜)时,画布同时给出两组标尺:
标尺 颜色 内容 最近对象净距 红色 与最近对象的 X 向 / Y 向净距,每方向各取最近一个;相贴显示 0 四周墙距 蓝色 到上、下、左、右四面墙内表面的距离;对象越出某面墙时该方向不标
这两组标尺的工程语义刚好互补:既知离邻居多远,也知离墙多远。拖动过程中一直可见,放下即准,不需要摆完再双选核对。
标尺同样作用于:放置预览(跟随鼠标)、方向键微调(停止按键 1s 后隐去)、长按实体对象(select 工具按住 ≥500ms 未拖动时显示,松手或开始拖动即隐);多选整体拖动时按整组对象的外沿(联合包围盒)计距。
4.3 双选正交标尺
恰好选中两个对象时,画布自动以青绿色正交标尺标出两者的 X 向 / Y 向净距:垂足点 + 直角符号 + 尺寸数字(文字带白底光晕保证可读)。两对象对角分布时标尺带正交延长虚线,垂足落在对象真实轮廓边上(旋转柱按旋转后外形取值);右侧面板同步显示 X 向净距、Y 向净距与中心距,拖动选中对象时标尺实时跟随。
这解决了工勘复盘中常见的一类提问:「这两台设备之间到底多少?」——答案不必翻属性面板计算,图上直接给出。
4.4 挂墙对象的定位口径
门、窗、格栅不存 X/Y 坐标,而是通过 wallId + t 依附墙体(t 为沿墙 0~1 的参数),属性面板中显示/编辑为「距墙起点 mm」。带来的两个好处:
墙体移动时其上门窗自动跟随,不会「墙动门掉」;
定位口径与现场一致——现场量的本来就是「距这面墙的起点多少」。
删除墙体时,其上门窗/格栅级联删除,避免产生悬空对象。
五、第四层:数据层的可复算性
图纸可信的最后一道保障是数据本身经得起计算:
单一坐标源:平面图、3D 模型、DXF、CSV 位置信息全部来自同一份 objects 坐标,不存在「图上一处、表里一处」;
加载时清洗:打开项目(含草稿恢复)时自动剔除残缺对象与丢失墙体的门窗/格栅,坐标与尺寸字段强制数值化,非负物理量负值归零,旧版字段自动迁移——手工编辑 JSON 写入的异常值不会进入画布与统计;
单位与精度:全部毫米制;导出端 JSON 坐标与画布一致(西南角原点、X 东 Y 北);
导出可复核:
DXF 为 1:1 毫米图,AC1009/R12 最简结构,可直接在 AutoCAD / 中望 / 浩辰 / BricsCAD / LibreCAD 中量取;
CSV 设备明细逐台列出编号、规格与距西 / 距南位置,可与现场记录逐项对账。
六、把「大概记得」逐条替换成机制
下表是本文的核心论点——每一个现场常见的模糊表达,都对应一个可检查的机制:
现场表达 对应机制 「大概一米二」 键盘输入实测长度 + 毫米建模 「这两排挨着」 柜间距支持 0;互斥推挤在重叠时自动让位 「离墙差不多」 拖动实时蓝色墙距标尺 + 合规自检净距规则 「这排编号忘了」 编号模板自动递增 + 「检测空位补插」+「重排本排序号」 「通道宽回头再说」 通道宽为属性,修改时两侧机柜联动(可关) 「门就在墙上」 门窗 wallId + t(距墙起点 mm),随墙移动、删墙级联 「层高记不清」 机房信息记录结构层高 / 吊顶面高 / 架空地板高,参与净高与下送风自检 「功率回头算」 机柜功率逐台录入,多选面板与向导第 4 步实时统计,CSV 汇总与明细可对账 七、边界:标尺与自检不等于测量精度
需要明确的几点:
图纸精度取决于现场测量与录入精度。工具保证「输入多少就是多少」,不保证卷尺本身与人为读数误差;
合规自检使用的是可配置的经验阈值(柜前 900mm、柜后 600mm、柜侧 600mm、冷通道 1200mm、热通道 900mm 等为默认值),报告明确注明「阈值为经验参考值,不构成规范符合性结论」;不同项目应按实际规范与企业标准调整阈值;
房间近似按墙体包围盒矩形处理,L 形/异形房间的墙距与面积在边界处为近似值;
净距对旋转非 90° 倍数的对象会跳过部分前后净距判定(拖动与旋转工具本身以 90° 步进,实际使用不受影响)。
附:事实来源与核验方式
坐标系与标注:public/js/render.js、public/js/geo.js;纯逻辑单测 node tests/layout.test.mjs
门窗/格栅依附与级联:README.md「数据格式」;实现见 public/js/state.js
清洗与字段迁移:public/js/state.js(sanitize)
标尺与微调:public/js/tools.js、public/js/render.js(净距标尺复用 geo.js 的 pairClearance / wallClearances)
自检阈值默认值:public/js/checks.js 的 DEFAULT_CFG;面板与报告 public/js/checks-panel.js
DXF / CSV 导出:public/js/dxf.js、public/js/csv.js;单测 node tests/dxf.test.mjs、node tests/csv.test.mjs
可复现核验:
node tests/layout.test.mjs node tests/dxf.test.mjs node tests/csv.test.mjs node tests/checks.test.mjs
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.