CN112948911A - 一种S3D桥架模型转MapGIS模型的系统和方法 - Google Patents
一种S3D桥架模型转MapGIS模型的系统和方法 Download PDFInfo
- Publication number
- CN112948911A CN112948911A CN202110014197.4A CN202110014197A CN112948911A CN 112948911 A CN112948911 A CN 112948911A CN 202110014197 A CN202110014197 A CN 202110014197A CN 112948911 A CN112948911 A CN 112948911A
- Authority
- CN
- China
- Prior art keywords
- point
- entering
- cableway
- model
- data
- 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.)
- Pending
Links
Images
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- 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
- G06T17/05—Geographic models
-
- 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
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Computer Graphics (AREA)
- Remote Sensing (AREA)
- Architecture (AREA)
- Civil Engineering (AREA)
- Data Mining & Analysis (AREA)
- Structural Engineering (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明的目的在于公开一种S3D桥架模型转MapGIS模型的系统和方法,与现有技术相比,能够自动将S3D三维桥架模型转化为MapGIS软件支持导入的Excel文件,实现了布置模型向地理信息系统模型的自动转化,避免了二次建模带来的劳动力浪费,大大提升设计效率和质量,支持以系统为单位进行生成以及全厂生成两种模式,灵活易用,整个过程全自动完成,无需人为干预,操作简便,生产效率高,提供日志查询功能,在单根桥架出错情况下仍然能够完成其他管线的分析计算,健壮性强,实现本发明的目的。
Description
技术领域
本发明涉及一种三维模型处理的系统和方法,特别涉及一种S3D桥架模型转MapGIS模型的系统和方法。
背景技术
S3D(Smart3D)是一款广泛运用的三维设计软件。S3D软件作为一个集成化的、多专业参与的三维工厂建模软件,能够快速帮助各专业设计人员进行三维建模以及设计检查,大大提高了工作效率和设计质量。在化工及能源行业, S3D软件得到了广泛的应用并且已经有了无数成功的案例。
MapGIS软件是一个融合了大数据、物联网、云计算、人工智能等先进技术的全空间智能GIS平台,将全空间的理念、大数据的洞察、人工智能的感知通过GIS的语言,形象化为能够轻松理解的表达方式,实现了超大规模地理数据的存储、管理、高效集成和分析挖掘,在地理空间信息领域为各行业及其应用提供更强的技术支撑。
对于使用S3D软件进行三维建模,使用MapGIS软件进行地理信息系统搭建的情况下,由于目前并没有MapGIS软件与S3D软件的可用软件接口,因此设计人员只能参照S3D三维模型手动进行MapGIS模型的建立,在二次建模的过程中不仅占用了设计人员大量工作时间而且降低了S3D三维模型的利用率。
因此,特别需要一种S3D桥架模型转MapGIS模型的系统和方法,以解决上述现有存在的问题。
发明内容
本发明的目的在于提供一种S3D桥架模型转MapGIS模型的系统和方法,针对现有技术的不足,实现了S3D桥架模型向MapGIS管网模型的自动转换,省去了设计人员二次建模的环节,提高了S3D三维模型的数据利用率并减少了设计人员的工作量,全自动完成整个过程,操作简便,生产效率高。
本发明所解决的技术问题可以采用以下技术方案来实现:
第一方面,本发明提供一种S3D桥架模型转MapGIS模型的系统,其特征在于,包括:
外部数据读取模块,用于读取三维模型转换模块所需的外部数据,包括S3D 项目配置信息以及需要抽取的系统号信息;
S3D模型数据下载模块,用于将存储在S3D数据库中的数据读取到程序内存中,提高后续处理以及计算的效率,下载数据的范围根据外部数据读取模块获取数据来决定;
点线结构计算模块,用于将S3D模型数据下载模块下载的模型数据通过拓扑关系算法获取所有桥架元件的点线关系集合关系;
点线结构去重模块,用于将点线结构中坐标一致的点进行去重处理,形成最终没有重复坐标点的点线结构;
点线表生成模块,用于将转换完成的点线结构转换为符合MapGIS要求的点线表格式;及
Excel文件生成模块,用于将生成的点线表转换为xls文件格式。
第二方面,本发明提供一种S3D桥架模型转换MapGIS模型的方法,其特征在于,包括如下步骤:
S1、通过外部数据读取模块获取模型转换需要的外部数据,包括S3D项目配置信息、数据库类型、需要转换的系统号信息;
S2、从S3D数据库中下载相关桥架模型数据存储在内存中;
S3、将S3D模型数据下载模块下载的桥架模型数据通过拓扑关系算法获取所有元件的拓扑连接关系,并存储成为对应的点线数据结构;
S4、从步骤S3获得的点线数据结构中找出重复的端点去除、合并三通点并且处理变径点,获得新的点线数据结构;
S5、将步骤S4中的点线数据数据结构集合转化为MapGIS可接受的点线表形式;
S6、将步骤S5中转化完成的点线表转换为XLS文件格式。
在本发明的一个实施例中,所述步骤S3中,将S3D模型数据下载模块下载的管道模型数据通过拓扑关系算法获取所有元件的拓扑连接关系,并存储成为对应的点线数据集合包含以下步骤:
S3.1、根据用户输入的系统号获取对应的所有cableway对象集合,进入 S3.2;
S3.2、创建整体点结构和线结构对象,进入步骤S3.3;
S3.3、循环读取cableway对象集合中的所有管段cableway,如果循环没有结束,进入步骤S3.4,如果循环结束,进入步骤S3.21;
S3.4、根据cableway找到对应的cableFeature集合,进入步骤S3.5;
S3.5、判断cableFeature对象合集中每个feature的类型,并记录对应的起点、终点、中心点以及类型,存入自定义集合cablewayFeatureList,进入步骤S3.6;
S3.6、从cablewayFeatureList中找出起始点,起始点条件为类型为“端点”,同时其中一个端点不和其他任何cablewayFeatureList中的对象相连而另一个端点和非“端点”的对象连接的对象,并且在cablewayFeatureList中不存在分支,如果找到,进入步骤S3.7,否则代表当前cableway存在问题,记录到日志中,回到步骤S3.3进行下一个cableway的分析;
S3.7、设定当前对象为起始对象,当前对象与其他对象连接的坐标为currentLocation,存入当前cableway的点结构和线结构,并将当前对象作为aboveCablewayFeature并从cablewayFeatureList中移除,进入步骤S3.8;
S3.8、循环处理cablewayFeatureList中的对象,如果没处理完进入步骤 S3.9,如果处理完进入步骤S3.18;
S3.9、在cablewayFeatureList中查找端点坐标与currentLocation一致的后续连接对象集合,如果集合中存在的端点类型对象正好是两个,从 cablewayFeatureList中去除这两个对象,进入步骤S3.10;
S3.10、如果后续连接对象集合为空,返回步骤S3.3,否则进入步骤S3.11;
S3.11、根据四通->三通->起终点一致->有类型->无类型的优先级在后续连接对象集合中找到下一个连接对象,如果找到了将其存入到当前cableway 的点结构和线结构,并将此对象替换为aboveCablewayFeature, currentLocation替换为另一个端点坐标,回到步骤S3.8,否则进入步骤 S3.12;
S3.12、按照aboveCablewayFeature是三通或者四通的一个分支处理,在cablewayFeatureList中查看是否有和aboveCablewayFeature进行支管相连的对象,如果存在,则将该对象作为nextCablewayFeature并存入 tPointStructList,将nextCablewayFeature当做aboveCablewayFeature,存入当前cableway的点结构和线结构,返回步骤S3.8,否则进入步骤S3.13;
S3.13、判断tPointStructList中的对象是否有起点或者终点与currentLocation一致的对象或者tPointStructList中是否有 aboveCablewayFeature对应的三通或四通,如果有且对象不是 cablewayLineStructList中最后两个,则要在当前cableway的线结构补充该对象的信息,形成闭合通路,补充完毕后进入步骤S3.14;
S3.14、如果cablewayFeatureList中只剩下两个端点,则把这两个分别存入当前cableway的点结构和线结构,回到步骤S3.8,否则进入步骤S3.15;
S3.15、代表上述分支已经结束,现在考虑是否能够从已有的三通或四通集合出发,查找和已有三通或四通对象起点或者终点一致的feature对象,如果存在,将该对象的与其他对象连接的端点坐标作为currentLocation坐标,将该对象作为aboveCablewayFeature,回到步骤S3.8,否则进入步骤S3.16;
S3.16、查找三通或四通对象里是否有分支对象在cablewayFeatureList 中,如果有把currentLocation改为分支对象与该对象中心坐标更近的点,将该对象作为aboveCablewayFeature,回到步骤S3.8,否则进入步骤S3.17;
S3.17、查找cablewayFeatureList中是否存在新的起点,起点判定条件和步骤S3.6一致,如果没有当前cableway有问题,写日志报错返回步骤S3.3,否则设定新的起点与currentLocation,返回步骤S3.8;
S3.18、查看cableway的最后一个feature是否存在对应的三通或四通 feature,如果存在,要将其存入当前cableway的线结构,形成闭环,进入步骤S3.19;
S3.19、去除cableway最终形成的点结构中坐标重合的点,一般重合的是端点和三通点以及四通点,保留三通点和四通点,去除端点,去除的同时要把线结构中对应的对象一并去除,然后把cableway的点结构和线结构存储到整体的点结构和线结构中,返回步骤S3.3;
S3.20、结束所有cableway分析,形成最终的点结构和线结构。
本发明的S3D桥架模型转MapGIS模型的系统和方法,与现有技术相比,能够自动将S3D三维桥架模型转化为MapGIS软件支持导入的Excel文件,实现了布置模型向地理信息系统模型的自动转化,避免了二次建模带来的劳动力浪费,大大提升设计效率和质量,支持以系统为单位进行生成以及全厂生成两种模式,灵活易用,整个过程全自动完成,无需人为干预,操作简便,生产效率高,提供日志查询功能,在单根桥架出错情况下仍然能够完成其他管线的分析计算,健壮性强,实现本发明的目的。
本发明的特点可参阅本案图式及以下较好实施方式的详细说明而获得清楚地了解。
附图说明
图1为本发明的S3D桥架模型转MapGIS模型的系统的结构示意图;
图2为本发明的S3D桥架模型转换为MapGIS模型的方法的流程示意图;
图3为本发明的S3D三维桥架专业点线关系数据集合获取算法的流程示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
实施例
如图1所示,本发明的S3D桥架模型转MapGIS模型的系统,包括:
外部数据读取模块10,用于读取三维模型转换模块所需的外部数据,包括 S3D项目配置信息以及需要抽取的系统号信息;
S3D模型数据下载模块20,用于将存储在S3D数据库中的数据读取到程序内存中,提高后续处理以及计算的效率,下载数据的范围根据外部数据读取模块获取数据来决定;
点线结构计算模块30,用于将S3D模型数据下载模块20下载的模型数据通过拓扑关系算法获取所有桥架元件的点线关系集合关系;
点线结构去重模块40,用于将点线结构中坐标一致的点进行去重处理,形成最终没有重复坐标点的点线结构;
点线表生成模块50,用于将转换完成的点线结构转换为符合MapGIS要求的点线表格式;及
Excel文件生成模块60,用于将生成的点线表转换为xls文件格式。
如图2和图3所示,本发明的S3D桥架模型转MapGIS模型的方法,包括以下步骤:
S1、通过外部数据读取模块获取模型转换需要的外部数据,包括S3D项目配置信息、数据库类型、需要转换的系统号信息;
S2、从S3D数据库中下载相关桥架模型数据存储在内存中;
S3、将S3D模型数据下载模块下载的桥架模型数据通过拓扑关系算法获取所有元件的拓扑连接关系,并存储成为对应的点线数据结构;
S4、从步骤S3获得的点线数据结构中找出重复的端点去除、合并三通点并且处理变径点,获得新的点线数据结构;
S5、将步骤S4中的点线数据结构集合转化为MapGIS可接受的点线表形式;
S6、将步骤S5中转化完成的点线表转换为XLS文件格式。
优选地,所述步骤S3中,将S3D管道模型数据下载模块下载的管道模型数据通过拓扑关系算法获取所有管道元件的拓扑连接关系,并存储成为对应的点线关系数据集合包含以下步骤:
S3.1、根据用户输入的系统号获取对应的所有cableway的oid,并创建结果集列表cablewayList,进入步骤S3.2;
S3.2、创建线对象lineStruct(包含cableway的oid、点坐标与点顺序) 集合lineList,创建点对象pointStruct(包含点坐标、点类型以及点备用坐标)集合pointList;
S3.3、循环读取cablewayList中的cableway对象,如果循环没有结束,进入步骤S3.4,如果循环结束,进入步骤S3.72;
S3.4、根据步骤S3.3得到的cableway对象通过xPathSpecification接口得到对应的Feature对象集合featureList,建立自定义的cablewayFeature 类型的集合cablewayFeatureList,进入步骤S3.5;
S3.5、循环获取featureList中的featureOid,如果循环没结束,创建cablewayFeature对象,进入步骤S3.6,如果循环结束,进入步骤S3.22;
S3.6、通过ROUTECablewayAlongLegPathFeat类来判断feature对象是不是CPCablewayAlongLegPathFeat对象,如果是进入步骤S3.7,如果不是进入步骤S3.8;
S3.7、获取对象的起点、终点坐标存入cablewayFeature对象,根据“eFunction”属性判断对象类型,如果“eFunction”对象为“4”进入步骤 S3.9,如果不是进入步骤S.10;
S3.8、通过ROUTECablewayBranchPathFeat类来判断feature对象是不是CPCablewayBranchPathFeat对象,如果是进入步骤S3.10,如果不是进入步骤 S3.11;
S3.9、将cablewayFeature对象标记为“三通”并且记录中心点坐标将其存储到cablewayFeature对象中,如果通过XOffLineFeatures关系能够找到一个以上分支,则将cablewayFeature对象标记为“四通”,进入步骤S3.21;
S3.10、获取对象的起点、终点坐标存储到cablewayFeature对象中,并且通过XOffLineFeatures找到对应的三通或者四通feature,然后将其中心坐标存为cablewayFeature的中心点坐标,设置cablewayFeature类型为“端点”,进入步骤S3.21;
S3.11、通过ROUTECablewayEndPathFeat类来判断feature对象是不是CPCablewayEndPathFeat对象,如果是进入步骤S3.12,如果不是进入步骤 S3.13;
S3.12、获取对象的起点、终点和中心点坐标存储到cablewayFeature对象中,并且设置cablewayFeature类型为“端点”,进入步骤S3.21;
S3.13、通过ROUTECablewaySlantTransFeat类来判断feature对象是不是CPCablewaySlantTransFeat对象,如果是进入步骤S3.14,如果不是进入步骤S3.15;
S3.14、获取对象的起点、终点和中心点坐标存储到cablewayFeature对象中,并且设置cablewayFeature类型为“变径点”,进入步骤S3.21;
S3.15、通过ROUTECablewayStraightPathFeat类判断feature对象是不是CPCablewayStraightPathFeat对象,如果是进入步骤S3.16,如果不是进入步骤S3.17;
S3.16、获取对象的起点、终点坐标并存储到cablewayFeature对象中,进入步骤S3.21;
S3.17、通过ROUTECablewayTransALPathFeat类判断feature对象是不是CPCablewayTransALPathFeat对象,如果是进入S3.14,如果不是进入S3.18;
S3.18、通过ROUTECablewayTurnPathFeat类判断feature对象是不是CPCablewayTurnPathFeat对象,如果是进入步骤S3.19,如果不是进入步骤 S3.20;
S3.19、获取对象的起点、终点以及中心点坐标并存储到cablewayFeature 对象中,并且设置cablewayFeature类型为“弯头”,进入步骤S3.21;
S3.20、feature对象一定是CPCablewayTurnTransFeat对象,通过ROUTECablewayTurnTransFeat类获取对象的起点、终点和中心点坐标存储到cablewayFeature对象中,并且设置cablewayFeature类型为“变径点”,进入步骤S3.21;
S3.21、通过JDOutfittingCrossSection_CL获取截面信息,存入cablewayFeature对象,如果cablewayFeature不满足对象类型为空并且起点与终点坐标一致,则把cablewayFeature放入cablewayFeatureList,返回步骤S3.5;
S3.22、如果cablewayFeatureList集合为空,直接返回步骤S3.3,否则进入步骤S3.23;
S3.23、找出cablewayFeatureList中类型标记为“端点”的所有cablewayFeature,形成endCablewayFeatureList集合,进入步骤S3.24;
S3.24、循环查找myEndFeatureList中每个cablewayFeature,如果存在新的cablewayFeature,进入步骤S3.25,否则进入步骤S3.28;
S3.25、cablewayFeature是否有其中一个端点不和其他任何cablewayFeatureList中的对象相连而另一个端点和非“端点”对象连接的对象,如果有进入步骤S3.26,没有返回步骤S3.24;
S3.26、通过XOffLineFeatures关系找到是否存在该cablewayFeature对应的三通或者四通feature,如果有,则代表cablewayFeature为一个分支 feature,再判断其对应的feature是否在cablewayFeatureList中,如果是,不作为起始点,回到步骤S3.24重新寻找起始点,否则进入步骤S3.27;
S3.27、将cablewayFeature作为起始feature,将cablewayFeature和其他对象连接的点作为起始点并赋值给currentLocation;
S3.28、新建cablewayFeature对象集合tPointStructList作为分支点的存储集合,新建pointStruct对象集合cablewayPointStructList以及 lineStruct对象集合cablewayLineStructList,进入步骤S3.29;
S3.29、根据步骤S3.3获取的cableway构建线表,新建lineStruct对象myLineStruct,将myLineStruct的oid设置为和cableway一样,myLineStruct 的截面设置为cablewayFeature的截面,pointIndex用来排列pointStruct 对象,因此从1开始,cablewayFeature的oid就是当前myLineStruct的 pointoid,将myLineStruct存入cablewayLineStructList,进入步骤S3.30;
S3.30、新建pointStruct对象myPointStruct,将cablewayFeature的中心坐标作为myPointStruct的pointLocation,将cablewayFeature的类型作为myPointStruct的类型,cablewayFeature的oid作为myPointStruct的oid,将myPointStruct存入cablewayPointStructList,进入步骤S3.31;
S3.31、cablewayFeature已经处理完毕,将cablewayFeature从cablewayFeatureList中移除,进入步骤S3.32;
S3.32、创建abovePipingFeature对象abovePipingFeature存储上一个处理的feature对象,这里将设定cablewayFeature为abovePipeingFeature,进入步骤S3.33;
S3.33、如果currentLocation为空,则代表未找到当前cableway的起始点,无法进行点线结构获取,清空cablewayPointStructList和 cablewayLineStructList,记录当前cableway存在问题,返回步骤S3.3开始下一个cableway处理,否则进入步骤S3.34;
S3.34、定义String类型属性abovePointOid记录上一个pointStruct对象的oid,定义String类型属性abovenpd记录上一个feature的截面,进入步骤S3.35;
S3.35、如果cablewayFeatureList集合不为空,则进入步骤S3.36,否则进入步骤S3.67;
S3.36、从cablewayFeatureList中找到和currentLocation坐标一致的cablewayFeature对象集合nextCablewayFeatureList,进入步骤S3.37;
S3.37、从nextCablewayFeatureList中寻找类型为“端点”的对象放入breakFeatureList集合,进入步骤S3.38;
S3.38、如果breakFeatureList里元素个数为2,则代表有两个端点对象单独配对,把breakFeatureList中的元素从cablewayFeatureList和 nextCablewayFeatureList中移除,进入步骤S3.39;
S3.39、判断cablewayFeatureList是否为空,如果为空,进入步骤S3.67,否则进入步骤S3.40;
S3.40、创建cablewayFeature类型对象nextCablewayFeature用于存储连接对象,如果nextCablewayFeatureList元素数量大于1个进入步骤S3.41,如果等于1个则将其作为nextCablewayFeature进入步骤S3.42,如果没有进入步骤S3.45;
S3.41、从nextCablewayFeatureList找出类型为“四通”的对象,如果存在,则为nextCablewayFeature;否则找出类型为“三通”的对象,如果存在则为nextCablewayFeature;否则找出是否存在起终点一致的对象,如果存在则为nextCablewayFeature,否则找出是否存在有类型的对象,如果存在则为nextCablewayFeature,否则取集合的第一个元素作为 nextCablewayFeature,进入步骤S3.42;
S3.42、如果nextCablewayFeature的类型为“三通”或者“四通”,将其添加到tPointStructList中,进入步骤S3.43;
S3.43、将nextCablewayFeature对象与currentLocation不一致的端点坐标设定为下一次循环的起始坐标currentLocation,如果 nextCablewayFeature对象类型不为空,则进入步骤S3.44,否则将 nextCablewayFeature的npd设为abovenpd,从cablewayFeatureList中移除 nextCablewayFeature对象,并且将aboveCablewayFeature设定为 nextCablewayFeature,返回步骤S3.35;
S3.44、新建lineStruct对象tempLineStruct,将pointIndex加1与nextCablewayFeature的npd和cableway的oid一起存入tempLineStruct,并且将nextCablewayFeature的oid存入tempLineStruct的pointOid,如果 abovePointOid不为空,则把abovePointOid存入tempLineStruct的 abovePointOid属性并把abovePointOid置为空,如果tempLineStruct的npd 为0x0,则重新处理tempLineStruct的npd,将tempLineStruct存入 cablewayLineStructList,将tempLineStruct的npd设为abovenpd,同时将 nextCablewayFeature的oid、中心点坐标以及类型存入新建的pointStruct 对象并添加到cablewayPointStructList,从cablewayFeatureList中移除nextCablewayFeature对象,并且将aboveCablewayFeature设定为 nextCablewayFeature,返回步骤S3.35;
S3.45、当前情况为找不到能够和currentLocation直接连接的点,通过XOffLineFeatures关系生成和aboveCablewayFeature对象相连接的分支对象表branchExistTable,如果branchExistTable中有对象且同时存在于 cablewayFeatureList中,则将此对象设定为nextCablwayFeature,进入步骤 S3.46,否则进入步骤S3.48;
S3.46、将nextCablwayFeature对象的起点坐标作为currentLocation,新建lineStruct对象tempLineStruct,将pointIndex加1与当前cableway 的oid和nextCablewayFeature的npd一起存入tempLineStruct,并且将 nextCablewayFeature的oid存入tempLineStruct的pointOid,如果 abovePointOid不为空,则把abovePointOid存入tempLineStruct的 abovePointOid属性并把abovePointOid置为空,如果tempLineStruct的npd 为0x0,则重新处理tempLineStruct的npd,将tempLineStruct存入cablewayLineStructList,将tempLineStruct的npd设为abovenpd,进入步骤S3.47;
S3.47、将nextCablewayFeature添加到tPointStructList中,同时将nextCablewayFeature的oid、中心点坐标以及类型存入新建的pointStruct 对象并添加到cablewayPointStructList,从cablewayFeatureList中移除 nextCablewayFeature对象,并且将aboveCablewayFeature设定为nextCablewayFeature,返回步骤S3.35;
S3.48、从tPointStuctList中寻找是否存在和currentLocation一致端点的对象,如果有,进一步判断该对象的oid不能是abovePointOid且不能是cablewayLineStructList的最后两个对象的pointOid,如果都满足,则进入步骤S3.49,否则进入步骤S3.50;
S3.49、新建lineStruct对象tempLineStruct,将pointIndex加1与当前cableway的npd和nextCablewayFeature的oid一起存入tempLineStruct,并且将nextCablewayFeature的oid存入tempLineStruct的pointOid,如果 abovePointOid不为空,则把abovePointOid存入tempLineStruct的 abovePointOid属性,如果tempLineStruct的npd为0x0,则重新处理 tempLineStruct的npd,将tempLineStruct存入cablewayLineStructList,闭合回路,进入步骤S3.51;
S3.50、如果branchExistTable有对象,查找branchExistTable中第一个对象是否在tPointStructList中,如果存在且满足该对象不是 cablewayLineStructList集合中最后两个对象并且oid不为abovePointOid,将该对象赋值给nextCablewayFeature,进入步骤S3.49;
S3.51、如果cablewayFeatureList只剩两个feature并且都为端点,进入步骤S3.52,否则进入步骤S3.54;
S3.52、对两个对象分别新建lineStruct对象tempLineStruct,将 pointIndex加1与当前cableway的oid和当前对象的npd一起存入 tempLineStruct,并且将当前对象的oid存入tempLineStruct的pointOid,如果abovePointOid不为空,则把abovePointOid存入tempLineStruct的 abovePointOid属性并把abovePointOid置为空,如果tempLineStruct的npd 为0x0,则重新处理tempLineStruct的npd,如果是两个对象中的第一个,还需要把tempLineStruct的isrestart设为true,将tempLineStruct存入cablewayLineStructList,将tempLineStruct的npd设为abovenpd,进入步骤S3.53;
S3.53、将当前对象的oid、中心点坐标以及类型存入新建的pointStruct 对象并添加到cablewayPointStructList,从cablewayFeatureList中移除nextCablewayFeature对象,并且将aboveCablewayFeature设定为 nextCablewayFeature,返回步骤S3.35;
S3.54、循环获取tPointStructList中每一个分支点对象,如果存在下一个,进入步骤S3.55,否则进入步骤S3.58;
S3.55、获取tPointStructList中最后的一个分支点对象 tCablewayFeature,在cablewayFeatureList中寻找起终点和 tCablewayFeature起终点一致的对象T,如果存在,将currentLocation设置为tCablewayFeature与T匹配的端点坐标,把abovePointOid设置为 tCablewayFeature的oid,然后返回步骤S3.35,如果不存在,进入步骤S3.56;
S3.56、通过XOffLineFeatures关系查找tCablewayFeature对应的分支对象branchFeature集合,如果有,进入步骤S3.57,如果没有,将 tCablewayFeature从tPointStructList中移除,返回步骤S3.54;
S3.57、设定标志位existBranch为false,循环遍历branchFeature集合,如果能够找到一个存在于cablewayFeatureList的branchFeature,则将 branchFeature中离tCablewayFeature坐标最近的一个点作为 currentLocation,然后把tCablewayFeature的oid作为abovePointOid,回到步骤S3.35,否则进入步骤S3.58;
S3.58、从cablewayFeatureList中重新寻找类型为“端点”的feature 对象,形成myEndCablewayFeatureList集合,新建cablewayFeature类型 endFeature为空,进入步骤S3.59;
S3.59、循环遍历myEndCablewayFeatureList集合每一个对象 tempFeature,如果存在进入步骤S3.60,如果不存在进入步骤S3.63;
S3.60、tempFeature是否有其中一个端点不和其他任何 cablewayFeatureList中的对象相连而另一个端点和非“端点”的对象连接的对象,如果有进入步骤S3.61,没有返回步骤S3.59;
S3.61、通过XOffLineFeatures关系找到是否存在该feature对应的 feature,如果有,则代表feature为一个分支feature,再判断其对应的 feature是否在本系统待处理的feature中,如果是,不作为起始点,回到步骤S3.59重新寻找起始点,否则进入步骤S3.62;
S3.62、将tempFeature作为endFeature,将tempFeature对象和其他对象连接的点作为起始点,设定坐标对象currentLocation为当前起始点坐标,进入步骤S3.63;
S3.63、如果endFeature为空,当前cableway出现问题,写日志,返回步骤S3.3,如果endFeature不为空,进入步骤S3.64;
S3.64、新建lineStruct对象tempLineStruct,将pointIndex加1与当前cableway的oid和nextCablewayFeature的npd一起存入tempLineStruct,并且将nextCablewayFeature的oid存入tempLineStruct的pointOid,将 tempLineStruct的isrestart设为true,如果abovePointOid不为空,则把 abovePointOid存入tempLineStruct的abovePointOid属性并把 abovePointOid置为空,如果tempLineStruct的npd为0x0,则重新处理 tempLineStruct的npd,将tempLineStruct存入cablewayLineStructList,将tempLineStruct的npd设为abovenpd,进入步骤S3.65;
S3.65、新建pointStruct对象myPointStruct,将cablewayFeature的中心坐标作为myPointStruct的pointLocation,将cablewayFeature的类型作为myPointStruct的类型,cablewayFeature的oid作为myPointStruct的oid,将myPointStruct存入cablewayPointStructList,进入步骤S3.66;
S3.66、将endFeature从cablewayFeatureList中移除,并且将endFeature 设置为aboveCablewayFeature,返回步骤S3.35;
S3.67、通过XOffLineFeatures关系查看cablewayLineStructList中最后一个对象是否存在分支对象,如果存在,进入步骤S3.68,否则进入步骤 S3.70;
S3.68、从tPointStructList中寻找是否存在S3.67找到的分支对象,如果没找到,进入步骤S3.70,如果找到,将其定位lastExtraFeature,进入步骤S3.69;
S3.69、如果cablewayLineStructList中不存在abovePointOid为lastExtraFeature的oid且pointOid为aboveCablewayFeature的oid的对象,则创建lineStruct对象tempLineStruct,将pointIndex加1与当前cableway 的oid和lastExtraFeature的npd一起存入tempLineStruct,并且将lastExtraFeature的oid存入tempLineStruct的pointOid,如果 abovePointOid不为空,则把abovePointOid存入tempLineStruct的 abovePointOid属性并把abovePointOid置为空,如果tempLineStruct的npd 为0x0,则重新处理tempLineStruct的npd,将tempLineStruct存入cablewayLineStructList,进入步骤S3.70;
S3.70、找出cablewayPointStructList中pointLocation一样的点,去除重复的点,一般重复的都是端点和三通或四通,保留三通以及四通,去除端点,去除端点的同时要把去除点对应的cablewayLineStructList中的对象一并去除,进入步骤S3.71;
S3.71、把cablewayLineStructList和cablewayPointStructList分别加入lineList和pointList,返回步骤S3.3;
S3.72、结束。
与现有技术相比,本发明的S3D桥架模型转MapGIS模型的系统和方法具有以下有益效果:
1、提供了一种S3D桥架专业拓扑连接关系的获取方法,为S3D模型的管理和应用提供了更多的可能性。
2、提供了一种S3D桥架专业元件转换为点线模型的方法,为S3D模型的管理和应用提供了更多的可能性。
3、能够自动将S3D三维桥架模型转化为MapGIS软件支持导入的Excel文件,实现了布置模型向地理信息系统模型的自动转化,避免了二次建模带来的劳动力浪费,大大提升设计效率和质量。
4、支持以系统为单位进行生成以及全厂生成两种模式,灵活易用。
5、整个过程全自动完成,无需人为干预,操作简便,生产效率高。
6、提供日志查询功能,在单根桥架出错情况下仍然能够完成其他管线的分析计算,健壮性强。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内,本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (3)
1.一种S3D桥架模型转MapGIS模型的系统,其特征在于,包括:
外部数据读取模块,用于读取三维模型转换模块所需的外部数据,包括S3D项目配置信息需要抽取的系统号信息;
S3D模型数据下载模块,用于将存储在S3D数据库中的数据读取到程序内存中,提高后续处理以及计算的效率,下载数据的范围根据外部数据读取模块获取数据来决定;
点线结构计算模块,用于将S3D模型数据下载模块下载的模型数据通过拓扑关系算法获取所有桥架元件的点线关系集合关系;
点线结构去重模块,用于将点线结构中坐标一致的点进行去重处理,形成最终没有重复坐标点的点线结构;
点线表生成模块,用于将转换完成的点线结构转换为符合MapGIS要求的点线表格式;及
Excel文件生成模块,用于将生成的点线表转换为xls文件格式。
2.一种S3D桥架模型转MapGIS模型的方法,其特征在于,包括如下步骤:
S1、通过外部数据读取模块获取模型转换需要的外部数据,包括S3D项目配置信息、数据库类型、需要转换的系统号信息;
S2、从S3D数据库中下载相关桥架模型数据存储在内存中;
S3、将S3D模型数据下载模块下载的桥架模型数据通过拓扑关系算法获取所有元件的拓扑连接关系,并存储成为对应的点线数据结构;
S4、从步骤S3获得的点线数据结构中找出重复的端点去除、合并三通点并且处理变径点,获得新的点线数据结构;
S5、将步骤S4中的点线数据结构集合转化为MapGIS可接受的点线表形式;
S6、将步骤S5中转化完成的点线表转换为XLS文件格式。
3.如权利要求2所述的S3D桥架模型转MapGIS模型的方法,其特征在于,所述步骤S3中,将S3D模型数据下载模块下载的管道模型数据通过拓扑关系算法获取所有元件的拓扑连接关系,并存储成为对应的点线数据集合包含以下步骤:
S3.1、根据用户输入的系统号获取对应的所有cableway对象集合,进入S3.2;
S3.2、创建整体点结构和线结构对象,进入步骤S3.3;
S3.3、循环读取cableway对象集合中的所有管段cableway,如果循环没有结束,进入步骤S3.4,如果循环结束,进入步骤S3.21;
S3.4、根据cableway找到对应的cableFeature集合,进入步骤S3.5;
S3.5、判断cableFeature对象合集中每个feature的类型,并记录对应的起点、终点、中心点以及类型,存入自定义集合cablewayFeatureList,进入步骤S3.6;
S3.6、从cablewayFeatureList中找出起始点,起始点条件为类型为“端点”,同时其中一个端点不和其他任何cablewayFeatureList中的对象相连而另一个端点和非“端点”的对象连接的对象,并且不存在在cablewayFeatureList中存在分支,如果找到,进入步骤S3.7,否则代表当前cableway存在问题,记录到日志中,回到步骤S3.3进行下一个cableway的分析;
S3.7、设定当前对象为起始对象,当前对象与其他对象连接的坐标为currentLocation,存入当前cableway的点结构和线结构,并将当前对象作为aboveCablewayFeature并从cablewayFeatureList中移除,进入步骤S3.8;
S3.8、循环处理cablewayFeatureList中的对象,如果没处理完进入步骤S3.9,如果处理完进入步骤S3.18;
S3.9、在cablewayFeatureList中查找端点坐标与currentLocation一致的后续连接对象集合,如果集合中存在的端点类型对象正好是两个,从cablewayFeatureList中去除这两个对象,进入步骤S3.10;
S3.10、如果后续连接对象集合为空,返回步骤S3.3,否则进入步骤S3.11;
S3.11、根据四通->三通->起终点一致->有类型->无类型的优先级在后续连接对象集合中找到下一个连接对象,如果找到了将其存入到当前cableway的点结构和线结构,并将此对象替换为aboveCablewayFeature,currentLocation替换为另一个端点坐标,回到步骤S3.8,否则进入步骤S3.12;
S3.12、按照aboveCablewayFeature是三通或者四通的一个分支处理,在cablewayFeatureList中查看是否有和aboveCablewayFeature进行支管相连的对象,如果存在,则将该对象作为nextCablewayFeature并存入tPointStructList,将nextCablewayFeature当做aboveCablewayFeature,存入当前cableway的点结构和线结构,返回步骤S3.8,否则进入步骤S3.13;
S3.13、判断tPointStructList中的对象是否有起点或者终点与currentLocation一致的对象或者tPointStructList中是否有aboveCablewayFeature对应的三通或四通,如果有且对象不是cablewayLineStructList中最后两个,则要在当前cableway的线结构补充该对象的信息,形成闭合通路,补充完毕后进入步骤S3.14;
S3.14、如果cablewayFeatureList中只剩下两个端点,则把这两个分别存入当前cableway的点结构和线结构,回到步骤S3.8,否则进入步骤S3.15;
S3.15、代表上述分支已经结束,现在考虑是否能够从已有的三通或四通集合出发,查找和已有三通或四通对象起点或者终点一致的feature对象,如果存在,将该对象的与其他对象连接的端点坐标作为currentLocation坐标,将该对象作为aboveCablewayFeature,回到步骤S3.8,否则进入步骤S3.16;
S3.16、查找三通或四通对象里是否有分支对象在cablewayFeatureList中,如果有把currentLocation改为分支对象与该对象中心坐标更近的点,将该对象作为aboveCablewayFeature,回到步骤S3.8,否则进入步骤S3.17;
S3.17、查找cablewayFeatureList中是否存在新的起点,起点判定条件和步骤S3.6一致,如果没有当前cableway有问题,写日志报错返回步骤S3.3,否则设定新的起点与currentLocation,返回步骤S3.8;
S3.18、查看cableway的最后一个feature是否存在对应的三通或四通feature,如果存在,要将其存入当前cableway的线结构,形成闭环,进入步骤S3.19;
S3.19、去除cableway最终形成的点结构中坐标重合的点,一般重合的是端点和三通点以及四通点,保留三通点和四通点,去除端点,去除的同时要把线结构中对应的对象一并去除,然后把cableway的点结构和线结构存储到整体的点结构和线结构中,返回步骤S3.3;
S3.20、结束所有cableway分析,形成最终的点结构和线结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110014197.4A CN112948911A (zh) | 2021-01-06 | 2021-01-06 | 一种S3D桥架模型转MapGIS模型的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110014197.4A CN112948911A (zh) | 2021-01-06 | 2021-01-06 | 一种S3D桥架模型转MapGIS模型的系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112948911A true CN112948911A (zh) | 2021-06-11 |
Family
ID=76235388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110014197.4A Pending CN112948911A (zh) | 2021-01-06 | 2021-01-06 | 一种S3D桥架模型转MapGIS模型的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948911A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114117586A (zh) * | 2021-11-01 | 2022-03-01 | 上海核工程研究设计院有限公司 | 一种在s3d软件中建立支吊架与其生根对象关联关系的方法 |
CN114139257A (zh) * | 2021-11-26 | 2022-03-04 | 上海核工程研究设计院有限公司 | 一种s3d元件的房间号自动计算的系统和方法 |
CN114896730A (zh) * | 2022-05-16 | 2022-08-12 | 上海核工程研究设计院有限公司 | 一种s3d风管支架恒荷载自动分析计算的系统与方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109272571A (zh) * | 2018-08-22 | 2019-01-25 | 上海核工程研究设计院有限公司 | 一种PDS三维数据转换为Flowmaster模型的系统和方法 |
CN110109999A (zh) * | 2019-05-24 | 2019-08-09 | 上海核工程研究设计院有限公司 | 一种S3D三维模型转Flowmaster模型的系统和转换方法 |
CN110795390A (zh) * | 2019-10-30 | 2020-02-14 | 上海核工程研究设计院有限公司 | 一种s3d模型转换为relap5模型的系统和方法 |
CN112182871A (zh) * | 2020-09-23 | 2021-01-05 | 上海核工程研究设计院有限公司 | 一种三维管道模型转换为MapGIS模型的系统和方法 |
-
2021
- 2021-01-06 CN CN202110014197.4A patent/CN112948911A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109272571A (zh) * | 2018-08-22 | 2019-01-25 | 上海核工程研究设计院有限公司 | 一种PDS三维数据转换为Flowmaster模型的系统和方法 |
CN110109999A (zh) * | 2019-05-24 | 2019-08-09 | 上海核工程研究设计院有限公司 | 一种S3D三维模型转Flowmaster模型的系统和转换方法 |
CN110795390A (zh) * | 2019-10-30 | 2020-02-14 | 上海核工程研究设计院有限公司 | 一种s3d模型转换为relap5模型的系统和方法 |
CN112182871A (zh) * | 2020-09-23 | 2021-01-05 | 上海核工程研究设计院有限公司 | 一种三维管道模型转换为MapGIS模型的系统和方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114117586A (zh) * | 2021-11-01 | 2022-03-01 | 上海核工程研究设计院有限公司 | 一种在s3d软件中建立支吊架与其生根对象关联关系的方法 |
CN114117586B (zh) * | 2021-11-01 | 2024-02-09 | 上海核工程研究设计院股份有限公司 | 一种在s3d软件中建立支吊架与其生根对象关联关系的方法 |
CN114139257A (zh) * | 2021-11-26 | 2022-03-04 | 上海核工程研究设计院有限公司 | 一种s3d元件的房间号自动计算的系统和方法 |
CN114896730A (zh) * | 2022-05-16 | 2022-08-12 | 上海核工程研究设计院有限公司 | 一种s3d风管支架恒荷载自动分析计算的系统与方法 |
CN114896730B (zh) * | 2022-05-16 | 2024-05-14 | 上海核工程研究设计院股份有限公司 | 一种s3d风管支架恒荷载自动分析计算的系统与方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112948911A (zh) | 一种S3D桥架模型转MapGIS模型的系统和方法 | |
CN105550268B (zh) | 大数据流程建模分析引擎 | |
CN105589874B (zh) | Etl任务依赖关系的检测方法、装置及etl工具 | |
US6915340B2 (en) | System and method for deriving future network configuration data from the current and previous network configuration data | |
CN108334572A (zh) | 一种基于图数据库的电网拓扑分析引擎系统及方法 | |
Lee | Information modeling: From design to implementation | |
CN102439818B (zh) | 自动生成变电站goose信号连接拓扑关系的方法和设备 | |
CN112445876B (zh) | 融合结构、属性和关系信息的实体对齐方法和系统 | |
CN103699664A (zh) | 一种配电网动态拓扑分析方法 | |
CN111563103B (zh) | 一种用于数据血缘检测方法和系统 | |
CN110661875B (zh) | 一种基于Word2Vec的云制造服务协作相似度计算方法 | |
CN112182871B (zh) | 一种三维管道模型转换为MapGIS模型的系统和方法 | |
Salamak et al. | Analytical modelling in Dynamo | |
CN110866029A (zh) | sql语句构建方法、装置、服务器及可读存储介质 | |
CN107870949A (zh) | 数据分析作业依赖关系生成方法和系统 | |
CN111680092A (zh) | 数据导入hive表的方法、系统、服务器和存储介质 | |
CN114692823A (zh) | 一种算子融合的方法、装置、存储介质及电子设备 | |
CN105871998A (zh) | 一种数据展示方法及装置 | |
JP2010186256A (ja) | 逐次クラスタリング装置とその方法及びプログラム | |
CN110795390B (zh) | 一种s3d模型转换为relap5模型的系统和方法 | |
CN107180024A (zh) | 一种中心连通子图的多源异构数据实体识别方法及系统 | |
CN105426676A (zh) | 一种钻井数据处理方法和系统 | |
CN107291875B (zh) | 一种基于元数据图的元数据组织管理方法和系统 | |
CN113032450B (zh) | 一种数据存储与检索方法、系统、存储介质、处理终端 | |
CN115827885A (zh) | 一种运维知识图谱的构建方法、装置及电子设备 |
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 | ||
CB02 | Change of applicant information |
Address after: No. 29 Hong Cao Road, Xuhui District, Shanghai Applicant after: Shanghai Nuclear Engineering Research and Design Institute Co.,Ltd. Address before: No. 29 Hong Cao Road, Xuhui District, Shanghai Applicant before: SHANGHAI NUCLEAR ENGINEERING RESEARCH & DESIGN INSTITUTE Co.,Ltd. |
|
CB02 | Change of applicant information |