管道设计CAD系统中重量重心计算
管道设计CAD系统中重量重心计算
Abstract. 管道设计CAD系统中都有涉及到重量重心计算的功能,这个功能得到的重心数据主要用于托盘式造船时方便根据重心设置吊装配件。重量信息主要用于采购订货。本文主要介绍相关软件中重量重心功能,及重量重心计算实现原理。最后结合OpenCASCADE计算管道模型重量重心来验证。
Key Words. CoG, CentreOfMass, Piping CAD, Piping Design
1.Introduction
船舶设计系统和工厂设计系统等都有管道设计功能。在船舶建造过程中,工程最大的是船体建造,其次是船舶管系的制造和安装。
建国初期船舶管系的管子制造和安装要等船体基本成形,机械设备都基本到位,船船管工才能拿着原理图和详细设计的管子走向图,到施工现场用直径6mm或8mm的铁丝样条取样,把样条弯制成想要的形状,再带回车间下料,上弯管机按样条形状进行弯制,然后领管接头,再上船到施工现场进行管子试装。试装时管接头与管子用点焊连接,再把试装管子拆下来,带回车间打磨,泵压,表面处理,最后上船安装。这种方法叫管子制造现场取样法,这种工艺方法建造周期长;管工的劳动强度大;管子走向不合理,与其他专业如电缆,风管等容易碰撞,返工量大,造成人力物力浪费;管子现场试装的作业环境比车间差,造成管子建造质量差。
为了缩短建造周期,提高造船质量,单从船舶管系这个角度讲,必须要有创新去提高效率。
60~70年代,在木地板上以1:1的比例画各种船体背景,画各种机械设备外形及管路接口,进行管子系统放样。当时用的计算工具是计标尺,这种方法需要的工作场地大,放样人员蹲在地上进行操作,劳动强度很大。
70~80年代,在工作台上用长涤伦薄膜以1:10的比例画船体背景,画各种机械设备外形及与管路接口,进行管子系统放样,这种方法比上种工作场地小,减轻了放样人员的劳动强度。
80~90年代,把涤伦薄膜铺设在图板上,以1:20的比例分区综合放样。所谓综合放样,就是在小小的绘图板上,船体,电气,轮机三大专业的放样设计一起进行,综合协调,把很多将会在生产中出现的问题,在绘图板上解决。在这个舞台上,放样人员按建造方针,管理部门和生产车间的要求,提供各种建造阶段的施工图纸和托盘。由于当时没有采用计算机放样,有些好的设计要求,靠设计部门在有限的设计周期内很难实现,这个时期只是生产设计的初期阶段。
90年代后全国较大的造船厂家都用计算机放样,把设计图中的管子走向数据、管件数据、管路数据等输入计算机。通过计算机辅助设计,解决了管子零件弯管程序计算量很大的难题和出图量很大的难题,大缩短生产设计的周期,提高了设计质量。
现在船厂、设计院都是采用计算机辅助设计系统进行管道设计。从上述建造方法的进程可以看出通过创新,利用计算机这个强大工具改进了生产方式,提高了效率和质量。
2.Cog in PDMS/AVEVA Marine
在PDMS/AVEVA Marine中提供了计算模型重量重心Weight and Centre of Gravity(CoG)及表面积的功能。如下图所示:
重量重心的功能是在托盘造船、模块造船的基础上产生的需求。有了重量重心数据,就可以便于组织托盘、模块的吊装。
PDMS/AVEVA Marine中统计重量重心很简单,只需要添加需要统计的SITE、ZONE或者PIPE,BRANCH就可以计算出重量重心。
在PDMS/AVEVA Marine中统计重量前,需要完善管件库与特性库的关联。主要需要定义管件的质量及管子的线密度信息。
有了管件的质量及管子的线密度数据,如何计算管道的重量重心呢?
3.Com in OpenCASCADE
OpenCASCADE中提供了计算几何体的全局属性的功能,可计算曲线、曲面或几何体的质量Mass,质心(CentreOfMass),转动惯量等。所以可以使用OpenCASCADE来计算重量重心。
下面来对管道模型的重量重心计算进行分析。地球表面或表面附近的物体会受到地心引力作用。物体的诸微元所受到的地心引力由于距离地心很远,可看成是一组平行力系。这组平行力系有一个合力,合力的大小称为物体的重力。合力的作用线有一个特性,即不论物体相对地球如何放置,合力作用线总会通过一点,这个点称为物体的重心。物体重心相对物体的位置不因物体空间位置而改变。
设在空间中有N个质点,它们分别位于点(x1,y2,z1),(x2,y2,z2),... (xn, yn, zn)处,质量分别为m1, m2, ... Mn。由力学可知,该质点系的重心坐标为:
根据重心的计算公式,结合管道模型的特点,可以做如下假设:
l 将管子附件看成一个质点,质点坐标为管子附件的空间位置,质量为管件的质量;
l 将管段长度乘以线密度得到质量后再将其看成一个质点,质点坐标为管段的中心点;
下面使用OpenCASCADE中的类来计算管道系统的质量和质心坐标。有了质量和质心,乘以重力加速度即可以得到重量重心。计算一段简单管道模型的重量重心,管道模型如下图所示。模型从下到上对应的坐标及质量如下:
l 法兰Flange: Position X 26104mm Y -11441mm Z 19246.184mm, weight 19.815kg
l 管段Tubi:起点坐标:Position X 26104mm Y -11441mm Z 19316.184mm
终点坐标:Position X 26104mm Y -11441mm Z 21554.039mm
线密度:0.0315 kg/m
l 三通Tee: Position X 26104mm Y -11441mm Z 21770.039mm, weight 11kg
l 管段Tubi: 起点坐标:Position X 26104mm Y -11441mm Z 21986.039mm
终点坐标:Position X 26104mm Y -11441mm Z 22828.5mm
线密度:0.0315 kg/m
l 法兰Flange: Position X 26104mm Y -11441mm Z 22898.5mm, weight 19.815kg
l 垫片Gasket:Position X 26104mm Y -11441mm Z 22898.5mm, weight 1.14kg
在AVEVA Marine中计算的总质量为:148.80kg,
重心坐标为:X 26104.00mm Y -11441.00mm Z 21074.10mm
在OpenCASCADE中的计算代码如下:
/*
Copyright(C) 2017 Shing Liu(eryar@163.com) Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files(the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions : The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/ #include <ElCLib.hxx> #include <gce_MakeLin.hxx> #include <GProp_GProps.hxx>
#include <GProp_PGProps.hxx>
#include <GProp_CelGProps.hxx> #pragma comment(lib, "TKernel.lib")
#pragma comment(lib, "TKMath.lib") #pragma comment(lib, "TKG2d.lib")
#pragma comment(lib, "TKG3d.lib")
#pragma comment(lib, "TKGeomBase.lib") // Centre of Mass of pipeline model.
void testCom(void)
{
GProp_GProps aTool;
GProp_PGProps aCompProps; // add component as point.
// add flange: Position X 26104mm Y -11441mm Z 19246.184mm, weight 19.815kg
aCompProps.AddPoint(gp_Pnt(26104.0, -11441.0, 19246.184), 19.815); // add tee: Position X 26104mm Y -11441mm Z 21770.039mm, weight 11kg
aCompProps.AddPoint(gp_Pnt(26104.0, -11441.0, 21770.039), 11.0); // add flange: Position X 26104mm Y -11441mm Z 22898.5mm, weight 19.815kg
aCompProps.AddPoint(gp_Pnt(26104.0, -11441.0, 22898.5), 19.815); // add gasket: Position X 26104mm Y -11441mm Z 22898.5mm, weight 1.14kg
aCompProps.AddPoint(gp_Pnt(26104.0, -11441.0, 22898.5), 1.14); aTool.Add(aCompProps); // add two pipe as line curve.
// add tubi: 起点坐标:Position X 26104mm Y -11441mm Z 19316.184mm
// 终点坐标:Position X 26104mm Y - 11441mm Z 21554.039mm
// 线密度:0.0315 kg/m
gp_Pnt aPs1(26104.0, -11441.0, 19316.184);
gp_Pnt aPe1(26104.0, -11441.0, 21554.039);
gp_Lin aLine1 = gce_MakeLin(aPs1, aPe1).Value(); GProp_CelGProps aTubiProp1;
aTubiProp1.Perform(aLine1, ElCLib::Parameter(aLine1, aPs1), ElCLib::Parameter(aLine1, aPe1));
aTool.Add(aTubiProp1, 0.0315); // add tubi: 起点坐标:Position X 26104mm Y -11441mm Z 21986.039mm
// 终点坐标:Position X 26104mm Y - 11441mm Z 22828.5mm
// 线密度:0.0315 kg/m
gp_Pnt aPs2(26104.0, -11441.0, 21986.039);
gp_Pnt aPe2(26104.0, -11441.0, 22828.5);
gp_Lin aLine2 = gce_MakeLin(aPs2, aPe2).Value(); GProp_CelGProps aTubiProp2;
aTubiProp2.Perform(aLine2, ElCLib::Parameter(aLine2, aPs2), ElCLib::Parameter(aLine2, aPe2));
aTool.Add(aTubiProp2, 0.0315); gp_Pnt aPc = aTool.CentreOfMass();
std::cout << "Mass: " << aTool.Mass() << std::endl;
std::cout << "CentreOfMass: " << aPc.X() << ", " << aPc.Y() << ", " << aPc.Z() << std::endl;
} int main(int argc, char* argv[])
{
testCom(); return ;
}
计算结果如下图所示:
与在AVEVA Marine中计算结果一致。
4.Conclusion
在船舶设计CAD系统和工厂设计CAD系统中都有管道的辅助设计,其中都有统计管道模型重量重心的功能。根据重心的计算公式,将管道模型中的管件简化为质点,再利用公式直接计算。最后在OpenCASCADE中实现重心及总质量的计算,计算结果与AVEVA Marine一致。
OpenCASCADE还可以计算任意曲线、曲面的重心及质量、转动惯量等。这些功能又是如何实现的呢?这个问题留给大家思考。
通过使用OpenCASCADE的功能,可以体会其编程风格。
5.References
1.同济大学数学教研室. 高等数学(下册). 高等教育出版社
2.单辉祖, 谢传峰. 工程力学. 高等教育出版社
管道设计CAD系统中重量重心计算的更多相关文章
- 在linux系统中实现各项监控的关键技术(1)--cpu使用率的计算
转载自 Linux中通过/proc/stat等文件计算Cpu使用率 http://www.blogjava.net/fjzag/articles/317773.html proc文件系统 /proc文 ...
- 【转】Spark Streaming 实时计算在甜橙金融监控系统中的应用及优化
系统架构介绍 整个实时监控系统的架构是先由 Flume 收集服务器产生的日志 Log 和前端埋点数据, 然后实时把这些信息发送到 Kafka 分布式发布订阅消息系统,接着由 Spark Streami ...
- CAD系统变量(参数)大全
所谓系统变量就是一些参数,这些参数有些是可以在“选项”或其他对话框中进行设置的,有些这必须通过在命令行输入变量名进行设置,当然对于高手来说,还可以通过二次开发程序来进行控制. CAD有很多的变量,例如 ...
- UEFI+GPT模式下的Windows系统中分区结构和默认分区大小及硬盘整数分区研究
内容摘要:本文主要讨论和分析在UEFI+GPT模式下的Windows系统(主要是最新的Win10X64)中默认的分区结构和默认的分区大小,硬盘整数分区.4K对齐.起始扇区.恢复分区.ESP分区.MSR ...
- 让Redis在你的系统中发挥更大作用的几点建议
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/105.html?1455868313 Redis在很多方面与其他数据库解决 ...
- 李学斌:论复杂系统中的应用间协作V3
说明 本文主要讨论了巨型复杂业务系统的一种构建思路,力图实现决策意志的快速.准确.一致的下传并简化实施成本提供实施效率.通过全业务领域的即时流程编排,实现全网业务IT系统的快速建设与迭代.本文所讲的方 ...
- 终极优化_详解Win7旗舰版系统中可以关闭的服务
Win7旗舰版系统是一款功能强大的系统,不过对于很多用户很多功能却使用不上,而支持功能的很多服务也多少占用了系统资源,那么我们可以通过关闭一些不使用的服务来达到让win7系统运行速度加快的目的.下面小 ...
- [原创]Android系统中常用JAVA类源码浅析之HashMap
由于是浅析,所以我只分析常用的接口,注意是Android系统中的JAVA类,可能和JDK的源码有区别. 首先从构造函数开始, /** * Min capacity (other than zero) ...
- Android系统中的广播(Broadcast)机制简要介绍和学习计划
在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制:这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用:本文通过一个 ...
随机推荐
- 比特币区块结构Merkle树及简单支付验证分析
在比特币网络中,不是每个节点都有能力储存完整的区块链数据,受限于存储空间的的限制,很多节点是以SPV(Simplified Payment Verification简单支付验证)钱包接入比特币网络,通 ...
- [转载] Java集合框架之小结
转载自http://jiangzhengjun.iteye.com/blog/553191 1.Java容器类库的简化图,下面是集合类库更加完备的图.包括抽象类和遗留构件(不包括Queue的实现): ...
- mysql timeout
(待更新整理) 因为最近遇到一些超时的问题,正好就把所有的timeout参数都理一遍,首先数据库里查一下看有哪些超时: root@localhost : test 12:55:50> show ...
- HBuilder入门(构建h5+APP)
if(window.plus) { plusReady(); } else { //plusready事件(自带事件)调用了才可使用h5+API document.addEventListener(& ...
- [WPF]本地化入门
1. 前言 WPF的本地化是个很常见的功能,我做过的WPF程序大部分都实现了本地化(不管最终有没有用到).通常本地化有以下几点需求: 在程序启动时根据CultureInfo.CurrentUICult ...
- 在centOS上搭建wordpress博客系统
一.主要内容 1.安装LAMP服务器系统(Linux.Apache.MySQL.PHP ); 2.安装wordpress: 二.具体步骤 一.LAMP环境设置 1.安装LAMP系统,在centOS上可 ...
- 学问Chat UI(4)
前言 写这个组件是在几个月前,那时候是因为老大讲RN项目APP的通讯聊天部分后面有可能自己实现,让我那时候尝试着搞下Android通讯聊天UI实现的部分,在这期间,找了不少的Android原生项目:蘑 ...
- Require,js配置使用心得
首先大家要知道requirejs是干嘛用的,要解释,那就用一句话说下:RequireJS是一个JavaScript文件和模块加载器接下来我们开始学会配置使用requireJs,当然在学习使用的过程中也 ...
- 站在 Android 开发的角度,聊聊 Airbnb 的 Lottie!!!
一.前言 你有没有遇上一些设计师,对一些酷炫的动画着迷,喜欢根据场景设计出可爱而流畅的动画.但是在实际工作中,哪怕开发人员也觉得这些动画非常的棒,可我们知道,越是定制化的动画,实现起来将会越麻烦和耗时 ...
- 【Codeforces 837D】Round Subset
http://codeforces.com/contest/837/problem/D 分解质因数,即第i个数的因子2的个数为c2[i],因子5的个数为c5[i],末尾零的个数就是min{Σc2[i] ...