发明内容
本发明的目的在于:针对上述现有技术存在的问题,提出一种基于JavaScript在能效管理系统中实现3D空调自动排布的方法,利用现有的JavaScript3D技术,动态计算空调系统中设备位置,以适应当设备数量发生变化时,可以在不改绘图程序的情况下完成界面调整;空调系统中的设备位置不是实际物理位置,系统反应的是设备的组织形式,也就是在这个前提下,才可以实施自动排布。
为了达到以上目的,本发明的技术方案如下:
一种基于JavaScript在能效管理系统中实现3D空调自动排布的方法,其特征在于:包括如下步骤:
步骤一、加载设备模型配置信息和设备个数清单;
步骤二、计算设备模型矩阵大小和行列组织方式;
步骤三、将各矩阵进行位置排布;
步骤四、绘制各矩阵内设备;
步骤五、绘制各矩阵内行管道;
步骤六、绘制各矩阵之间管道。
本发明所述步骤一中,加载设备模型配置信息和设备个数清单,具体包括如下过程:设备模型参数包含:模型种类、引用的模型文件、长、宽、高、模型间距;获取各种设备的数量。
所述步骤二中,计算设备模型矩阵大小和行列组织方式,具体包括如下过程:按照设备数量和设备间距计算矩阵大小,矩阵尽量保证长宽比接近于1,一行不满按一行处理。
所述步骤三中,将各矩阵进行位置排布,具体包括如下过程:矩阵间排布,需要保证管道连接清晰,尽量避免交叉,以制冷主机组为中心,制冷主机矩阵的XYZ的中心点放置于空间坐标的原点位置,Z轴正方向(屏幕朝里)为后面;冷却泵矩阵(又称风机回水泵矩阵)和风机矩阵放置于制冷主机左边,从前至后依次纵向排列;热水回水泵矩阵和制热主机矩阵依次放置于制冷主机矩阵的Z方向的后边;冷冻泵矩阵放置于制冷主机矩阵右边;集水器矩阵连接冷冻泵矩阵和热水泵矩阵,放置于冷冻泵矩阵后面;分水器矩阵位于集水器矩阵的后方。
所述步骤四中,绘制各矩阵内设备,具体包括如下过程:先绘制中心矩阵,在矩阵绘制时,先绘制该矩阵左下第一个设备;依次增加列间距行间距,绘制其他同类设备,直至矩阵内所有设备绘制完成;依次绘制其他矩阵,其他矩阵都以中心矩阵为参考点绘制。如绘制风机矩阵为例,在设备模型配置清单中找到风机对应的模型,通过3D技术加载,渲染设备,而后绘制其进出水管,因为当风机位置确定后,其进出水管位置也是确定的,然后循环绘制其它风机,从而完成该矩阵的绘制。
所述步骤五中,绘制各矩阵内的行管道,每个设备管道P1连接到该行的管道P2上,矩阵内每个设备的进、出水口在X轴、Y轴、Z轴方向上的位置相对于设备本身是一致的,且该行所有设备在Y方向的高度是一致的,所以我们将该行两端设备的进水口(或出水口)作为行管道的两个端点,从而添加行管道模型,当矩阵绘制完成后,其中的每个设备的进出水口已经绘制完成,矩阵中每行管道的两个端点已经确定,我们只需利用3D绘制该两个端点的距离的管道图形即可,并放置于端点之间。
所述步骤六中,绘制各矩阵之间管道,将相关矩阵间用管道P3连接,将矩阵的行管道P2连接到矩阵间管道P3上,在连接矩阵间的管道时,为了保证矩阵间管道P3的水平性,需要调整管道P3要连接的矩阵整体在Y轴方向上的坐标;所述步骤六中,以制冷主机矩阵和风机矩阵的连接为例,在管道连接时,制冷主机的出水管连接分机矩阵的进水管,风机矩阵的出水管连接风机回水泵的进水管,风机回水泵的出水管连接制冷主机的进水管,找到要连接的两个矩阵的出水管的XYZ坐标,为保证矩阵连接水管的水平,我们需要调整除主机矩阵外的风机矩阵和风机回水泵的Y轴坐标,在高度确定后,分机矩阵与制冷主机矩阵的连接管道的Z轴长度为:风机的进水管的Z与制冷主机出水管Z差值的绝对值,其他矩阵的连接类似,系统中矩阵高度调整都应当,以中心矩阵为参考,中心矩阵的Y轴高度不调整,其他的按需要进行调整。
所述上述所有步骤过程均通过JavaScript进行设计完成。
本发明一种基于JavaScript在能效管理系统中实现3D空调自动排布的方法,利用现有的JavaScript3D技术,动态计算空调系统中设备位置,以适应当设备数量发生变化时,可以在不改绘图程序的情况下完成界面调整;空调系统中的设备位置不是实际物理位置,系统反应的是设备的组织形式,也就是在这个前提下,才可以实施自动排布。
具体实施方式
如图1-5所示,本发明一种基于JavaScript在能效管理系统中实现3D空调自动排布的方法,包括如下步骤:
步骤一、加载设备模型配置信息和设备个数清单;
步骤二、计算设备模型矩阵大小和行列组织方式;
步骤三、将各矩阵进行位置排布;
步骤四、绘制各矩阵内设备;
步骤五、绘制各矩阵内行管道;
步骤六、绘制各矩阵之间管道。
本发明所述步骤一中,加载设备模型配置信息和设备个数清单,具体包括如下过程:设备模型参数包含:模型种类、引用的模型文件、长、宽、高、模型间距;获取各种设备的数量。
所述步骤二中,计算设备模型矩阵大小和行列组织方式,具体包括如下过程:按照设备数量和设备间距计算矩阵大小,矩阵尽量保证长宽比接近于1,一行不满按一行处理。
所述步骤三中,将各矩阵进行位置排布,具体包括如下过程:矩阵间排布,需要保证管道连接清晰,尽量避免交叉,以制冷主机组为中心,制冷主机矩阵的XYZ的中心点放置于空间坐标的原点位置,Z轴正方向(屏幕朝里)为后面;冷却泵矩阵(又称风机回水泵矩阵)和风机矩阵放置于制冷主机左边,从前至后依次纵向排列;热水回水泵矩阵和制热主机矩阵依次放置于制冷主机矩阵的Z方向的后边;冷冻泵矩阵放置于制冷主机矩阵右边;集水器矩阵连接冷冻泵矩阵和热水泵矩阵,放置于冷冻泵矩阵后面;分水器矩阵位于集水器矩阵的后方。
所述步骤四中,绘制各矩阵内设备,具体包括如下过程:先绘制中心矩阵,在矩阵绘制时,先绘制该矩阵左下第一个设备;依次增加列间距行间距,绘制其他同类设备,直至矩阵内所有设备绘制完成;依次绘制其他矩阵,其他矩阵都以中心矩阵为参考点绘制。如绘制风机矩阵为例,在设备模型配置清单中找到风机对应的模型,通过3D技术加载,渲染设备,而后绘制其进出水管,因为当风机位置确定后,其进出水管位置也是确定的,然后循环绘制其它风机,从而完成该矩阵的绘制。
所述步骤五中,绘制各矩阵内的行管道,每个设备管道P1连接到该行的管道P2上,矩阵内每个设备的进、出水口在X轴、Y轴、Z轴方向上的位置相对于设备本身是一致的,且该行所有设备在Y方向的高度是一致的,所以我们将该行两端设备的进水口(或出水口)作为行管道的两个端点,从而添加行管道模型,当矩阵绘制完成后,其中的每个设备的进出水口已经绘制完成,矩阵中每行管道的两个端点已经确定,我们只需利用3D绘制该两个端点的距离的管道图形即可,并放置于端点之间。
所述步骤六中,绘制各矩阵之间管道,将相关矩阵间用管道P3连接,将矩阵的行管道P2连接到矩阵间管道P3上,在连接矩阵间的管道时,为了保证矩阵间管道P3的水平性,需要调整管道P3要连接的矩阵整体在Y轴方向上的坐标;所述步骤六中,以制冷主机矩阵和风机矩阵的连接为例,在管道连接时,制冷主机的出水管连接分机矩阵的进水管,风机矩阵的出水管连接风机回水泵的进水管,风机回水泵的出水管连接制冷主机的进水管,找到要连接的两个矩阵的出水管的XYZ坐标,为保证矩阵连接水管的水平,我们需要调整除主机矩阵外的风机矩阵和风机回水泵的Y轴坐标,在高度确定后,分机矩阵与制冷主机矩阵的连接管道的Z轴长度为:风机的进水管的Z与制冷主机出水管Z差值的绝对值,其他矩阵的连接类似,系统中矩阵高度调整都应当,以中心矩阵为参考,中心矩阵的Y轴高度不调整,其他的按需要进行调整。
所述上述所有步骤过程均通过JavaScript进行设计完成。
本发明一种基于JavaScript在能效管理系统中实现3D空调自动排布的方法,利用现有的JavaScript3D技术,动态计算空调系统中设备位置,以适应当设备数量发生变化时,可以在不改绘图程序的情况下完成界面调整;空调系统中的设备位置不是实际物理位置,系统反应的是设备的组织形式,也就是在这个前提下,才可以实施自动排布。
本发明自动排布是指,程序根据设备数量多少来自动计算每个设备的位置。这个排布方法的输入条件是,设备类型和设备个数,产出是,每个设备在图中的绝对位置。该排布方法和能效管理无关联,只是在能效管理系统中使用过该方法。
本发风机在XZ平面中的间隔如图2,是在配置文件中设置的,矩阵间隔大小也是可以配置的。这些值都根据模型大小,进行配置的,如果设备大小较大,则相应的矩阵内部间隔,矩阵间的间隔都需要进行调整,这样才可以是界面视觉效果好。各个矩阵相对于主机的位置见图3。
本发明实现自动排布需要以下几个步骤:
设置设备模型配置参数与设备数量清单:设备模型参数包含模型种类、引用的模型文件、长(X轴方向)、宽(Z轴方向)、高(Y轴方向)、模型间距(在组成矩阵时模型之间X、Z轴的间距);获取各种设备的数量,如制冷主机个数、风机个数等。
计算各模型矩阵的长宽:将同类设备以m*n的排布若干行。按照设备数量和设备间距计算矩阵大小。
各矩阵间的排布:对于矩阵间排布,需要保证管道连接清晰,尽量避免交叉。标记各个矩阵在XZ平面中,左下第一个设备的位置。
利用JavaScript3D绘图:先绘制中心矩阵,在矩阵绘制时,先绘制该矩阵左下第一个设备;依次增加列间距行间距,绘制其他同类设备,直至矩阵内所有设备绘制完成;依次绘制其他矩阵。
矩阵内管道连接:每个设备管道P1连接到该行的管道P2上。矩阵内每个设备的进、出水口在X轴、Y轴、Z轴方向上的位置相对于设备本身是一致的,所以该行所有设备在Y方向的高度是一致的,所以我们将该行两端设备的进出口(或出水口)作为行管道的两个端点,从而添加行管道模型。
矩阵间的管道连接:将相关矩阵间用管道P3连接,将矩阵的行管道P2连接到矩阵间管道P3上。在连接矩阵间的管道时,为了保证矩阵间管道P3的水平性,需要调整管道P3要连接的矩阵整体在Y轴方向上的坐标。
按照上面六步可以完成,空调水循环系统的空间立体排布。
采用本发明的方法可以通过修改设备个数清单来应对设备数量变化的要求,通过修改模型配置文件来解决调整模型大小或设备间距,管道连接位置的问题。当项目在不同的实际环境部署置时,可以轻松应对。
本实施例基于JavaScript在能效管理系统中实现3D空调自动排布的方法如图1所示,具体步骤如下:
配置各设备模型配置参数:该参数包含模型的长、宽、高,在形成矩阵时柜体的X、Z轴的间距,进、出水水管连接的位置(相对于设备的中心点),如{类型:风机,模型:“wind1”,长:5,宽:5,高:9,X轴间距:4,Y轴间距:4,出水管:{X:2,Y:2,Z:2},进水管:{ X:2,Y:4,Z:2}}。
获取设备的配置清单JSON格式:
{制冷主机:3,风机:16,冷水泵:8,冷冻泵:6,热水泵:4,制热机:3,集水器:2,分水器2}
计算各模型矩阵的长宽:按照设备数量和设备间距计算矩阵大小,矩阵尽量保证长宽比接近于1,一行不满按一行处理。如8个设备将形成3*3的矩阵,如图2。
各矩阵间的排布:对于矩阵间排布,需要保证管道连接清晰,避免交叉。以制冷主机组为中心,制冷主机矩阵的XYZ的中心点放在空间坐标的原点位置,风机矩阵和风机回水泵矩阵放在左边,风机矩阵和风机回水泵矩阵相邻,制热机组矩阵和热水回水泵矩阵相邻,制冷主机矩阵与冷冻回水泵矩阵相邻,集水器矩阵连接冷冻回水泵矩阵和热水回水泵矩阵,这两中泵在实际中是互斥运转的。如图3。
绘制矩阵内设备:以制冷主机组为中心先绘制该矩阵,其他设备矩阵都以该矩阵为参考点绘制。矩阵以单个设备组成,所以绘制设备矩阵即绘制各个设备。以风机为例绘制后的情形如图2。在设备模型配置清单中找到风机对应的模型,通过3D技术加载,渲染设备,而后绘制其进出水管,因为当风机位置确定后,其进出水管位置也是确定的。然后循环绘制其它风机。
绘制矩阵内行管道:
以图4为例,当矩阵绘制完成后,其中的每个设备的进出水口已经绘制完成,矩阵中每行管道的两个端点已经确定,我们只需利用3D绘制该长度(两个端点的距离)的管道图形即可,并放置于端点之间。
绘制矩阵间的管道连接:以图5中的制冷主机矩阵和风机矩阵的连接为例。在管道连接时,制冷主机的出水管连接分机矩阵的进水管,风机矩阵的出水管连接风机回水泵的进水管,风机回水泵的出水管连接制冷主机的进水管。找到要连接的两个矩阵的出水管的XYZ坐标,为保证矩阵连接水管的水平,我们需要调整除主机矩阵外的风机矩阵和风机回水泵的Y轴坐标。在高度确定后,分机矩阵与制冷主机矩阵的连接管道的Z轴长度为:风机的进水管的Z与制冷主机出水管Z差值的绝对值。其他矩阵的连接类似。系统中矩阵高度调整都应当,以中心矩阵为参考,中心矩阵的Y轴高度不调整,其他的按需要进行调整。
除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。