CN117436162A - 基于Dynamo的斜管沉淀池正向设计建模方法及系统 - Google Patents
基于Dynamo的斜管沉淀池正向设计建模方法及系统 Download PDFInfo
- Publication number
- CN117436162A CN117436162A CN202311097363.7A CN202311097363A CN117436162A CN 117436162 A CN117436162 A CN 117436162A CN 202311097363 A CN202311097363 A CN 202311097363A CN 117436162 A CN117436162 A CN 117436162A
- Authority
- CN
- China
- Prior art keywords
- inclined tube
- sedimentation tank
- design
- water
- tube sedimentation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004062 sedimentation Methods 0.000 title claims abstract description 302
- 238000013461 design Methods 0.000 title claims abstract description 294
- 238000000034 method Methods 0.000 title claims abstract description 78
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 361
- 238000004364 calculation method Methods 0.000 claims abstract description 92
- 239000010802 sludge Substances 0.000 claims abstract description 92
- 238000012938 design process Methods 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000007781 pre-processing Methods 0.000 claims abstract description 10
- 238000003491 array Methods 0.000 claims description 66
- 238000009826 distribution Methods 0.000 claims description 28
- 238000010276 construction Methods 0.000 claims description 17
- 230000000630 rising effect Effects 0.000 claims description 14
- 230000008676 import Effects 0.000 claims description 12
- 238000003860 storage Methods 0.000 claims description 12
- 101100522110 Oryza sativa subsp. japonica PHT1-10 gene Proteins 0.000 claims description 10
- 101100522109 Pinus taeda PT10 gene Proteins 0.000 claims description 10
- 101100309712 Arabidopsis thaliana SD11 gene Proteins 0.000 claims description 8
- 101100309714 Arabidopsis thaliana SD16 gene Proteins 0.000 claims description 8
- 238000010008 shearing Methods 0.000 claims description 6
- 239000013049 sediment Substances 0.000 claims description 5
- 230000001174 ascending effect Effects 0.000 claims description 4
- 238000005189 flocculation Methods 0.000 claims description 3
- 230000016615 flocculation Effects 0.000 claims description 3
- 238000010408 sweeping Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 7
- 239000007787 solid Substances 0.000 description 7
- 238000011161 development Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000001556 precipitation Methods 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 239000007900 aqueous suspension Substances 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 101100522111 Oryza sativa subsp. japonica PHT1-11 gene Proteins 0.000 description 1
- 101100522114 Oryza sativa subsp. japonica PHT1-12 gene Proteins 0.000 description 1
- 101100522115 Oryza sativa subsp. japonica PHT1-13 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000005056 cell body Anatomy 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 239000002244 precipitate Substances 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/28—Design optimisation, verification or simulation using fluid dynamics, e.g. using Navier-Stokes equations or computational fluid dynamics [CFD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/08—Fluids
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/14—Force analysis or force optimisation, e.g. static or dynamic forces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/04—Architectural design, interior design
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Evolutionary Computation (AREA)
- Civil Engineering (AREA)
- Computational Mathematics (AREA)
- Structural Engineering (AREA)
- Architecture (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Fluid Mechanics (AREA)
- Mathematical Physics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了基于Dynamo的斜管沉淀池正向设计建模方法及系统,获取斜管沉淀池的设计数据,并对设计数据进行预处理;考虑水力计算过程、经验参数的判断取值和设计规范的约束,基于预设的编程节点进行斜管沉淀池模型尺寸计算的同时,构建出与设计数据相符合的斜管沉淀池三维模型:斜管设备模型、斜管沉淀池池体及穿孔整流墙模型、出水集水槽模型和沉泥斗模型;输出斜管沉淀池设计过程、设计过程的复核结果。本发明目基于Dynamo编程程序对Revit进行二次开发,针对水厂工程中的斜管沉淀池进行设计阶段的信息化建模,将设计过程中涉及的水力计算过程、经验参数的判断取值、设计规范的约束条件融入到建模过程中,能够作为斜管沉淀池的通用三维设计建模模板。
Description
技术领域
本发明涉及正向设计建模技术领域,具体涉及基于Dynamo的斜管沉淀池正向设计建模方法及系统。
背景技术
建筑模型信息化(BIM)技术已成为建筑工程设计发展的趋势。其中Revit软件是目前支持BIM技术的最常用的一种工具之一。
基于Revit的三维模型构建,不单只是聚焦于工程的可视化展示,更是聚焦于全生命周期的信息化模型,涵盖工程的规划、设计、施工、后期运维各个阶段。但是目前Revit的软件功能主要针对建筑工程领域,并不能有力支持水厂工程在设计阶段进行正向设计工作的开展。水厂工程构筑物的设计需要进行水力计算,需要考虑设计规范的约束,需要考虑工程经验参数,而单独在Revit中去实现上述设计过程的信息化建模,其流程是繁杂冗长的。因此上述原因也制约着水厂工程的三维正向设计的推广普及。
目前水厂工程在设计阶段的建模一般还是基于“先制作设计计算书,然后在设计计算书的基础上绘制CAD二维图纸,最后根据二维图纸进行工程模型的翻建”的流程,而这种建模流程不仅步骤冗长,耗费过多的时间精力,而且并没有将设计过程信息融入到BIM技术中,没有达到设计阶段的信息化建模,也没有达到正向设计的目的。
发明内容
本发明目的在于提供一种斜管沉淀池正向设计建模方法及系统,基于Dynamo编程程序对Revit进行二次开发,针对水厂工程中的斜管沉淀池进行设计阶段的信息化建模,将设计过程中涉及的水力计算过程、经验参数的判断取值、设计规范的约束条件融入到建模过程中,将设计过程信息化、模板化,创建一种工程建模模板,依靠设计阶段信息的输入,即可创建适应不同工程情况的、符合设计过程准则的斜管沉淀池模型,能够作为斜管沉淀池的通用三维设计建模模板,为正向设计建模提供了一种新的方法。本发明所要解决的技术问题是非正向的建模流程不仅步骤冗长,耗费过多的时间精力,而且并没有将设计过程信息融入到BIM技术中,无法实现设计阶段的信息化建模,也没有达到正向设计的目的;
本发明通过下述技术方案实现:
本方案提供基于Dynamo的斜管沉淀池正向设计建模方法,包括:
获取斜管沉淀池的设计数据,并以EXCEL表格的方式对设计数据进行预处理;
考虑水力计算过程、经验参数的判断取值和设计规范的约束,基于预设的编程节点进行斜管沉淀池模型尺寸计算的同时,构建出与设计数据相符合的斜管沉淀池三维模型:斜管设备模型、斜管沉淀池池体及穿孔整流墙模型、出水集水槽模型和沉泥斗模型;
输出斜管沉淀池设计过程,设计结果的复核过程。本发明目的在于提供一种斜管沉淀池正向设计建模方法及系统,基于Dynamo编程程序对Revit进行二次开发,针对水厂工程中的斜管沉淀池进行设计阶段的信息化建模,将设计过程中涉及的水力计算过程、经验参数的判断取值、设计规范的约束条件融入到建模过程中,将设计过程信息化、模板化,创建一种工程建模模板,依靠设计阶段信息的输入,即可创建适应不同工程情况的、符合设计过程准则的斜管沉淀池模型,能够作为斜管沉淀池的通用三维设计建模模板,为正向设计建模提供了一种新的方法。
进一步优化方案为,预处理包括:
A1,在EXCEL表格的第一行分别输入设计数据的中文名称,包括:设计流量、出水浊度、进水浊度、斜管占用面积比例、污泥沉降速度、六边形蜂窝斜管边距、斜管倾角、斜管沉淀池长宽比、斜管沉淀池超高、斜管沉淀池清水区高度、斜管沉淀池布水区高度、斜管沉淀池壁厚、整流墙穿孔流速、絮凝池末端出口流速、过水方孔边长、污泥含水率、干污泥浓度、排泥周期、泥斗下口边长、泥斗高度、泥斗倾角、集水槽占池体面积的百分比、单个集水槽的宽度、理论水位高度、斜管设备水损、集水槽流速、集水槽厚度、集水槽超高、运动黏度;
A2,在EXCEL表格的第二行分别输入各设计数据对应的数值;
A3,将EXCEL表格的设计数据导入Dynamo中,基于节点File Path选择EXCEL表格的存储路径,基于节点File From Path使存储路径被Dynamo识别,基于节点Data.ImportExcel分别导入EXCEL表格中的设计数据;
对导入Dynamo的数据进行整理:基于节点List.RestOfItems去除EXCEL表格中的中文名称和空白行,保留数值;基于节点List.Clean去除EXCEL表格中的空白行;基于节点List.Flatten将EXCEL表格转成1级列表后,通过节点List.GetItemAtIndex根据每项设计数据对应的索引号提取设计数据,所述索引号按照EXCEL表格中每项设计数据所在列的序号数值减1得到,即0、1、2、3、…、28;最后基于节点String.ToNumber将提取的数值转为可在Dynamo中进行运算的数据类型。
进一步优化方案为,斜管设备模型的构建方法包括:
以坐标原点作为斜管沉淀池模型创建的基点,以x轴方向为池体长度方向,y轴方向为池体宽度方向,根据出水浊度设计Python.Scrip节点,在Python.Scrip节点设计中,考虑实际工程经验参数的取值,使设计的Python.Scrip节点可根据出水浊度的设计取值自动计算出所需求的清水区上升流速;针对出水浊度设计取值的范围,规定当出水浊度设计值要达到5NTU以下时,为了保证足够的水力停留时间,其流速不宜过快,设计清水区上升流速取2mm/s;当出水浊度设计值要达到5NTU以上时,流速可以适当取大值,减小池体的占地面积,设计清水区上升流速宜取3mm/s;当出水浊度要求达到5NTU时,综合考虑,设计清水区上升流速宜取2.5mm/s。
基于污泥沉降速度、六边形蜂窝斜管边距、斜管倾角和清水区上升流速,按照水力计算公式计算出斜管设备的理论长度,再设计Python.Scrip节点,融入工程经验的判断准则,计算出斜管设备的设计长度;根据工程经验,在计算出的斜管设备理论长度的基础上,还需要额外考虑紊流段的长度,但一般斜管设备的长度考虑1m为宜,因此对于考虑紊流段长度后,斜管设计长度不足1m的,宜采用1m的设计长度,而对于设计长度超过1m的,采用计算出来的原值即可;基于进水流量、斜管占用比例和清水区上升流速,按照相应的水力计算公式计算出斜管沉淀池的理论面积;基于斜管沉淀池长宽比和斜管沉淀池的理论面积计算出斜管沉淀池的理论长度和理论宽度,对理论长度和理论宽度结果取整数作为斜管沉淀池模型的设计长度及设计宽度;基于上述计算出的设计参数以及上述导入的设计参数生成斜管设备。进一步优化方案为,斜管设备的生成方法包括:
创建位于坐标原点的点PT1;在点PT1的基础上,创建x坐标为斜管沉淀池设计长度的点PT2;在点PT1的基础上,创建y坐标为斜管沉淀池设计宽度的点PT3。
基于斜管沉淀池的设计长度和设计宽度创建池体内轮廓的长边线段L1和宽边线段L2,以长边线段L1为移动对象,宽边线段L2为移动路径进行扫略得到面SF1;对面SF1进行双向拉伸得到的几何体SD1,双向拉伸的厚度为斜管设备的高度,其高度根据:斜管倾角以及斜管设备的设计长度进行相应推算;然后将几何体SD1沿z轴方向移动得到几何体SD2,使得几何体SD2底面的高度与斜管沉淀池布水区的高度保持一致;
将点PT1沿x轴方向移动一个六边形蜂窝斜管边距的距离得到点PT4,点PT4作为斜管设备底部的六边形蜂窝形状的第一个定位点,以点PT4为圆心,六边形蜂窝斜管边距为半径创建圆CR1;
对圆CR1的内接六边形LB1沿y轴方向创建均匀分布的单方向阵列,得到六边形阵列LBZ1,阵列个数由六边形蜂窝斜管边距以及斜管沉淀池设计宽度决定,阵列元素的距离由六边形蜂窝斜管边距决定;将六边形阵列LZB1沿x轴方向创建均匀分布的单方向阵列,得到六边形阵列LBZ2,阵列个数由六边形蜂窝斜管边距和斜管在水池长度方向的距离决定,所述斜管在水池长度方向的距离由斜管沉淀池设计长度、斜管设备的设计长度和斜管倾角决定,阵列元素的距离由六边形蜂窝斜管边距决定;
将内接六边形LB1分别沿x轴和y轴方向先后移动得到六边形LB2,对六边形LB2沿y轴方向创建均匀分布的单方向阵列,得到六边形阵列LBZ3,阵列个数由六边形蜂窝斜管边距以及斜管沉淀池设计宽度决定,阵列元素的距离由六边形蜂窝斜管边距决定;对六边形阵列LZB3沿x轴方向创建均匀分布的单方向阵列,得到六边形阵列LBZ4,其阵列个数由六边形蜂窝斜管边距以及斜管在水池长度方向的距离推算出来,所述斜管在水池长度方向的距离根据斜管沉淀池的设计长度和斜管倾角推算出来,阵列元素的距离根据六边形蜂窝斜管边距推算出来;将六边形阵列LBZ3和六边形阵列LBZ4合并成六边形阵列LBZ5,并沿着z轴方向移动得到的新阵列LBZ6,移动的距离为斜管沉淀池布水区高度;
将点PT4分别沿着x轴和z轴方向先后移动得到点PT5,移动的距离由斜管倾角、斜管沉淀池布水区高度和斜管设备的设计长度决定;将点PT5沿着z轴进行移动得到点PT6,移动的距离为斜管设备高度;将点PT4沿着z轴移动得到的点PT7,移动的距离为斜管沉淀池布水区高度;计算点PT6与点PT7二者所在直线的向量VE1;
将六边形阵列LBZ6沿着向量VE1拉伸得到几何体SD3;计算几何体SD3与几何体SD2的差集,得到斜管设备的外形几何体SD4,最后将外形几何体SD4转成Revit族并载入生成斜管设备。
进一步优化方案为,斜管沉淀池池体及穿孔整流墙模型的构建方法包括:
将长边线段L1沿y轴方向移动得到线段L3,移动的距离为斜管沉淀池的设计宽度;线段L3的终点为点PT8,计算出点PT1、点PT2、点PT3和点PT8四点连成的轮廓PL1,轮廓PL1作为池壁的内轮廓;将轮廓PL1偏移得到轮廓PL2,偏移的距离为斜管沉淀池壁厚,轮廓PL2作为池壁的外轮廓;
将池壁的内轮廓和外轮廓合并得到轮廓PL3,以轮廓PL3作为斜管沉淀池池体轮廓,然后将轮廓PL3拉伸得到池壁的几何体SD5;
根据水力计算,计算出穿孔整流墙过水孔洞的总面积。为了使过水方孔均匀的分布在斜管沉淀池布水区,设计以下的节点流程来进行布置,根据斜管沉淀池的设计宽度和斜管沉淀池布水区高度计算出二者的比例,并以此比例作为穿孔整流墙过水孔洞的总面积对应的长度与宽度之间的比例。然后根据计算得到的穿孔整流墙过水孔洞的总面积、以及上述总面积对应的长度与宽度之间的比例,计算出过水孔洞的总面积对应的长度和宽度。然后根据过水方孔边长,分别计算出过水方孔在斜管沉淀池宽度方向与高度方向的排列个数,其中过水孔洞的总面积对应的宽度方向即斜管沉淀池的高度方向;其中过水方孔沿着布水区的轮廓,从间隔一个方孔的距离开始布置,作为布置的基准,根据上述布置原则编写相应的节点计算公式。
进一步优化方案为,斜管沉淀池池体及穿孔整流墙模型的构建方法还包括:
将点PT1分别沿y轴和z轴方向先后移动得到点PT9,以点PT9为圆心创建圆CR2,圆CR2的半径由过水孔边长决定;将圆CR2的圆内接正方形RE1旋转,使圆内接正方形RE1的边与x轴平行,得到正方形的方孔轮廓RE2;对方孔轮廓RE2沿z轴方向创建均匀分布的单方向阵列,得到方孔轮廓阵列REZ1,阵列个数为方孔在高度方向的排列个数,阵列元素的距离由斜管沉淀池布水区高度、过水方孔边长和方孔在高度方向的排列个数决定;对方孔轮廓阵列REZ1沿其左侧和右侧分别创建均匀分布的单方向阵列,得到左侧阵列REZ2和右侧阵列REZ3,其左侧阵列(右侧阵列)阵列个数为方孔在宽度方向的排列个数的二分之一,阵列元素的距离根据过水方孔边长、斜管沉淀池的设计宽度和方孔在宽度方向的排列个数进行推算得出;最后将左侧阵列REZ2和右侧阵列REZ3合并得到方孔轮廓阵列REZ4;
将方孔轮廓阵列REZ4沿x轴负方向拉伸得到几何体记SD6,拉伸的厚度为斜管沉淀池壁厚;计算几何体SD5与几何体SD6的差集,得到斜管沉淀池池体及穿孔整流墙的几何体SD7;对几何体SD7进行开孔剪切后转成Revit族并载入生成斜管沉淀池池体及穿孔整流墙模型。
进一步优化方案为,出水集水槽模型的构建方法包括:
根据集水槽占池体面积的百分比、斜管沉淀池设计长度、斜管沉淀池设计宽度计算出集水槽的总平面面积;根据集水槽的总平面面积、斜管沉淀池设计宽度、单个集水槽宽度计算出集水槽个数;根据集水槽个数、斜管沉淀池设计长度、单个集水槽的宽度计算出每个集水槽中心线的距离。
根据进水流量、过水方孔边长、过水方孔在斜管沉淀池高度方向的排列个数和宽度方向的排列个数,计算出实际孔口流速;根据实际孔口流速,计算出水损值;根据理论水位高度、水损值,计算出实际水位高度;根据进水流量、集水槽个数、集水槽宽度、集水槽流速,计算出集水槽水深。
创建单个集水槽截面轮廓的基准点PT10,计算集水槽截面轮廓所有的定位点分别记为PT11~PT17,然后创建单个集水槽的轮廓JSC1;将轮廓JSC1拉伸得到单个集水槽外形几何体SD8;对单个集水槽几何体SD8并沿x轴方向创建均匀分布的单方向阵列,得到集水槽几何体阵列SD9,阵列个数为上述得到的集水槽的个数,阵列元素的距离为上述得到的每个集水槽中心线的距离,将集水槽几何体SD9转成Revit族并载入生成集水槽模型。
进一步优化方案为,斜管沉淀池池体及穿孔整流墙模型构建方法还包括:
在集水槽截面轮廓所有的定位点中选择4个内轮廓点PT10、点PT15、点PT16和点PT17计算单个集水槽洞口轮廓JSC2,将洞口轮廓JSC2拉伸得到的单个洞口几何体SD10,拉伸厚度为池体壁厚;最后计算单个洞口几何体SD10的均匀分布的单方向阵列,阵列方向和阵列元素距离与上述集水槽阵列保持一致,得到集水槽对应的洞口阵列的几何体SD11;
以斜管沉淀池池体及穿孔整流墙的几何体SD7为基础,剪切掉洞口阵列的几何体SD11,最后将剪切后的几何体转成Revit族并载入生成斜管沉淀池池体及穿孔整流墙模型。
进一步优化方案为,泥斗模型的构建方法包括:
根据进水浊度、出水浊度、进水流量计算进水悬浮物浓度、出水悬浮物浓度;根据进水悬浮物浓度、出水悬浮物浓度、进水流量、干泥密度、污泥含水率,计算得到湿污泥体积;
根据泥斗高度、泥斗下口边长、泥斗倾角,计算得到泥斗上口理论边长;根据泥斗上口理论边长、斜管沉淀池设计宽度,计算得到泥斗宽度方向的个数;根据泥斗上口理论边长、斜管沉淀池设计长度,计算得到泥斗长度方向的个数;根据斜管沉淀池设计长度、宽度、泥斗长度、宽度方向的个数,计算出泥斗上口在长度方向的设计边长、泥斗上口在宽度方向的设计边长。
以点PT1为单个泥斗内轮廓的基准点,根据泥斗上口的设计边长计算出泥斗上口内轮廓所有的定位点PT19~PT21;再根据所有定位点,并创建出单个泥斗上口的内轮廓ND1,根据上口内轮廓的定位点,以及泥斗下口的设计边长计算出泥斗下口内轮廓的所有定位点,分别记为PT22~PT28。从泥斗下口内轮廓的定位点中选择出泥斗下口内轮廓的边界点,创建单个泥斗下口的内轮廓ND2;
将内轮廓ND2进行偏移、平移得到单个泥斗的下口外轮廓ND3,将单个泥斗上口的内轮廓ND1进行偏移得到单个泥斗的上口外轮廓ND4;将内轮廓ND1与内轮廓ND2放样拉伸,得到几何体SD12;将下口外轮廓ND3与上口外轮廓ND4放样拉伸,得到几何体SD13;
计算出几何体SD12与几何体SD13的差集,得到单个泥斗的几何体SD14,对几何体SD14沿斜管沉淀池长度方向创建均匀分布的单方向阵列,得到几何体阵列SD15,阵列个数为泥斗长度方向的个数,阵列元素距离为泥斗上口在长度方向的设计边长;再对几何体阵列SD15沿斜管沉淀池宽度方向创建均匀分布的单方向阵列,得到泥斗几何体阵列SD16,阵列个数为泥斗宽度方向的个数,阵列元素距离为泥斗上口在宽度方向的设计边长;将几何体SD16转成Revit族并载入生成泥斗模型。
本方案还提供基于Dynamo的斜管沉淀池正向设计建模系统,用于实现上述方案的基于Dynamo的斜管沉淀池正向设计建模方法,包括:
采集模块,用于获取斜管沉淀池的设计数据,并对EXCEL表格收集的设计数据进行预处理;
模型构建模块,用于考虑水力计算过程、经验参数的判断取值和设计规范的约束,基于预设的编程节点进行斜管沉淀池模型尺寸计算的同时,构建出与设计数据相符合的斜管沉淀池三维模型:斜管设备模型、斜管沉淀池池体及穿孔整流墙模型、出水集水槽模型和沉泥斗模型;
设计信息输出模块,用于对斜管沉淀池进行设计的约束复核,并输出斜管沉淀池的设计信息。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明提供的基于Dynamo的斜管沉淀池正向设计建模方法及系统;通过Dynamo平台对Revit进行二次开发,将设计过程信息化,将设计过程融入在三维模型的构建中,在设计阶段进行正向设计,缩短了建模流程,减少了建模工程量,依靠设计阶段信息的输入,即可创建适应不同工程情况的斜管沉淀池模型;通过Dynamo平台对Revit进行二次开发,编制了符合相应设计逻辑的三维模型创建程序架构,构建了包含设计水力计算、经验参数取值、设计标准约束的三维模型创建系统,该系统包含设计过程的约束复核,依靠设计阶段信息的输入,即可创建符合相应设计准则的斜管沉淀池模型。
附图说明
为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在附图中:
图1为基于Dynamo的斜管沉淀池正向设计建模方法流程示意图;
图2为六边形阵列LBZ6示意图;
图3为斜管设备模型示意图;
图4为方孔轮廓阵列REZ4示意图;
图5为斜管沉淀池集水槽轮廓JSC1结构示意图;
图6斜管沉淀池集水槽模型示意图;
图7为斜管沉淀池池体及穿孔整流墙模型示意图;
图8为泥斗上下口的内外轮廓结构示意图;
图9为泥斗模型示意图;
图10斜管沉淀池三维模型示意图;
图11为设计信息输出、设计过程的复核结果输出示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
本实施例提供基于Dynamo的斜管沉淀池正向设计建模方法,如图1所示,包括:
S1,获取斜管沉淀池的设计数据,并对EXCEL表格收集的设计数据进行预处理;
S2,考虑水力计算过程、经验参数的判断取值和设计规范的约束,基于预设的编程节点进行斜管沉淀池模型尺寸计算的同时,构建出与设计数据相符合的斜管沉淀池三维模型:斜管设备模型、斜管沉淀池池体及穿孔整流墙模型、出水集水槽模型和沉泥斗模型;
S3,对斜管沉淀池进行设计的约束复核,并输出斜管沉淀池的设计信息。
进一步优化方案为,所述预处理包括:
A1,在EXCEL表格的第一行分别输入设计数据的中文名称,包括:设计流量(m3/s)、出水浊度(NTU)、进水浊度(NTU)、斜管占用面积比例、污泥沉降速度(mm/s)、六边形蜂窝斜管边距(mm)、斜管倾角(°)、斜管沉淀池长宽比、斜管沉淀池超高(m)、斜管沉淀池清水区高度(m)、斜管沉淀池布水区高度(m)、斜管沉淀池壁厚(m)、整流墙穿孔流速(m/s)、絮凝池末端出口流速(m/s)、过水方孔边长(m)、污泥含水率、干污泥浓度、排泥周期(次/天)、泥斗下口边长(m)、泥斗高度(m)、泥斗倾角(°)、集水槽占池体面积的百分比、单个集水槽的宽度(m)、理论水位高度(m)、斜管设备水损(m)、集水槽流速(m/s)、集水槽厚度(m)、集水槽超高(m)、运动黏度(cm2/s);
A2,在EXCEL表格的第二行分别输入各设计数据对应的数值;
A3,将EXCEL表格导入Dynamo中,基于节点File Path选择EXCEL表格的存储路径,基于节点File From Path使存储路径被Dynamo识别,基于节点Data.ImportExcel分别导入EXCEL表格中的设计数据;
对导入Dynamo的数据进行整理:基于节点List.RestOfItems去除EXCEL表格中的中文名称和空白行,保留数值;基于节点List.Clean去除EXCEL表格中的空白行;基于用List.Flatten将EXCEL表格转成1级列表后,通过节点List.GetItemAtIndex根据每项设计数据对应的索引号提取设计数据,所述索引号按照EXCEL表格中每项设计数据的列序号数值减1得到,即0、1、2、3……28;最后基于节点String.ToNumber将提取的数值转为可在Dynamo中进行运算的数据类型。
模型分为四个部分分别进行创建:斜管设备、斜管沉淀池池体及穿孔整流墙、出水集水槽、沉泥斗四个部分。
实施例2
基于上一实施例,本实施例的S2.1.1~S2.1.3斜管设备模型的构建方法包括:
以坐标原点作为斜管沉淀池模型创建的基点,以x轴方向为池体长度方向,y轴方向为池体宽度方向;
S2.1.1,根据出水浊度设计Python.Scrip节点,在Python.Scrip节点设计中,考虑实际工程经验参数的取值,使设计的Python.Scrip节点可根据出水浊度的设计取值自动计算出所需求的清水区上升流速;针对出水浊度取值的范围,规定当出水浊度设计值要达到5NTU以下时,为了保证足够的水力停留时间,其流速不宜过快,设计清水区上升流速取2mm/s;当出水浊度设计值要求达到5NTU以上时,流速可以适当取大值,减小池体的占地面积,设计清水区上升流速宜取3mm/s;当出水浊度要求达到5NTU时,综合考虑,设计清水区上升流速宜取2.5mm/s。
具体步骤如下:
设计Python.Scrip节点,以出水浊度设计值作为输入条件,在Python代码编辑中,输入“import clr”代码,“clr.AddReference('ProtoGeometry')”代码,
“from Autodesk.DesignScript.Geometry import*”代码来引用相关编程数据库;输入“dataEnteringNode=IN”代码来引用输入条件;输入“if IN[0]>5:s=3;”代码来计算当出水浊度设计值大于5NTU时的浊度的取值;输入“if IN[0]<5:s=2;”代码来计算当出水浊度设计值小于5NTU时的浊度的取值;输入“else:s=2.5;”代码来计算当出水浊度设计值等于5NTU时的浊度的取值;最后输入“OUT=s”代码来输出最终结果。
S2.1.2,基于污泥沉降速度、六边形蜂窝斜管边距、斜管倾角和清水区上升流速,按照水力计算公式计算出斜管设备的理论长度,再设计Python.Scrip节点,融入工程经验的判断准则,计算出斜管设备的设计长度;根据工程经验,在计算出的斜管设备理论长度的基础上,还需要额外考虑紊流段的长度,但一般斜管设备的长度考虑1m为宜,因此对于考虑紊流段长度后,斜管设计长度不足1m的,宜采用1m的设计长度,而对于设计长度超过1m的,采用计算出来的原值即可;
具体步骤如下:
利用Code Block节点,编辑水力计算公式:
(1.33*a/Math.Sin(c)-b*Math.Sin(c))/(b*Math.Cos(c))*d,其中输入的变量a、b、c、d分别对应清水区上升流速、污泥沉降速度、斜管倾角、六边形蜂窝斜管边距。得到斜管设备的理论长度。再编写Python.Scrip节点,以斜管设备的理论长度作为输入条件,计算出斜管设备的设计长度。在Python代码编辑中,输入“import clr”代码,“clr.AddReference('ProtoGeometry')”代码,“from Autodesk.DesignScript.Geometry import*”代码,“clr.AddReference("DSCoreNodes")”代码,“from DSCore import List”代码来引用相关编程数据库;输入“dataEnteringNode=IN”代码来引用输入条件;输入“a=IN[0]”以及“b=int(a+250)”代码来计算考虑额外紊流段的设计长度;输入“if b>1000:s=b;”代码来计算当斜管设计长度大于1m时的经验取值;输入“else:s=1000;”代码来计算斜管设计长度不足1m的经验取值;最后输入“OUT=s”代码来输出最终结果。然后利用节点Code Block,编写取整公式Math.Ceiling(x/10)*10对斜管设备的设计长度进行取整,其中变量x为斜管设备的设计长度。
S2.1.3,基于进水流量、斜管占用比例和清水区上升流速,按照相应的水力计算公式计算出斜管沉淀池的理论面积;基于斜管沉淀池长宽比和斜管沉淀池的理论面积计算出斜管沉淀池的理论长度和理论宽度,对理论长度和理论宽度结果取整数作为斜管沉淀池模型的设计长度及设计宽度;
具体步骤如下:
利用Code Block节点编写水力计算公式,a/(b/1000)*(1+c),其中变量a,b,c分别对应进水流量、清水区上升流速、斜管占用比例,计算出斜管沉淀池的理论面积。
利用Code Block节点编写计算公式Math.Pow(a/b,0.5),其中变量a,b分别为斜管沉淀池的理论面积、斜管沉淀池长宽比,计算出斜管沉淀池理论宽度。然后利用Code节点编写取整公式Math.Ceiling(a*10)/10,其中变量a为斜管沉淀池理论宽度,计算出斜管沉淀池的设计宽度。
利用Code Block节点编写计算公式a*b,其中变量a,b分别为上述斜管沉淀池理论宽度、斜管沉淀池长宽比,计算出斜管沉淀池理论长度。然后利用Code节点编写取整公式Math.Ceiling(a*10)/10,其中变量a为斜管沉淀池理论长度,计算出斜管沉淀池的设计长度。
实施例3
基于上一实施例,本实施例提供S2.1.4~S2.1.7斜管设备的生成方法包括:
创建位于坐标原点的点PT1;在点PT1的基础上,创建x坐标为斜管沉淀池设计长度的点PT2;在点PT1的基础上,创建y坐标为斜管沉淀池设计宽度的点PT3。
基于斜管沉淀池的设计长度和设计宽度创建池体内轮廓的长边线段L1和宽边线段L2,以长边线段L1为移动对象,宽边线段L2为移动路径进行扫略得到面SF1;对面SF1进行双向拉伸得到的几何体SD1,双向拉伸的厚度为斜管设备的高度,其高度根据:斜管倾角以及斜管设备的设计长度进行相应推算;然后将几何体SD1沿z轴方向移动得到几何体SD2,使得几何体SD2底面的高度与斜管沉淀池布水区的高度保持一致;
具体步骤如下:
利用节点Point.ByCoordinates创建出三个点,分别记为PT1、PT2、PT3,点PT1无需输入坐标值,默认为坐标原点;点PT2在创建时,x坐标为斜管沉淀池设计长度;点PT3在创建时,y坐标为斜管沉淀池设计宽度。
根据点PT1和点PT2,利用节点Line.ByStartPointEndPoint创建出池体内轮廓的长边线段L1;根据点PT1和点PT3,利用节点Line.ByStartPointEndPoint创建出池体内轮廓的宽边线段L2;利用节点Surface.BySweep,以长边线段L1作为对象,以短边线段L2作为扫略路径,创建出面SF1。然后利用节点Surface.Thicken,以面SF1作为对象,将其双向拉伸得到的几何体SD1,拉伸的总厚度为斜管设备的高度,斜管设备的高度利用Code.Block节点编写相应的推算公式,(a*Math.Sin(b))/1000,其中变量a,b分别为上述斜管设备的设计长度、以及斜管倾角。然后利用节点Geometry.Translate进行移动,移动的方向沿节点Vector.ZAxis创建的z轴,移动的距离根据Code.Block节点编写公式a+b/2进行计算,其中变量a,b分别为斜管沉淀池布水区高度,以及上述计算出的斜管设备的高度,得到的几何体记为SD2。
S2.1.5,将点PT1沿x轴方向移动一个六边形蜂窝斜管边距的距离得到点PT4,点PT4作为斜管设备底部的六边形蜂窝形状的第一个定位点,以点PT4为圆心,六边形蜂窝斜管边距为半径创建圆CR1;
对圆CR1的内接六边形LB1沿y轴方向创建均匀分布的单方向阵列,得到六边形阵列LBZ1,阵列个数由六边形蜂窝斜管边距以及斜管沉淀池设计宽度决定,阵列元素的距离由六边形蜂窝斜管边距决定;将六边形阵列LBZ1沿x轴方向创建均匀分布的单方向阵列,得到六边形阵列LBZ2,阵列个数由六边形蜂窝斜管边距和斜管在水池长度方向的距离决定,所述斜管在水池长度方向的距离由斜管沉淀池设计长度、斜管设备的设计长度和斜管倾角决定,阵列元素的距离由六边形蜂窝斜管边距决定;
具体步骤如下:
利用节点Geometry.Translate将点PT1沿x轴方向进行移动,移动的距离利用Code.Block节点编写推算公式a/1000,其中变量a为六边形蜂窝斜管边距,得到点PT4。然后以点PT4为圆心,利用节点Circle.ByCenterPointRadius创建圆形,半径利用Code.Block节点编写公式a/1000,其中变量a为六边形蜂窝斜管边距,得到的圆CR1。然后利用节点Polygon.RegularPolygon创建出CR1圆形的内接六边形LB1。利用节点Geometry.Translate将六边形LB1沿y轴创建均匀分布的单方向阵列,利用Code.Block节点编写阵列公式0..#num..distance,其中变量num、distance分别为阵列个数和阵列元素的距离;阵列个数利用Code.Block节点编写计算公式Math.Ceiling(a/(2*b/1000)),其中变量a、b分别为斜管沉淀池设计宽度、六边形蜂窝斜管边距;阵列元素的距离利用Code.Block节点编写计算公式a*3/1000+0.5*2/1000,其中变量a为六边形蜂窝斜管边距;得到的六边形阵列LBZ1。利用节点Geometry.Translate,此节点的连缀形式以叉积的方式,将六边形阵列LBZ1沿x轴方向创建均匀分布的单方向阵列,利用Code.Block节点编写阵列公式0..#num..distance,其中变量num、distance分别为阵列个数和阵列元素的距离;阵列个数利用Code.Block节点编写计算公式Math.Ceiling(a/(3*b)),其中变量a、b分别为斜管在水池长度方向的距离、六边形蜂窝斜管边距,而斜管在水池长度方向的距离利用Code.Block节点编写计算公式c*1000-b*Math.Cos(a),其中变量a、b、c分别为斜管倾角、斜管设备的设计长度和斜管沉淀池设计长度;阵列元素的距离利用Code.Block节点编写计算公式a*3/1000+0.5*2/1000,其中变量a为六边形蜂窝斜管边距;最后得到的六边形阵列记为LBZ2。
S2.1.6,将内接六边形LB1分别沿x轴和y轴方向先后移动得到六边形LB2,对六边形LB2沿y轴方向创建均匀分布的单方向阵列,得到六边形阵列LBZ3;对六边形阵列LBZ3沿x轴方向创建均匀分布的单方向阵列,得到六边形阵列LBZ4,其阵列个数由六边形蜂窝斜管边距以及斜管在水池长度方向的距离推算出来,所述斜管在水池长度方向的距离根据斜管沉淀池的设计长度和斜管倾角推算出来;阵列元素的距离根据六边形蜂窝斜管边距推算出来;
利用节点Geometry.Translate,将六边形LB1沿x轴方向移动,移动的距离利用Code.Block节点编写计算公式1.5*a/1000+0.5/1000,其中变量a为六边形蜂窝斜管边距;再沿y轴方向移动,移动的距离利用Code.Block节点编写计算公式a/1000+0.5/1000,其中变量a为六边形蜂窝斜管边距,得到的六边形记为LB2。利用节点Geometry.Translate,将六边形LB2沿y轴创建均匀分布的单方向阵列,利用Code.Block节点编写阵列公式0..#num..distance,其中变量num、distance分别为阵列个数和阵列元素的距离;阵列个数利用Code.Block节点编写计算公式Math.Ceiling(a/(2*b/1000))-1,其中变量a、b分别为上述S2.1.3斜管沉淀池设计宽度、六边形蜂窝斜管边距;阵列元素的距离利用Code.Block节点编写计算公式a/1000*2+0.5/1000,其中变量a为六边形蜂窝斜管边距;最后得到的六边形阵列记为LBZ3。然后利用节点Geometry.Translate,节点的连缀方式以叉积的方式,将六边形阵列LBZ3沿x轴创建均匀分布的单方向阵列,利用Code.Block节点编写阵列公式0.#num..distance,其中变量num、distance分别为阵列个数和阵列元素的距离;阵列个数利用Code.Block节点编写计算公式Math.Ceiling(a/(3*b))-1,其中变量a、b分别为斜管在水池长度方向的距离、六边形蜂窝斜管边距,而斜管在水池长度方向的距离利用Code.Block节点编写计算公式c*1000-b*Math.Cos(a),其中a、b、c分别为斜管倾角、斜管设备的设计长度、斜管沉淀池的设计长度;阵列元素的距离利用Code.Block节点编写计算公式a*3/1000+0.5*2/1000,其中变量a为六边形蜂窝斜管边距;最后得到的六边形阵列记为LBZ4。
S2.1.7,将六边形阵列LBZ3和六边形阵列LBZ4合并成六边形阵列LBZ5,并沿着z轴方向移动得到的新阵列LBZ6,移动的距离为斜管沉淀池布水区高度;
将点PT4分别沿着x轴和z轴方向先后进行移动得到点PT5,移动的距离由斜管倾角、斜管沉淀池布水区高度和斜管设备的设计长度决定;将点PT5沿着z轴进行移动得到点PT6,移动的距离为斜管设备高度;将点PT4沿着z轴移动得到的点PT7,移动的距离为斜管沉淀池布水区高度;计算点PT6与点PT7二者所在直线的向量VE1;
将六边形阵列LBZ6沿着向量VE1拉伸得到几何体SD3;计算几何体SD3与几何体SD2的差集得到斜管设备的外形几何体SD4,最后将外形几何体SD4转成Revit族并载入生成斜管设备。
具体步骤如下:
利用节点List Create将六边形阵列LBZ3和六边形阵列LBZ4合并,得到新的阵列记为LBZ5。再利用节点Geometry.Translate将阵列LBZ5沿z轴移动,移动的距离为斜管沉淀池布水区高度,得到的新阵列记为LBZ6,其结构如图2所示。利用节点Geometry.Translate将点PT4沿着x轴和z轴分别进行移动,沿x轴移动的距离利用Code.Block节点编写计算公式a*Math.Cos(b)/1000,其中a、b分别为S2.1.2中计算的斜管设备的设计长度、斜管倾角;沿z轴移动的距离为斜管沉淀池布水区高度,得到点PT5。再利用节点Geometry.Translate将点PT5沿z轴移动得到点PT6,移动的距离为斜管设备的高度。利用节点Geometry.Translate将点PT4沿z轴移动得到点PT7,距离为斜管沉淀池布水区高度。然后利用节点Vector.ByTwoPoints计算出起点为PT7,终点为PT6的向量,记为向量VE1。利用节点Curve.ExtrudeAsSolid,以六边形阵列LBZ6为对象,将其按照向量VE1进行拉伸,然后利用节点List.Flatten和节点Solid.ByUnion,将得到的几何体阵列进行合并,最终得到的几何体记为SD3。然后利用节点Solid.DifferenceAll,计算出几何体SD2与几何体SD3的差集,得到斜管设备外形的几何体,记为几何体SD4。然后利用节点Springs.FamilyInstance.ByGeometry,将几何体SD4转化成族文件,斜管设备族模型的结构如图3所示,载入到项目中,其中familyname利用Code.Block节点编辑名称“斜管设备”、category利用Code.Block节点编写Category.ByName(“常规模型”)。
实施例4
基于上一实施例,本实施例S.2.2斜管沉淀池池体及穿孔整流墙模型的构建方法包括:
S.2.2.1,将长边线段L1沿y轴方向移动得到线段L3,移动的距离为斜管沉淀池的设计宽度;线段L3的终点为点PT8,计算出点PT1、点PT2、点PT3和点PT8四点连成的轮廓PL1,轮廓PL1作为池壁的内轮廓;将轮廓PL1偏移得到轮廓PL2,偏移的距离为斜管沉淀池壁厚,轮廓PL2作为池壁的外轮廓;
将池壁的内轮廓和外轮廓合并得到轮廓PL3,以轮廓PL3作为斜管沉淀池池体轮廓,然后将轮廓PL3拉伸得到池壁的几何体SD5;
具体步骤如下:
利用节点Geometry.Translate对长边线段L1进行移动,沿y轴移动的距离为斜管沉淀池设计宽度,得到的线段记为L3;利用节点Curve.EndPoint计算出线段L3的终点,记为点PT8。然后利用节点List Create将点PT1、点PT2、点PT3和点PT8合并成点的集合,记为点集合PTT1。利用节点Rectangle.ByCornerPoints,将点集合PTT1中的点,首尾相连,得到的轮廓PL1。利用节点Curve.Offset将轮廓PL1轮廓偏移得到轮廓PL2,偏移的距离为斜管沉淀池壁厚。
利用List Create将轮廓PL1和轮廓PL2合并成轮廓集合PL3,利用节点Curve.ExtrudeAsSolid,将轮廓PL3沿z轴进行拉伸,拉伸的距离利用Code.Block节点编写计算公式a+b+c+d,其中变量a、b、c、d分别为斜管沉淀池超高、斜管沉淀池清水区高度、斜管沉淀池布水区高度,以及上述S2.1.4中计算出来的斜管设备高度,得到的池壁几何体记为SD5。
S.2.2.2,根据水力计算,计算出穿孔整流墙过水孔洞的总面积。为了使过水方孔均匀的分布在斜管沉淀池布水区,设计以下的节点流程来进行布置,根据斜管沉淀池的设计宽度和斜管沉淀池布水区高度计算出二者的比例,并以此比例作为穿孔整流墙过水孔洞的总面积对应的长度与宽度之间的比例。然后根据计算得到的穿孔整流墙过水孔洞的总面积、以及上述总面积对应的长度与宽度之间的比例,计算出过水孔洞的总面积对应的长度和宽度。然后根据过水方孔边长,分别计算出过水方孔在斜管沉淀池宽度方向与高度方向的排列个数,其中过水孔洞的总面积对应的宽度方向即斜管沉淀池的高度方向;其中过水方孔沿着布水区的轮廓,从间隔一个方孔的距离开始布置,作为布置的基准,根据上述布置原则编写相应的节点计算公式。
斜管沉淀池池体及穿孔整流墙模型的构建方法还包括:
将点PT1分别沿y轴和z轴方向先后移动得到点PT9,以点PT9为圆心创建圆CR2,圆CR2的半径由过水孔边长决定;将圆CR2的圆内接正方形RE1旋转,使圆内接正方形RE1的边与x轴平行,得到正方形的方孔轮廓RE2;对方孔轮廓RE2沿z轴方向创建均匀分布的单方向阵列,得到方孔轮廓阵列REZ1,阵列个数为方孔在高度方向的排列个数;阵列元素的距离由斜管沉淀池布水区高度、过水方孔边长和方孔在高度方向的排列个数决定;对方孔轮廓阵列REZ1沿其左侧和右侧分别创建均匀分布的单方向阵列,得到左侧阵列REZ2和右侧阵列REZ3,其左侧阵列(右侧阵列)阵列个数为方孔在宽度方向的排列个数的二分之一;阵列元素的距离根据过水方孔边长、斜管沉淀池的设计宽度和方孔在宽度方向的排列个数进行推算得出;最后将左侧阵列REZ2和右侧阵列REZ3合并得到方孔轮廓阵列REZ4,其结构如图4所示;
将方孔轮廓阵列REZ4沿x轴负方向拉伸得到几何体记SD6,拉伸的厚度为斜管沉淀池壁厚;计算几何体SD5与几何体SD6的差集得到斜管沉淀池池体及穿孔整流墙的几何体SD7;对几何体SD7进行开孔剪切后转成Revit族并载入生成斜管沉淀池池体及穿孔整流墙模型。
具体步骤如下:
利用节点Code.Block编写计算公式a/b,来计算穿孔整流墙过水孔洞的总面积,其中变量a、b分别为进水流量、整流墙穿孔流速。利用节点Code.Block编写计算公式a/b,来计算穿孔整流墙过水孔洞的总面积对应的长度与宽度之间的比例,其中变量a、b分别斜管沉淀池设计宽度、斜管沉淀池布水区高度。利用节点Code.Block编写计算公式Math.Pow((a/b),0.5),来计算过水孔洞的总面积对应的宽度,其中变量a、b分别为穿孔整流墙过水孔洞的总面积、总面积对应的长度与宽度之间的比例。利用节点Code.Block编写计算公式a*b,来计算穿孔整流墙过水孔洞的总面积对应的长度,其中变量a、b分别为过水孔洞的总面积对应的宽度、总面积对应的长度与宽度之间的比例。利用节点Code.Block编写计算公式Math.Ceiling(a/b),来计算过水方孔在斜管沉淀池高度方向的排列个数,其中变量a、b分别为过水孔洞的总面积对应的宽度、过水方孔边长。利用节点Code.Block编写计算公式Math.Ceiling(a/b),来计算过水方孔在斜管沉淀池宽度方向的排列个数,其中变量a、b分别为过水孔洞的总面积对应的长度、过水方孔边长。
利用节点Geometry.Translate将点PT1沿y轴和z轴分别进行移动,y轴移动的距离利用节点Code.Block编写计算公式a/2进行计算,其中变量a为S2.1.3中计算出的斜管沉淀池设计宽度;z轴移动的距离利用节点Code.Block编写计算公式a*1.5进行计算,其中变量a为过水方孔边长,得到的点记为PT9。利用节点Circle.ByCenterPointRadiusNormal以点PT9为圆心、X轴为圆形平面法向量,来创建圆CR2,圆CR2的半径利用节点Code.Block编写计算公式a/2*Math.Pow(2,0.5)进行计算,其中变量a为过水方孔边长,圆形的法向量利用节点Vector.XAxis计算。利用节点Polygon.RegularPolygon,创建圆CR2的内接正方形RE1,利用节点Geometry.Rotate将内接正方形RE1旋转,旋转基点为点PT9,旋转轴利用节点Vector.XAxis计算,旋转度数为45°,得到的正方形轮廓RE2。利用节点Geometry.Translate将正方形轮廓RE2沿斜管沉淀池高度方向,创建均匀分布的单方向阵列,利用节点Code.Block编写阵列公式0..#num..distance,其中变量num、distance分别为阵列个数和阵列元素的距离;阵列个数为上述计算的过水方孔在斜管沉淀池高度方向的排列个数;阵列元素的距离为斜管沉淀池高度方向上的过水方孔的间距,间距可以利用节点Code.Block编写计算公式Math.Ceiling((a-2*b-c*b)/(c-1)*100)/100进行计算,其中变量a、b、c分别为斜管沉淀池布水区高度、过水方孔边长、过水方孔在斜管沉淀池高度方向的排列个数;最后计算得到的正方形轮廓阵列记为REZ1。然后利用节点Geometry.Translate将正方形轮廓阵列REZ1分别沿左、右方向,创建均匀分布的单方向阵列,利用节点Code.Block编写阵列公式0..#num..distance,其中变量num、distance分别为阵列个数和阵列元素的距离;阵列个数利用节点编写计算公式a/2,其中变量a为上述过水方孔在斜管沉淀池宽度方向的排列个数;阵列元素的距离利用节点Code.Block编写计算公式Math.Ceiling((a-2*b-c*b)/(c-1)*100)/100进行计算,其中其中变量a、b、c分别为斜管沉淀池的设计宽度、过水方孔边长、过水方孔在斜管沉淀池宽度方向的排列个数;最后计算得到正方形轮廓阵列分别记为REZ2、REZ3。利用节点List Create将REZ2、REZ3进行合并,得到的正方形轮廓阵列组记为REZ4。利用节点Curve.ExtrudeAsSolid将轮廓REZ4进行拉伸,拉伸的厚度为斜管沉淀池壁厚,拉伸的方向为x轴负方向,方向利用节点Vector.ByTwoPoints创建的向量来表示,得到的几何体记为SD6。利用节点Solid.DifferenceAll计算几何体SD5与SD6的差集,得到的斜管沉淀池池体及穿孔整流墙的几何体记为SD7。
实施例5
基于上述实施例,本实施例提供出水集水槽模型的构建方法包括:
S.2.3,斜管沉淀池集水槽的创建
S.2.3.1,根据集水槽占池体面积的百分比、斜管沉淀池设计长度、斜管沉淀池设计宽度计算出集水槽的总平面面积根据集水槽的总平面面积、斜管沉淀池设计宽度、单个集水槽宽度计算出集水槽个数;根据集水槽个数、斜管沉淀池设计长度、单个集水槽的宽度计算出每个集水槽中心线的距离;
根据进水流量、过水方孔边长、过水方孔在斜管沉淀池高度方向的排列个数和宽度方向的排列个数,计算出实际孔口流速;根据实际孔口流速,计算出水损值;根据理论水位高度、水损值,计算出实际水位高度;根据进水流量、集水槽个数、集水槽宽度、集水槽流速,计算出集水槽水深;
利用节点Code.Block编写设计工程经验公式a*b*c,计算出集水槽的总平面面积,其中变量a、b、c分别为集水槽占池体面积的百分比、斜管沉淀池的设计长度、斜管沉淀池的设计宽度。利用节点Code.Block编写计算公式Math.Ceiling(a/(b*c)),其中变量a、b、c分别为上述得到的集水槽的总平面面积、斜管沉淀池设计宽度、单个集水槽的宽度,计算出集水槽的个数。利用节点Code.Block编写计算公式(a-2*b)/c,其中变量a、b、c分别为S2.1.3中计算得到的斜管沉淀池设计长度、单个集水槽的宽度、上述得到集水槽的个数,计算出每个集水槽中心线的距离。利用节点Code.Block编写水力计算公式a/(b*c*Math.Pow(d,2)),其中变量a、b、c、d分别为进水流量、过水方孔在斜管沉淀池高度方向的排列个数、过水方孔在斜管沉淀池宽度方向的排列个数、过水方孔边长,计算出实际孔口流速。利用节点Code.Block编写穿孔整流墙的水损计算的水力计算公式1.06*Math.Pow(b,2)/(2*9.81),其中变量a为上述得到的实际孔口流速,计算出水损值。利用节点Code.Block编写计算公式a-b-c,其中变量a、b、c分别为理论水位高度、斜管设备水损、以及上述计算得到的穿孔整流墙的水损值,计算出实际水位高度。利用节点Code.Block编写计算公式a/b/c/d,其中变量a、b、c、d分别为进水流量、上述计算得到的集水槽个数、集水槽宽度、集水槽流速,计算出集水槽水深。
S.2.3.2,创建单个集水槽截面轮廓的基准点PT10,计算集水槽截面轮廓所有的定位点分别记为PT11~PT17,然后创建单个集水槽的轮廓JSC1,其结构如图5所示;将轮廓JSC1拉伸得到单个集水槽外形几何体SD8;对单个集水槽几何体SD8并沿x轴方向创建均匀分布的单方向阵列,得到集水槽几何体阵列SD9,阵列个数为上述得到的集水槽的个数,阵列元素的距离为上述得到的每个集水槽中心线的距离,将集水槽几何体SD9转成Revit族并载入生成集水槽模型其结构如图6所示。
具体步骤如下:
利用节点Geometry.Translate将点PT1分别沿x轴,z轴方向移动,沿x轴移动的距离为单个集水槽的宽度,沿z轴移动的距离为上述计算得到的实际水位高度,得到的点记为PT10。以点PT10作为单个集水槽轮廓的基准点,利用节点Geometry.Translate将点PT10根据设计尺寸,进行多次移动:沿x轴移动的距离用Code.Block节点编写计算公式-a,其中变量a为集水槽厚度,得到点PT11;沿z轴移动的距离用Code.Block节点编写计算公式-(a+b+c),其中变量a、b、c分别为集水槽超高、上述计算得到的集水槽水深、集水槽厚度,得到的点记为PT12;沿x轴移动的距离用Code.Block节点编写计算公式2*a+b,其中变量a、b分别为集水槽厚度、单个集水槽宽度,得到的点记为PT13;沿z轴移动的距离用Code.Block节点编写计算公式a+b+c,其中变量a、b、c分别为集水槽厚度、上述计算得到的集水槽水深、集水槽超高,得到点PT14;沿x轴移动的距离用Code.Block节点编写计算公式-a,其中变量a为集水槽厚度,得到点PT15;沿z轴移动的距离用Code.Block节点编写计算公式-(a+b),其中变量a、b分别为集水槽水深、集水槽超高,得到的点记为PT16;沿x轴移动的距离用Code.Block节点编写计算公式-a,其中变量a为单个集水槽宽度,得到点PT17。利用节点List Create,将上述所有点PT10~PT17合并,得到的单个集水槽轮廓点组PT18。利用节点Polygon.ByPoints,计算点组PT18首尾相连组成的轮廓JSC1,其结构如图5所示。利用节点Curve.ExtrudeAsSolid对轮廓JSC1进行拉伸,拉伸距离为斜管沉淀的设计宽度,拉伸方向利用节点Vector.YAxis计算得到,得到的单个集水槽外形几何体记为SD8。利用节点Geometry.Translate将其沿x轴方向创建均匀分布的单方向阵列,利用Code.Block节点编写阵列公式0..#num..distance,其中变量num、distance分别为上述计算得到的集水槽的个数、每个集水槽中心线的距离,最后得到的集水槽的几何体阵列记为SD9。然后利用节点Springs.FamilyInstance.ByGeometry,将集水槽几何体SD9转化成族文件,载入到项目中,其中familyname利用Code.Block节点编辑名称“斜管沉淀池集水槽”、category利用Code.Block节点编写Category.ByName(“常规模型”)。
实施例6
基于上述实施例,本实施例的斜管沉淀池池体及穿孔整流墙模型构建方法包括:
S.2.3.3,在集水槽截面轮廓所有的定位点中选择4个内轮廓点PT10、点PT15、点PT16和点PT17计算单个集水槽洞口轮廓JSC2,将洞口轮廓JSC2拉伸得到的单个洞口几何体SD10,拉伸厚度为池体壁厚;最后计算单个洞口几何体SD10的均匀分布的单方向阵列,阵列方向和阵列元素距离与上述集水槽阵列保持一致,得到集水槽对应的洞口阵列的几何体SD11;
以斜管沉淀池池体及穿孔整流墙的几何体SD7为基础,剪切掉洞口阵列的几何体SD11,最后将剪切后的几何体转成Revit族并载入生成斜管沉淀池池体及穿孔整流墙模型。
具体步骤如下:
利用节点List Create选择上述集水槽内轮廓点PT10、点PT15、点PT16和点PT17,得到的点组PT18,利用节点Polygon.ByPoints对点组PT18进行连接计算,得到的单个集水槽洞口轮廓,记为JSC2。利用节点Curve.ExtrudeAsSolid将轮廓JSC2进行拉伸,拉伸厚度为池体壁厚,拉伸方向利用节点Vector.ByCoordinates计算出y轴距离为-a的向量,其中变量a为沉淀池壁厚,最后得到的拉伸几何体记为SD10。然后利用节点Geometry.Translate对几何体SD10沿x轴方向创建均匀分布的单方向阵列,利用Code.Block节点编写阵列公式0..#num..distance,其中变量num、distance分别为上述集水槽的个数、每个集水槽中心线的距离,得到的集水槽对应的洞口阵列几何体记为SD11。最后利用节点Solid.DifferenceAll,以斜管沉淀池池体及穿孔整流墙的几何体SD7为基础,剪切掉洞口阵列的几何体SD11,然后利用节点Springs.FamilyInstance.ByGeometry,将剪切后的几何体转化成族文件,载入到项目中,其中familyname利用Code.Block节点编辑名称“斜管沉淀池池体及穿孔整流墙”、category利用Code.Block节点编写Category.ByName(“常规模型”)。斜管沉淀池集水槽模型,斜管沉淀池池体如图6所示,穿孔整流墙模型如图7所示。
实施例7
基于上述实施例,本实施例的泥斗模型的构建方法包括:
S.2.4,斜管沉淀池沉泥斗的创建
S2.4.1,根据进水浊度、出水浊度、进水流量、干泥密度和污泥含水率计算进水悬浮物浓度、出水悬浮物浓度和湿污泥体积;
根据进水浊度、出水浊度、进水流量计算进水悬浮物浓度、出水悬浮物浓度;根据进水悬浮物浓度、出水悬浮物浓度、进水流量、干泥密度、污泥含水率,计算得到湿污泥体积;
根据泥斗高度、泥斗下口边长、泥斗倾角,计算得到泥斗上口理论边长。根据泥斗上口理论边长、斜管沉淀池设计宽度,计算得到泥斗宽度方向的个数;根据泥斗上口理论边长、斜管沉淀池设计长度,计算得到泥斗长度方向的个数。最后根据斜管沉淀池设计长度、宽度、泥斗长度、宽度方向的个数,计算出泥斗上口在长度方向的设计边长、泥斗上口在宽度方向的设计边长。
具体步骤如下:
利用Code.Block节点编辑工程经验公式a*1.1615+1.2574,其中变量a为进水浊度,计算得到进水悬浮物浓度;同样的,利用Code.Block节点编辑工程经验公式a*1.1615+1.2574,其中变量a为出水浊度,计算得到出水悬浮物浓度。利用Code.Block节点编辑水力计算公式86400*(a-b)*c/(Math.Pow(10,6))/(d*(1-e)),其中变量a、b、c、d分别为上述得到的进水悬浮物浓度、出水悬浮物浓度、进水流量、干泥密度、污泥含水率,计算得到湿污泥体积。利用Code.Block节点编辑计算公式a/(Math.Pow(2,0.5)*Math.Tan(c))*2+b,其中变量a、b、c分别为泥斗高度、泥斗下口边长、泥斗倾角,计算得到泥斗上口理论边长。利用Code.Block节点编辑计算公式Math.Ceiling(a/b),其中变量a、b分别为S2.1.3得到的斜管沉淀池设计宽度、上述得到的泥斗上口理论边长,计算得到泥斗宽度方向的个数;同样的,利用Code.Block节点编辑计算公式Math.Ceiling(a/b),其中变量a、b分别为S2.1.3得到的斜管沉淀池设计长度、上述得到的泥斗上口理论边长,计算得到泥斗长度方向的个数。利用Code.Block节点编辑计算公式a/b,其中变量a、b分别为S2.1.3得到的斜管沉淀池设计长度、泥斗长度方向的个数,计算出泥斗上口在长度方向的设计边长;同样的,利用Code.Block节点编辑计算公式a/b,其中变量a、b分别为S2.1.3得到的斜管沉淀池设计宽度、泥斗宽度方向的个数,计算出泥斗上口在宽度方向的设计边长。
S2.4.2,以点PT1为单个泥斗内轮廓的基准点,根据泥斗上口的设计边长计算出泥斗上口内轮廓所有的定位点PT19~PT21;再根据所有定位点,并创建出单个泥斗上口的内轮廓ND1,根据上口内轮廓的定位点,以及泥斗下口的设计边长计算出泥斗下口内轮廓的所有定位点,分别记为PT22~PT28。从泥斗下口内轮廓的定位点中选择出泥斗下口内轮廓的边界点,创建单个泥斗下口的内轮廓ND2;
将内轮廓ND2进行偏移、平移得到单个泥斗的下口外轮廓ND3,将单个泥斗上口的内轮廓ND1进行偏移得到单个泥斗的上口外轮廓ND4;将内轮廓ND1与内轮廓ND2放样拉伸,得到几何体SD12;将下口外轮廓ND3与上口外轮廓ND4放样拉伸,得到几何体SD13;
计算出几何体SD12与几何体SD13的差集得到单个泥斗的几何体SD14,对几何体SD14沿斜管沉淀池长度方向创建均匀分布的单方向阵列,得到几何体阵列SD15,阵列个数为泥斗长度方向的个数,阵列元素距离为泥斗上口在长度方向的设计边长;再对几何体阵列SD15沿斜管沉淀池宽度方向创建均匀分布的单方向阵列,得到泥斗几何体阵列SD16,阵列个数为泥斗宽度方向的个数,阵列元素距离为泥斗上口在宽度方向的设计边长;将几何体SD16转成Revit族并载入生成泥斗模型。
具体步骤如下:
利用节点Geometry.Translate将点PT1进行移动,沿y轴移动的距离为泥斗上口在宽度方向的设计边长,得到点PT19;利用节点Geometry.Translate将点PT19进行移动,沿x轴方向移动的距离为泥斗上口在长度方向的设计边长,得到点PT20;利用节点Geometry.Translate将点PT20进行移动,移动的距离利用Code.Block节点编辑计算公式-a,其中变量a为泥斗上口在宽度方向的设计边长,得到点PT21。利用节点List Create计算点PT1、以及点PT19~PT20的集合,然后利用节点Polygon.ByPoints计算集合点首尾连接而成的轮廓,得到单个泥斗上口的内轮廓ND1。利用节点Polygon.Center计算出轮廓ND1的中心点PT22。利用节点Geometry.Translate将点PT22进行移动,沿z轴移动的距离利用Code.Block节点编辑计算公式-a,其中变量a为泥斗高度,得到点PT23。利用节点Geometry.Translate将点PT23移动,沿x轴移动的距离利用节点Code.Block编辑计算公式a/2,其中变量a为泥斗下口边长,得到点PT24。利用节点Geometry.Translate将点PT24移动,沿y轴移动的距离利用节点Code.Block编辑计算公式a/2,其中变量a为泥斗下口边长,得到的点记为PT25。利用节点Geometry.Translate将点PT25移动,沿x轴移动的距离利用节点Code.Block编辑计算公式-a,其中变量a为泥斗下口边长,得到点PT26。利用节点Geometry.Translate移动点PT26,沿y轴移动的距离利用节点Code.Block编辑计算公式-a,其中变量a为泥斗下口边长,得到点PT27。利用节点Geometry.Translate移动点PT27,沿x轴移动的距离为泥斗下口边长,得到点PT28。利用节点List Create计算点PT25~PT28的集合,利用节点Polygon.ByPoints计算出集合点首尾相连而成的轮廓,得到单个泥斗下口的内轮廓ND2。利用节点Curve.Offset将ND2进行偏移,偏移的距离为斜管沉淀池壁厚,然后又利用节点Geometry.Translate将其沿z轴移动,移动的距离利用节点Code.Block编辑计算公式-a,其中变量a为斜管沉淀池壁厚,得到单个泥斗的下口外轮廓ND3,泥斗上下口的内外轮廓示意图如图8所示。利用节点Curve.Offset将轮廓ND1偏移,偏移的距离为斜管沉淀池壁厚,得到单个泥斗的上口外轮廓ND4。利用节点List Create计算轮廓ND1与ND2的集合,然后利用节点Solid.ByLoft进行拉伸放样,得到几何体SD12。利用节点List Create计算轮廓ND3与ND4的集合,然后利用节点Solid.ByLoft进行拉伸放样,得到几何体SD13。利用节点Solid.Difference计算出几何体SD12与几何体SD13的差集,得到的单个泥斗外形几何体SD14。利用节点Geometry.Translate对几何体SD14沿斜管沉淀池长度方向创建均匀分布的单方向阵列,利用节点Code.Block编辑阵列公式0..#num..distance,其中变量num、distance分别为阵列个数和阵列元素的距离,个数为上述得到的泥斗长度方向的个数,阵列元素的距离为上述得到的泥斗上口在长度方向的设计边长,得到阵列几何体SD15。再利用节点Geometry.Translate对几何体SD15沿斜管沉淀池宽度方向创建均匀分布的单方向阵列,节点的连缀方式为叉积,利用节点Code.Block编辑阵列公式0..#num..distance,其中变量num、distance分别为阵列个数和阵列元素的距离,个数为上述得到的泥斗宽度方向的个数,阵列元素的距离为上述得到的泥斗上口在宽度方向的设计边长,得到几何体阵列SD16,如图9所示。利用节点Springs.FamilyInstance.ByGeometry,将几何体SD16转化成族文件,载入到项目中,其中familyname利用Code.Block节点编辑名称“泥斗”、category利用Code.Block节点编写Category.ByName(“常规模型”)。
实施例8
基于上述实施例,本实施例斜管沉淀池设计约束复核系统的创建及设计过程信息输出的构建方法包括:,
S2.5.1根据上述过程中得到的相关数据,以及设计输入条件,编辑相应的水力计算公式,进行斜管管内雷诺常数、沉淀时间、以及泥斗贮存容积的计算与复核。管内的雷诺常数反应了斜管流体的流动状态,是判断沉淀效果好坏的重要指标,一般斜管沉淀池的雷诺常数在200以下,才能有比较好的沉淀效果。因此编写Python节点,对设计的斜管沉淀池的雷诺常数进行判定,满足要求的输出字符“雷诺常数符合设计要求”,不满足要求的输出字符“重新调整相关设计输入条件,雷诺常数过大”,并同时输出计算得到的雷诺常数的值;编写Python节点,对设计的斜管沉淀池的沉淀时间进行判定,一般斜管沉淀池考虑4~8min为宜,满足要求的输出字符“沉淀时间符合设计要求”,不在此区间的输出字符“重新调整相关设计输入条件,沉淀时间不满足要求”,并同时输出计算得到的沉淀时间的值;编写Python节点,对泥斗贮存容积进行判定,对于不能满足每天排泥量要求的设计结果,输出字符“重新调整相关设计输入条件,泥斗容积不满足排泥需求”。即完成了斜管沉淀池的三维设计模型设计约束复核系统的创建。斜管沉淀池的三维设计模型如图8所示。
具体步骤如下:
利用节点Code.Block编写水力计算公式(a/4/10)*(b/10)/Math.Sin(c)/d来计算雷诺常数,其中变量a、b、c、d分别为六边形蜂窝斜管边距、S2.1.1中计算得到的清水区上升流速、斜管倾角、运动黏度。然后将雷诺常数作为输入条件,利用Python节点编写判定程序。在Python代码编辑中,输入“import clr”代码,“clr.AddReference('ProtoGeometry')”代码,“from Autodesk.DesignScript.Geometry import*”代码来引用相关编程数据库;输入“dataEnteringNode=IN”代码来引用输入条件;输入“CClist=[]”代码来创建储存输出结果的列表;输入“if IN[0]<200:s="雷诺常数符合设计要求";”代码来对设计的斜管沉淀池的雷诺常数进行判定,满足要求的输出字符“雷诺常数符合设计要求”;输入“else:s="重新调整相关设计输入条件,雷诺常数过大";”代码来对雷诺常数不满足要求的输出对应字符;输入“CClist.append(s)”代码,将雷诺常数的判定结果作为结果输出;输入“CClist.append(IN[0])”代码,将雷诺常数的数值同时作为结果输出;输入“OUT=CClist”代码输出最终结果。利用节点Code.Block编写水力计算公式a/(b/Math.Sin(c))/60来计算当前设计的沉淀时间,其中变量a、b、c分别为S2.1.2计算得到的斜管设备的设计长度、S2.1.1中计算得到的清水区上升流速、斜管倾角。然后以沉淀时间作为输入条件,利用Python节点编写判定程序。在Python代码编辑中,输入“import clr”代码,“clr.AddReference('ProtoGeometry')”代码,“from Autodesk.DesignScript.Geometryimport*”代码来引用相关编程数据库;输入“dataEnteringNode=IN”代码来引用输入条件;输入“CClist=[]”代码来创建储存输出结果的列表;输入“if IN[0]>=4and IN[0]<=7:s="沉淀时间符合设计要求";”代码对满足要求的输出字符“沉淀时间符合设计要求”;输入“else:s="重新调整相关设计输入条件,沉淀时间不满足要求";”代码对不满足要求的输出对应字符;输入“CClist.append(s)”代码,将沉淀时间的判定结果作为结果输出;输入“CClist.append(IN[0])”代码,将沉淀时间的数值同时作为结果输出;输入“OUT=CClist”代码输出最终结果。利用节点Code.Block编写排泥量计算的相关公式进行复核,编写公式a/3*(b*b+c*d+Math.Pow((b*b*c*d),1/2))*n*m*s计算出设计泥斗的每日贮泥总体积,变量a、b、c、d、n、m、s分别为泥斗高度、泥斗下口边长、S2.4.1中计算得到的泥斗上口在长度方向的设计边长、S2.4.1中计算得到的泥斗上口在宽度方向的设计边长、S2.4.1中计算得到的泥斗长度方向的个数、S2.4.1中计算得到的泥斗宽度方向的个数、排泥周期。然后以设计泥斗的每日贮泥总体积、S2.4.1中计算得到的湿污泥体积作为输入条件,编写python节点进行比较判定。在Python代码编辑中,输入“import clr”代码,“clr.AddReference('ProtoGeometry')”代码,“from Autodesk.DesignScript.Geometryimport*”代码来引用相关编程数据库;输入“dataEnteringNode=IN”代码来引用输入条件;输入“if IN[0]>IN[1]:s="泥斗容积满足排泥需求";”代码对满足要求的输出字符“泥斗容积满足排泥需求”;输入“else:s="重新调整相关设计输入条件,泥斗容积不满足排泥需求";”代码对不满足要求的输出对应字符;输入“OUT=CClist”代码输出最终结果。S2.5.2,斜管沉淀池三维模型的设计过程信息输出,将上述的设计数据、建模过程中计算得到的斜管沉淀池各个部位的尺寸数据,相关水力数据,以及相关复核数据及结果通过编程节点进行自动整理,并且以EXCEL表格的形式与三维模型一起输出,作为斜管沉淀池三维模型对应的设计过程支撑,与三维模型共同构成斜管沉淀池的工程设计模板。其方法在于先编写Python节点制作对应的设计表格,然后再利用Data.ExportExcel节点自动载入对应的数据信息。
具体步骤如下:
利用Python节点编写程序,来编制存放输出数据的对应的设计表格,其中利用节点File Path选择EXCEL表格文件的存放路径,利用节点Code Block节点编写EXCEL中的sheet表格的名字,命名为“计算过程”。利用节点Data.ExportExcel将上述S2.1导入的设计输入数据、上述S2.2~S2.5.1过程中计算得到的斜管沉淀池各个部位的设计尺寸的数据,相关水力数据,以及相关复核数据及结果数据,导入到设计表格中对应的位置。其中每一行的数据,利用CodeBlock节点编写列表“[A,B,C,D,……]”,其中A,B,C,D,……分别为设计表格对应的数据,列表长度等于每行数据的具体个数,然后利用节点List.Transpose将列表进行转置,再利用节点List.OfRepeatedItem,将列表转为2级列表后导入完成。设计过程输出表格如图11所示。
实施例7
基于上述实施例,本实施例提供基于Dynamo的斜管沉淀池正向设计建模系统,用于实现上述方案的基于Dynamo的斜管沉淀池正向设计建模方法,包括:
采集模块,用于获取斜管沉淀池的设计数据,并对EXCEL表格收集的设计数据进行预处理;
模型构建模块,用于考虑水力计算过程、经验参数的判断取值和设计规范的约束,基于预设的编程节点进行斜管沉淀池模型尺寸计算的同时,构建出与设计数据相符合的斜管沉淀池三维模型:斜管设备模型、斜管沉淀池池体及穿孔整流墙模型、出水集水槽模型和沉泥斗模型;
设计复核、信息输出模块,用于对斜管沉淀池进行设计的约束复核,并输出斜管沉淀池的设计信息。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.基于Dynamo的斜管沉淀池正向设计建模方法,其特征在于,包括:
获取斜管沉淀池的设计数据,并以EXCEL表格的方式对设计数据进行预处理;
考虑水力计算过程、经验参数的判断取值和设计规范的约束,基于预设的编程节点进行斜管沉淀池模型尺寸计算,同时构建出与设计数据相符合的斜管沉淀池三维模型,所述斜管沉淀池三维模型包括:斜管设备模型、斜管沉淀池池体及穿孔整流墙模型、出水集水槽模型和沉泥斗模型;
输出斜管沉淀池设计过程,及设计结果的复核过程。
2.根据权利要求1所述的基于Dynamo的斜管沉淀池正向设计建模方法,其特征在于,所述以EXCEL表格的方式对设计数据进行预处理,包括方法:
A1,在EXCEL表格的第一行分别输入各设计数据的中文名称,包括:设计流量、出水浊度、进水浊度、斜管占用面积比例、污泥沉降速度、六边形蜂窝斜管边距、斜管倾角、斜管沉淀池长宽比、斜管沉淀池超高、斜管沉淀池清水区高度、斜管沉淀池布水区高度、斜管沉淀池壁厚、整流墙穿孔流速、絮凝池末端出口流速、过水方孔边长、污泥含水率、干污泥浓度、排泥周期、泥斗下口边长、泥斗高度、泥斗倾角、集水槽占池体面积的百分比、单个集水槽的宽度、理论水位高度、斜管设备水损、集水槽流速、集水槽厚度、集水槽超高和运动黏度;
A2,在EXCEL表格的第二行分别输入各设计数据对应的数值;
A3,将A2得到的EXCEL表格导入Dynamo中,基于节点File Path选择EXCEL表格的存储路径,基于节点File From Path使存储路径被Dynamo识别,基于节点Data.ImportExcel分别导入EXCEL表格中的设计数据;
对导入Dynamo的设计数据进行整理:去除EXCEL表格中的中文名称和空白行,保留数值;将EXCEL表格转成1级列表后根据每项设计数据对应的索引号提取设计数据,所述索引号按照EXCEL表格中每项设计数据所在列的序号数值减1得到;最后将提取的数值转为可在Dynamo中进行运算的数据类型。
3.根据权利要求2所述的基于Dynamo的斜管沉淀池正向设计建模方法,其特征在于,斜管设备模型的构建方法包括:
以坐标原点作为斜管沉淀池模型创建的基点,以x轴方向为池体长度方向,y轴方向为池体宽度方向,根据出水浊度设计Python.Scrip节点,考虑实际工程经验参数的取值,使设计的Python.Scrip节点可根据出水浊度的设计取值自动计算出所需求的清水区上升流速;
基于污泥沉降速度、六边形蜂窝斜管边距、斜管倾角和清水区上升流速,按照水力计算公式计算出斜管设备的理论长度,再设计Python.Scrip节点,融入工程经验的判断准则,计算出斜管设备的设计长度;基于进水流量、斜管占用比例和清水区上升流速,按照相应的水力计算公式计算出斜管沉淀池的理论面积;基于斜管沉淀池长宽比和斜管沉淀池的理论面积计算出斜管沉淀池的理论长度和理论宽度,对理论长度和理论宽度结果取整数作为斜管沉淀池模型的设计长度及设计宽度;
创建位于坐标原点的点PT1;在点PT1的基础上,创建x坐标为斜管沉淀池设计长度的点PT2;在点PT1的基础上,创建y坐标为斜管沉淀池设计宽度的点PT3;基于斜管沉淀池设计长度与设计宽度生成斜管设备。
4.根据权利要求3所述的基于Dynamo的斜管沉淀池正向设计建模方法,其特征在于,斜管设备的生成方法包括:
基于斜管沉淀池的设计长度和设计宽度创建池体内轮廓的长边线段L1和宽边线段L2,以长边线段L1为移动对象,宽边线段L2为移动路径进行扫略得到面SF1,并双向拉伸面SF1得到几何体SD1,双向拉伸的厚度为斜管设备的高度;将几何体SD1沿z轴方向移动得到几何体SD2,使得几何体SD2底面的高度与斜管沉淀池布水区的高度保持一致;
将点PT1沿x轴方向移动一个六边形蜂窝斜管边距的距离得到点PT4,以点PT4为圆心,六边形蜂窝斜管边距为半径创建圆CR1;
对圆CR1的内接六边形LB1沿y轴方向创建均匀分布的单方向阵列,得到六边形阵列LBZ1;将六边形阵列LZB1沿x轴方向创建均匀分布的单方向阵列,得到六边形阵列LBZ2;
将内接六边形LB1分别沿x轴和y轴方向先后移动得到六边形LB2,对六边形LB2沿y轴方向创建均匀分布的单方向阵列,得到六边形阵列LBZ3;对六边形阵列LZB3沿x轴方向创建均匀分布的单方向阵列,得到六边形阵列LBZ4;将六边形阵列LBZ3和六边形阵列LBZ4合并成六边形阵列LBZ5,并沿着z轴方向移动得到的新阵列LBZ6,移动的距离为斜管沉淀池布水区高度;
将点PT4分别沿着x轴和z轴进行移动得到的点PT5,移动的距离有斜管倾角、斜管沉淀池布水区高度和斜管设备的设计长度决定;将点PT5沿着z轴进行移动得到点PT6,移动的距离为斜管设备高度;将点PT4沿着z轴移动得到的点PT7,移动的距离为斜管沉淀池布水区高度;计算点PT6与点PT7二者所在直线的向量VE1;
将六边形阵列LBZ6沿向量VE1拉伸得到几何体SD3;计算几何体SD3与几何体SD2的差集得到斜管设备的外形几何体SD4,最后将外形几何体SD4转成Revit族并载入生成斜管设备。
5.根据权利要求4所述的基于Dynamo的斜管沉淀池正向设计建模方法,其特征在于,斜管沉淀池池体及穿孔整流墙模型的构建方法包括:
将长边线段L1沿y轴方向移动得到线段L3,移动的距离为斜管沉淀池的设计宽度;线段L3的终点为点PT8,计算出点PT1、点PT2、点PT3和点PT8连成的轮廓PL1,轮廓PL1作为池壁的内轮廓;将轮廓PL1偏移得到轮廓PL2,偏移的距离为斜管沉淀池壁厚,轮廓PL2作为池壁的外轮廓;
将池壁的内轮廓和外轮廓合并得到轮廓PL3,以轮廓PL3作为斜管沉淀池池体轮廓,然后将轮廓PL3拉伸得到池壁的几何体SD5。
6.根据权利要求5所述的基于Dynamo的斜管沉淀池正向设计建模方法,其特征在于,斜管沉淀池池体及穿孔整流墙模型的构建方法还包括:
将点PT1分别沿y轴和z轴方向先后移动得到点PT9,以点PT9为圆心创建圆CR2,圆CR2的半径由过水孔边长决定;将圆CR2的圆内接正方形RE1旋转,使圆内接正方形RE1的边与x轴平行,得到正方形的方孔轮廓RE2;对方孔轮廓RE2沿z轴方向创建均匀分布的单方向阵列,得到方孔轮廓阵列REZ1,阵列个数为方孔在高度方向的排列个数;阵列元素的距离由斜管沉淀池布水区高度、过水方孔边长和方孔在高度方向的排列个数决定;对方孔轮廓阵列REZ1沿其左侧和右侧分别创建均匀分布的单方向阵列,得到左侧阵列REZ2和右侧阵列REZ3,最后将左侧阵列REZ2和右侧阵列REZ3合并得到方孔轮廓阵列REZ4;
将方孔轮廓阵列REZ4沿x轴负方向拉伸得到几何体记SD6,拉伸的厚度为斜管沉淀池壁厚;计算几何体SD5与几何体SD6的差集得到斜管沉淀池池体及穿孔整流墙的几何体SD7;对几何体SD7进行开孔剪切后转成Revit族并载入生成斜管沉淀池池体及穿孔整流墙模型。
7.根据权利要求3所述的基于Dynamo的斜管沉淀池正向设计建模方法,其特征在于,出水集水槽模型的构建方法包括:
根据集水槽占池体面积的百分比、斜管沉淀池设计长度、斜管沉淀池设计宽度计算出集水槽的总平面面积;根据集水槽的总平面面积、斜管沉淀池设计宽度和单个集水槽宽度计算出集水槽个数;根据集水槽个数、斜管沉淀池设计长度和单个集水槽的宽度计算出每个集水槽中心线的距离;
根据进水流量、过水方孔边长、过水方孔在斜管沉淀池高度方向的排列个数和宽度方向的排列个数,计算出实际孔口流速;根据实际孔口流速计算出水损值;根据理论水位高度和水损值计算出实际水位高度;根据进水流量、集水槽个数、集水槽宽度和集水槽流速,计算出集水槽水深。
创建单个集水槽截面轮廓的基准点PT10,计算集水槽截面轮廓所有的定位点并创建单个集水槽的轮廓JSC1,并拉伸轮廓JSC1得到单个集水槽外形几何体SD8;对单个集水槽几何体SD8沿x轴方向创建均匀分布的单方向阵列,得到集水槽几何体阵列SD9;将集水槽几何体SD9转成Revit族并载入生成集水槽模型。
8.根据权利要求7所述的基于Dynamo的斜管沉淀池正向设计建模方法,其特征在于,斜管沉淀池池体及穿孔整流墙模型构建方法包括:在集水槽截面轮廓所有的定位点中选择4个内轮廓点计算单个集水槽洞口轮廓JSC2,将洞口轮廓JSC2拉伸得到的单个洞口几何体SD10,拉伸厚度为池体壁厚;最后计算单个洞口几何体SD10的阵列得到集水槽对应的洞口阵列的几何体SD11;
以斜管沉淀池池体及穿孔整流墙的几何体SD7为基础,剪切掉洞口阵列的几何体SD11,最后将剪切后的几何体转成Revit族并载入生成斜管沉淀池池体及穿孔整流墙模型。
9.根据权利要求3所述的基于Dynamo的斜管沉淀池正向设计建模方法,其特征在于,泥斗模型的构建方法包括:
根据进水浊度、出水浊度和进水流量计算进水悬浮物浓度和出水悬浮物浓度;根据进水悬浮物浓度、出水悬浮物浓度、进水流量、干泥密度和污泥含水率,计算得到湿污泥体积;
根据泥斗高度、泥斗下口边长和泥斗倾角,计算得到泥斗上口理论边长;根据泥斗上口理论边长和斜管沉淀池设计宽度,计算得到泥斗宽度方向的个数;根据泥斗上口理论边长和斜管沉淀池设计长度,计算得到泥斗长度方向的个数;最后根据斜管沉淀池设计长度、斜管沉淀池设计宽度、泥斗长度方向的个数和泥斗宽度方向的个数,计算出泥斗上口在长度方向的设计边长、以及泥斗上口在宽度方向的设计边长。
以点PT1为单个泥斗内轮廓的基准点,根据泥斗上口的设计边长计算出泥斗上口内轮廓所有的定位点,并创建出单个泥斗上口的内轮廓ND1,根据上口内轮廓的定位点,以及泥斗下口的设计边长计算出泥斗下口内轮廓的所有定位点;从泥斗下口内轮廓的定位点中选择出泥斗下口内轮廓的边界点,创建单个泥斗下口的内轮廓ND2;
将内轮廓ND2进行偏移和平移得到单个泥斗的下口外轮廓ND3,将单个泥斗上口的内轮廓ND1进行偏移得到单个泥斗的上口外轮廓ND4;将内轮廓ND1与内轮廓ND2放样拉伸,得到几何体SD12;将下口外轮廓ND3与上口外轮廓ND4放样拉伸,得到几何体SD13;
计算出几何体SD12与几何体SD13的差集得到单个泥斗的几何体SD14,对几何体SD14沿斜管沉淀池长度方向创建均匀分布的单方向阵列,得到几何体阵列SD15,阵列个数为泥斗长度方向的个数,阵列元素距离为泥斗上口在长度方向的设计边长;再对几何体阵列SD15沿斜管沉淀池宽度方向创建均匀分布的单方向阵列,得到泥斗几何体阵列SD16,阵列个数为泥斗宽度方向的个数,阵列元素距离为泥斗上口在宽度方向的设计边长;将几何体SD16转成Revit族并载入生成泥斗模型。
10.基于Dynamo的斜管沉淀池正向设计建模系统,其特征在于,用于实现权利要求1-9任意一项所述的基于Dynamo的斜管沉淀池正向设计建模方法,包括:
采集模块,用于获取斜管沉淀池的设计数据,并以EXCEL表格的方式对设计数据进行预处理;
模型构建模块,用于考虑水力计算过程、经验参数的判断取值和设计规范的约束,基于预设的编程节点进行斜管沉淀池模型尺寸计算的同时,构建出与设计数据相符合的斜管沉淀池三维模型,所述斜管沉淀池三维模型包括:斜管设备模型、斜管沉淀池池体及穿孔整流墙模型、出水集水槽模型和沉泥斗模型;
设计信息输出模块,用于输出斜管沉淀池设计过程、设计过程的复核结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311097363.7A CN117436162B (zh) | 2023-08-29 | 2023-08-29 | 基于Dynamo的斜管沉淀池正向设计建模方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311097363.7A CN117436162B (zh) | 2023-08-29 | 2023-08-29 | 基于Dynamo的斜管沉淀池正向设计建模方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117436162A true CN117436162A (zh) | 2024-01-23 |
CN117436162B CN117436162B (zh) | 2024-06-11 |
Family
ID=89550514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311097363.7A Active CN117436162B (zh) | 2023-08-29 | 2023-08-29 | 基于Dynamo的斜管沉淀池正向设计建模方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117436162B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117972870A (zh) * | 2024-04-01 | 2024-05-03 | 中国电建集团成都勘测设计研究院有限公司 | 基于Revit软件的水厂清水池工艺专业三维设计方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001001206A2 (en) * | 1999-06-30 | 2001-01-04 | Strategic Simulation Systems, Inc. | System dynamics model builder and simulator |
CN110765523A (zh) * | 2019-10-17 | 2020-02-07 | 中铁二局集团有限公司 | 一种基于bim技术的深基坑围护结构快速构建方法 |
CN113204812A (zh) * | 2020-11-25 | 2021-08-03 | 中铁建工集团有限公司 | 一种采用Dynamo创建桥梁预应力管道模型的方法 |
CN113434928A (zh) * | 2021-05-26 | 2021-09-24 | 南昌大学 | 一种复杂三维线性结构的参数化建造方法 |
CN115481515A (zh) * | 2022-08-30 | 2022-12-16 | 长江勘测规划设计研究有限责任公司 | 基于Revit和Dynamo的排水管网模型创建方法 |
CN115578530A (zh) * | 2022-11-09 | 2023-01-06 | 中国十九冶集团有限公司 | 基于Dynamo创建三维隧道地质模型的方法 |
KR20230063185A (ko) * | 2021-11-01 | 2023-05-09 | 주식회사 도화엔지니어링 | Bim을 이용한 해상풍력 자켓기초 구조물의 설계방법 |
CN116090048A (zh) * | 2022-12-20 | 2023-05-09 | 中国电建集团西北勘测设计研究院有限公司 | 一种基于Dynamo的管廊隧道工程设备布置建模方法 |
-
2023
- 2023-08-29 CN CN202311097363.7A patent/CN117436162B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001001206A2 (en) * | 1999-06-30 | 2001-01-04 | Strategic Simulation Systems, Inc. | System dynamics model builder and simulator |
CN110765523A (zh) * | 2019-10-17 | 2020-02-07 | 中铁二局集团有限公司 | 一种基于bim技术的深基坑围护结构快速构建方法 |
CN113204812A (zh) * | 2020-11-25 | 2021-08-03 | 中铁建工集团有限公司 | 一种采用Dynamo创建桥梁预应力管道模型的方法 |
CN113434928A (zh) * | 2021-05-26 | 2021-09-24 | 南昌大学 | 一种复杂三维线性结构的参数化建造方法 |
KR20230063185A (ko) * | 2021-11-01 | 2023-05-09 | 주식회사 도화엔지니어링 | Bim을 이용한 해상풍력 자켓기초 구조물의 설계방법 |
CN115481515A (zh) * | 2022-08-30 | 2022-12-16 | 长江勘测规划设计研究有限责任公司 | 基于Revit和Dynamo的排水管网模型创建方法 |
CN115578530A (zh) * | 2022-11-09 | 2023-01-06 | 中国十九冶集团有限公司 | 基于Dynamo创建三维隧道地质模型的方法 |
CN116090048A (zh) * | 2022-12-20 | 2023-05-09 | 中国电建集团西北勘测设计研究院有限公司 | 一种基于Dynamo的管廊隧道工程设备布置建模方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117972870A (zh) * | 2024-04-01 | 2024-05-03 | 中国电建集团成都勘测设计研究院有限公司 | 基于Revit软件的水厂清水池工艺专业三维设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117436162B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117436162B (zh) | 基于Dynamo的斜管沉淀池正向设计建模方法及系统 | |
Phatak et al. | Optimum part orientation in rapid prototyping using genetic algorithm | |
Held | On the computational geometry of pocket machining | |
US4907164A (en) | Automatically optimized NC tool path generation for machining | |
Dhanalakshmi et al. | A fuzzy Analysis Approach to Part Family Formation in Cellular Manufacturing Systems” | |
CN105205537A (zh) | 一种基于本体的特征加工工艺知识表达推理的装置及方法 | |
Zhang et al. | Reinforcement learning–based tool orientation optimization for five-axis machining | |
Hao et al. | A novel process planning algorithm for additive and subtractive manufacturing based on skeleton tree matching | |
CN114580053B (zh) | 一种基于bim参数化的装配式叠合剪力墙智能建模方法 | |
CN114925624A (zh) | 一种天然河道三维水流数值模拟方法 | |
Elshanwany et al. | Various classifications for architectural form finding process | |
KR101576511B1 (ko) | 계단식 해상풍력 타워에 대한 3차원 삼각형 요소 생성방법 | |
CN112989650A (zh) | 一种基于污染带面积约束的排污口允许排放量确定方法 | |
CN116883609B (zh) | 基于dynamo的cad结构平面快速转三维模型方法 | |
Ho | Feature-based process planning and automatic numerical control part programming | |
Frank | The development of a rapid prototyping process using computer numerical controlled machining | |
CN105205277B (zh) | 一种基于风向频率的风资源网格划分方法 | |
Narayanaswami et al. | NC machining of freeform pockets with arbitrary wall geometry using a grid-based navigation approach | |
Albert et al. | Methodology for graphic redesign applied to textile and tile pattern design | |
Somavar Muniappan | Automatic Feature Recognition and Tool path Generation Integrated with Process Planning | |
Tóth et al. | Optimisation of Discrete Technology Processes Using A Method Traced Back to Constrained Travelling Salesman Problem | |
Chen | Feature-based numerical control program generation from computer-aided design models | |
Zhu et al. | High efficiency tool path generation for freeform surface machining based on NURBS Subdivision | |
KUMAR | MODELLING AND ANALYSIS ON GRAVITATIONAL WATER VORTEX TURBINE | |
Shen | Feature-Based Automated Tool Path Planning for Discrete Geometry |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |