PipeCAD之管道标准库PipeStd

PipeCAD之管道标准库PipeStd

[email protected]

Key Words. PipeCAD, PipeStd, 管道设计软件,管件库

1. Introduction

前不久,两位老友徐总和毛总在上海浦东金桥的一茶一坐小聚,回想到几年前我们仨在那里聚会的情景。他们分别在A公司和I公司,我当时在做SPD的开发。在一起聊的话题也是关于设计软件的,当时也有一些思想碰撞的火花,想着做出一个什么软件,成为CEO,迎娶白富美,走上人生顶峰。结果几年过去,当年吹过的牛B,没有实现。其中有一个就是做一个管道标准库程序,方便管件的定义。定义好之后,可以导入AVEVA PDMS和Intergraph SmartPlant。

看着国内工厂/船舶设计软件如PDSOFT,UESOFT,PDMAX还有船舶设计软件SPD都不温不火,而且国外的AVEVA PDMS/Marine, Intergraph SmartPlant已经占据了国内市场,有时我也在想开发一个原来梦想的管道设计软件的意义和价值。

AVEVA PDMS/Marine我觉得是简单易用的软件,一致的操作方式,基于CSG的造型算法,还提供了二次开发语言PML及C#来对程序进行灵活扩展。基于文件的层次数据库,并提供了数据库的增、删、改及数据回退功能,可以用于大中型项目设计。由于很容易得到和谐版,所以用户很多。

Intergraph SmartPlant是美国的一款软件,由于其价格昂贵,在国内的用户都是不差钱的单位。由于没有使用过,所以对其不便于评价。但是由于国内外有业主会指定这款软件,所以国际上用户也很多。

再看国内的工厂/船舶设计系统PDSOFT,UESOFT,PDMAX及SPD等,都是基于AutoCAD开发的。早期基于AutoCAD,因为AutoCAD比较普及,所以会吸引一些会AutoCAD的用户。但是基于AutoCAD开发程序弊端之一是AutoCAD版本升级,程序要想适应AutoCAD,也必须跟着升级。弊端二是AutoCAD的提供的开发库ObjectARX, .NET等都不是开源的,如果是那些库出现BUG或是不支持的功能,要么去和Autodesk公司沟通,要么只有绕道了。有的使用ObjectARX的C++库开发,虽然程序性能好,还在使用MFC做GUI,但是开发效率低。弊端之三是有些功能与AutoCAD的功能纠缠不清,用户体验不太友好。

为了实现几年前的梦想,我决定开发一个管道设计软件PipeCAD。

2. PipeCAD

对PipeCAD的一个定位就是适用于中小型项目的管道设计软件。因为大型项目的用户一般都是用PDMS或SmartPlant。

使用开源库OpenCASCADE来进行三维图形开发,使用开源库Qt来进行GUI开发,提高程序开发效率。因为使用开源技术,出现BUG可以从根据上解决。不依赖其他闭源的软件,不会有其他软件升级带来的影响。

业务核心功能都自己实现,程序自主可控,方便增加新功能。

PipeCAD的初步开发以下功能模块:

l 管件库等级库管理程序PipeStd;

l 三维设计模块PipeCAD;

l 管道轴测图出图模块IsoAlgo。

3. PipeStd

PipeStd主要用来对管件标准数据、管道等级等数据进行管理。有了管件数据,就可以对管件进行三维显示。有了管道等级,就可以在三维设计模块来使用管件来对管道进行建模。PipeStd的使用方式与PDMS的Paragon模块类似,通过参数化的方式来定义管件。目前程序的主要功能已经实现,程序界面如下图所示:

其中还设想的功能有:

l 导入、导出PDMS中的管件及管道等级Piping Specification数据;

l 导入、导出SmartPlant中的管件及管道等级Piping Specification数据;

4. Conclusion

两位友人的提醒,决定开发一个三维管道设计软件PipeCAD。为中小型项目的管道设计提供了一个选择。核心功能都自己实现,程序自主可控。不依赖其他软件,如AutoCAD,提供良好的用户体验。

原文地址:https://www.cnblogs.com/opencascade/p/PipeCAD_PipeStd.html

时间: 2024-10-01 00:29:08

PipeCAD之管道标准库PipeStd的相关文章

PipeCAD之管道标准库PipeStd(2)

PipeCAD之管道标准库PipeStd(2) [email protected] Key Words. PipeCAD, PipeStd, 管道设计软件,管件库 1. Introduction 管道标准部件库程序PipeStd的主要用法与PDMS的Paragon模块类似,主要也是采用参数化的方式来表示管件.每种类型的管件Category包含三个集合:参数集Parameter Set.点集Point Set和形集Geometry Set.本文主要来介绍如何创建一个参数化的标准管件.如下图所示为一

PipeCAD之管道标准库PipeStd(3)

Key Words: PipeCAD, PipeStd, Pipe Design 3D, Linux 1. Introduction    管道标准部件库程序PipeStd的思路与PDMS的Paragon类似,主要也是采用参数化的方式来表示管件.在PipeStd中定义好管件的参数化模型及管道等级数据后,就可以为后面管道的建模打好基础.    程序主要用C++开发,所以可以跨平台运行,即可以在Linux系统中运行,也可以在Windows系统中运行.如下图所示为程序在Ubuntu系统中运行的截图:

[python标准库]XML模块

1.什么是XML XML是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分.您可以创建内容,然后使用限定标记标记它,从而使每个单词.短语或块成为可识别.可分类的信息. XML有以下几个特点. XML的设计宗旨是传输数据,而非显示数据. XML标签没有被预定义.您需要自行定义标签. XML被设计为具有自我描述性. XML是W3C的推荐标准. 其解析流程如下图: 2.常用解析XML的Python包 Python的标准库中,提供了6种

Python标准库06 子进程 (subprocess包)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 谢谢Tolbkni Kao帮我纠正错误 这里的内容以Linux进程基础和Linux文本流为基础.subprocess包主要功能是执行外部的命令和程序.比如说,我需要使用wget下载文件.我在Python中调用wget程序.从这个意义上来说,subprocess的功能与shell类似. subprocess以及常用的封装函数 当我们运行python的时候,我们都是在创建并运行一个进

22Python标准库系列之Redis模块

Python标准库系列之Redis模块 What is redis? Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, b

转:Python标准库(非常经典的各种模块介绍)

Python Standard Library 翻译: Python 江湖群 10/06/07 20:10:08 编译 0.1. 关于本书 0.2. 代码约定 0.3. 关于例子 0.4. 如何联系我们 核心模块 1.1. 介绍 1.2. _ _builtin_ _ 模块 1.3. exceptions 模块 1.4. os 模块 1.5. os.path 模块 1.6. stat 模块 1.7. string 模块 1.8. re 模块 1.9. math 模块 1.10. cmath 模块

第十章 Python常用标准库使用(必会)

本章涉及标准库: 1.sys 2.os 3.glob 4.math 5.random 6.platform 7.pikle与cPikle 8.subprocess 9.Queue 10.StringIO 11.logging 12.ConfigParser 13.urllib与urllib2 14.json 15.time 16.datetime 10.1 sys 1)sys.argv 命令行参数. argv[0] #代表本身名字 argv[1] #第一个参数 argv[2] #第二个参数 ar

Python:标准库(包含下载地址及书本目录)

下载地址 中文版(扫描版)请使用迅雷下载 英文版(文字版) 官方文档 The Python Standard Library <Python标准库>一书的目录 <python标准库> 译者序 序 前言 第1章 文本1 1.1 string—文本常量和模板1 1.1.1 函数1 1.1.2 模板2 1.1.3 高级模板4 1.2 textwrap—格式化文本段落6 1.2.1 示例数据6 1.2.2 填充段落6 1.2.3 去除现有缩进7 1.2.4 结合dedent和fill7 1

Python学习笔记13:标准库之子进程(subprocess包)

ubprocess包主要功能是执行外部的命令和程序.从这个意义上来说,subprocess的功能与shell类似. subprocess以及常用的封装函数 当我们运行python的时候,我们都是在创建并运行一个进程. 在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序. subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用. 另外subprocess还提供了一些管理标准流(