前言

机房3D可视化管理模块V2.0

MMSDT.preloadAllDevice() 构造函数概述:

  本构造函数依托于mms3D.V861.js渲染引擎版本、mmsDT.V61.js数字孪生引擎版本,是mmsDT.V61.js的扩展功能插件。专为智慧机房系统打造的,可自主编辑、灵活配置、便捷的二次开发,自定义接口、流畅的三维操作体验。

  本模块插件已广泛应用了数十个项目,包括中国联通、中国广电、国家电网等多个数据中心机房的3D可视化项目中。

主要功能特点:

  1、自主编辑
    ①、自行拖拉拽设备至任意位置;
    ②、自行旋转设备各种角度;
    ③、对设备的删除、显示隐藏;
    ④、设置、或根据实时数据改变:机柜内服务器的U层单位;
    ⑤、为拆分的模型区块自行设置参数来绑定到模型对象;
    ⑥、设置任意设备的连线、及线条样式。

  2、灵活控制
    ①、鼠标移入移出设备控制;
    ②、鼠标单击双击设备控制;
    ③、设备位置补间动画设置;
    ④、模型动画播放控制;
    ⑤、设备模型的数据叠加;
    ⑥、线条的删除、显示隐藏、更改等。

  3、可视化特效
    ①、设备沟边;
    ②、设备发光;
    ③、设备变色;
    ④、线条流动方向。

  4、模式通用
    ①、运行监控模式;
    ②、场景从零开始的编辑模式;
    ③、历史场景再次编辑模式;
    ④、实时刷新再现模式。

HTML代码示例

<body> <!--背景图遮罩(Tips:可自行换背景图)--> <div id="background"></div> <!--进度条(Tips:loading和loadNum这两个ID号固定不能改,可更改CSS样式)--> <div id="loading"> <img src='textures/loading.gif'> <div id="loadNum">0%</div> </div> <!--新建容器画布(Tips:mms3D这个ID号固定不能改)--> <div style="position:absolute; width:100%; height:100%; top:0px; z-index:0;" id="mms3D"></div> <!--引入mms3D、mmsDT两个js的库文件--> <script src="js/mms3D.V861.js"></script> <script src="js/mmsDT.V61.js"></script> <!--引入本机房preloadAllDevice.js插件--> <script src="js/preloadAllDevice.js"></script> <!--二次开发文件--> <script src="js/mmsDT.project.js"></script> </body>

js代码示例 mmsDT.project.js

//初始化三维画布 var config = { edit: true, //是否编辑状态,true编辑状态,false监控状态 exception: [], //需要材质拆分的网格名称 instancing: [], //合并实例化网格名称 shadowSide: false, //物体模型的背面是否产生阴影,true有阴影,false背面没有,默认false shadowUpdata: true, //阴影是否自动更新,true实时自动更新,false仅在初始化的时候生成固定阴影,默认true gpuTesting: ["GTX","RTX"], //显卡检测,没包含的型号会弹出提示框,该对象为空则默认不检测 networkTesting: 10, //网速检测,KB/s,小于该数字会弹出提示,该对象为空则默认不检测 } MMSDT.initScene( config ); //使用json文件让场景还原 MMSDT.onloadScene( "models/mms3D1741679834140.json", function(progress){ //显示进度条数字 if( typeof progress === 'number' ){ document.getElementById("loadNum").innerHTML = Math.round( progress )+'%'; //加载完成 }else if( progress == 'done' ){ onloadDone(); //渲染完成 }else if( progress == 'ok' ){ onloadOk(); } }); //场景加载完成 function onloadDone(){ var allDevice = new MMSDT.preloadAllDevice( modelsList, function(){ console.log("全部设备预加载完成"); allDevice.clone( equipsData, "前端机房" ); //批量添加设备 }); } //场景渲染完成 function onloadOk(){ }