APP下载

三维桁架结构图分拆与相贯线数据提取方法研究

2010-01-01曹建福孙元嘉

图学学报 2010年3期
关键词:交管管件轴线

曹建福, 孙元嘉

(西安交通大学电信学院,陕西 西安 710049)

随着各种大型建筑工程中钢桁架结构的普遍应用,需要在数控管切割设备上进行大量的相贯线切割作业。由于多管相贯线的计算较复杂,数控切割代码的生成必须利用专门的图形化自动编程系统。传统管相贯几何建模是采用参数化图形方式,这种方式因为要逐个输入参数,几何模型的建立效率非常低,而且只能适用于若干种给定管件相贯的情况。提高编程效率的一种可能途径是从所绘制的桁架CAD 实体图形文件,将每个相贯节点直接拆分成切管、交管,并唯一地确定切管与其相关管件的空间位置、角度,然后通过计算获得切割相贯线的数据。核心的问题是三维设计图的分拆,相贯线切割数据的提取。三维桁架结构设计图的分拆可以看成是其三维实体造型的逆过程,对三维实体造型技术目前已进行了大量的研究。建筑桁架结构的实体设计图是基于三维曲面表示,把一个三维曲面展开成平面图已有一些成熟的方法[1],一些人正致力于研究复杂三维曲面的平面展开问题[2]。但对三维结构设计图的分拆和多管相贯数据的提取问题,国内外还缺乏相应的研究[3-5]。

本文为了解决多管相贯线数控切割的图形化编程问题,讨论了三维结构设计图的分拆和相贯线加工数据提取方法,提出的算法可直接分拆钢桁架结构的三维CAD 实体图形,唯一地确定出管件的参数及多管件之间空间角度,同时计算出相贯线切割所需要的各种参数。

1 管件信息的提取

建筑桁架CAD 实体模型图中,所有的三维实体都是以曲面形式表示,需要将曲面表示的实体转化为管件实体(圆柱体、长方体)。如何从一个曲面表示模型中得到管件的参数就成为首先需要解决的问题。需要提取的参数为:① 切管的内外壁半径;② 交管以及主管的外半径;③ 切管两端分别与两根主管轴心交点间的距离(即切管的管心间中心距);④ 切管以及各个相关交管轴线与主管的轴交角;⑤ 各个交管轴线相对于切管与主管轴线形成平面的扭角;⑥ 若主管之间不相互平行,还要求得一主管轴线相对于切管与另一端主管轴线形成平面的扭角。其中,第①、②、③类参数直接从曲面表示模型可以获取到,第④、⑤、⑥类参数则要根据空间几何结构进行计算得到。

三维曲面表示描述的是桁架的整体结构,它不能给出相贯处的几何结构信息,无法知道所选中的实体是否是管件。为了获取相贯节点的结构信息需对实体图进行细分,将三维曲面解构成为一系列四边形小平面,如图1 所示。对圆柱曲面表示按上下底面横截面圆周N 等分(N≥20),用直线连接上下面等分点,并连接圆周截面上相邻的等分点,这样就形成了许多平行于圆柱轴线的四边形小平面。从这些四边形小平面得到它的4个顶点,最终得到组成曲面边缘线的一系列点。实际上这是参数化编程生成三维实体造型的逆过程。在程序实现时,通过调用 Explode ( KeepEntity )函数。其中,参数KeepEntity 为布尔型变量,表示在解构之后是否保持原实体的结构。由这个方法可以得到一系列组成实体的下一级实体,在下面实体数组中存储得到的下一级实体集合:

CvdPolyface polyf; //定义曲面

polyf.AttachDispatch(fig,FALSE); //得到选中曲面

COleObjectArray oarray1=polyf.Explode (TRUE); //曲面解构,得到实体数组

图1 管件曲面构造示意图

曲面解构后得到的是一系列四边形小平面,四边形小平面可以继续解构得到构成小平面的多画线,多画线进一步解构得到一系列直线或圆弧,直线和圆弧作为基本图元就不能继续解构了。取任意一个四边形小平面继续解构,得到多画线。继续解构多画线,最终得到组成多画线的 四条直线: p1p2、 p2p3、 p3p4、 p4p1,这四条直线中 p1p2与 p3p4, p2p3与 p4p1平行且相等,见图1(a)。取具有同一顶点的直线 p1p2和p4p1,一般这两条直线中较长直线的长度就等 于圆柱的长度。在得到组成曲面的各直线之后,就可以求得这些直线的两端点。将其中处于同一 底面圆上的N 个点按顺序命名为 p1、 p2、…、pN,则两点 pn与pN2+n 关于圆心对称,见图 1(b)。取这两点的长度则是圆柱的直径,而它们的中点正是底面圆的圆心。分别求出上下底面的圆心,它们连接而成的直线就是圆柱的中心线。

求出构成曲面的所有各点,用上述方法可以计算出圆柱的各参数信息。仅取一组点计算出的值可能会存在较大的误差,为了减小误差,每隔一定的角度取一个计算点,来计算多组参数值,最后取这些值的平均值,来作为最终的管件参数。

2 管件的空间定位

2.1 相交管件分类

从设计图中取得一根切管和若干交管之后,按照多管相交模型的要求,需要将这些交管分类。由于切管两端(分别定义为0 端和1 端)都可能有交管与之相交,因此按照交管与切管相交的情况,将交管分为三类:与切管0 端相交、与切管1 端相交和非与切管端头相交。分别建立3个数组CrossPipe0、CrossPipe1、CrossPipe2,来保存各类交管的空间位置参数。可通过计算切管端点与交管轴线之间的距离,来判断交管的类型。将切管0 端和1 端到交管的距离分别记为 d0、 d1,交管的半径记为r。如果 d0< d1,并且 d0< 4r,则认为这个交管与切管的0 端相交。如果 d0> d1,并且 d1< 4r,则认为此交管与切管 的1 端相交。如果这两个条件都不满足,则此交管属于第三类。

根据多管相交的几何结构,知道在前两类的交管当中,应该有一根交管为主贯通体称之为主管,需要在诸多交管中将主管确定下来。一般情况下,要求主管的外径大于等于切管外径和其他所有交管的外径。因此,在所有交管中,只有直径最大的才有可能是主管。而当有不止一根交管的外径相等并且大于其它所有交管外径的时候,就要判断哪根交管贯通了切管,也就是交管两端点到切管的距离是否都大于切管外径,如果都大于,则该交管为管通体;否则,交管就不是主管。按照上述方法,分别在与0 端相交的切管和与1端相交的切管中找出主管,并将主管的参数保存在相应交管类型数组中的第一个位置,其它交管作为一般交管按照选取顺序在数组中保存。

2.2 多管件相交参数定义

要计算多管相交的相贯线,就需要先得到管件之间的相交参数。这些参数在三维空间当中,观察方式选择不同其定义会不同。不同点表现在:一种参数在不同的定义方式下得到的的值可能有正负的差别,或者得到的角度为互补。这样在同一管件的参数计算和相贯线计算中,必须使用同一种定义,以便保证三维空间管件相交的参数定义一个具有唯一性。以切管0 端为例,自身参数有:杆件长度、被切管件壁厚、切管外壁直径,切割坡口角度;切管与主管相交的参数有:切管0 端主管外壁直径,切管0 端主管与切管夹角;每一根交管与切管的参数有:交管长度,交管外壁直径,交管与切管扭角,交管与切管夹角,交管与切管管心间交叉距离。管件的长度第1 节已得到,壁厚和坡口角度由对话框输入,其它参数需进行计算获得。

为定义多管件相交参数需建立坐标系,以主管轴线为x 轴,主管轴线起点指向终点的方向为x 轴正方向,由切管轴线与主管轴线构成的平面为xoz 平面,切管轴线与主管轴线的交点为原点O,如图2 所示。设原点O 在空间坐标系的坐标 为( ox, oy, oz),x 轴正方向在空间坐标系的矢量a 为( xa, ya, za),切管轴线在空间坐标系下的矢量b 为( xb, yb, zb)。令不与切管相交的交管轴线一端点P 的空间坐标为( px, py, pz),点P 在xoz 平面上的投影为点C。见图2 所示,定义d 为交管轴线与主管轴线的交点到O 点的距离,α 为 切管轴线与x 轴正方向的夹角,β 为切管轴线到 交管轴线在xoz 平面上投影的夹角。见图3 所示,过原点延x 轴正方向并垂直于x 轴的平面上,设切管轴线在这个平面的投影为OA,交管P 点在这个平面的投影为点Q。定义交管与切管之间扭角为γ , γ 为角 ∠ A OQ,取值范围是−180°到180°,顺时针夹角为正值。

图2 在xoz 平面上投影的参数定义图

图3 在垂直xoz 平面上投影的参数定义图

在切管两端都有管件与其相交的时候,切管参数分别以各自的主管为基准定义并计算。因为在同一根交管上相交的切管之间的位置不是任意的,因此在计算切管两端参数的时候,这两组位置参数之间将存在固定的关系。这种关系可由它们各自基准之间的关系来确定,为此另外定义 一个参数:切管两端主管之间的夹角 γ1,后面代入交管1 端的角度循环参数都需要加上 γ1的值,定义方法如图4 所示。设切管轴线0 端端点为O0,0 端主管轴线上起点指向终点的矢量为 a0。以切管0 端为基准,过 O0作垂直于切管轴线的 平面,其法线方向为指向切管1 端。设0 端主管 轴线起点 P0在此平面上的投影点 C0,1 端主管轴线起点 P1在此平面上的投影点 C1,则角 γ1为∠C0O0C1,取值范围是−180°到180°,以顺时针 方向为正。

图4 两端主管夹角定义图

3 多管相交参数的计算

3. 1 多管相交参数的计算

在所有参数当中,可以直接得到的有切管杆件长度L、切管外径rc、切管壁厚dc、主管外径r0、交管i 外径ri,其它的参数需进行计算。

交管与切管管心间交叉距离d 是一个可以取正也可取负值的标量,它的大小就是交管轴线与主管轴线交点到切管轴线与主管轴线交点的距离,当切管轴线与交管的轴线在xoz 平面上的投影不相交时,d 取的是正值;相交时d 取负值。

除交管与切管管心间交叉距离d 之外,其它需要计算的是角度值,主要是管件在某个平面上投影的夹角,因此需要多次计算空间点在某个平 面上的投影点。若有一过点O( ox, oy, oz)并且由两相交矢量a( xa, ya, za)与b( xb, yb, zb)构成的平面,则平面的法向量p( x0, y0, z0)为

那么,这个平面的方程为

求一个点P( px, py, pz)在这个平面上的投影点C( cx, cy, cz)的公式为

在计算参数角度值时,所得均为构成角度的3 个点值,因此计算空间角度值使用公式

其中 d1、 d2、 d3为分别三点两两间距离,角α 为边 d3的对角。

下面就以切管0 端为例介绍各角度参数的计算:

(1) 切管与主管夹角α

取值范围是0°到180°,由于切管是定义参数的基准管件之一,所以这个参数不取负值。计算方法为:将切管轴线与主管轴线的交点O、与主管轴线终点、切管轴线1 端端点,这三点间距离代入式(4)中求得。

(2) 交管与切管夹角β

取值范围是−180°到180°,通过计算交管在 xoz 平面上投影与主管轴线正方向夹角 β '来得 到的。首先利用式(3)计算交管不与切管相交的端点在xoz 平面上的投影点C,加上交管轴线与主管轴线交点和主管轴线终点,再使用式(4)计算 β ',最后得到β = β '-α 。

(3) 交管与切管扭角γ

取值范围在−180°到180°。计算方法是:首先得到过原点O 延x 轴正方向并垂直于x 轴的平面的方程,之后按照定义求得切管轴线1 端端点在这个平面的投影点A,交管P 点在这个平面的投影点Q,使用式(4)求得角γ 的大小。由于式(4)所得的角只有正值,接下来还需要判断角γ 的正负。

判断方法如下:

首先需要交管P 点空间坐标( px, py, pz),Q点坐标( qx,qy,qz),以及平面法向量( x0, y0, z0)。

(4) 切管两端的主管间夹角 γ1

取值范围也是-180°到180°。计算方法类似扭角γ ,都是先计算大小,后判断正负。计算大小时先要得到过切管轴线0 端端点O0并垂直于切管的平面方程,接下来按照定义求出0 端主管轴线起点P0在此平面上的投影点C0,切割1 端主管轴线起点P1在此平面上的投影点C1。这时先不计算角的大小而是还需要进行一个步骤。在定义这个参数的时候是以各主管轴线的起点来计算的,其中有一个潜在的要求就是两主管

上由起点指向终点的向量 a0与 a1的方向大体上 应该是保持一致的。也就是说它们之间的夹角不应超过90°。但是在得到的设计图中是不能保证这一点的,因此要先对 C1点进行检测。经 过检测如果 a0与 a1的方向不一致,那么交换切 管轴线1 端主管轴线的起点与终点,用新的起点重新计算投影点C1。

之后就与切管之间扭角γ 的计算方法相同:先将O0、C0、C1代入式(4)中计算γ1的大小,再判断γ1取值的正负。

3.2 多管相交参数的表示

钢桁架结构中交管的数量在理论上是可以有无限多,但在程序实现时不可能设置无穷多的存储空间,所以实际的软件系统对切管每一端交管数量有所限制。2.1 中提到过建立了数组CrossPipe0,CrossPipe1 来保存各类交管的空间位置参数,这两个数组的大小就体现了对交管数量的限制。这两个数组中的第一个位置保存主管的数据,接下来依次保存各交管的数据,切管的数据由另外的数组来保存。

因为多管相交的参数众多,并且需要在几个功能模块之间传递,所以采取将参数保存在文件当中供需要者使用的方式。该文件从结构上分为3 个部分:

第1 部分是主管参数。开头是表示此文件保存多管相交参数的相交类型编号,接下来记录的是切管自身的参数,最后是分隔符EE,表示第1部分结束。

第2 部分是切管0 端交管参数。首先是主管自身参数,之后是分隔符E,用来隔开交管的参数;接下来按顺序保存各交管参数,之间用分隔符E 表识;最后是分隔符EE,表示第2 部分完成。

第3 部分保存的是切管1 端各交管参数。与第2 部分不同的是在主管参数的前面加上了两主管间夹角这个参数,其它都与第2 部分相同。

最终三维管件分拆效果如图5、图6 所示。图5 中深色管件即为选取的切管,图6 为提取后切管的三维实体图形。

图5 三维管件设计图

图6 拆分所得管件图

4 三维桁架实体图分拆与相贯数据提取软件的实现

作者开发的图形化相贯线自动编程软件包括:参数化编程模块、三维节点展开模块、加工代码生成模块、模拟仿真模块、自动排料模块、工艺管理模块。其中,三维节点展开模块实现从实体图当中提取出需要切割的管件,获取相交管件的信息,多管相交各种参数的计算。实现流程如图7 所示。

读入桁架CAD 实体图后,使用鼠标选定切管及交管,并输入切管壁厚和坡口角度参数。该模块将按照前面介绍的方法进行管件拆分,分别计算切管的空间参数、交管的空间参数。还要根据交管的中心线与切管中心线的关系,判断它是否与切管相交,如果不相交则不记录它的参数;若相交则多管相交的参数,并将参数按要求保存到参数文件中。图8 是三维实体图拆分软件功能界面。

提取出管件的相贯数据后,进行运动轨迹计算,就可生成切割机控制系统能够识别的加工代码。在锐龙LGK160I 等离子切割机,用作者开发的管切割图形编程系统拆分桁架CAD 实体图并生成加工代码,将加工代码下传到六轴管切割机控制系统当中,控制切割机完成对钢管的加工。实验表明这种方法编程效率高,现场数据也说明相贯线的切割误差不超过1mm。

图7 三维节点展开程序流程图

图8 三维实体图拆分功能界面

5 结 束 语

本文对提出了一种三维CAD 实体设计图分拆算法,利用该算法可从三维曲面表示的桁架实体图文件中求得管件参数,并可唯一地确定出三维空间中多管件之间的相交关系。论文给出了相贯点处各种管件参数求解方法,介绍了在数控管相贯切割机辅助设计软件中切割参数的表示方式。利用本文的方法计算获得的三维空间管件参数,是进一步完成相贯线计算、数控切割代码生成、管件三维实体图显示等功能的基础。

[1] 席 平. 三维曲面的几何展开[J]. 计算机学报, 1997, 20(4): 315-322.

[2] 毛国栋, 孙炳楠, 徐浩祥. 基于弹簧-质点系统的薄膜结构曲面展开算法[J]. 浙江大学学报, 2005, 39(8): 1238-1242.

[3] 甄洪栋, 季 忠, 刘 韧, 等. 多管相贯的数学模型及其在自动切割中的应用[J]. 山东机械, 2004, (6): 23-26.

[4] 生志荣. 利用最值方法求空间的几种距离[J].河北北方学院学报(自然科学版), 2008, 24(1): 10-11.

[5] Sheryl Staub-French, Atul hanzode. 3D and 4D modeling for design and construction coordination [C]// ITCON 12, Staub-French and Khanzode, 2007: 381-407.

猜你喜欢

交管管件轴线
太空“交管”亟待加强
压接式碳钢管材及管件在燃气工程的应用
曲轴线工件划伤问题改进研究
空铁联运+城市轴线,广州北“珠江新城”崛起!
大咖妙语论道!于轴线之上开启广州城央最宜居的大未来!
圆柱轴线相交相贯线解析性质分析
公安交管推行一站办结等6项新措施
细长薄壁管件车削变形误差控制研究
我国古代的交管立法
45°弯头管件注塑模设计