From 8d50477335ff2a466b6992785fc65bd7c6e43799 Mon Sep 17 00:00:00 2001 From: gdd Date: Mon, 19 Apr 2010 18:06:39 +0000 Subject: [PATCH] 0020695: EDF 1076 GEOM: Add a new shape in GEOM: T-shape - Fix problem with group creation for pipe t-shapes with position - Update documentation --- doc/salome/gui/GEOM/images/pipetshape.png | Bin 0 -> 26988 bytes doc/salome/gui/GEOM/images/pipetshape_dlg.png | Bin 0 -> 48490 bytes .../gui/GEOM/images/pipetshapechamfer.png | Bin 0 -> 28159 bytes .../gui/GEOM/images/pipetshapefillet.png | Bin 0 -> 28717 bytes .../gui/GEOM/input/creating_adv_obj.doc | 1 + .../gui/GEOM/input/creating_pipetshape.doc | 58 +++ .../gui/GEOM/input/tui_advanced_geom_objs.doc | 78 ++++ idl/GEOM_Gen.idl | 23 +- resources/tree_pipetshape.png | Bin 570 -> 621 bytes src/AdvancedGUI/AdvancedGUI_PipeTShapeDlg.cxx | 69 ++-- src/AdvancedGUI/AdvancedGUI_PipeTShapeDlg.h | 2 + src/GEOMImpl/GEOMImpl_IAdvancedOperations.cxx | 359 +++++++++--------- src/GEOM_I/GEOM_IAdvancedOperations_i.cc | 74 ++-- src/GEOM_SWIG/geompyDC.py | 30 +- 14 files changed, 426 insertions(+), 268 deletions(-) create mode 100644 doc/salome/gui/GEOM/images/pipetshape.png create mode 100644 doc/salome/gui/GEOM/images/pipetshape_dlg.png create mode 100644 doc/salome/gui/GEOM/images/pipetshapechamfer.png create mode 100644 doc/salome/gui/GEOM/images/pipetshapefillet.png create mode 100644 doc/salome/gui/GEOM/input/creating_pipetshape.doc diff --git a/doc/salome/gui/GEOM/images/pipetshape.png b/doc/salome/gui/GEOM/images/pipetshape.png new file mode 100644 index 0000000000000000000000000000000000000000..af7540c4444daf44546d3e2abacd9f90973f32f8 GIT binary patch literal 26988 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

*A04jv6M>oo>e?h{++Z7OVxJR~ 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 LNkvXXu0mjf3^xUN literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/pipetshape_dlg.png b/doc/salome/gui/GEOM/images/pipetshape_dlg.png new file mode 100644 index 0000000000000000000000000000000000000000..d4b51d255130d0eb4d88580fa7bb216fdd6588a0 GIT binary patch literal 48490 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%0D{ZX7CFHDj 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/pipetshapechamfer.png b/doc/salome/gui/GEOM/images/pipetshapechamfer.png new file mode 100644 index 0000000000000000000000000000000000000000..6ec7b2e9fc8693ed84b1ec51eb13407501f8c640 GIT binary patch literal 28159 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/pipetshapefillet.png b/doc/salome/gui/GEOM/images/pipetshapefillet.png new file mode 100644 index 0000000000000000000000000000000000000000..b1cf140616f9205de7383bd73bd481ecc2d39f43 GIT binary patch literal 28717 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 Hu0mjfeEx${ literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/input/creating_adv_obj.doc b/doc/salome/gui/GEOM/input/creating_adv_obj.doc index 93dcc5dfa..69a9a9eb1 100644 --- a/doc/salome/gui/GEOM/input/creating_adv_obj.doc +++ b/doc/salome/gui/GEOM/input/creating_adv_obj.doc @@ -17,6 +17,7 @@ entities: New Entity -> Advanced submenu allows to create additional complex topological objects.

diff --git a/doc/salome/gui/GEOM/input/creating_pipetshape.doc b/doc/salome/gui/GEOM/input/creating_pipetshape.doc new file mode 100644 index 000000000..823bc3eb9 --- /dev/null +++ b/doc/salome/gui/GEOM/input/creating_pipetshape.doc @@ -0,0 +1,58 @@ +/*! + +\page create_pipetshape_page PipeTShape + +To create a \b PipeTShape in the Main Menu select New Entity - > +Advanced - > PipeTShape + +Specify the parameters of the PipeTShape object creation in the opened dialog +box and press "Apply" or "Apply & Close" button. +Result of each operation will be a GEOM_Object. + +TUI Command: geompy.MakePipeTShape(R1, W1, L1, R2, W2, L2, HexMesh=True, P1=None, P2=None, P3=None) + +Arguments: +- \b R1 - Radius of main T-shape pipe. +- \b W1 - Thickness of main T-shape pipe. +- \b L1 - Length of main T-shape pipe. +- \b R2 - Radius of incident T-shape pipe. +- \b W2 - Thickness of incident T-shape pipe. +- \b L2 - Length of incident T-shape pipe. +- \b HexMesh - If True, the shape is splitted in blocks (suitable for hexaedral mesh). +- \b P1 - First junction point of main pipe (GEOM Vertex). +- \b P2 - Second junction point of main pipe (GEOM Vertex). +- \b P3 - Junction point of incident pipe (GEOM Vertex). + +\image html pipetshape_dlg.png + +Example: + +\image html pipetshape.png + +A Pipe T-Shape can be created with a chamfer at the junction of the main and the incident pipes: + +TUI Command: geompy.MakePipeTShapeChamfer(R1, W1, L1, R2, W2, L2, H, W, HexMesh=True, P1=None, P2=None, P3=None) + +Arguments are the same as normal Pipe T-Shape plus: +- \b H - Height of the chamfer along incident pipe. +- \b W - Width of the chamfer along the main pipe. + +Example: + +\image html pipetshapechamfer.png + +A Pipe T-Shape can be created with a fillet at the junction of the main and the incident pipes: + +TUI Command: geompy.MakePipeTShapeFillet(R1, W1, L1, R2, W2, L2, RF, HexMesh=True, P1=None, P2=None, P3=None) + +Arguments are the same as normal Pipe T-Shape plus: +- \b RF - Radius of the fillet. + +Example: + +\image html pipetshapefillet.png + +Our TUI Scripts provide you with useful examples of creation of +\ref tui_creation_pipetshape "Advanced objects". + +*/ diff --git a/doc/salome/gui/GEOM/input/tui_advanced_geom_objs.doc b/doc/salome/gui/GEOM/input/tui_advanced_geom_objs.doc index 818742073..724b2da43 100644 --- a/doc/salome/gui/GEOM/input/tui_advanced_geom_objs.doc +++ b/doc/salome/gui/GEOM/input/tui_advanced_geom_objs.doc @@ -218,5 +218,83 @@ id_compound = geompy.addToStudy(compound,"Compound") gg.createAndDisplayGO(id_compound) \endcode +\anchor tui_creation_pipetshape +

Creation of PipeTShape

+ +\code +import geompy +import salome +gg = salome.ImportComponentGUI("GEOM") + +# create PipeTShape object +pipetshape = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0) + +# add object in the study +id_pipetshape = geompy.addToStudy(pipetshape[0],"PipeTShape") +# add groups in the study +for g in pipetshape[1:]: + geompy.addToStudyInFather(pipetshape[0], g, g.GetName()) + +# Create junction vertices +P1 = geompy.MakeVertex(0.0, 0.0, 0.0) +P2 = geompy.MakeVertex(400.0, 0.0, 0.0) +P3 = geompy.MakeVertex(200.0, 0.0, 200.0) + +# create PipeTShape object with position +pipetshape_position = geompy.MakePipeTShape(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, True, P1, P2, P3) + +# add object in the study +id_pipetshape_position = geompy.addToStudy(pipetshape_position[0],"PipeTShape_position") +# add groups in the study +for g in pipetshape_position[1:]: + geompy.addToStudyInFather(pipetshape_position[0], g, g.GetName()) + +# create PipeTShape with chamfer object +pipetshapechamfer = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0) + +# add object in the study +id_pipetshapechamfer = geompy.addToStudy(pipetshapechamfer[0],"PipeTShapeChamfer") +# add groups in the study +for g in pipetshapechamfer[1:]: + geompy.addToStudyInFather(pipetshapechamfer[0], g, g.GetName()) + +# create PipeTShape with chamfer object with position +pipetshapechamfer_position = geompy.MakePipeTShapeChamfer(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 20.0, 20.0, True, P1, P2, P3) + +# add object in the study +id_pipetshapechamfer_position = geompy.addToStudy(pipetshapechamfer_position[0],"PipeTShapeChamfer_position") +# add groups in the study +for g in pipetshapechamfer_position[1:]: + geompy.addToStudyInFather(pipetshapechamfer_position[0], g, g.GetName()) + +# create PipeTShape with fillet object +pipetshapefillet = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0) + +# add object in the study +id_pipetshapefillet = geompy.addToStudy(pipetshapefillet[0],"PipeTShapeFillet") +# add groups in the study +for g in pipetshapefillet[1:]: + geompy.addToStudyInFather(pipetshapefillet[0], g, g.GetName()) + +# create PipeTShape with fillet object with position +pipetshapefillet_position = geompy.MakePipeTShapeFillet(80.0, 20.0, 200.0, 50.0, 20.0, 200.0, 5.0, True, P1, P2, P3) + +# add object in the study +id_pipetshapefillet_position = geompy.addToStudy(pipetshapefillet_position[0],"PipeTShapeFillet_position") +# add groups in the study +for g in pipetshapefillet_position[1:]: + geompy.addToStudyInFather(pipetshapefillet_position[0], g, g.GetName()) + + +# display pipetshapes +gg.createAndDisplayGO(id_pipetshape) +gg.createAndDisplayGO(id_pipetshape_position) +gg.createAndDisplayGO(id_pipetshapechamfer) +gg.createAndDisplayGO(id_pipetshapechamfer_position) +gg.createAndDisplayGO(id_pipetshapefillet) +gg.createAndDisplayGO(id_pipetshapefillet_position) + +\endcode + */ diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index 02c2e4690..ed22e1e18 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -3162,26 +3162,24 @@ module GEOM * \param theR2 Internal radius of incident pipe (R2 < R1) * \param theW2 Width of incident pipe (R2+W2 < R1+W1) * \param theL2 Half-length of incident pipe - * \param theHexMesh false = no partition, true = with partition + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true) * \return List of GEOM_Objects, containing the created shape and propagation groups. */ ListOfGO MakePipeTShape (in double theR1, in double theW1, in double theL1, in double theR2, in double theW2, in double theL2, in boolean theHexMesh); - /*! * Create a T-shape object with specified caracteristics for the main and * the incident pipes (radius, width, half-length). * The extremities of the main pipe are located on junctions points P1 and P2. * The extremity of the incident pipe is located on junction point P3. - * * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe * \param theL1 Half-length of main pipe * \param theR2 Internal radius of incident pipe (R2 < R1) * \param theW2 Width of incident pipe (R2+W2 < R1+W1) * \param theL2 Half-length of incident pipe - * \param theHexMesh false = no partition, true = with partition + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true) * \param theP1 1st junction point of main pipe * \param theP2 2nd junction point of main pipe * \param theP3 Junction point of incident pipe @@ -3191,13 +3189,11 @@ module GEOM in double theR2, in double theW2, in double theL2, in boolean theHexMesh, in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3); - /*! * Create a T-shape object with specified caracteristics for the main and * the incident pipes (radius, width, half-length). A chamfer is created * on the junction of the pipes. * Center of the shape is (0,0,0). The main plane of the T-shape is XOY. - * * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe * \param theL1 Half-length of main pipe @@ -3206,20 +3202,18 @@ module GEOM * \param theL2 Half-length of incident pipe * \param theH Height of the chamfer. * \param theW Width of the chamfer. - * \param theHexMesh false = no partition, true = with partition + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true) * \return List of GEOM_Objects, containing the created shape and propagation groups. */ ListOfGO MakePipeTShapeChamfer (in double theR1, in double theW1, in double theL1, in double theR2, in double theW2, in double theL2, in double theH, in double theW, in boolean theHexMesh); - /*! * Create a T-shape object with specified caracteristics for the main and * the incident pipes (radius, width, half-length). A chamfer is created * on the junction of the pipes. * The extremities of the main pipe are located on junctions points P1 and P2. * The extremity of the incident pipe is located on junction point P3. - * * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe * \param theL1 Half-length of main pipe @@ -3228,7 +3222,7 @@ module GEOM * \param theL2 Half-length of incident pipe * \param theH Height of the chamfer. * \param theW Width of the chamfer. - * \param theHexMesh false = no partition, true = with partition + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true) * \param theP1 1st junction point of main pipe * \param theP2 2nd junction point of main pipe * \param theP3 Junction point of incident pipe @@ -3238,13 +3232,11 @@ module GEOM in double theR2, in double theW2, in double theL2, in double theH, in double theW, in boolean theHexMesh, in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3); - /*! * Create a T-shape object with specified caracteristics for the main and * the incident pipes (radius, width, half-length). A fillet is created * on the junction of the pipes. * Center of the shape is (0,0,0). The main plane of the T-shape is XOY. - * * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe * \param theL1 Half-length of main pipe @@ -3252,20 +3244,18 @@ module GEOM * \param theW2 Width of incident pipe (R2+W2 < R1+W1) * \param theL2 Half-length of incident pipe * \param theRF Radius of curvature of fillet. - * \param theHexMesh false = no partition, true = with partition + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true) * \return List of GEOM_Objects, containing the created shape and propagation groups. */ ListOfGO MakePipeTShapeFillet (in double theR1, in double theW1, in double theL1, in double theR2, in double theW2, in double theL2, in double theRF, in boolean theHexMesh); - /*! * Create a T-shape object with specified caracteristics for the main and * the incident pipes (radius, width, half-length). A fillet is created * on the junction of the pipes. * The extremities of the main pipe are located on junctions points P1 and P2. * The extremity of the incident pipe is located on junction point P3. - * * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe * \param theL1 Half-length of main pipe @@ -3273,7 +3263,7 @@ module GEOM * \param theW2 Width of incident pipe (R2+W2 < R1+W1) * \param theL2 Half-length of incident pipe * \param theRF Radius of curvature of fillet. - * \param theHexMesh false = no partition, true = with partition + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true) * \param theP1 1st junction point of main pipe * \param theP2 2nd junction point of main pipe * \param theP3 Junction point of incident pipe @@ -3283,7 +3273,6 @@ module GEOM in double theR2, in double theW2, in double theL2, in double theRF, in boolean theHexMesh, in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3); - /*@@ insert new functions before this line @@*/ }; diff --git a/resources/tree_pipetshape.png b/resources/tree_pipetshape.png index 4ce53a791a0b603a042a87938ab4e273d8fc1390..96631a1509029aa33414f49f05d20eb9c2233730 100644 GIT binary patch delta 509 zcmV&pC*Q}@JwXo%t0_Y`dX$obMo8{?^YGc^qsb=ykwt7w(zM z=ze(q+57%n@xC|op2Wm9LSHyh3Rh(+xTa>Bt``E~xiqak_ObI!BFxAte_&VYR{?_e zYkhfY?YQIal*~MM`Wi7^`LE7$$Az)b%AYmsn700000NkvXXu0mjf9e(^m delta 460 zcmV;-0W<#X1iA!}B#|*M2muHtGeA)1#*t_&f1XK1K~yNuosvyURB;rCpZ|TEJJWrc z(K}ZMG*NII2v-B*kZr6*3jvf}WNMPxwKHD6E%V@c zfA@JTT`8LBJZ_(cZul6f=6S4;>`bBRLqyRI)q?{d1i*3z5E3+M6})=mqBwYenmeN} zDDVBCw6#uo_Z^4DP0Y3)5Q6&85<fOmKVUQ&jk7IYJboT4yM!HCKf9M23NO2{`=MMp1y-M@U2U>r`;U{arBFB{q zzrH)jY6>kTP_zhHm2i7q+}=^_%wuG^pQA6Q5S@s>yJzNQ6wTtKn#XK^hT#-Qx*6iO zf+P!?UPSF{i~Wsbw%#v@OJDJHPGC7*=*BoOhV2$GT?18x(^|y#@{;&x38vpjHYAc3 zQJ5oaO<resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_PIPETSHAPE"))); QPixmap imageSel(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); - QPixmap imageImp(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICO_PIPETSHAPE_IMPORT"))); + imageImp = SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICO_PIPETSHAPE_IMPORT")); imagePipeTShape = SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("DLG_PIPETSHAPE")); setWindowTitle(tr("GEOM_PIPE_TSHAPE_TITLE")); @@ -137,30 +137,6 @@ AdvancedGUI_PipeTShapeDlg::AdvancedGUI_PipeTShapeDlg(GeometryGUI* theGeometryGUI JunctionPointsSel->TextLabel6->setAttribute(Qt::WA_DeleteOnClose); JunctionPointsSel->TextLabel6->close(); -// QGridLayout* junctionLayout = (QGridLayout*)JunctionPointsSel->GroupBox1->layout(); - -// junctionLayout->addWidget(new QLabel(tr("GEOM_PIPE_TSHAPE_POSITION_LBL_L1"), JunctionPointsSel->GroupBox1), 3, 0, 1, 1); -// -// QPushButton* ApplyNewL1 = new QPushButton(centralWidget()); -// // ApplyNewL1->setText("Apply new L1"); -// ApplyNewL1->setIcon(imageImp); -// junctionLayout->addWidget(ApplyNewL1, 3, 1, 1, 1); -// -// NewPosValL1 = new QLineEdit(JunctionPointsSel->GroupBox1); -// NewPosValL1->setReadOnly(true); -// junctionLayout->addWidget(NewPosValL1, 3, 2, 1, 1); -// -// junctionLayout->addWidget(new QLabel(tr("GEOM_PIPE_TSHAPE_POSITION_LBL_L2"), JunctionPointsSel->GroupBox1), 4, 0, 1, 1); -// -// QPushButton* ApplyNewL2 = new QPushButton(centralWidget()); -// // ApplyNewL2->setText("Apply new L2"); -// ApplyNewL2->setIcon(imageImp); -// junctionLayout->addWidget(ApplyNewL2, 4, 1, 1, 1); -// -// NewPosValL2 = new QLineEdit(JunctionPointsSel->GroupBox1); -// NewPosValL2->setReadOnly(true); -// junctionLayout->addWidget(NewPosValL2, 4, 2, 1, 1); - // 1st row, height = 1, colspan = 3 int rowPict = 0, colPict = 0, rowspanPict = 1, colspanPict = 3; // 2nd row, height = 4, col 1 @@ -185,7 +161,7 @@ AdvancedGUI_PipeTShapeDlg::AdvancedGUI_PipeTShapeDlg(GeometryGUI* theGeometryGUI myMainLayout->addWidget(JunctionPointsSel, rowNewPosVal, colNewPosVal, rowspanNewPosVal, colspanNewPosVal); /***************************************************************/ - setHelpFileName("create_pipe_tshape_page.html"); + setHelpFileName("create__pipetshape__page.html"); Init(); } @@ -235,7 +211,16 @@ void AdvancedGUI_PipeTShapeDlg::Init() { ChamferGroupParams->SpinBox_DX->setValue(20); ChamferGroupParams->SpinBox_DY->setValue(10); FilletGroupParams->SpinBox_DX->setValue(20); - + + CssNormal = QString("QDoubleSpinBox {"); + CssNormal.append(MainTubeGroupParams->SpinBox_DZ->styleSheet()); + CssNormal.append("}"); + CssNormal.append("\nQPushButton {"); + CssNormal.append(JunctionPointsSel->PushButton4->styleSheet()); + CssNormal.append("}"); + CssAcceptable = "QDoubleSpinBox, QPushButton {background-color: rgb(85, 170, 127)}"; + CssRefused = "QDoubleSpinBox, QPushButton {background-color: rgb(255, 0, 0)}"; + // Signal/slot connections connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); @@ -754,8 +739,10 @@ bool AdvancedGUI_PipeTShapeDlg::isValid(QString& msg) { bool AdvancedGUI_PipeTShapeDlg::CheckCompatiblePosition(GEOM::GEOM_Object_var theP1, GEOM::GEOM_Object_var theP2, GEOM::GEOM_Object_var theP3, double theTolerance) { - MainTubeGroupParams->SpinBox_DZ->setStyleSheet("background-color: rgb(255, 255, 255);"); - IncidentTubeGroupParams->SpinBox_DZ->setStyleSheet("background-color: rgb(255, 255, 255);"); + MainTubeGroupParams->SpinBox_DZ->setStyleSheet(CssNormal); + IncidentTubeGroupParams->SpinBox_DZ->setStyleSheet(CssNormal); + JunctionPointsSel->PushButton4->setStyleSheet(CssNormal); + JunctionPointsSel->PushButton5->setStyleSheet(CssNormal); CORBA::Double theL1 = MainTubeGroupParams->SpinBox_DZ->value(); CORBA::Double theL2 = IncidentTubeGroupParams->SpinBox_DZ->value(); @@ -821,15 +808,19 @@ bool AdvancedGUI_PipeTShapeDlg::CheckCompatiblePosition(GEOM::GEOM_Object_var th MainTubeGroupParams->SpinBox_DZ->setValue(newL1); connect(MainTubeGroupParams->SpinBox_DZ, SIGNAL(valueChanged( double )), this, SLOT(ValueChangedInSpinBox(double))); MainTubeGroupParams->SpinBox_DZ->setToolTip("Value was recomputed to fit with position"); - MainTubeGroupParams->SpinBox_DZ->setStyleSheet("background-color: rgb(85, 170, 127);"); + MainTubeGroupParams->SpinBox_DZ->setStyleSheet(CssAcceptable); + JunctionPointsSel->PushButton4->setStyleSheet(CssAcceptable); } else { MainTubeGroupParams->SpinBox_DZ->setToolTip("Value is incompatible with position"); - MainTubeGroupParams->SpinBox_DZ->setStyleSheet("background-color: rgb(255, 0, 0);"); + MainTubeGroupParams->SpinBox_DZ->setStyleSheet(CssRefused); + JunctionPointsSel->PushButton4->setStyleSheet(CssRefused); } } - else - MainTubeGroupParams->SpinBox_DZ->setStyleSheet("background-color: rgb(255, 255, 255);"); + else { + MainTubeGroupParams->SpinBox_DZ->setStyleSheet(CssNormal); + JunctionPointsSel->PushButton4->setStyleSheet(CssNormal); + } // std::cerr << "fabs(newL2 - theL2) = " << fabs(newL2 - theL2) << std::endl; if (fabs(newL2 - theL2) > Precision::Approximation()) { @@ -840,15 +831,19 @@ bool AdvancedGUI_PipeTShapeDlg::CheckCompatiblePosition(GEOM::GEOM_Object_var th IncidentTubeGroupParams->SpinBox_DZ->setValue(newL2); connect(IncidentTubeGroupParams->SpinBox_DZ, SIGNAL(valueChanged( double )), this, SLOT(ValueChangedInSpinBox(double))); IncidentTubeGroupParams->SpinBox_DZ->setToolTip("Value was recomputed to fit with position"); - IncidentTubeGroupParams->SpinBox_DZ->setStyleSheet("background-color: rgb(85, 170, 127);"); + IncidentTubeGroupParams->SpinBox_DZ->setStyleSheet(CssAcceptable); + JunctionPointsSel->PushButton5->setStyleSheet(CssAcceptable); } else { IncidentTubeGroupParams->SpinBox_DZ->setToolTip("Value is incompatible with position"); - IncidentTubeGroupParams->SpinBox_DZ->setStyleSheet("background-color: rgb(255, 0, 0);"); + IncidentTubeGroupParams->SpinBox_DZ->setStyleSheet(CssRefused); + JunctionPointsSel->PushButton5->setStyleSheet(CssRefused); } } - else - IncidentTubeGroupParams->SpinBox_DZ->setStyleSheet("background-color: rgb(255, 255, 255);"); + else { + IncidentTubeGroupParams->SpinBox_DZ->setStyleSheet(CssNormal); + JunctionPointsSel->PushButton5->setStyleSheet(CssNormal); + } return true; } diff --git a/src/AdvancedGUI/AdvancedGUI_PipeTShapeDlg.h b/src/AdvancedGUI/AdvancedGUI_PipeTShapeDlg.h index a0ba4ebc5..9235d359c 100644 --- a/src/AdvancedGUI/AdvancedGUI_PipeTShapeDlg.h +++ b/src/AdvancedGUI/AdvancedGUI_PipeTShapeDlg.h @@ -66,6 +66,8 @@ private: DlgRef_2Spin* ChamferGroupParams; DlgRef_1Spin* FilletGroupParams; DlgRef_6Sel* JunctionPointsSel; + QPixmap imageImp; + QString CssNormal, CssAcceptable, CssRefused; // QLineEdit* NewPosValL1; // QLineEdit* NewPosValL2; // QPushButton* ApplyNewL1; diff --git a/src/GEOMImpl/GEOMImpl_IAdvancedOperations.cxx b/src/GEOMImpl/GEOMImpl_IAdvancedOperations.cxx index 96f81eaf4..46cb32ad0 100644 --- a/src/GEOMImpl/GEOMImpl_IAdvancedOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IAdvancedOperations.cxx @@ -227,6 +227,8 @@ bool GEOMImpl_IAdvancedOperations::MakeGroups(/*std::vector t return false; } + gp_Trsf aTrsfInv = aTrsf.Inverted(); + int expectedGroups = 0; if (shapeType == TSHAPE_BASIC) if (Abs(theR2+theW2-theR1-theW1) <= Precision::Approximation()) @@ -256,7 +258,7 @@ bool GEOMImpl_IAdvancedOperations::MakeGroups(/*std::vector t GEOMImpl_I3DPrimOperations* a3DPrimOperations = new GEOMImpl_I3DPrimOperations(GetEngine(), GetDocID()); // - // Uncomment the following lines when GetInPlace bug is solved + // Comment the following lines when GetInPlace bug is solved // == BEGIN // Workaround of GetInPlace bug // Create a bounding box that fits the shape @@ -264,6 +266,11 @@ bool GEOMImpl_IAdvancedOperations::MakeGroups(/*std::vector t aBox->GetLastFunction()->SetDescription(""); aTransformOperations->TranslateDXDYDZ(aBox, -theL1, -aR1Ext, -aR1Ext); aBox->GetLastFunction()->SetDescription(""); + // Apply transformation to box + BRepBuilderAPI_Transform aTransformationBox(aBox->GetValue(), aTrsf, Standard_False); + TopoDS_Shape aBoxShapeTrsf = aTransformationBox.Shape(); + aBox->GetLastFunction()->SetValue(aBoxShapeTrsf); + // Get the shell of the box Handle(GEOM_Object) aShell = Handle(GEOM_Object)::DownCast(aShapesOperations->MakeExplode(aBox, TopAbs_SHELL, true)->Value(1)); aBox->GetLastFunction()->SetDescription(""); @@ -291,9 +298,9 @@ bool GEOMImpl_IAdvancedOperations::MakeGroups(/*std::vector t if (!aCompoundOfFaces.IsNull()) { aCompoundOfFaces->GetLastFunction()->SetDescription(""); // Apply transformation to compound of faces - BRepBuilderAPI_Transform aTransformationCompoundOfFaces(aCompoundOfFaces->GetValue(), aTrsf, Standard_False); - TopoDS_Shape aTrsf_CompoundOfFacesShape = aTransformationCompoundOfFaces.Shape(); - aCompoundOfFaces->GetLastFunction()->SetValue(aTrsf_CompoundOfFacesShape); +// BRepBuilderAPI_Transform aTransformationCompoundOfFaces(aCompoundOfFaces->GetValue(), aTrsf, Standard_False); +// TopoDS_Shape aTrsf_CompoundOfFacesShape = aTransformationCompoundOfFaces.Shape(); +// aCompoundOfFaces->GetLastFunction()->SetValue(aTrsf_CompoundOfFacesShape); aCompoundOfFacesList.push_back(aCompoundOfFaces); } } @@ -387,7 +394,15 @@ bool GEOMImpl_IAdvancedOperations::MakeGroups(/*std::vector t //// Groups of Edges //// ///////////////////////// // Result of propagate + Handle(GEOM_Function) aFunction = theShape->GetLastFunction(); + + + // Apply inverted transformation to shape +// BRepBuilderAPI_Transform aTransformationShapeInv(aShape, aTrsfInv, Standard_False); +// TopoDS_Shape aShapeTrsfInv = aTransformationShapeInv.Shape(); +// aFunction->SetValue(aShapeTrsfInv); + TCollection_AsciiString theDesc = aFunction->GetDescription(); Handle(TColStd_HSequenceOfTransient) aSeqPropagate = aBlocksOperations->Propagate(theShape); if (aSeqPropagate.IsNull() || aSeqPropagate->Length() == 0) { @@ -398,6 +413,12 @@ bool GEOMImpl_IAdvancedOperations::MakeGroups(/*std::vector t // Recover previous description to get rid of Propagate dump aFunction->SetDescription(theDesc); + + // Apply transformation to shape +// BRepBuilderAPI_Transform aTransformationShape(theShape->GetValue(), aTrsf, Standard_False); +// TopoDS_Shape aShapeTrsf = aTransformationShape.Shape(); +// aFunction->SetValue(aShapeTrsf); + bool addGroup; bool circularFoundAndAdded = false; bool incidentPipeFound = false; @@ -416,9 +437,11 @@ bool GEOMImpl_IAdvancedOperations::MakeGroups(/*std::vector t continue; TopoDS_Shape aGroupShape = aGroup->GetValue(); + BRepBuilderAPI_Transform aTransformationShapeInv(aGroupShape, aTrsfInv, Standard_False); + TopoDS_Shape aGroupShapeTrsfInv = aTransformationShapeInv.Shape(); TopTools_IndexedMapOfShape anEdgesMap; - TopExp::MapShapes(aGroupShape,TopAbs_EDGE, anEdgesMap); + TopExp::MapShapes(aGroupShapeTrsfInv,TopAbs_EDGE, anEdgesMap); nbEdges = anEdgesMap.Extent(); if (shapeType == TSHAPE_BASIC) { @@ -439,7 +462,7 @@ bool GEOMImpl_IAdvancedOperations::MakeGroups(/*std::vector t radialFound =false; flangeFound = false; - TopExp_Explorer Ex(aGroupShape,TopAbs_VERTEX); + TopExp_Explorer Ex(aGroupShapeTrsfInv,TopAbs_VERTEX); while (Ex.More()) { gp_Pnt aP = BRep_Tool::Pnt(TopoDS::Vertex(Ex.Current())); double x=aP.X(), y=aP.Y(), z=aP.Z(); @@ -505,7 +528,7 @@ bool GEOMImpl_IAdvancedOperations::MakeGroups(/*std::vector t mainPipeFound = false; flangeFound = false; - TopExp_Explorer Ex(aGroupShape,TopAbs_VERTEX); + TopExp_Explorer Ex(aGroupShapeTrsfInv,TopAbs_VERTEX); while (Ex.More()) { gp_Pnt aP = BRep_Tool::Pnt(TopoDS::Vertex(Ex.Current())); double x=aP.X(), y=aP.Y(), z=aP.Z(); @@ -567,55 +590,6 @@ bool GEOMImpl_IAdvancedOperations::MakeGroups(/*std::vector t theSeq->Append(aGroup); } -// Handle(GEOM_Object) aGroup; -// if (shapeType == TSHAPE_BASIC) { -// // if (aNbGroups != 11) { -// // SetErrorCode("Bad number of propagation groups"); -// // return false; -// // } -// aGroup = Handle(GEOM_Object)::DownCast(aSeqPropagate->Value(1)); -// aGroup->SetName("THICKNESS"); -// theSeq->Append(aGroup); -// aGroup = Handle(GEOM_Object)::DownCast(aSeqPropagate->Value(2)); -// aGroup->SetName("CIRCULAR_QUARTER_PIPE"); -// theSeq->Append(aGroup); -// aGroup = Handle(GEOM_Object)::DownCast(aSeqPropagate->Value(3)); -// aGroup->SetName("HALF_LENGTH_MAIN_PIPE"); -// theSeq->Append(aGroup); -// aGroup = Handle(GEOM_Object)::DownCast(aSeqPropagate->Value(6)); -// aGroup->SetName("HALF_LENGTH_INCIDENT_PIPE"); -// theSeq->Append(aGroup); -// aGroup = Handle(GEOM_Object)::DownCast(aSeqPropagate->Value(5)); -// aGroup->SetName("FLANGE"); -// theSeq->Append(aGroup); -// } else if (shapeType == TSHAPE_CHAMFER || shapeType == TSHAPE_FILLET) { -// if (aNbGroups != 12) { -// SetErrorCode("Bad number of propagation groups"); -// return false; -// } -// aGroup = Handle(GEOM_Object)::DownCast(aSeqPropagate->Value(3)); -// aGroup->SetName("THICKNESS"); -// theSeq->Append(aGroup); -// aGroup = Handle(GEOM_Object)::DownCast(aSeqPropagate->Value(1)); -// aGroup->SetName("CIRCULAR_QUARTER_PIPE"); -// theSeq->Append(aGroup); -// aGroup = Handle(GEOM_Object)::DownCast(aSeqPropagate->Value(4)); -// aGroup->SetName("HALF_LENGTH_MAIN_PIPE"); -// theSeq->Append(aGroup); -// aGroup = Handle(GEOM_Object)::DownCast(aSeqPropagate->Value(6)); -// aGroup->SetName("HALF_LENGTH_INCIDENT_PIPE"); -// theSeq->Append(aGroup); -// aGroup = Handle(GEOM_Object)::DownCast(aSeqPropagate->Value(2)); -// aGroup->SetName("FLANGE"); -// theSeq->Append(aGroup); -// aGroup = Handle(GEOM_Object)::DownCast(aSeqPropagate->Value(7)); -// if (shapeType == TSHAPE_CHAMFER) -// aGroup->SetName("CHAMFER"); -// else -// aGroup->SetName("FILLET"); -// theSeq->Append(aGroup); -// } - SetErrorCode(OK); return true; } @@ -1071,89 +1045,89 @@ bool GEOMImpl_IAdvancedOperations::MakePipeTShapePartition(/*std::vectorMakeHalfPartition(theShape, face_t); - if (Part0.IsNull()) { - std::cerr << "Impossible to build partition between TShape and 1st face" << std::endl; - SetErrorCode("Impossible to build partition between TShape and 1st face"); - return false; - } - Part0->GetLastFunction()->SetDescription(""); - - Handle(GEOM_Object) Te3 ; - if (isNormal) { - if (Abs(aR1Ext - aR2Ext) <= Precision::Approximation()) { - std::cerr << "External radius are identical: we do not make partition with plane OXZ" << std::endl; - Te3 = aBooleanOperations->MakeHalfPartition(Part0, aPlnOZ); - } - else { - Handle(GEOM_Object) Part1 = aBooleanOperations->MakeHalfPartition(Part0, aPlnOXZ); - if (Part1.IsNull()) { - std::cerr << "Impossible to build partition between TShape and plane OXZ" << std::endl; - SetErrorCode("Impossible to build partition between TShape and plane OXZ"); - return false; - } - Part1->GetLastFunction()->SetDescription(""); - Te3 = aBooleanOperations->MakeHalfPartition(Part1, aPlnOZ); - } - if (Te3.IsNull()) { - std::cerr << "Impossible to build partition between TShape and plane OZ" << std::endl; - SetErrorCode("Impossible to build partition between TShape and plane OZ"); - return false; - } - Te3->GetLastFunction()->SetDescription(""); - } - else { - if (Abs(aR1Ext - aR2Ext) <= Precision::Approximation()){ // We should never go here - SetErrorCode("Impossible to build TShape"); - return false; - } - else { - Handle(GEOM_Object) Part1 = aBooleanOperations->MakeHalfPartition(Part0, aPlnOXZ); - if (Part1.IsNull()) { - std::cerr << "Impossible to build partition between TShape and plane OXZ" << std::endl; - SetErrorCode("Impossible to build partition between TShape and plane OXZ"); - return false; - } - Part1->GetLastFunction()->SetDescription(""); - Handle(GEOM_Object) Part2 = aBooleanOperations->MakeHalfPartition(Part1, aPlnOZ); - if (Part2.IsNull()) { - std::cerr << "Impossible to build partition between TShape and plane OZ" << std::endl; - SetErrorCode("Impossible to build partition between TShape and plane OZ"); - return false; - } - Part2->GetLastFunction()->SetDescription(""); - Te3 = aBooleanOperations->MakeHalfPartition(Part2, face_t2); - if (Te3.IsNull()) { - std::cerr << "Impossible to build partition between TShape and 2nd face" << std::endl; - SetErrorCode("Impossible to build partition between TShape and 2nd face"); - return false; - } - Te3->GetLastFunction()->SetDescription(""); - } - } +// Handle(GEOM_Object) Part0 = aBooleanOperations->MakeHalfPartition(theShape, face_t); +// if (Part0.IsNull()) { +// std::cerr << "Impossible to build partition between TShape and 1st face" << std::endl; +// SetErrorCode("Impossible to build partition between TShape and 1st face"); +// return false; +// } +// Part0->GetLastFunction()->SetDescription(""); +// +// Handle(GEOM_Object) Te3 ; +// if (isNormal) { +// if (Abs(aR1Ext - aR2Ext) <= Precision::Approximation()) { +// std::cerr << "External radius are identical: we do not make partition with plane OXZ" << std::endl; +// Te3 = aBooleanOperations->MakeHalfPartition(Part0, aPlnOZ); +// } +// else { +// Handle(GEOM_Object) Part1 = aBooleanOperations->MakeHalfPartition(Part0, aPlnOXZ); +// if (Part1.IsNull()) { +// std::cerr << "Impossible to build partition between TShape and plane OXZ" << std::endl; +// SetErrorCode("Impossible to build partition between TShape and plane OXZ"); +// return false; +// } +// Part1->GetLastFunction()->SetDescription(""); +// Te3 = aBooleanOperations->MakeHalfPartition(Part1, aPlnOZ); +// } +// if (Te3.IsNull()) { +// std::cerr << "Impossible to build partition between TShape and plane OZ" << std::endl; +// SetErrorCode("Impossible to build partition between TShape and plane OZ"); +// return false; +// } +// Te3->GetLastFunction()->SetDescription(""); +// } +// else { +// if (Abs(aR1Ext - aR2Ext) <= Precision::Approximation()){ // We should never go here +// SetErrorCode("Impossible to build TShape"); +// return false; +// } +// else { +// Handle(GEOM_Object) Part1 = aBooleanOperations->MakeHalfPartition(Part0, aPlnOXZ); +// if (Part1.IsNull()) { +// std::cerr << "Impossible to build partition between TShape and plane OXZ" << std::endl; +// SetErrorCode("Impossible to build partition between TShape and plane OXZ"); +// return false; +// } +// Part1->GetLastFunction()->SetDescription(""); +// Handle(GEOM_Object) Part2 = aBooleanOperations->MakeHalfPartition(Part1, aPlnOZ); +// if (Part2.IsNull()) { +// std::cerr << "Impossible to build partition between TShape and plane OZ" << std::endl; +// SetErrorCode("Impossible to build partition between TShape and plane OZ"); +// return false; +// } +// Part2->GetLastFunction()->SetDescription(""); +// Te3 = aBooleanOperations->MakeHalfPartition(Part2, face_t2); +// if (Te3.IsNull()) { +// std::cerr << "Impossible to build partition between TShape and 2nd face" << std::endl; +// SetErrorCode("Impossible to build partition between TShape and 2nd face"); +// return false; +// } +// Te3->GetLastFunction()->SetDescription(""); +// } +// } -// Handle(TColStd_HSequenceOfTransient) partitionShapes = new TColStd_HSequenceOfTransient; -// Handle(TColStd_HSequenceOfTransient) theTools = new TColStd_HSequenceOfTransient; -// Handle(TColStd_HSequenceOfTransient) theKeepInside = new TColStd_HSequenceOfTransient; -// Handle(TColStd_HSequenceOfTransient) theRemoveInside = new TColStd_HSequenceOfTransient; -// Handle(TColStd_HArray1OfInteger) theMaterials; -// partitionShapes->Append(theShape); -// theTools->Append(aPlnOZ); -// theTools->Append(aPlnOXZ); -// theTools->Append(face_t); -// if (!isNormal) -// theTools->Append(face_t2); -// -// Handle(GEOM_Object) Te3 = aBooleanOperations->MakePartition(partitionShapes, theTools, theKeepInside, theRemoveInside, TopAbs_SOLID, false, theMaterials, 0, false); -// if (Te3.IsNull()) { -// SetErrorCode("Impossible to build partition of TShape"); + Handle(TColStd_HSequenceOfTransient) partitionShapes = new TColStd_HSequenceOfTransient; + Handle(TColStd_HSequenceOfTransient) theTools = new TColStd_HSequenceOfTransient; + Handle(TColStd_HSequenceOfTransient) theKeepInside = new TColStd_HSequenceOfTransient; + Handle(TColStd_HSequenceOfTransient) theRemoveInside = new TColStd_HSequenceOfTransient; + Handle(TColStd_HArray1OfInteger) theMaterials; + partitionShapes->Append(theShape); + theTools->Append(aPlnOZ); + theTools->Append(aPlnOXZ); + theTools->Append(face_t); + if (!isNormal) + theTools->Append(face_t2); + + Handle(GEOM_Object) Te3 = aBooleanOperations->MakePartition(partitionShapes, theTools, theKeepInside, theRemoveInside, TopAbs_SOLID, false, theMaterials, 0, false); + if (Te3.IsNull()) { + SetErrorCode("Impossible to build partition of TShape"); // Handle(GEOM_Object) aCompound = aShapesOperations->MakeCompound(theShapes); // TopoDS_Shape aCompoundShape = aCompound->GetValue(); // theShape->GetLastFunction()->SetValue(aCompoundShape); -// return false; -// } -// Te3->GetLastFunction()->SetDescription(""); -// + return false; + } + Te3->GetLastFunction()->SetDescription(""); + TopoDS_Shape aShape = Te3->GetValue(); theShape->GetLastFunction()->SetValue(aShape); @@ -1262,8 +1236,8 @@ bool GEOMImpl_IAdvancedOperations::MakePipeTShapeMirrorAndGlue(/*std::vectorMakeBoxDXDYDZ(2*(theR2+theW2), 2*(theR2+theW2), theR1+theW1); } + box_e->GetLastFunction()->SetDescription(""); box_e = aTransformOperations->TranslateDXDYDZ(box_e, -(theR2+theW2), -(theR2+theW2), 0); box_e->GetLastFunction()->SetDescription(""); - TCollection_AsciiString theDesc = aFunction->GetDescription(); Handle(TColStd_HSequenceOfInteger) edges_e = aShapesOperations->GetShapesOnBoxIDs(box_e, aShape, TopAbs_EDGE, GEOMAlgo_ST_IN); - aFunction->SetDescription(theDesc); + box_e->GetLastFunction()->SetDescription(""); if (edges_e.IsNull() || edges_e->Length() == 0) { // std::cerr << "Internal edges not found" << std::endl; @@ -1665,14 +1643,11 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IAdvancedOperations::MakePipeTShap catch (Standard_Failure) { Handle(Standard_Failure) aFail = Standard_Failure::Caught(); SetErrorCode(aFail->GetMessageString()); - try { - aChamfer = aLocalOperations->MakeChamferEdges(aShape, theH, theW, theEdges); - } - catch (Standard_Failure) { - Handle(Standard_Failure) aFail = Standard_Failure::Caught(); - SetErrorCode(aFail->GetMessageString()); - return NULL; - } + return NULL; + } + if (aChamfer.IsNull()) { + SetErrorCode("Chamfer can not be computed on the given shape with the given parameters"); + return NULL; } aChamfer->GetLastFunction()->SetDescription(""); @@ -1753,9 +1728,12 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IAdvancedOperations::MakePipeTShap //============================================================================= /*! - * Create a T-shape object with specified caracteristics for the main and the - * incident pipes (radius, width, half-length). - * The T-shape is placed at junction points P1, P2 and P3. + * MakePipeTShapeChamferWithPosition + * Create a T-shape object with specified caracteristics for the main and + * the incident pipes (radius, width, half-length). A chamfer is created + * on the junction of the pipes. + * The extremities of the main pipe are located on junctions points P1 and P2. + * The extremity of the incident pipe is located on junction point P3. * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe * \param theL1 Half-length of main pipe @@ -1843,12 +1821,12 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IAdvancedOperations::MakePipeTShap else { box_e = a3DPrimOperations->MakeBoxDXDYDZ(2*(theR2+theW2), 2*(theR2+theW2), theR1+theW1); } + box_e->GetLastFunction()->SetDescription(""); box_e = aTransformOperations->TranslateDXDYDZ(box_e, -(theR2+theW2), -(theR2+theW2), 0); box_e->GetLastFunction()->SetDescription(""); - TCollection_AsciiString theDesc = aFunction->GetDescription(); Handle(TColStd_HSequenceOfInteger) edges_e = aShapesOperations->GetShapesOnBoxIDs(box_e, aShape, TopAbs_EDGE, GEOMAlgo_ST_IN); - aFunction->SetDescription(theDesc); + box_e->GetLastFunction()->SetDescription(""); if (edges_e.IsNull() || edges_e->Length() == 0) { // std::cerr << "Internal edges not found" << std::endl; @@ -1879,8 +1857,14 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IAdvancedOperations::MakePipeTShap try { aChamfer = aLocalOperations->MakeChamferEdges(aShape, theW, theH, theEdges); } - catch (...) { - aChamfer = aLocalOperations->MakeChamferEdges(aShape, theH, theW, theEdges); + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + if (aChamfer.IsNull()) { + SetErrorCode("Chamfer can not be computed on the given shape with the given parameters"); + return NULL; } aChamfer->GetLastFunction()->SetDescription(""); @@ -1954,9 +1938,10 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IAdvancedOperations::MakePipeTShap //============================================================================= /*! - * Create a T-shape object with specified caracteristics for the main and the - * incident pipes (radius, width, half-length).A fillet is created on - * the junction of the pipes. + * MakePipeTShapeFillet + * Create a T-shape object with specified caracteristics for the main and + * the incident pipes (radius, width, half-length). A fillet is created + * on the junction of the pipes. * Center of the shape is (0,0,0). The main plane of the T-shape is XOY. * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe @@ -2034,12 +2019,12 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IAdvancedOperations::MakePipeTShap else { box_e = a3DPrimOperations->MakeBoxDXDYDZ(2*(theR2+theW2), 2*(theR2+theW2), theR1+theW1); } + box_e->GetLastFunction()->SetDescription(""); box_e = aTransformOperations->TranslateDXDYDZ(box_e, -(theR2+theW2), -(theR2+theW2), 0); box_e->GetLastFunction()->SetDescription(""); - TCollection_AsciiString theDesc = aFunction->GetDescription(); Handle(TColStd_HSequenceOfInteger) edges_e = aShapesOperations->GetShapesOnBoxIDs(box_e, aShape, TopAbs_EDGE, GEOMAlgo_ST_IN); - aFunction->SetDescription(theDesc); + box_e->GetLastFunction()->SetDescription(""); if (edges_e.IsNull() || edges_e->Length() == 0) { // std::cerr << "Internal edges not found" << std::endl; @@ -2066,8 +2051,20 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IAdvancedOperations::MakePipeTShap if (theHexMesh && nbEdgesInFillet == 1) break; } - - Handle(GEOM_Object) aFillet = aLocalOperations->MakeFilletEdges(aShape, theRF, theEdges); + + Handle(GEOM_Object) aFillet; + try { + aFillet = aLocalOperations->MakeFilletEdges(aShape, theRF, theEdges); + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + if (aFillet.IsNull()) { + SetErrorCode("Fillet can not be computed on the given shape with the given parameters"); + return NULL; + } aFillet->GetLastFunction()->SetDescription(""); TopoDS_Shape aFilletShape = aFillet->GetValue(); @@ -2134,10 +2131,12 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IAdvancedOperations::MakePipeTShap //============================================================================= /*! - * Create a T-shape object with specified caracteristics for the main and the - * incident pipes (radius, width, half-length). A fillet is created on - * the junction of the pipes. - * The T-shape is placed at junction points P1, P2 and P3. + * MakePipeTShapeFilletWithPosition + * Create a T-shape object with specified caracteristics for the main and + * the incident pipes (radius, width, half-length). A fillet is created + * on the junction of the pipes. + * The extremities of the main pipe are located on junctions points P1 and P2. + * The extremity of the incident pipe is located on junction point P3. * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe * \param theL1 Half-length of main pipe @@ -2223,12 +2222,12 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IAdvancedOperations::MakePipeTShap else { box_e = a3DPrimOperations->MakeBoxDXDYDZ(2*(theR2+theW2), 2*(theR2+theW2), theR1+theW1); } + box_e->GetLastFunction()->SetDescription(""); box_e = aTransformOperations->TranslateDXDYDZ(box_e, -(theR2+theW2), -(theR2+theW2), 0); box_e->GetLastFunction()->SetDescription(""); - TCollection_AsciiString theDesc = aFunction->GetDescription(); Handle(TColStd_HSequenceOfInteger) edges_e = aShapesOperations->GetShapesOnBoxIDs(box_e, aShape, TopAbs_EDGE, GEOMAlgo_ST_IN); - aFunction->SetDescription(theDesc); + box_e->GetLastFunction()->SetDescription(""); if (edges_e.IsNull() || edges_e->Length() == 0) { // std::cerr << "Internal edges not found" << std::endl; @@ -2255,8 +2254,20 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IAdvancedOperations::MakePipeTShap if (theHexMesh && nbEdgesInFillet == 1) break; } - - Handle(GEOM_Object) aFillet = aLocalOperations->MakeFilletEdges(aShape, theRF, theEdges); + + Handle(GEOM_Object) aFillet; + try { + aFillet = aLocalOperations->MakeFilletEdges(aShape, theRF, theEdges); + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + if (aFillet.IsNull()) { + SetErrorCode("Fillet can not be computed on the given shape with the given parameters"); + return NULL; + } aFillet->GetLastFunction()->SetDescription(""); TopoDS_Shape aFilletShape = aFillet->GetValue(); diff --git a/src/GEOM_I/GEOM_IAdvancedOperations_i.cc b/src/GEOM_I/GEOM_IAdvancedOperations_i.cc index cf52cfa0b..1e763fe28 100644 --- a/src/GEOM_I/GEOM_IAdvancedOperations_i.cc +++ b/src/GEOM_I/GEOM_IAdvancedOperations_i.cc @@ -57,8 +57,9 @@ GEOM_IAdvancedOperations_i::~GEOM_IAdvancedOperations_i() //============================================================================= /*! - * Create a T-shape object with specified caracteristics for the main and the - * incident pipes (radius, width, half-length). + * MakePipeTShape + * Create a T-shape object with specified caracteristics for the main and + * the incident pipes (radius, width, half-length). * Center of the shape is (0,0,0). The main plane of the T-shape is XOY. * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe @@ -66,7 +67,7 @@ GEOM_IAdvancedOperations_i::~GEOM_IAdvancedOperations_i() * \param theR2 Internal radius of incident pipe (R2 < R1) * \param theW2 Width of incident pipe (R2+W2 < R1+W1) * \param theL2 Half-length of incident pipe - * \param theHexMesh false = no partition, true = with partition + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh * \return List of GEOM_Objects, containing the created shape and propagation groups. */ //============================================================================= @@ -93,16 +94,21 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShape (CORBA::Double theR1, //============================================================================= /*! - * Create a T-shape object with specified caracteristics for the main and the - * incident pipes (radius, width, half-length). - * The T-shape is placed at junction points P1, P2 and P3. + * MakePipeTShapeWithPosition + * Create a T-shape object with specified caracteristics for the main and + * the incident pipes (radius, width, half-length). + * The extremities of the main pipe are located on junctions points P1 and P2. + * The extremity of the incident pipe is located on junction point P3. * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe * \param theL1 Half-length of main pipe * \param theR2 Internal radius of incident pipe (R2 < R1) * \param theW2 Width of incident pipe (R2+W2 < R1+W1) * \param theL2 Half-length of incident pipe - * \param theHexMesh false = no partition, true = with partition + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh + * \param theP1 1st junction point of main pipe + * \param theP2 2nd junction point of main pipe + * \param theP3 Junction point of incident pipe * \return List of GEOM_Objects, containing the created shape and propagation groups. */ //============================================================================= @@ -136,9 +142,10 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeWithPosition (CORBA::D //============================================================================= /*! - * Create a T-shape object with specified caracteristics for the main and the - * incident pipes (radius, width, half-length). A chamfer is created on - * the junction of the pipes. + * MakePipeTShapeChamfer + * Create a T-shape object with specified caracteristics for the main and + * the incident pipes (radius, width, half-length). A chamfer is created + * on the junction of the pipes. * Center of the shape is (0,0,0). The main plane of the T-shape is XOY. * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe @@ -146,9 +153,9 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeWithPosition (CORBA::D * \param theR2 Internal radius of incident pipe (R2 < R1) * \param theW2 Width of incident pipe (R2+W2 < R1+W1) * \param theL2 Half-length of incident pipe - * \param theH Height of the chamfer. - * \param theW Width of the chamfer. - * \param theHexMesh false = no partition, true = with partition + * \param theH Height of chamfer. + * \param theW Width of chamfer. + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh * \return List of GEOM_Objects, containing the created shape and propagation groups. */ //============================================================================= @@ -176,10 +183,12 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeChamfer(CORBA::Double //============================================================================= /*! - * Create a T-shape object with specified caracteristics for the main and the - * incident pipes (radius, width, half-length). A chamfer is created on - * the junction of the pipes. - * The T-shape is placed at junction points P1, P2 and P3. + * MakePipeTShapeChamferWithPosition + * Create a T-shape object with specified caracteristics for the main and + * the incident pipes (radius, width, half-length). A chamfer is created + * on the junction of the pipes. + * The extremities of the main pipe are located on junctions points P1 and P2. + * The extremity of the incident pipe is located on junction point P3. * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe * \param theL1 Half-length of main pipe @@ -188,7 +197,10 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeChamfer(CORBA::Double * \param theL2 Half-length of incident pipe * \param theH Height of the chamfer. * \param theW Width of the chamfer. - * \param theHexMesh false = no partition, true = with partition + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh + * \param theP1 1st junction point of main pipe + * \param theP2 2nd junction point of main pipe + * \param theP3 Junction point of incident pipe * \return List of GEOM_Objects, containing the created shape and propagation groups. */ //============================================================================= @@ -223,9 +235,10 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeChamferWithPosition (C //============================================================================= /*! - * Create a T-shape object with specified caracteristics for the main and the - * incident pipes (radius, width, half-length). A fillet is created on - * the junction of the pipes. + * MakePipeTShapeFillet + * Create a T-shape object with specified caracteristics for the main and + * the incident pipes (radius, width, half-length). A fillet is created + * on the junction of the pipes. * Center of the shape is (0,0,0). The main plane of the T-shape is XOY. * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe @@ -234,7 +247,7 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeChamferWithPosition (C * \param theW2 Width of incident pipe (R2+W2 < R1+W1) * \param theL2 Half-length of incident pipe * \param theRF Radius of curvature of fillet. - * \param theHexMesh false = no partition, true = with partition + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh * \return List of GEOM_Objects, containing the created shape and propagation groups. */ //============================================================================= @@ -262,18 +275,23 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeFillet (CORBA::Double //============================================================================= /*! - * Create a T-shape object with specified caracteristics for the main and the - * incident pipes (radius, width, half-length). A fillet is created on - * the junction of the pipes. - * The T-shape is placed at junction points P1, P2 and P3. + * MakePipeTShapeFilletWithPosition + * Create a T-shape object with specified caracteristics for the main and + * the incident pipes (radius, width, half-length). A fillet is created + * on the junction of the pipes. + * The extremities of the main pipe are located on junctions points P1 and P2. + * The extremity of the incident pipe is located on junction point P3. * \param theR1 Internal radius of main pipe * \param theW1 Width of main pipe * \param theL1 Half-length of main pipe * \param theR2 Internal radius of incident pipe (R2 < R1) * \param theW2 Width of incident pipe (R2+W2 < R1+W1) * \param theL2 Half-length of incident pipe - * \param theRF Radius of curvature of fillet. - * \param theHexMesh false = no partition, true = with partition + * \param theRF Radius of curvature of fillet + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh + * \param theP1 1st junction point of main pipe + * \param theP2 2nd junction point of main pipe + * \param theP3 Junction point of incident pipe * \return List of GEOM_Objects, containing the created shape and propagation groups. */ //============================================================================= diff --git a/src/GEOM_SWIG/geompyDC.py b/src/GEOM_SWIG/geompyDC.py index cda11a10f..b51040929 100644 --- a/src/GEOM_SWIG/geompyDC.py +++ b/src/GEOM_SWIG/geompyDC.py @@ -4136,21 +4136,23 @@ class geompyDC(GEOM._objref_GEOM_Gen): ## Create a T-shape object with specified caracteristics for the main # and the incident pipes (radius, width, half-length). - # Center of the shape is (0,0,0). The main plane of the T-shape is - # XOY. + # The extremities of the main pipe are located on junctions points P1 and P2. + # The extremity of the incident pipe is located on junction point P3. + # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and + # the main plane of the T-shape is XOY. # @param theR1 Internal radius of main pipe # @param theW1 Width of main pipe # @param theL1 Half-length of main pipe # @param theR2 Internal radius of incident pipe (R2 < R1) # @param theW2 Width of incident pipe (R2+W2 < R1+W1) # @param theL2 Half-length of incident pipe - # @param theHexMesh false = no partition, true = with partition (default=true) + # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True) # @param theP1 1st junction point of main pipe # @param theP2 2nd junction point of main pipe # @param theP3 Junction point of incident pipe # @return List of GEOM_Objects, containing the created shape and propagation groups. # - # @ref tui_creation_tshape "Example" + # @ref tui_creation_pipetshape "Example" def MakePipeTShape(self, theR1, theW1, theL1, theR2, theW2, theL2, theHexMesh=True, theP1=None, theP2=None, theP3=None): theR1, theW1, theL1, theR2, theW2, theL2, Parameters = ParseParameters(theR1, theW1, theL1, theR2, theW2, theL2) if (theP1 and theP2 and theP3): @@ -4164,8 +4166,10 @@ class geompyDC(GEOM._objref_GEOM_Gen): ## Create a T-shape object with specified caracteristics for the main # and the incident pipes (radius, width, half-length). A chamfer is # created on the junction of the pipes. - # Center of the shape is (0,0,0). The main plane of the T-shape is - # XOY. + # The extremities of the main pipe are located on junctions points P1 and P2. + # The extremity of the incident pipe is located on junction point P3. + # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and + # the main plane of the T-shape is XOY. # @param theR1 Internal radius of main pipe # @param theW1 Width of main pipe # @param theL1 Half-length of main pipe @@ -4174,13 +4178,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theL2 Half-length of incident pipe # @param theH Height of the chamfer. # @param theW Width of the chamfer. - # @param theHexMesh false = no partition, true = with partition (default=true) + # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True) # @param theP1 1st junction point of main pipe # @param theP2 2nd junction point of main pipe # @param theP3 Junction point of incident pipe # @return List of GEOM_Objects, containing the created shape and propagation groups. # - # @ref tui_creation_tshape "Example" + # @ref tui_creation_pipetshape "Example" def MakePipeTShapeChamfer(self, theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theHexMesh=True, theP1=None, theP2=None, theP3=None): theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, Parameters = ParseParameters(theR1, theW1, theL1, theR2, theW2, theL2, theH, theW) if (theP1 and theP2 and theP3): @@ -4194,8 +4198,10 @@ class geompyDC(GEOM._objref_GEOM_Gen): ## Create a T-shape object with specified caracteristics for the main # and the incident pipes (radius, width, half-length). A fillet is # created on the junction of the pipes. - # Center of the shape is (0,0,0). The main plane of the T-shape is - # XOY. + # The extremities of the main pipe are located on junctions points P1 and P2. + # The extremity of the incident pipe is located on junction point P3. + # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and + # the main plane of the T-shape is XOY. # @param theR1 Internal radius of main pipe # @param theW1 Width of main pipe # @param theL1 Half-length of main pipe @@ -4203,13 +4209,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theW2 Width of incident pipe (R2+W2 < R1+W1) # @param theL2 Half-length of incident pipe # @param theRF Radius of curvature of fillet. - # @param theHexMesh false = no partition, true = with partition (default=true) + # @param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=True) # @param theP1 1st junction point of main pipe # @param theP2 2nd junction point of main pipe # @param theP3 Junction point of incident pipe # @return List of GEOM_Objects, containing the created shape and propagation groups. # - # @ref tui_creation_tshape "Example" + # @ref tui_creation_pipetshape "Example" def MakePipeTShapeFillet(self, theR1, theW1, theL1, theR2, theW2, theL2, theRF, theHexMesh=True, theP1=None, theP2=None, theP3=None): theR1, theW1, theL1, theR2, theW2, theL2, theRF, Parameters = ParseParameters(theR1, theW1, theL1, theR2, theW2, theL2, theRF) if (theP1 and theP2 and theP3): -- 2.39.2