IFC中的曲线(IfcCurve)
IfcCurve是二维空间或三维空间中的曲线,包括有界曲线和无界曲线。
注:曲线应该弧形连续,且弧长应该大于零。
IfcCurve是抽象定义,它的子类包括:IfcBoundedCurve, IfcConic, IfcLine, IfcOffsetCurve2D, IfcOffsetCurve3D, IfcPcurve。分别解释如下。
IfcBoundedCurve
有界曲线(IfcBoundedCurve)是有限长度的弧线。
注:有界曲线的弧长有限,具有起点和终点。
有界曲线(IfcBoundedCurve)的类型有:
(1)B样条曲线(IfcBSplineCurve)
(2)组合曲线(IfcCompositeCurve)
(3)曲线段(IfcPolyline)
(4)裁剪线(IfcTrimmedCurve)
IfcConic
圆锥曲线(IfcConic)是参数化的平面曲线。圆锥曲线可以通过平面与圆锥相交产生。可以通过其固有的几何特性定义,而不是通过其它几何形状来描述。
圆锥曲线有自己的位置坐标系(通过 Axis2Placement定义),它的相关参数定义在该坐标系中。
圆锥曲线(IfcConic)的类型有:
(1)圆(IfcCircle)
(2)椭圆(IfcEllipse)
IfcLine
线(IfcLine)是由点和方向定义的参数化的无界线。方向向量的长度会影响线的参数化表示,但不会影响线的无界性。
注:线段可以通过两个点形成的IfcPolyline 定义,也可以通过带有基线的IfcTrimmedCurve 定义。
线(IfcLine)主要包括:
(1)Pnt:线的位置。
(2)Dir:线的方向信息
线的参数化表示如下:
P = Pnt
V = Dir
λ(u) = P + uV
参数的定义范围 : -∞ < u < ∞
IfcOffsetCurve2D
二维偏移曲线(IfcOffsetCurve2D)是在二维空间中,相对于基线(BasisCurve)做偏移产生的。
在二维空间中,二维偏移曲线与基线相距固定的距离。通过沿基线的法线与基线之间的距离偏移来定义简单的平面偏移曲线。 基线在每个点都应有明确的切线方向。 在复合曲线的情况下,每个段之间的过渡段应该是相同的梯度或相同的曲率。
注:二维偏移曲线的性质可以与基线不同; 非自相交曲线的偏移后可以是自相交的。 应确保连续曲线偏移后不会变得不连续。
二维偏移曲线(IfcOffsetCurve2D)主要包括:
(1)BasisCurve:基线。
(2)Distance:偏移曲线与基准曲线的距离。 距离可以是正数,负数或零。 距离的正值定义了在与给定点处的切向量T成90度逆时针旋转的意义上与曲线垂直的方向上的偏移。
(3)SelfIntersect:指示偏移曲线是否自相交,该信息仅供参考。
二维偏移曲线从基线获取参数,其参数化表示如下:
λ(u) = C(u) + d(orthogonal_complement(t))
其中,t表示基线C(u)在u处的单位切向量,d表示距离,曲线应该是二维的。
IfcOffsetCurve3D
三维偏移曲线(IfcOffsetCurve3D)是在三维空间中,相对于基线(BasisCurve)做偏移产生的。
在三维空间中,三维偏移曲线与基线相距固定的距离。基线在每个点都应有明确的切线方向。 在复合曲线的情况下,每个段之间的过渡段应该是相同的梯度或相同的曲率。基线上任何点(参数)处的偏移曲线在方向V x T中,其中V是固定参考方向,T是基线的单位切向量。 为了明确定义偏移方向,T在曲线的任何一点都不应与V方向相同或相反。
注:三维偏移曲线的性质可以与基线不同; 非自相交曲线的偏移后可以是自相交的。 应确保连续曲线偏移后不会变得不连续。
三维偏移曲线(IfcOffsetCurve3D)主要包括:
(1)BasisCurve:基线。
(2)Distance:偏移曲线与基准曲线的距离。 距离可以是正数,负数或零。
(3)SelfIntersect:指示偏移曲线是否自相交,该信息仅供参考。
(4)RefDirection:定义从基础曲线到三维偏移曲线的方向。
三维偏移曲线从基线获取参数,其参数化表示如下:
λ(u) = C(u) + dV × T
其中,T表示基线C(u)在u处的单位切向量,V是固定的参考方向,d表示距离,曲线应该是三维的。
IfcPcurve
IfcPcurve是在其参考平面的参数空间内定义的曲线。虽然该曲线定义在二维空间,它涉及的变量是u,v(参考平面中的参数表示),而不是x, y(笛卡尔坐标系)。曲线定义在该参考平面的参数范围内。
IfcPcurve主要包括:
(1)BasisSurface:基础参考平面。
(2)ReferenceCurve:引用曲线。