IFC中的裁剪线(IfcTrimmedCurve)

   裁剪线(IfcTrimmedCurve)是在两端裁剪的有界曲线。可以通过点或者参数在基线(BasisCurve)上裁剪,属性SenseAgreement指示裁剪线(IfcTrimmedCurve)的方向与基线(BasisCurve)的方向一致或相反。

     裁剪线(IfcTrimmedCurve)主要包括:

 (1)BasisCurve:基线,待裁剪的曲线。

 (2)Trim1:第一个裁剪点,可以为笛卡尔坐标点,也可以是实参数或两者。

 (3)Trim2:第二个裁剪点,可以为笛卡尔坐标点,也可以是实参数或两者。

 (4)SenseAgreement:标记裁剪线的方向是否与基础曲线的方向一致或相反。

 (5)MasterRepresentation:如果参数和点都出现在基线的两端,则表示首选形式。

   注:如果基线(BasisCurve)是闭合曲线,例如圆(IfcCircle)或椭圆(IfcEllipse),则SenseAgreement会影响裁剪线(IfcTrimmedCurve)的几何形状。

    如下图所示的四个弧(蓝色和绿色虚线,箭头显示不同的方向),即是在相同的基线上,通过位置相同的坐标点,但不同的裁剪参数和SenseAgreement形成的。

   裁剪线(IfcTrimmedCurve)通过选择基线的两个裁剪点之间的部分创建。相同的基线,可以通过不同的裁剪点形成不同的裁剪线。裁剪点可以通过以下方式识别:

(1)参数值

(2)几何位置

(3)以上都是

   参数SenseAgreement可以明确定义闭合曲线(如圆)的任何部分。有意义和有序的点的组合,使得可以定义闭合曲线上的两个不同点的四个不同的有向段。为此,假设参数范围的循环特性,例如370度相当于10度。

    裁剪线(IfcTrimmedCurve)的参数化来自基线。如下所示:

  •     如果SenseAgreement为TRUE:s = t - t1
  •     如果SenseAgreement为FALSE:s = t2 - t

    其中,t1是第一个裁剪点的参数,t2是第二个裁剪点的参数,两个裁剪点之间的部分是裁剪线的有效范围,参数范围0到|t2-t1|。

  IFC文件的内容为:

#272221=IFCTRIMMEDCURVE(#272220,(IFCPARAMETERVALUE(270.)),(IFCPARAMETERVALUE(308.301727590847)),.T.,.PARAMETER.);
#272220=IFCELLIPSE(#272219,5160.,5162.13939756375);
#272219=IFCAXIS2PLACEMENT2D(#272217,#25);
#272217=IFCCARTESIANPOINT((-20373.1438244965,-5162.2903144327));
#25=IFCDIRECTION((-1.,0.));

    #272221是裁剪曲线(IfcTrimmedCurve),基线是 #272220是椭圆曲线(IfcEllipse),两个裁剪点分别是IFCPARAMETERVALUE(270.),IFCPARAMETERVALUE(308.),SenseAgreement为True(裁剪线和基线方向相同),PARAMETER表示裁剪点使用实参形式。

    #272220是椭圆曲线(IfcEllipse), #272219是曲线的位置信息(IfcAxis2Placement2D)。

    #272217是点(IfcCartesianPoint), #25是方向(IfcDirection)。

猜你喜欢

转载自blog.csdn.net/liyazhen2011/article/details/82259083