PipeCAD之管道标准库PipeStd
PipeCAD之管道标准库PipeStd
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,提供良好的用户体验。
PipeCAD之管道标准库PipeStd的更多相关文章
- PipeCAD之管道标准库PipeStd(2)
PipeCAD之管道标准库PipeStd(2) eryar@163.com Key Words. PipeCAD, PipeStd, 管道设计软件,管件库 1. Introduction 管道标准部件 ...
- PipeCAD之管道标准库PipeStd(3)
PipeCAD之管道标准库PipeStd(3) Key Words: PipeCAD, PipeStd, Pipe Design 3D, Linux 1. Introduction 管道标准部件 ...
- Python标准库06 子进程 (subprocess包)
这里的内容以Linux进程基础和Linux文本流为基础.subprocess包主要功能是执行外部的命令和程序.比如说,我需要使用wget下载文件.我在Python中调用wget程序.从这个意义上来说, ...
- Python标准库---子进程 (subprocess包)
这里的内容以Linux进程基础和Linux文本流为基础.subprocess包主要功能是执行外部的命令和程序.比如说,我需要使用wget下载文件.我在Python中调用wget程序.从这个意义上来说, ...
- [python标准库]XML模块
1.什么是XML XML是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分.您可以创建内容,然后使用限定标记标记它,从而使每个单词. ...
- python 标准库 -- subprocess
subprocess 主要功能室执行外部的命令和程序 一个进程可 fork 一个子进程, 并让这个子进程 exec 另外一个程序. 在 python 中, 可以通过标准库中的 subprocess 包 ...
- Python:标准库(包含下载地址及书本目录)
下载地址 英文版(文字版) 官方文档 The Python Standard Library <Python标准库>一书的目录 <python标准库> 译者序 序 前言 第1章 ...
- python第六天 函数 python标准库实例大全
今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...
- go标准库的学习-io
参考https://studygolang.com/pkgdoc 导入方式: import "io" o包提供了对I/O原语的基本接口.本包的基本任务是包装这些原语已有的实现(如o ...
随机推荐
- 安卓开发,adb shell 调试sqlite3数据库
安卓开发,adb shell 调试sqlite3数据库 在安卓中创建了sqlite3数据库,想要调试怎么办? 通过adb shell来进行查看. 第一步,将adb加入到系统变量中. 这样就可以在命令行 ...
- hpuoj--校赛--考试来了(水题)
问题 C: 感恩节KK专场--考试来了 时间限制: 1 Sec 内存限制: 128 MB 提交: 475 解决: 112 [提交][状态][讨论版] 题目描述 很多课程马上就结课了,随之而来的就是 ...
- C#篇(三)——函数传参之引用类型和值类型
首先应该认清楚在C#中只有两种类型: 1.引用类型(任何称为"类"的类型) 2.值类型(结构或枚举) 先来认识一下引用类型和值类型的区别: 函数传参之引用类型: 1.先来一个简单的 ...
- js中作用域链的问题
为什么没有var声明的变量是全局的? 是因为,在js中,如果某个变量没有var声明,会自动到上一层作用域中去找这个变量的声明语句,如果找到,就使用,如果没有找到,继续向上查找,一直查找到全局作用域为止 ...
- Access-Control-Allow-Origin 如何设置多个值呢
需求就是多个网站请求同一个api服务器和这里一样https://segmentfault.com/q/10... 我不是做后端的,但是我们后端不知道怎么设置,在web.config里设置了一下 < ...
- ES6中object对象属性
//////es5中定义对象属性要么字面量.要么点.要么[],变量与空格在这些方法中没有得到好的支持 /////在es6中可以这么定义: let w='www'; let obj1={w};//obj ...
- studyLink
http://order.csdn.net/myorder/detail?id=850343 csdn
- Linux/Mac vi命令详解
刚开始学着用Linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...
- Kubernetes1.5 集成dashboard
Kubernetes1.5 集成dashboard 配置kubernetes的dashboard相对简单.同样的,只需要从源码中获取到dashboard-controller.yaml及dashboa ...
- js数组去重问题
1. 双层循环:外层循环,内层比较值: (1)利用splice直接在原数组进行操作 Array.prototype.delRepeat = function (){ var arr = this; v ...