BIMHome v1.0.0
BIMHome接口文档说明
ProfileSteelFactory.h
浏览该文件的文档.
1/************************************************************************
2* @file ProfileSteelFactory.h
3*
4* @brief 型钢构件创建工厂类
5*
6* @details 型钢构件创建工厂类
7*
8* @author renduo
9*
10* @version 版本号 V0.1
11*
12* @date 2024-9-12
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef PLATFORMALGORITHM_PROFILESTEELFACTORY_H
19#define PLATFORMALGORITHM_PROFILESTEELFACTORY_H
20
21#include <BHGlobal.h>
22#include <string>
23#include <Base/Placement.h>
24
25namespace Base {
26 class Placement;
27}
28
29namespace App {
30 class IDocument;
31 class IDocumentObject;
32}
33
34namespace PlatformAlgorithm {
35
36 //注意:各个型钢构件详细参数说明请看具体生成形体的类
37 class PlatformAlgorithmEXPORTS ProfileSteelFactory
38 {
39 public:
40
56 double d,
57 double t,
58 double r1,
59 double r2,
60 double l,
61 const std::string& objName = "BeamChannel",
62 const Base::Placement& placement = Base::Placement(),
63 App::IDocument* pDoc = nullptr);
64
77 double d,
78 double t,
79 double r1,
80 double r2,
81 double l);
82
98 double d,
99 double t,
100 double r1,
101 double r2,
102 double l,
103 const std::string& objName = "DoubleAngleSteel",
104 const Base::Placement& placement = Base::Placement(),
105 App::IDocument* pDoc = nullptr);
106
119 double d,
120 double t,
121 double r1,
122 double r2,
123 double l);
124
140 double d,
141 double t,
142 double r1,
143 double r2,
144 double l,
145 const std::string& objName = "DoubleChannelSteel",
146 const Base::Placement& placement = Base::Placement(),
147 App::IDocument* pDoc = nullptr);
148
161 double d,
162 double t,
163 double r1,
164 double r2,
165 double l);
166
182 double d,
183 double t,
184 double r1,
185 double r2,
186 double l,
187 const std::string& objName = "EquilateralAngleSteel",
188 const Base::Placement& placement = Base::Placement(),
189 App::IDocument* pDoc = nullptr);
190
203 double d,
204 double t,
205 double r1,
206 double r2,
207 double l);
208
224 double width,
225 double height,
226 double thickness,
227 double radius,
228 double length,
229 const std::string& objName = "HBeam",
230 const Base::Placement& placement = Base::Placement(),
231 App::IDocument* pDoc = nullptr);
232
245 double width,
246 double height,
247 double thickness,
248 double radius,
249 double length);
250
266 double width,
267 double height,
268 double thickness,
269 double radius1,
270 double radius2,
271 double length,
272 const std::string& objName = "IBeam",
273 const Base::Placement& placement = Base::Placement(),
274 App::IDocument* pDoc = nullptr);
275
288 double width,
289 double height,
290 double thickness,
291 double radius1,
292 double radius2,
293 double length);
294
308 const std::string& pointArrayStr,
309 const std::string& normalStr,
310 double length,
311 const std::string& objName = "PolygonRoundSteelTube",
312 const Base::Placement& placement = Base::Placement(),
313 App::IDocument* pDoc = nullptr);
314
325 const std::string& pointArrayStr,
326 const std::string& normalStr,
327 double length);
328
343 double length,
344 double height,
345 double width,
346 double thickness,
347 const std::string& objName = "RectangularSquareSteelTube",
348 const Base::Placement& placement = Base::Placement(),
349 App::IDocument* pDoc = nullptr);
350
362 double length,
363 double height,
364 double width,
365 double thickness);
366
380 double radius,
381 double thickness,
382 double length,
383 const std::string& objName = "RoundSteelTube",
384 const Base::Placement& placement = Base::Placement(),
385 App::IDocument* pDoc = nullptr);
386
397 double radius,
398 double thickness,
399 double length);
400
416 double width,
417 double height,
418 double thickness,
419 double radius,
420 double length,
421 const std::string& objName = "SquareSteelTube",
422 const Base::Placement& placement = Base::Placement(),
423 App::IDocument* pDoc = nullptr);
424
437 double width,
438 double height,
439 double thickness,
440 double radius,
441 double length);
442
458 double width,
459 double height,
460 double thickness,
461 double radius,
462 double length,
463 const std::string& objName = "TBeam",
464 const Base::Placement& placement = Base::Placement(),
465 App::IDocument* pDoc = nullptr);
466
479 double width,
480 double height,
481 double thickness,
482 double radius,
483 double length);
484
485 };
486
487
488}
489
490
491#endif // PLATFORMALGORITHM_PROFILESTEELFACTORY_H
文档接口类
Definition IDocument.h:43
Definition IDocumentObject.h:35
Placement 类,表示三维空间中的位置和旋转
Definition Placement.h:34
static void updateTBeamParameters(App::IDocumentObject *pObj, double width, double height, double thickness, double radius, double length)
更新T型钢参数
static void updateHBeamParameters(App::IDocumentObject *pObj, double width, double height, double thickness, double radius, double length)
更新H型钢参数
static App::IDocumentObject * createRectangularSquareSteelTube(double length, double height, double width, double thickness, const std::string &objName="RectangularSquareSteelTube", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
创建矩形钢管
static App::IDocumentObject * createBeamChannel(double d, double t, double r1, double r2, double l, const std::string &objName="BeamChannel", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
创建钢槽
static App::IDocumentObject * createDoubleChannelSteel(double d, double t, double r1, double r2, double l, const std::string &objName="DoubleChannelSteel", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
创建双槽钢
static void updateEquilateralAngleSteelParameters(App::IDocumentObject *pObj, double d, double t, double r1, double r2, double l)
更新等边型钢参数
static App::IDocumentObject * createDoubleAngleSteel(double d, double t, double r1, double r2, double l, const std::string &objName="DoubleAngleSteel", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
创建双角钢
static void updateDoubleChannelSteelParameters(App::IDocumentObject *pObj, double d, double t, double r1, double r2, double l)
更新双槽钢参数
static App::IDocumentObject * createHBeam(double width, double height, double thickness, double radius, double length, const std::string &objName="HBeam", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
创建H型钢
static void updateBeamChannelParameters(App::IDocumentObject *pObj, double d, double t, double r1, double r2, double l)
更新钢槽参数
static App::IDocumentObject * createRoundSteelTube(double radius, double thickness, double length, const std::string &objName="RoundSteelTube", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
创建圆形钢管
static App::IDocumentObject * createIBeam(double width, double height, double thickness, double radius1, double radius2, double length, const std::string &objName="IBeam", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
创建工型钢
static void updatePolygonRoundSteelTubeParameters(App::IDocumentObject *pObj, const std::string &pointArrayStr, const std::string &normalStr, double length)
更新多边形钢管参数
static App::IDocumentObject * createSquareSteelTube(double width, double height, double thickness, double radius, double length, const std::string &objName="SquareSteelTube", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
创建方型钢管
static App::IDocumentObject * createTBeam(double width, double height, double thickness, double radius, double length, const std::string &objName="TBeam", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
创建T型钢
static App::IDocumentObject * createEquilateralAngleSteel(double d, double t, double r1, double r2, double l, const std::string &objName="EquilateralAngleSteel", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
创建等边型钢
static App::IDocumentObject * createPolygonRoundSteelTube(const std::string &pointArrayStr, const std::string &normalStr, double length, const std::string &objName="PolygonRoundSteelTube", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
创建多边形钢管
static void updateSquareSteelTubeParameters(App::IDocumentObject *pObj, double width, double height, double thickness, double radius, double length)
更新方型钢管参数
static void updateDoubleAngleSteelParameters(App::IDocumentObject *pObj, double d, double t, double r1, double r2, double l)
更新双角钢参数
static void updateRectangularSquareSteelTubeParameters(App::IDocumentObject *pObj, double length, double height, double width, double thickness)
更新矩形钢管参数
static void updateRoundSteelTubeParameters(App::IDocumentObject *pObj, double radius, double thickness, double length)
更新圆形钢管参数
static void updateIBeamParameters(App::IDocumentObject *pObj, double width, double height, double thickness, double radius1, double radius2, double length)
更新工型钢参数
Definition ProfileSteelFactory.h:38
Definition BaseFigureFactory.h:28
Definition BaseFigureFactory.h:24
Definition BaseFigureFactory.h:33