应力管线集中载荷条件在多专业间的流转
2022-03-07中石化宁波工程有限公司宁波315300
徐 堰 中石化宁波工程有限公司 宁波 315300
随着炼油、化工、煤化工等装置规模日益扩大,项目节奏也日益加快,各大设计院和工程公司均采用三维模型设计软件进行常规设计和成品输出。三维模型设计以其直观、高效、便于管理和可批量操作和输出等优点,得到了广泛的认可和应用;尤其是配管专业,模型的使用极大地提高了设计的效率和质量。化工行业工厂设计软件套件主要有海克斯康(HEXAGON)公司的Intergraph_S3D系列以及AVEVA公司的PDMS系列。其中海克斯康公司的Intergraph_S3D软件作为一款工厂设计集成平台,可供配管、电气、仪表、消防、水道、结构等主要专业协同工作,设计要素统一实时体现,辅以统一参考坐标、实时碰撞检查等常规手段,设计质量和效率均得到有效提升。但是,各专业的设计工作和专业间配合并非只是空间定位和碰撞检查那么简单,各相关专业间存在大量的设计要素数据需要传递和交换,而且有的设计要素数据的形式结构较为复杂,传递路由也较为曲折往复。为了挖掘软件最大的效用,克服设计软件间交流的壁垒,梳理软件间数据流的传递样本、构建数据流传递的通道,是大型工程设计软件应用到一定程度必须面对的问题。
1 任务分析
长期以来,S3D与CAESAR II(以下简称C2)是存在数据壁垒的,许多设计单位在进行管道设计时,配管专业在S3D软件中建库建模,添加逻辑支架,抽取ISO图供应力专业作为设计输入。而由于数据壁垒的存在,只能通过人工处理图纸,应力专业需要经过人工读图,人工参数输入,导致效率低下。目前装置的大型化更是加剧了这个情况的发生。装置内框架上的情况尚可,在全厂多辄几公里的大型管廊上,由于支架设置的雷同,管道支架不可避免的增减调整给上述2个专业设计人员带来巨大的核对工作量。因此,为了减轻双方设计人员的压力,实现配管和应力双方软件层面的有效沟通,引入了S3D逻辑支架唯一标识符(ID code)的概念,并通过一系列数据转换,打通S3D-C2-S3D的路由,提高了三维模型的设计深度,也为设计人员对于管道应力相关内容的把握提供了模型、图纸和报表上灵活、全方位的帮助。
2 实现方法
2.1 S3D-CAESAR II数据流
2.1.1 逻辑支架唯一标识符的确定
在项目详细设计阶段,重要管线的配管研究一般是和管道支架的准确设置(甚至支架选型)同步进行的,为了实现管道支架在两个甚至多个软件之间流转,给予其一个唯一标识符是必须的。有的文章[1]提到为了实现管道支架Pcf导入支架约束类型而不采用支架流水号的做法,将支架选型的初步工作转移给了配管专业人员,但是支架约束类型的最终确定是由应力专业人员通过软件计算得出。因此,分析比较多种情况,从S3D和C2的配置需求、整个流程的贯通性等综合因素考虑,选择逻辑支架的名字(Name属性)作为唯一标识符。其实现方法有两种。
第一种方法是:全厂采用统一命名规则,设置支架,批量命名。见图1。
图1 逻辑支架命名规则界面
第二种方法采用支架名、管线号批量导出的方法,在Excel中定制专属流水号,再批量导入S3D系统,该方法较灵活,但作业人员应对模型数据结构和SQL查询较熟悉。管道支架SQL查询结果见图2。
图2 管道支架SQL查询结果界面
这里必须确定的是:作为唯一标识符,支架流水号应在全厂范围内唯一,且符合一定的规范(一般为设计统一规定)。为了程序的便利和后期报表的美观,建议前期多添加一些支架(如长跨距管子中间支撑可以多设置一些),减少后期由于增减支架带来的流水号不通顺或流水号程序越界等问题。
2.1.2 S3D-CAESAR II数据
在S3D导出Pcf之前,要对Pcf的内容和C2系统设置文件进行一些讨论。
C2是可以进行静力学(Static)分析和动力学(Dynamic)分析的,然而一般设计院和工程公司常规做静力学分析,只在某些特殊工况(如安全阀泄放,压缩机脉动分析等)时做动力学计算。静力学计算需要的管道和介质参数不多,详见表1。
表1 管道应力分析S3D-C2参数传递
观察上表,需要映射的属性组有管道材料(PCF_MAT_MAP),以及一些属性单位(PCF_UNITS_MAP)、应力放大系数(PCF_SIF_MAP)、约束类型(PCF_RES_MAP),相关文章[1]有过介绍,在此不再赘述。
2.1.3 Pcf文件输出及内容分析
为了确保S3D-C2数据传递的有效性,需要定制Pcf文件。Pcf文件的组成见图3。
图3 Pcf文件内容界面
目前研究对象是集中载荷即支架,图3中给出了支架的类型、位置、载荷方向、支架ID码、oid和名字,确保支架Name的唯一有效。
在映射定制完成后,C2可以按JOBNAME进行Pcf的导入,并在C2中进行应力分析和支架选类(Restraint),Restraint类型见图4。
图4 约束类型界面
2.2 C2-S3D反向数据流导入
在应力专业完成计算后,可以按常规输出计算书,也可以按JOBNAME进行C2_MDB文件的输出,常规计算书的数据格式为Excel文件,可以编写各类程序如VBA进行数据处理,按列整理出支架流水号(NAME)、应力节点号(NODE)、各类载荷大小、弹簧数据等,此处S3D属性导入也需增添相关的Interface,定制相关的xml映射文件,通过支架流水号串联oid(S3D)以实现基于logic support oid的支架属性导入。支架属性导入映射代码见图5。
图5 支架属性导入映射代码(部分)界面
注:Pcf导入C2时,逻辑支架Name不能带有”,”等特殊字符,否则C2无法获取RES_NAME(即S3D中Name)。
此处也可以批量替换支架名(Name),将支架确定约束类型(Restraint)添加到Name上,实现S3D中ISO图的表达,以减轻应力专业人员手工添加ISO图节点号,约束类型的工作。添加支架类型后ISO见图6。
图6 添加支架类型后ISO图
2.3 集中载荷点ACAD条件提出
在工厂设计中,框架初步设计、均布及集中载荷点的提出是管道专业需要完成的工作,尤其是集中载荷点的绘制,是传统AutoCAD(以下简称ACAD)模式下比较耗时耗力、错误率较高的工作。在按支架流水号把应力节点各类载荷信息导入S3D模型之后,进一步考虑是否可以从模型中输出结构载荷条件。但经过多番尝试,由于专业分工、模型深度、风格包定制或切图效果等原因,从模型中直接输出载荷条件图效果较不理想。
于是,采用ACAD_VBA编程进行框架集中载荷点定位和标号,MTEXT进行载荷表导入方案逐步形成。其逻辑图见图7。
图7 集中载荷条件程序绘图逻辑图
为了实现图7功能,需要对S3D逻辑支架位置进行SQL查询,此处用到的Partclass有JHgrPipeSupport,Interface有JLocalCoordinateSystem,关系数据库表间关系有XHgrSup port_RSLT、XSupportedPorts,查询结果见图8。
图8 支架位置查询界面
由于SQL查询无法进行参考坐标系运算,需要对导出的笛卡尔坐标系坐标值进行换算,这个换算坐标系的原点应与ACAD集中载荷条件图纸上的(0,0,0)点重合,以利于后续ACAD支架块定位程序的编写。
在S3D中,坡度管可能导致支架定位不准,在报表导出时产生零碎值,需要Excel进行数据圆整处理;支架定位有了之后,再基于流水号把载荷信息通过Vlookup函数从应力计算报告上取过来,此时,对于应力计算各工况数据的分析是必须的。支架位置Excel数据整理见图9。
图9 支架位置Excel数据整理界面
以下是ACAD_VBA该部分程序片段:
●建立支架图块
For i=0 To ThisDrawing.Blocks.Count-1
Set supportblock=ThisDrawing.
Blocks.Item(i) '查找旧块
If supportblock.Name="支架" Then GoTo insblock
Next i
Set supportblock=ThisDrawing.
Blocks.Add(basep, "支架") '新建一个"支架"块
pline(0)=-200: pline(1)=-200: pline(2)=0
pline(3)=200: pline(4)=200: pline(5)=0
Set plineObj1=ThisDrawing.
ModelSpace.AddPolyline(pline)
linep2(1)=1
plineObj1.ConstantWidth=30
'设置线宽
Set plineObj2=plineObj1.Mirror(linep1, linep2) '镜像
●获取Excel数据,并导入至支架图块属性集
Dim Excelapp As Excel.Application '定义excle应用程序变量
Dim Excelsheet As Worksheet '定义工作表变量
Set Excelapp=CreateObject
("Excel.application") '激活Excel程序
Excelapp.Workbooks.Open ("D:atta_loc.xlsx") '打开工作薄
Set Excelsheet=Excelapp.
ActiveWorkbook.Sheets("atta_loc") '当前工作表为sheet1
corow=Excelsheet.
UsedRange.Rows.Count '计算工作表的总行数
For i=2 To corow
Set supportlay=ThisDrawing.
Layers.Add(Excelsheet.Cells(i, 6).Value)
'新建图层
supportlay.color=
Excelsheet.Cells(i, 7).Value '图层颜色
ThisDrawing.ActiveLayer=supportlay '将当前图层设置为支架图层
attrtxt0=Excelsheet.Cells(i, 1).Value
attrtxt1=Excelsheet.Cells(i, 2).Value
p(0)=Excelsheet.Cells(i,3).Value
p(1)=Excelsheet.Cells(i, 4).Value
Set blockRef=ThisDrawing.
ModelSpace.InsertBlock(p, "支架", 1, 1, 1, 0) '插入块
Attr3=blockRef.GetAttributes '获取块属性
Attr3(0).TextString=attrtxt0 Attr3(1).TextString=attrtxt1
Next i
在支架导入前按位置和层高进行分类,通过程序定制,同类支架将归入相同图层,并通过不同颜色体现,后期在进行ACAD分图时,可根据图层进行批量移动,其最终效果见图10。
图10 支架图块批量绘制
下一步,将根据支架所在Piperun保温情况、弹簧是否配置等进行支架安装高度计算,实现支架底标高与梁顶标高差值计算,结合管径、隔热厚、支架导向方向等确定结构T型架的位置、方向、规格、载荷与标高。集中载荷表批量导入效果见图11。
图11 ACAD集中载荷导入(局部)
3 结语
本文进行了在S3D-C2-S3D-ACAD框架下集中载荷数据流转的分析,通过目标管道支架编写流水号,提高配管与应力设计人员沟通效率,减少应力设计人员手画单线图上支架类型的时间和错误,使S3D模型的深度也有了一定程度的加强;结合Excel的数据处理功能,编写ACAD_VBA代码,实现了集中载荷条件的自动绘制,在此基础上,甚至可以批量绘制T型架、平台开孔、管墩等设计要素,实现模型与提出条件的一致性。