]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
EDF 2281 : Add 2 primitives for hexa mesh
authorrnc <rnc@opencascade.com>
Mon, 9 Jul 2012 12:19:55 +0000 (12:19 +0000)
committerrnc <rnc@opencascade.com>
Mon, 9 Jul 2012 12:19:55 +0000 (12:19 +0000)
- A disk primitive "pre-divided" into blocks has been added
- Picture, translations and doc to be added soon
- Other constructors to be added too

21 files changed:
doc/salome/gui/GEOM/input/creating_adv_obj.doc
doc/salome/gui/GEOM/input/tui_advanced_geom_objs.doc
idl/GEOM_Gen.idl
idl/GEOM_Superv.idl
resources/GEOMCatalog.xml.in
resources/Makefile.am
src/AdvancedGUI/AdvancedGUI.cxx
src/AdvancedGUI/Makefile.am
src/GEOMGUI/GEOM_images.ts
src/GEOMGUI/GeometryGUI.cxx
src/GEOMGUI/GeometryGUI_Operations.h
src/GEOMImpl/GEOMImpl_Gen.cxx
src/GEOMImpl/GEOMImpl_IAdvancedOperations.cxx
src/GEOMImpl/GEOMImpl_IAdvancedOperations.hxx
src/GEOMImpl/GEOMImpl_Types.hxx
src/GEOMImpl/Makefile.am
src/GEOM_I/GEOM_IAdvancedOperations_i.cc
src/GEOM_I/GEOM_IAdvancedOperations_i.hh
src/GEOM_I_Superv/GEOM_Superv_i.cc
src/GEOM_I_Superv/GEOM_Superv_i.hh
src/GEOM_SWIG/geompyDC.py

index eb11522cf0f98b1918ed2c58ab15dd632ed0f437..5c2aca19515c98e84c970f4987608c021140fba1 100644 (file)
@@ -6,6 +6,7 @@
 
 <ul>
 <li>\subpage create_pipetshape_page</li>
+<li>\subpage create_divideddisk_page</li>
 <!--@@ insert new functions before this line @@ do not remove this line @@-->
 </ul>
 
index 654cdd15890fa44d895b43470a6cffa026c11633..655234d874400b7ec167da4f30f19c0797c82762 100644 (file)
@@ -80,5 +80,23 @@ gg.createAndDisplayGO(id_pipetshapefillet_position)
 
 \endcode
 
+\anchor tui_creation_divideddisk
+<br><h2>Creation of DividedDisk</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create DividedDisk object
+divideddisk = geompy.MakeDividedDisk(100, 50)
+
+# add object in the study
+id_divideddisk = geompy.addToStudy(divideddisk,"DividedDisk")
+
+# display divideddisk
+gg.createAndDisplayGO(id_divideddisk) 
+\endcode
+
 <!--@@ insert new functions before this line @@ do not remove this line @@-->
 */
index 78339217004e03cb7a7828c04157d9d2dc810e57..d61328dea8fc418df52060a6b46e2499cdfbcde2 100644 (file)
@@ -3758,6 +3758,15 @@ 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);
+    /*!
+     *  This function allows to create a disk already divided into blocks. It
+     *  can be use to create divided pipes for later meshing in hexaedra.
+     *  \param theR Radius of the disk
+     *  \param theRatio Relative size of the central square diagonal against the disk diameter
+     *  \return New GEOM_Object, containing the created shape.
+     */
+    GEOM_Object MakeDividedDisk (in double theR, in double theRatio);
+
     /*@@ insert new functions before this line @@ do not remove this line @@*/
   };
 
index 7bc184a7f26e902f0948b59598cb68778bba06e2..e7c538402633c6054b8078d75c4a09be2a6c5f4f 100644 (file)
@@ -617,6 +617,8 @@ module GEOM
                           in double theRF, in boolean theHexMesh,
                           in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
 
+    GEOM_Object MakeDividedDisk (in double theR, in double theRatio);
+
     /*@@ insert new functions before this line @@ do not remove this line @@*/
  };
 };
index db645d25bc5ec0776858d2eb317fe4aafe43912b..28e7dc14718527c3e55b4cda93d6ac74d1b50f06 100644 (file)
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
+                    <component-service>
+                        <service-name>MakeDividedDisk</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theR</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>Radius of the disk</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theRatio</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>Relative size of the central square diagonal against the disk diameter</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>Result object</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
                     <!-- @@ insert new functions before this line @@ do not remove this line @@ -->
                 </component-service-list>
             </component-interface-list>
index 187ca89c6760af2f81ebec11ef2eddb270f01461..c3d21181f6a1b9e786ae223e06e1de0c6ff47a83 100644 (file)
@@ -251,6 +251,7 @@ ADVANCED_RESOURCES += dlg_pipetshapechamferh.png dlg_pipetshapechamferw.png
 ADVANCED_RESOURCES += dlg_pipetshapefilletl1.png dlg_pipetshapefilletr1.png dlg_pipetshapefilletw1.png
 ADVANCED_RESOURCES += dlg_pipetshapefilletl2.png dlg_pipetshapefilletr2.png dlg_pipetshapefilletw2.png
 ADVANCED_RESOURCES += dlg_pipetshapefilletrf.png
+#ADVANCED_RESOURCES += divideddisk.png divideddisk_r_ratio.png tree_divideddisk.png
 ##@@ insert new functions before this line @@ do not remove this line @@##
 
 dist_salomeres_DATA += $(ADVANCED_RESOURCES)
index a092ecc3a17a8b2c398e5d8e0e70c4c206b13962..03b3d97bc8df6ccd9aeebfa556f2ed6a52c0d866 100644 (file)
@@ -29,6 +29,7 @@
 #include <SalomeApp_Application.h>
 
 #include "AdvancedGUI_PipeTShapeDlg.h"
+#include "AdvancedGUI_DividedDiskDlg.h"
 //@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@//
 
 #include <QDialog>
@@ -69,6 +70,9 @@ bool AdvancedGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
 //   case GEOMOp::OpPipeTShapeGroups:
 //     aDlg = new AdvancedGUI_PipeTShapeGroupsDlg( getGeometryGUI(), parent );
 //     break;
+  case GEOMOp::OpDividedDisk:
+    aDlg = new AdvancedGUI_DividedDiskDlg( getGeometryGUI(), parent );
+    break;
   //@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@//
   default:
     app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) );
index 1a1005aeb65b0cf687180dd2d1b1ebe27d8e064b..f2fa4d4dbe825825a4c957ab852a46bbb6b41e74 100644 (file)
@@ -28,6 +28,7 @@ salomeinclude_HEADERS =                       \
 
 ADVANCED_INCLUDES  =
 ADVANCED_INCLUDES += AdvancedGUI_PipeTShapeDlg.h
+ADVANCED_INCLUDES += AdvancedGUI_DividedDiskDlg.h
 ##@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@##
 
 salomeinclude_HEADERS += $(ADVANCED_INCLUDES)
@@ -41,6 +42,7 @@ dist_libAdvancedGUI_la_SOURCES =      \
 
 ADVANCED_SOURCES  =
 ADVANCED_SOURCES += AdvancedGUI_PipeTShapeDlg.h AdvancedGUI_PipeTShapeDlg.cxx
+ADVANCED_SOURCES += AdvancedGUI_DividedDiskDlg.h AdvancedGUI_DividedDiskDlg.cxx
 ##@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@##
 
 dist_libAdvancedGUI_la_SOURCES += $(ADVANCED_SOURCES)
@@ -49,6 +51,7 @@ MOC_FILES =
 
 ADVANCED_MOC_FILES  =
 ADVANCED_MOC_FILES += AdvancedGUI_PipeTShapeDlg_moc.cxx
+ADVANCED_MOC_FILES += AdvancedGUI_DividedDiskDlg_moc.cxx
 ##@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@##
 
 MOC_FILES += $(ADVANCED_MOC_FILES)
index 98439825d7beaaff177c3e226ca2b3bd2839dd20..da9fb9db0cacb0d82a11a1cc9b12b598037a5383 100644 (file)
             <translation>pipetshapegroups.png</translation>
         </message>
 -->
+        <message>
+            <source>ICON_DLG_DIVIDEDDISK_R_RATIO</source>
+            <translation>divideddisk_r_ratio.png</translation>
+        </message>
+        <message>
+            <source>ICO_DIVIDEDDISK</source>
+            <translation>divideddisk.png</translation>
+        </message>
+        <message>
+            <source>ICON_OBJBROWSER_ADVANCED_202</source>
+            <translation>tree_divideddisk.png</translation>
+        </message>
        <!-- @@ insert new functions before this line @@ do not remove this line @@ -->
     </context>
 </TS>
index cf1fc0abacf74278cd8523eb81666419787e2e87..1cc5d4a2608f05fd6849338f8390e50689bddbb1 100644 (file)
@@ -567,6 +567,7 @@ void GeometryGUI::OnGUIEvent( int id )
   case GEOMOp::OpAdvancedNoOp:       // NO OPERATION (advanced operations base)
   case GEOMOp::OpPipeTShape:         // MENU NEW ENTITY - ADVANCED - PIPE TSHAPE
 //   case GEOMOp::OpPipeTShapeGroups:     // MENU NEW ENTITY - ADVANCED - PIPE TSHAPE GROUPS
+  case GEOMOp::OpDividedDisk:           // MENU NEW ENTITY - ADVANCED - DIVIDEDDISK
     //@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@//
     libName = "AdvancedGUI";
     break;
@@ -888,6 +889,7 @@ void GeometryGUI::initialize( CAM_Application* app )
                     "Geometry:Decrease number of isolines");
 
 //   createGeomAction( GEOMOp::OpPipeTShapeGroups, "PIPETSHAPEGROUPS" );
+  createGeomAction( GEOMOp::OpDividedDisk, "DIVIDEDDISK" );
   //@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@//
 
   // ---- create menus --------------------------
@@ -934,9 +936,10 @@ void GeometryGUI::initialize( CAM_Application* app )
   createMenu( GEOMOp::OpFilling,    genId, -1 );
   createMenu( GEOMOp::OpPipe,       genId, -1 );
 
-//   int advId = createMenu( tr( "MEN_ADVANCED" ), newEntId, -1 );
+  int advId = createMenu( tr( "MEN_ADVANCED" ), newEntId, -1 );
 //   createMenu( GEOMOp::OpPipeTShape, advId, -1 );
 //   createMenu( GEOMOp::OpPipeTShapeGroups, advId, -1 );
+  createMenu( GEOMOp::OpDividedDisk, advId, -1 );
   //@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@//
 
   createMenu( separator(), newEntId, -1 );
@@ -1191,7 +1194,9 @@ void GeometryGUI::initialize( CAM_Application* app )
   #ifdef WITH_OPENCV
     createTool( GEOMOp::OpFeatureDetect,  picturesTbId );
   #endif
-
+  
+  int advancedTbId = createTool( tr( "TOOL_ADVANCED" ) );
+  createTool( GEOMOp::OpDividedDisk, advancedTbId );
   //@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@//
 
   // ---- create popup menus --------------------------
index 80764383192432f4787026e71f732486c020ca87..e15c9695a46f90eeeec6ffd9c55312f253b1f017 100644 (file)
@@ -185,6 +185,7 @@ namespace GEOMOp {
     OpAdvancedNoOp        = 10000,  // NO OPERATION (advanced operations base)
     OpPipeTShape          = 10001,  // MENU NEW ENTITY - ADVANCED - PIPE TSHAPE
 //     OpPipeTShapeGroups  = 10002,  // MENU NEW ENTITY - ADVANCED - PIPE TSHAPE GROUPS
+    OpDividedDisk            = 10003,  // MENU NEW ENTITY - ADVANCED - DIVIDEDDISK
     //@@ insert new functions before this line @@ do not remove this line @@//
   };
 }
index 6fd6cb8dd51fcde0ca62719b9ac4737d8bc0306f..982a6faa7194067884a7b2f1459c22ccf7b72a13 100644 (file)
@@ -83,6 +83,7 @@
 #include <GEOMImpl_MeasureDriver.hxx>
 // Advanced operations
 #include <GEOMImpl_PipeTShapeDriver.hxx>
+#include <GEOMImpl_DividedDiskDriver.hxx>
 /*@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@*/
 
 //=============================================================================
@@ -166,6 +167,7 @@ GEOMImpl_Gen::GEOMImpl_Gen()
 
    // Advanced operations
    TFunction_DriverTable::Get()->AddDriver(GEOMImpl_PipeTShapeDriver::GetID(), new GEOMImpl_PipeTShapeDriver());
+   TFunction_DriverTable::Get()->AddDriver(GEOMImpl_DividedDiskDriver::GetID(), new GEOMImpl_DividedDiskDriver());
    /*@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@*/
 
    SetEngine(this);
index 1ede66bc7336f1953b806402d1e4eb922a996f90..4f388aac2763e7df557c2bcd1451562f5ed5e97d 100644 (file)
@@ -45,6 +45,8 @@
 
 #include "GEOMImpl_PipeTShapeDriver.hxx"
 #include "GEOMImpl_IPipeTShape.hxx"
+#include <GEOMImpl_DividedDiskDriver.hxx>
+#include <GEOMImpl_IDividedDisk.hxx>
 /*@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@*/
 
 #include <TopExp.hxx>
@@ -2233,4 +2235,55 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFilletWithPosition(double theR1, dou
   return aSeq;
 }
 
+//=============================================================================
+/*!
+ *  This function allows to create a disk already divided into blocks. It can be
+ *  use to create divided pipes for later meshing in hexaedra.
+ *  \param theR Radius of the disk
+ *  \param theRatio Relative size of the central square diagonal against the disk diameter
+ *  \return New GEOM_Object, containing the created shape.
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_IAdvancedOperations::MakeDividedDisk (double theR, double theRatio)
+{
+  SetErrorCode(KO);
+
+  //Add a new object
+  Handle(GEOM_Object) aShape = GetEngine()->AddObject(GetDocID(), GEOM_DIVIDEDDISK);
+
+  //Add a new shape function with parameters
+  Handle(GEOM_Function) aFunction = aShape->AddFunction(GEOMImpl_DividedDiskDriver::GetID(), DIVIDEDDISK_R_RATIO);
+  if (aFunction.IsNull()) return NULL;
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_DividedDiskDriver::GetID()) return NULL;
+
+  GEOMImpl_IDividedDisk aData (aFunction);
+
+  aData.SetR(theR);
+  aData.SetRatio(theRatio);
+
+  //Compute the resulting value
+  try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+    OCC_CATCH_SIGNALS;
+#endif
+    if (!GetSolver()->ComputeFunction(aFunction)) {
+      SetErrorCode("DividedDisk driver failed");
+      return NULL;
+    }
+  }
+  catch (Standard_Failure) {
+    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
+    SetErrorCode(aFail->GetMessageString());
+    return NULL;
+  }
+
+  //Make a Python command
+  GEOM::TPythonDump(aFunction) << aShape << " = geompy.MakeDividedDisk(" << theR << ", " << theRatio << ")";
+
+  SetErrorCode(OK);
+
+  return aShape;
+}
 /*@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@*/
index 6c0d3f67707ee0adbebeab4f3e0961ec4b129f9b..627c2bef46faaf850395cf2f96f13c4941200bf0 100644 (file)
@@ -109,6 +109,7 @@ public:
                                                    Handle(GEOM_Object) P1 = 0,
                                                    Handle(GEOM_Object) P2 = 0,
                                                    Handle(GEOM_Object) P3 = 0);
+  Standard_EXPORT Handle(GEOM_Object) MakeDividedDisk (double theR, double theRatio);
   /*@@ insert new functions before this line @@ do not remove this line @@*/
 };
 #endif
index a18cd853c0d1d5df9234af36ea1a264844ff58c9..250092f522c3b70ff7bb01a49fd0804c1735351d 100755 (executable)
 // Advanced functions (base = 200)
 #define ADVANCED_BASE 200  // NO OPERATION (advanced operations base)
 #define GEOM_TSHAPE 201
+#define GEOM_DIVIDEDDISK 202
 /*@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@*/
 // Advanced functions sub-operations codes
 #define TSHAPE_BASIC 1
 #define TSHAPE_CHAMFER 2
 #define TSHAPE_FILLET 3
+#define DIVIDEDDISK_R_RATIO 1
 /*@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@*/
index 5cb6822517e059b4066ec669d7ae2cb5afd80916..be7f4743a0b338aa9ed9f2f5ca7e39b767ba4b84 100644 (file)
@@ -144,6 +144,7 @@ salomeinclude_HEADERS =                             \
 
 ADVANCED_INCLUDES  =
 ADVANCED_INCLUDES += GEOMImpl_IPipeTShape.hxx GEOMImpl_PipeTShapeDriver.hxx
+ADVANCED_INCLUDES += GEOMImpl_IDividedDisk.hxx GEOMImpl_DividedDiskDriver.hxx
 ##@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@##
 
 salomeinclude_HEADERS += $(ADVANCED_INCLUDES)
@@ -214,6 +215,7 @@ dist_libGEOMimpl_la_SOURCES =                       \
 
 ADVANCED_SOURCES  =
 ADVANCED_SOURCES += GEOMImpl_PipeTShapeDriver.cxx
+ADVANCED_SOURCES += GEOMImpl_DividedDiskDriver.cxx
 ##@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@##
 
 dist_libGEOMimpl_la_SOURCES += $(ADVANCED_SOURCES)
index 271c3cecb2841a9bda451ed90d8418a928233585..4f932f1574b67a42c1f7d5cc9ba04d03a32d2902 100644 (file)
@@ -321,4 +321,28 @@ GEOM::ListOfGO* GEOM_IAdvancedOperations_i::MakePipeTShapeFilletWithPosition (CO
   return aSeq._retn();
 }
 
+//=============================================================================
+/*!
+ *  This function allows to create a disk already divided into blocks. It can be
+ *  use to create divided pipes for later meshing in hexaedra.
+ *  \param theR Radius of the disk
+ *  \param theRatio Relative size of the central square diagonal against the disk diameter
+ *  \return New GEOM_Object, containing the created shape.
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_IAdvancedOperations_i::MakeDividedDisk (CORBA::Double theR, CORBA::Double theRatio)
+{
+  GEOM::GEOM_Object_var aGEOMObject;
+
+  //Set a not done flag
+  GetOperations()->SetNotDone();
+
+  //Create the DividedDisk
+  Handle(GEOM_Object) anObject = GetOperations()->MakeDividedDisk(theR, theRatio);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
+
 /*@@ insert new functions before this line @@ do not remove this line @@*/
index d0d3308c780607ccb5dd2a312e830fba8b8bf466..52197095f9dafc4cc344e7a5aad00ad5f4a02357 100644 (file)
@@ -63,6 +63,7 @@ class GEOM_I_EXPORT GEOM_IAdvancedOperations_i :
                                                    CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2, 
                                                    CORBA::Double theRF, CORBA::Boolean theHexMesh,
                                                    GEOM::GEOM_Object_ptr theP1, GEOM::GEOM_Object_ptr theP2, GEOM::GEOM_Object_ptr theP3);
+  GEOM::GEOM_Object_ptr MakeDividedDisk (CORBA::Double theR, CORBA::Double theRatio);
   /*@@ insert new functions before this line @@ do not remove this line @@*/
 
   ::GEOMImpl_IAdvancedOperations* GetOperations()
index e29a8faa9d1e37af1843eaa65b335e58b85e6b85..cac250787b0da71c9678bfe55f1c091feadab70d 100644 (file)
@@ -3402,6 +3402,19 @@ GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShapeFilletWithPosition
   return aSeqPtr->_this();
 }
 
+//=============================================================================
+//  MakeDividedDisk
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeDividedDisk (CORBA::Double theR, CORBA::Double theRatio)
+{
+  beginService( " GEOM_Superv_i::MakeDividedDisk" );
+  MESSAGE("GEOM_Superv_i::MakeDividedDisk");
+  getAdvancedOp();
+  GEOM::GEOM_Object_ptr anObj = myAdvancedOp->MakeDividedDisk(theR, theRatio);
+  endService( " GEOM_Superv_i::MakeDividedDisk" );
+  return anObj;
+}
+
 /*@@ insert new functions before this line @@ do not remove this line @@*/
 
 //=====================================================================================
index 7594d80771d49153ed62f5095a86dc8e31d4eec7..3f968b9611e897412455b7b0faffe07ff56a4cff 100644 (file)
@@ -706,6 +706,7 @@ public:
                                                         CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
                                                         CORBA::Double theRF, CORBA::Boolean theHexMesh,
                                                         GEOM::GEOM_Object_ptr theP1, GEOM::GEOM_Object_ptr theP2, GEOM::GEOM_Object_ptr theP3);
+  GEOM::GEOM_Object_ptr MakeDividedDisk (CORBA::Double theR, CORBA::Double theRatio);
   /*@@ insert new functions before this line @@ do not remove this line @@*/
 
 private:
index 25c167e55a42efbfe64715df6192d632cf97e49b..88a05c1bc80a3311b7cddd8510d12e37b179d073 100644 (file)
@@ -8548,6 +8548,20 @@ class geompyDC(GEOM._objref_GEOM_Gen):
             if Parameters: anObj[0].SetParameters(Parameters)
             return anObj
 
+        ## This function allows to create a disk already divided into blocks. It
+        #  can be use to create divided pipes for later meshing in hexaedra.
+        #  @param theR Radius of the disk
+        #  @param theRatio Relative size of the central square diagonal against the disk diameter
+        #  @return New GEOM_Object, containing the created shape.
+        #
+        #  @ref tui_creation_divideddisk "Example"
+        def MakeDividedDisk(self, theR, theRatio):
+            theR, theRatio, Parameters = ParseParameters(theR, theRatio)
+            anObj = self.AdvOp.MakeDividedDisk(theR, theRatio)
+            RaiseIfFailed("MakeDividedDisk", self.AdvOp)
+            if Parameters: anObj.SetParameters(Parameters)
+            return anObj
+
         #@@ insert new functions before this line @@ do not remove this line @@#
 
         # end of l4_advanced