ifccolumn在空間中的座標計算

西北逍遥發表於2024-12-07

#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的位置。這個座標是基於全域性座標系的,並且已經考慮了樓層和柱子相對於全域性原點的偏移。

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

相關文章