ifccolumn在空间中的坐标计算

 

 

#6= IFCCARTESIANPOINT((0.,0.,0.));
#18= IFCDIRECTION((0.,-1.,0.));
#20= IFCDIRECTION((0.,0.,1.));
#24= IFCDIRECTION((1.,0.));

#32= IFCAXIS2PLACEMENT3D(#6,$,$);
#33= IFCLOCALPLACEMENT(#3158,#32);

#180= IFCCARTESIANPOINT((0.,0.,16000.));
#182= IFCAXIS2PLACEMENT3D(#180,$,$);
#183= IFCLOCALPLACEMENT(#33,#182);
#184= IFCBUILDINGSTOREY('3uQkDb6xzB9fWxS3bOs2TG',$,'F9',$,$,#183,$,'F9',.ELEMENT.,16000.);

#3140= IFCCARTESIANPOINT((16335.2624470437,29132.8063887903,-16000.));
#3142= IFCAXIS2PLACEMENT3D(#3140,$,$);
#3143= IFCLOCALPLACEMENT(#183,#3142);
#3145= IFCCOLUMN('0i1TvSO7n5bg7z8ta4LJ35',$,'\X2\6DF751DD571F\X0\ - \X2\77E95F62\X0\ - \X2\67F1\X0\:1450 x 1450mm:232786',$,'1450 x 1450mm',#3143,#3137,'232786',.COLUMN.);

#3158= IFCLOCALPLACEMENT($,#3157);
#3157= IFCAXIS2PLACEMENT3D(#6,$,$);

#3111= IFCCARTESIANPOINT((0.,0.));
#3113= IFCAXIS2PLACEMENT2D(#3111,#24);
#3114= IFCRECTANGLEPROFILEDEF(.AREA.,'1450 x 1450mm',#3113,1200.,1200.);
#3115= IFCCARTESIANPOINT((0.,0.,16000.));
#3117= IFCAXIS2PLACEMENT3D(#3115,#20,#18);
#3118= IFCEXTRUDEDAREASOLID(#3114,#3117,#20,4000.);

#3122= IFCSHAPEREPRESENTATION(#105,'Body','SweptSolid',(#3118));
#3124= IFCAXIS2PLACEMENT3D(#6,$,$);
#3125= IFCREPRESENTATIONMAP(#3124,#3122);

#3127= IFCCOLUMNTYPE('0i1TvSO7n5bg7z8ta4LJCn',#42,'1450 x 1450mm',$,$,$,(#3125),'232419','1450 x 1450mm',.COLUMN.);
#3978= IFCRELDEFINESBYTYPE('3IMOcmRBjErBic0YWvdyog',$,$,$,(#3145),#3127);
#3315= IFCRELCONTAINEDINSPATIALSTRUCTURE('0DxL1M_1j4jei$RJ105_QT',$,$,$,(#3145),#184);

 

为了计算IFCCOLUMN(#3145)在空间中的坐标,我们需要根据提供的IFC片段逐步解析其位置。以下是详细的计算步骤:

  1. ‌原点与方向‌:

    • #6= IFCCARTESIANPOINT((0.,0.,0.)):定义了全局坐标系的原点。
    • #18= IFCDIRECTION((0.,-1.,0.))#20= IFCDIRECTION((0.,0.,1.))#24= IFCDIRECTION((1.,0.,0.)):定义了三个方向向量,但在这个计算中我们主要关注Z轴方向(#20)。
  2. ‌轴2放置与局部放置‌:

    • #32= IFCAXIS2PLACEMENT3D(#6,$,$):基于原点但没有方向变化的轴2放置。
    • #33= IFCLOCALPLACEMENT(#3158,#32):由于#3158也是基于原点的放置(通过#3157#6确认),所以#33同样表示原点处的局部放置。
    • #182= IFCAXIS2PLACEMENT3D(#180,$,$):基于点#180(0,0,16000))的轴2放置,没有方向变化。
    • #183= IFCLOCALPLACEMENT(#33,#182):将#182的放置应用于#33(原点),得到新的局部坐标系,其原点在(0,0,16000)
  3. ‌楼层定义‌:

    • #184= IFCBUILDINGSTOREY(...,#183,...):定义了楼层,其局部放置是#183,即楼层原点在全局坐标系的(0,0,16000)
  4. ‌柱子的局部放置‌:

    • #3142= IFCAXIS2PLACEMENT3D(#3140,$,$):基于点#3140(16335.2624470437,29132.8063887903,-16000.))的轴2放置,没有方向变化。
    • #3143= IFCLOCALPLACEMENT(#183,#3142):将#3142的放置应用于#183(楼层原点),得到柱子的局部坐标系。
  5. ‌计算柱子的全局坐标‌:

    • 柱子的局部坐标是#3140,即(16335.2624470437,29132.8063887903,-16000.)
    • 这个坐标是相对于#3143的,而#3143是基于#183(楼层原点(0,0,16000))的。
    • 因此,我们需要将柱子的局部坐标加到楼层原点的坐标上:
      • X坐标:16335.2624470437
      • Y坐标:29132.8063887903
      • Z坐标:16000 + (-16000) = 0(但注意,这里我们是在楼层坐标系中计算,所以相对于全局坐标系,Z坐标实际上是16000 - 16000 = 0加上楼层的高度,因此仍然是16000的楼层高度位置)

所以,IFCCOLUMN(#3145)在空间中的全局坐标是(16335.2624470437, 29132.8063887903, 16000),考虑到它是在楼层高度为16000的位置。这个坐标是基于全局坐标系的,并且已经考虑了楼层和柱子相对于全局原点的偏移。

 

 

 

 

 

 

################################################

 

posted @ 2024-12-07 01:01  西北逍遥  阅读(4)  评论(0编辑  收藏  举报