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 ...
随机推荐
- Nginx服务器的反向代理proxy_pass配置方法讲解
Nginx的配置还是比较简单的,如: 1 2 3 4 location ~ /* { proxy_pass http://127.0.0.1:8008; } 或者可以 1 2 3 4 loca ...
- 13.mutiset树每一个结点都是一个链表的指针,可以存储相同的数据
#include <iostream> //红黑树(自动保证平衡,自动生成平衡查找树) #include <set> #include <cstring> #inc ...
- Webkit 的麻烦和解决
* placeholder 在 focus 状态下内容为空时,依然显示文字.和 IE11,Firefox 均不一致: input:focus::-webkit-input-placeholder { ...
- Maven项目:Plugin execution not covered by lifecycle configuration 解决方案
这个是eclipse中配置文件pom.xml报的错.具体错误信息: Plugin execution not covered by lifecycle configuration: org.apach ...
- <Sicily>Fibonacci
一.题目描述 In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn-1 + Fn-2 for n ≥ 2. For exampl ...
- jQuery实现tab标签切换效果
技巧一.jQuery :eq() 选择器 定义和用法 :eq() 选择器选取带有指定 index 值的元素. index 值从 0 开始,所有第一个元素的 index 值是 0(不是 1). 经常与其 ...
- js 快捷键设置
function hotkey() { var a=window.event.keyCode; if((a==65)&&(event.ctrlKey)) { alert("你 ...
- Win10平台下通过VMware虚拟机安装Win7、Ubuntu、Mac
1.安装VMware14.1.1 下载地址:https://download.csdn.net/download/jasonczy/10611423 产品秘钥: CG54H-D8D0H-H8DHY-C ...
- 文件的默认权限:umask
1. 文件的默认权限 linux下当我们新建一个文件和文件夹时,该文件和文件夹的默认权限是什么? 通过umask命令来查看: $ umask 0002 $ umask -S u=rwx,g=rwx,o ...
- Android中ViewPager的使用
我们在一个apk中第一次開始的时候,会有一个guide界面.一般使用ViewPager来完毕. 布局文件例如以下: <? xml version="1.0" encoding ...