From 6ceb0d775030ef212be8e999ac432201d4257f86 Mon Sep 17 00:00:00 2001 From: vsr Date: Thu, 10 Jun 2010 08:25:12 +0000 Subject: [PATCH] Merge from V5_1_main 10/06/2010 --- doc/salome/gui/GEOM/images/neo-scetcher1.png | Bin 27492 -> 25607 bytes doc/salome/gui/GEOM/images/neo-scetcher2.png | Bin 29312 -> 27195 bytes doc/salome/gui/GEOM/images/partition1.png | Bin 23964 -> 26975 bytes doc/salome/gui/GEOM/images/partitionsn3.png | Bin 0 -> 9399 bytes .../input/add_point_on_edge_operation.doc | 30 +- doc/salome/gui/GEOM/input/creating_lcs.doc | 10 +- .../gui/GEOM/input/creating_pipetshape.doc | 30 +- .../gui/GEOM/input/creating_sketcher.doc | 5 +- doc/salome/gui/GEOM/input/deflection.doc | 4 +- .../input/geometrical_object_properties.doc | 15 +- doc/salome/gui/GEOM/input/index.doc | 8 +- doc/salome/gui/GEOM/input/partition.doc | 60 +++- .../input/restore_presentation_parameters.doc | 17 +- .../gui/GEOM/input/viewing_geom_obj.doc | 2 +- idl/GEOM_Gen.idl | 8 +- src/AdvancedGUI/AdvancedGUI_PipeTShapeDlg.cxx | 20 +- src/BasicGUI/BasicGUI_CircleDlg.cxx | 1 + src/BasicGUI/BasicGUI_CurveDlg.cxx | 4 + src/BasicGUI/BasicGUI_EllipseDlg.cxx | 3 +- src/BasicGUI/BasicGUI_LineDlg.cxx | 1 - src/BasicGUI/BasicGUI_PlaneDlg.cxx | 1 + src/BasicGUI/BasicGUI_VectorDlg.cxx | 1 + src/BuildGUI/BuildGUI_FaceDlg.cxx | 1 + src/BuildGUI/BuildGUI_ShellDlg.cxx | 2 +- src/BuildGUI/BuildGUI_WireDlg.cxx | 1 + src/EntityGUI/EntityGUI_SketcherDlg.cxx | 49 ++- src/EntityGUI/EntityGUI_SketcherDlg.h | 2 + src/GEOM/GEOM_Engine.cxx | 5 + src/GEOMAlgo/GEOMAlgo_Builder.cxx | 56 +-- src/GEOMAlgo/GEOMAlgo_Tools.cdl | 6 +- src/GEOMAlgo/GEOMAlgo_Tools.hxx | 40 +-- src/GEOMAlgo/GEOMAlgo_Tools_1.cxx | 323 ++++++++++++++++++ src/GEOMAlgo/Makefile.am | 1 + src/GEOMGUI/GEOM_msg_en.ts | 4 + src/GEOMGUI/GeometryGUI.cxx | 6 +- src/GEOMImpl/GEOMImpl_BooleanDriver.cxx | 5 +- src/GEOM_SWIG/geompyDC.py | 82 ++--- src/OperationGUI/OperationGUI_FilletDlg.cxx | 1 + .../OperationGUI_PartitionDlg.cxx | 1 + src/PrimitiveGUI/PrimitiveGUI_BoxDlg.cxx | 17 +- src/PrimitiveGUI/PrimitiveGUI_BoxDlg.h | 3 - src/PrimitiveGUI/PrimitiveGUI_ConeDlg.cxx | 13 +- src/PrimitiveGUI/PrimitiveGUI_ConeDlg.h | 3 - src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx | 15 +- src/PrimitiveGUI/PrimitiveGUI_DiskDlg.cxx | 18 +- src/PrimitiveGUI/PrimitiveGUI_DiskDlg.h | 3 - src/PrimitiveGUI/PrimitiveGUI_SphereDlg.cxx | 1 + src/PrimitiveGUI/PrimitiveGUI_TorusDlg.cxx | 18 +- src/PrimitiveGUI/PrimitiveGUI_TorusDlg.h | 3 - src/RepairGUI/RepairGUI_SuppressFacesDlg.cxx | 26 +- .../TransformationGUI_OffsetDlg.cxx | 1 + 51 files changed, 655 insertions(+), 271 deletions(-) create mode 100644 doc/salome/gui/GEOM/images/partitionsn3.png create mode 100644 src/GEOMAlgo/GEOMAlgo_Tools_1.cxx diff --git a/doc/salome/gui/GEOM/images/neo-scetcher1.png b/doc/salome/gui/GEOM/images/neo-scetcher1.png index d0d5d7132e396f7b397cdfc33f02e636d83c9ff1..2205805bd2b40532ed1167ad781e527648cdc084 100755 GIT binary patch literal 25607 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%0AKzDd{`(y$B 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 F{{vABSBL-r diff --git a/doc/salome/gui/GEOM/images/partition1.png b/doc/salome/gui/GEOM/images/partition1.png index 7e068ca0d00723831fa9dd2f7e5bb24531201b13..cc5b1554480ac7a4f7772e5bc4bdba3d2b8a53c8 100755 GIT binary patch literal 26975 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 literal 23964 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
    %OJ4vqE?`-I&L=|t{gLklCz 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/input/add_point_on_edge_operation.doc b/doc/salome/gui/GEOM/input/add_point_on_edge_operation.doc index 465928b80..4a58ee64a 100644 --- a/doc/salome/gui/GEOM/input/add_point_on_edge_operation.doc +++ b/doc/salome/gui/GEOM/input/add_point_on_edge_operation.doc @@ -5,23 +5,35 @@ \n To Add Point on Edge in the Main Menu select Repair - > Add Point on Edge. -\n This operation splits an edge in two in accordance with the +\n This operation splits an edge in two new edges in accordance with the specified mode (by length or by parameter) and a value specifying the position of the point on edge (for example val =0.5; mode = -Length). This operation is available in OCC Viewer only. +by length). This operation is available in OCC Viewer only. \n The \b Result will be a \b GEOM_Object. \n TUI Command: geompy.DivideEdge(Shape, EdgeID, Value, -IsByParameter), where \em Shape is a shape which contains an edge to -be divided, \em EdgeID is the ID of the edge to be divided, if it = -1, -then Shape is an edge, \em Value is a paramter on the edge or a -length. \em IsByParameter if it is True then Value is the edge parameter -in the range [0:1] otherwise it is a part of the length of the edge in the range -[0: full length of the edge] -\n Arguments: Name + 1 Edge + 1 value setting the position of +IsByParameter) +- \em Shape is a shape which contains an edge to be divided +- \em EdgeID is the ID of the edge to be divided, if it is = -1, +then \em Shape should be an edge itself +- \em Value is a value of parameter on edge or length parameter, +depending on \em IsByParameter. +- \em IsByParameter is a boolean flag, specifying operation mode: + - \c True: \em Value is treated as a curve parameter [0..1] + - \c False: \em Value is treated as a length parameter [0..1] + +Arguments: Name + 1 Edge + 1 Value setting the position of the point according to one of the selected modes. +The difference between "by parameter" and "by length" modes becomes +apparent on the edges with irregular parametrization (for example, +b-splines which usually have irregular density by the length). +For example, value 0.5 "by length" on such edge will produce the point +in the middle of this edge (equidistant from both its ends); the same +0.5 value "by parameter" will result in the point situated closer to +one of the ends (depending on the actual parametrization). + \image html repair8.png \n Example: diff --git a/doc/salome/gui/GEOM/input/creating_lcs.doc b/doc/salome/gui/GEOM/input/creating_lcs.doc index 2516af99d..0188c76ba 100644 --- a/doc/salome/gui/GEOM/input/creating_lcs.doc +++ b/doc/salome/gui/GEOM/input/creating_lcs.doc @@ -26,8 +26,8 @@ of the LCS are calculated automatically basing on the selected object. coordinates of origin by a point and axes directions by a line or a vector. \n TUI command: geompy.MakeMarkerPntTwoVec(Center, VectorX, -VectorY) where Center is a point specified the coordinate system location, -VectorX is a derection of OX axis and VectorY direction of OY axis. +VectorY) where Center is the origin of the coordinate system, +VectorX is the direction of OX axis and VectorY is the direction of OY axis. \n Arguments: Name + 1 point of origin + X axis direction, Y axis direction. \image html neo-localcs3.png @@ -40,6 +40,6 @@ and in 3D viewer. \image html image145.png "Local Coordinate System" -TUI Script provide you with useful example of creation of -\ref tui_creation_lcs "Local Coordinate System". -*/ \ No newline at end of file +TUI Script provides you with a useful example of +\ref tui_creation_lcs "Local Coordinate System" creation. +*/ diff --git a/doc/salome/gui/GEOM/input/creating_pipetshape.doc b/doc/salome/gui/GEOM/input/creating_pipetshape.doc index 823bc3eb9..d66250295 100644 --- a/doc/salome/gui/GEOM/input/creating_pipetshape.doc +++ b/doc/salome/gui/GEOM/input/creating_pipetshape.doc @@ -5,23 +5,23 @@ 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 +Specify the parameters of the PipeTShape object in the opened dialog box and press "Apply" or "Apply & Close" button. -Result of each operation will be a GEOM_Object. +The result of the 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). +- \b R1 - Radius of the main T-shape pipe. +- \b W1 - Thickness of the main T-shape pipe. +- \b L1 - Length of the main T-shape pipe. +- \b R2 - Radius of the incident T-shape pipe. +- \b W2 - Thickness of the incident T-shape pipe. +- \b L2 - Length of the incident T-shape pipe. +- \b HexMesh - If True, the shape is splitted into blocks (suitable for hexaedral mesh). +- \b P1 - First junction point of the main pipe (GEOM Vertex). +- \b P2 - Second junction point of the main pipe (GEOM Vertex). +- \b P3 - Junction point of the incident pipe (GEOM Vertex). \image html pipetshape_dlg.png @@ -33,8 +33,8 @@ A Pipe T-Shape can be created with a chamfer at the junction of the main and the 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. +The arguments are the same as of the normal Pipe T-Shape plus: +- \b H - Height of the chamfer along the incident pipe. - \b W - Width of the chamfer along the main pipe. Example: @@ -45,7 +45,7 @@ A Pipe T-Shape can be created with a fillet at the junction of the main and the 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: +The arguments are the same as of the normal Pipe T-Shape plus: - \b RF - Radius of the fillet. Example: diff --git a/doc/salome/gui/GEOM/input/creating_sketcher.doc b/doc/salome/gui/GEOM/input/creating_sketcher.doc index 2da54f5fa..c93f5f3ff 100644 --- a/doc/salome/gui/GEOM/input/creating_sketcher.doc +++ b/doc/salome/gui/GEOM/input/creating_sketcher.doc @@ -54,13 +54,14 @@ is predefined and is equal to 90 degrees); \b Buttons: -"Sketch Validation" button applies the wire, only red part will be built by "Sketch Validation". +"Restore" button orientates the viewer correspondingly to the chosen working plane and fits the scene to show all its objects. +\n "Sketch Validation" button applies the wire, only red part will be built by "Sketch Validation". \n "Sketch Closure" will close the Sketch by straight line from last red part and apply it. \n Dialog Box: \image html neo-scetcher1.png - +
    \image html neo-scetcher2.png \n Example: diff --git a/doc/salome/gui/GEOM/input/deflection.doc b/doc/salome/gui/GEOM/input/deflection.doc index b2f419a94..1d523f3b4 100644 --- a/doc/salome/gui/GEOM/input/deflection.doc +++ b/doc/salome/gui/GEOM/input/deflection.doc @@ -2,8 +2,8 @@ \page deflection_page Deflection -\n In this menu you can change the deviation coefficient of the -shape. Smaller coefficient provides better quality of the shape in the +\n In this menu you can change the deflection coefficient of the +shape. The less is the coefficient the better is the quality of the shape in the viewer. \n Arguments: 1 floating point value (deviation coefficient). diff --git a/doc/salome/gui/GEOM/input/geometrical_object_properties.doc b/doc/salome/gui/GEOM/input/geometrical_object_properties.doc index 78de472cd..e323c6932 100644 --- a/doc/salome/gui/GEOM/input/geometrical_object_properties.doc +++ b/doc/salome/gui/GEOM/input/geometrical_object_properties.doc @@ -8,7 +8,7 @@ The Type property of the geometrical object specifies the way the object has been created. It is an integer identifier that -has predefined value depending on the function type used for the +has a predefined value depending on the function type used for the object creation. The type of the object can be retrieved using the \b %GetType() function of the \b GEOM_Object interface. @@ -70,10 +70,9 @@ The possible values of the geometrical objects are listed in the table below: Also geompy.py module provides a helper function ShapeIdToType() -that allows converting of the geometrical object type id value -to its string representation. +that allows converting the geometrical object id value to its string representation. -For example: +For example, the output of the following code: \code import geompy box = geompy.MakeBoxDXDYDZ(10,10,10) @@ -81,12 +80,12 @@ type = geompy.ShapeIdToType(box.GetType()) print type \endcode -The above code prints "BOX" value. +will be the "BOX" value. GetShapeType function: The ShapeType property specifies the geometrical object in terms of -its topology nature. +its topologic nature. The possible values are defined in the GEOM namespace: { COMPOUND, COMPSOLID, SOLID, SHELL, FACE, WIRE, EDGE, VERTEX, SHAPE }
    @@ -94,7 +93,7 @@ SOLID, SHELL, FACE, WIRE, EDGE, VERTEX, SHAPE }
    This type can be retrieved using the \b %GetShapeType() function of the \b GEOM_Object interface. -Example code: +For example: \code import geompy import GEOM @@ -103,6 +102,6 @@ type = box.GetShapeType() print type == GEOM.SOLID \endcode -This code prints "True". +The result is "True". */ diff --git a/doc/salome/gui/GEOM/input/index.doc b/doc/salome/gui/GEOM/input/index.doc index d1485ef14..d28e8c343 100644 --- a/doc/salome/gui/GEOM/input/index.doc +++ b/doc/salome/gui/GEOM/input/index.doc @@ -13,9 +13,11 @@ using a wide range of functions;
  • \subpage transform_geom_obj_page "transformation of geometrical objects" using various algorithms;
  • \subpage repairing_operations_page "optimization of geometrical objects";
  • -
  • \subpage geometrical_obj_prop_page "Geometrical object properties".
  • -
  • \subpage using_measurement_tools_page "provision of information about geometrical objects".
  • -
  • \subpage using_notebook_geom_page.
  • +
  • viewing \subpage geometrical_obj_prop_page "geometrical object properties".
  • +
  • and other information about geometrical objects using + \subpage using_measurement_tools_page "measurement tools".
  • +
  • easily setting parameters via the variables predefined in + \subpage using_notebook_geom_page "Salome notebook".
Almost all geometry module functionalities are accessible via diff --git a/doc/salome/gui/GEOM/input/partition.doc b/doc/salome/gui/GEOM/input/partition.doc index 532f4c375..6661d12f2 100644 --- a/doc/salome/gui/GEOM/input/partition.doc +++ b/doc/salome/gui/GEOM/input/partition.doc @@ -4,45 +4,66 @@ \n To produce a \b Partition in the Main Menu select Operations - > Partition -\n This operation builds a compound by intersection of several shapes with a tool object or a plane. +\n This operation builds a compound by intersection of several shapes +with a set of tool objects or with a plane. \n The \b Result will be any \b GEOM_Object.

Intersection of two shapes.

+\image html partition1.png + +\n Arguments: Name + 2 lists of shapes (the shapes from the +first list will be intersected with the shapes from the second list) + +Resulting Type of shape. + \n As far as the intersection of two objects can produce any type of geometrical objects, Resulting type box allows choosing the preferrable result, i.e. a solid, a shell, a list of faces, etc. +\nResulting type has to be equal or lower than the type of the +\em Objects. In other words, if the \em Objects don't contain any +shape of this type, Partition fails. + +Keep shapes of lower type checkbox manages standalone shapes of +type other than the \em Limit. If it is checked, lower dimension +objects will be preserved, else they will be lost. +\n For example, you do a partition of a box (Solid) and a face (Face) +without any tool. If you choose Resulting Type "Solid", you will +obtain a compound of two solids (let's the box will be splitted by the +face on two parts), but if you will also check Keep shapes of lower +type checkbox, you will obtain a compound of two solids and one +face (the face will have a hole where the original face lays inside +the box, see corresponding \ref partition_picture_3 "picture" below). + +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". + \n TUI Command: geompy.MakePartition(ListOfShapes, ListOfTools, ListOfKeepInside, ListOfRemoveInside, Limit, RemoveWebs, -ListOfMaterials), where where \em ListOfShapes is a list of shapes to -be intersected and \em ListOfTools is a list of shapes to intersect the -shapes from ListOfShapes. +ListOfMaterials, KeepNonlimitShapes), where where \em +ListOfShapes is a list of shapes to be intersected, \em ListOfTools is +a list of shapes to intersect the shapes from ListOfShapes, \em Limit +is a Type of resulting shapes and \em KeepNonlimitShapes is a flag +that allows to preserve standalone shapes of low dimension (than +Limit) in the result. + \n Since the implementation of a new version of PartitionAlgo other parameters are ignored by the current functionality and remain there only to support the old scripts. -\n Arguments: Name + 2 lists of shapes (the shapes from the -first list will be intersected with the shapes from the second list) + -reconstruction limit. -\n Advanced option: - \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". - -\image html partition1.png - -Keep shapes of lower type checkbox allows building geometrical objects. -Only lower type objects will be preserved without the upper ones.

Intersection of a Shape and a Plane.

-\n TUI Command: geompy.MakeHalfPartition(Shapes, -Plane), where \em Shapes are a list of Shapes to be intersected -and \em Plane is a Tool shape, to intersect the \em Shapes. +\image html partition2.png + \n Arguments: Name + a list of shapes which will be intersected + 1 cutting plane. + \n Advanced option: \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". -\image html partition2.png +\n TUI Command: geompy.MakeHalfPartition(Shapes, +Plane), where \em Shapes are a list of Shapes to be intersected +and \em Plane is a Tool shape, to intersect the \em Shapes. \n Example: @@ -50,6 +71,9 @@ and \em Plane is a Tool shape, to intersect the \em Shapes. \image html partitionsn2.png "Result of intersection" +\anchor partition_picture_3 +\image html partitionsn3.png "Result of intersection of a box and a plane (both as \em Objects, no tools) with Resulting type \em Solid and checked \em Keep \em shapes \em of \em lower \em type" + Our TUI Scripts provide you with useful examples of the use of \ref tui_partition "Basic Operations". diff --git a/doc/salome/gui/GEOM/input/restore_presentation_parameters.doc b/doc/salome/gui/GEOM/input/restore_presentation_parameters.doc index 4cb9aa916..4fdffcd79 100644 --- a/doc/salome/gui/GEOM/input/restore_presentation_parameters.doc +++ b/doc/salome/gui/GEOM/input/restore_presentation_parameters.doc @@ -1,8 +1,10 @@ /*! -\page restore_presentation_parameters_page Restore presentation parameters and a tree of subshapes +\page restore_presentation_parameters_page Advanced Transformation Options -\n This functionality allows the operation result to inherit colour +
Set presentation parameters and subshapes from arguments
+ +\n This option allows the operation result to inherit colour and subshapes from its arguments. \n To activate this functionality, check in "Set @@ -38,7 +40,7 @@ operation arguments and their published subshapes. The resulting shape has a default colour, but its subshapes inherit colors corresponding to arguments and their subshapes. -\image html restore-ss-viewer-after.png "Thev resulting shape" +\image html restore-ss-viewer-after.png "The resulting shape" Please, note that when the resulting shape corresponds to one @@ -51,12 +53,13 @@ inherited subshapes depend on the arguments. \image html restore-ss-OB.png +\n You can also call this functionality from your python scripts. +See our TUI Scripts for \ref tui_restore_prs_params "example". +
Add prefix to names of restored subshapes
-Add prefix "from_" to names of restored sub-shapes, and prefix "from_subshapes_of_" to names of partially restored subshapes. +This option allows adding the prefix "from_" to the names of +restored sub-shapes, and the prefix "from_subshapes_of_" to the names of partially restored subshapes. By default this option is On. -\n You can also call this functionality from your python scripts. -See our TUI Scripts for \ref tui_restore_prs_params "example". - */ diff --git a/doc/salome/gui/GEOM/input/viewing_geom_obj.doc b/doc/salome/gui/GEOM/input/viewing_geom_obj.doc index b6e5b97ba..39a4f9035 100644 --- a/doc/salome/gui/GEOM/input/viewing_geom_obj.doc +++ b/doc/salome/gui/GEOM/input/viewing_geom_obj.doc @@ -28,7 +28,7 @@ transparency of geometrical objects.
  • \subpage isolines_page "Isos" - allows to change the number of isolines displayed within a shape.
  • \subpage deflection_page "Deflection" - allows to change the -deviation coefficient of a shape.
  • +deflection coefficient of a shape.
  • \subpage point_marker_page "Point Marker" - allows to change the representation of geometrical vertices.
  • Auto color / Disable auto color - activates the auto color diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index baf88a780..61aa8caeb 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -2180,10 +2180,10 @@ module GEOM * \note Each compound from ListShapes and ListTools will be exploded in order * to avoid possible intersection between shapes from this compound. * \param theLimit Type of resulting shapes (corresponding to TopAbs_ShapeEnum). - # \param KeepNonlimitShapes: if this parameter == 0 - only shapes with - # type <= Limit are kept in the result, - # else - shapes with type > Limit are kept - # also (if they exist) + * \param KeepNonlimitShapes: if this parameter == 0, then only shapes of + * target type (equal to Limit) are kept in the result, + * else standalone shapes of lower dimension + * are kept also (if they exist). * * After implementation new version of PartitionAlgo (October 2006) * other parameters are ignored by current functionality. They are kept diff --git a/src/AdvancedGUI/AdvancedGUI_PipeTShapeDlg.cxx b/src/AdvancedGUI/AdvancedGUI_PipeTShapeDlg.cxx index 2c476cc74..b43126f08 100644 --- a/src/AdvancedGUI/AdvancedGUI_PipeTShapeDlg.cxx +++ b/src/AdvancedGUI/AdvancedGUI_PipeTShapeDlg.cxx @@ -207,7 +207,7 @@ 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("}"); @@ -216,7 +216,7 @@ void AdvancedGUI_PipeTShapeDlg::Init() { 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())); @@ -258,7 +258,7 @@ void AdvancedGUI_PipeTShapeDlg::Init() { //================================================================================= void AdvancedGUI_PipeTShapeDlg::ApplyNewDimensions() { QPushButton* send = (QPushButton*) sender(); - + bool ok = false; double newVal; if (send == JunctionPointsSel->PushButton4) { @@ -379,7 +379,7 @@ void AdvancedGUI_PipeTShapeDlg::SetPosition(bool isChecked) { //================================================================================= void AdvancedGUI_PipeTShapeDlg::ValueChangedInSpinBox(double newValue) { - if (myOkPoint1 && myOkPoint2 && myOkPoint3) + if (JunctionPointsSel->GroupBox1->isChecked() && myOkPoint1 && myOkPoint2 && myOkPoint3) CheckCompatiblePosition(myPoint1, myPoint2, myPoint3, 0.01); DisplayPreview(); } @@ -530,7 +530,7 @@ void AdvancedGUI_PipeTShapeDlg::SetEditCurrentArgument() { JunctionPointsSel->LineEdit1->setEnabled(false); JunctionPointsSel->PushButton2->setDown(false); JunctionPointsSel->LineEdit2->setEnabled(false); - } + } // enable line edit myEditCurrentArgument->setEnabled(true); @@ -541,7 +541,7 @@ void AdvancedGUI_PipeTShapeDlg::SetEditCurrentArgument() { JunctionPointsSel->LineEdit4->setText(""); JunctionPointsSel->LineEdit5->setText(""); - + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); // globalSelection(GEOM_POINT); globalSelection(); // close local contexts, if any @@ -764,10 +764,10 @@ bool AdvancedGUI_PipeTShapeDlg::CheckCompatiblePosition(GEOM::GEOM_Object_var th CORBA::Double theL1 = MainTubeGroupParams->SpinBox_DZ->value(); CORBA::Double theL2 = IncidentTubeGroupParams->SpinBox_DZ->value(); - + JunctionPointsSel->LineEdit4->setText(""); JunctionPointsSel->LineEdit5->setText(""); - + MainTubeGroupParams->SpinBox_DZ->setToolTip(""); IncidentTubeGroupParams->SpinBox_DZ->setToolTip(""); @@ -791,7 +791,7 @@ bool AdvancedGUI_PipeTShapeDlg::CheckCompatiblePosition(GEOM::GEOM_Object_var th double d12 = P1.Distance(P2); double d13 = P1.Distance(P3); double d23 = P2.Distance(P3); - + if (Abs(d12) <= Precision::Confusion()) { // SetErrorCode("Junctions points P1 and P2 are identical"); return false; @@ -857,7 +857,7 @@ bool AdvancedGUI_PipeTShapeDlg::CheckCompatiblePosition(GEOM::GEOM_Object_var th } bool AdvancedGUI_PipeTShapeDlg::execute(ObjectList& objects) { - + if (JunctionPointsSel->GroupBox1->isChecked() && myOkPoint1 && myOkPoint2 && myOkPoint3) CheckCompatiblePosition(myPoint1, myPoint2, myPoint3, 0.01); diff --git a/src/BasicGUI/BasicGUI_CircleDlg.cxx b/src/BasicGUI/BasicGUI_CircleDlg.cxx index 256d235b1..119176c59 100644 --- a/src/BasicGUI/BasicGUI_CircleDlg.cxx +++ b/src/BasicGUI/BasicGUI_CircleDlg.cxx @@ -271,6 +271,7 @@ void BasicGUI_CircleDlg::ConstructorsClicked( int constructorId ) qApp->processEvents(); updateGeometry(); resize( minimumSizeHint() ); + SelectionIntoArgument(); myEditCurrentArgument->setFocus(); globalSelection(); // close local contexts, if any diff --git a/src/BasicGUI/BasicGUI_CurveDlg.cxx b/src/BasicGUI/BasicGUI_CurveDlg.cxx index 6804419db..b1c6f000f 100644 --- a/src/BasicGUI/BasicGUI_CurveDlg.cxx +++ b/src/BasicGUI/BasicGUI_CurveDlg.cxx @@ -158,6 +158,10 @@ void BasicGUI_CurveDlg::ConstructorsClicked( int id ) myPoints->length( 0 ); myEditCurrentArgument->setText( "" ); + qApp->processEvents(); + updateGeometry(); + resize( minimumSizeHint() ); + SelectionIntoArgument(); } diff --git a/src/BasicGUI/BasicGUI_EllipseDlg.cxx b/src/BasicGUI/BasicGUI_EllipseDlg.cxx index 2bccca6e2..4354cf072 100644 --- a/src/BasicGUI/BasicGUI_EllipseDlg.cxx +++ b/src/BasicGUI/BasicGUI_EllipseDlg.cxx @@ -158,7 +158,8 @@ void BasicGUI_EllipseDlg::Init() initName( tr( "GEOM_ELLIPSE" ) ); - resize(100,100); + resize( minimumSizeHint() ); + SelectionIntoArgument(); displayPreview(); } diff --git a/src/BasicGUI/BasicGUI_LineDlg.cxx b/src/BasicGUI/BasicGUI_LineDlg.cxx index 738971849..9a45c86d4 100644 --- a/src/BasicGUI/BasicGUI_LineDlg.cxx +++ b/src/BasicGUI/BasicGUI_LineDlg.cxx @@ -228,7 +228,6 @@ void BasicGUI_LineDlg::ConstructorsClicked( int constructorId ) qApp->processEvents(); updateGeometry(); resize( minimumSizeHint() ); - SelectionIntoArgument(); } diff --git a/src/BasicGUI/BasicGUI_PlaneDlg.cxx b/src/BasicGUI/BasicGUI_PlaneDlg.cxx index 7cf7ecb45..e6b6f6610 100644 --- a/src/BasicGUI/BasicGUI_PlaneDlg.cxx +++ b/src/BasicGUI/BasicGUI_PlaneDlg.cxx @@ -364,6 +364,7 @@ void BasicGUI_PlaneDlg::ConstructorsClicked( int constructorId ) qApp->processEvents(); updateGeometry(); resize( minimumSizeHint() ); + SelectionIntoArgument(); myEditCurrentArgument->setFocus(); connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), diff --git a/src/BasicGUI/BasicGUI_VectorDlg.cxx b/src/BasicGUI/BasicGUI_VectorDlg.cxx index 3ec36f1a2..97e19c98d 100644 --- a/src/BasicGUI/BasicGUI_VectorDlg.cxx +++ b/src/BasicGUI/BasicGUI_VectorDlg.cxx @@ -231,6 +231,7 @@ void BasicGUI_VectorDlg::ConstructorsClicked( int constructorId ) qApp->processEvents(); updateGeometry(); resize( minimumSizeHint() ); + SelectionIntoArgument(); displayPreview(); } diff --git a/src/BuildGUI/BuildGUI_FaceDlg.cxx b/src/BuildGUI/BuildGUI_FaceDlg.cxx index 6f633d66f..8f204e411 100644 --- a/src/BuildGUI/BuildGUI_FaceDlg.cxx +++ b/src/BuildGUI/BuildGUI_FaceDlg.cxx @@ -116,6 +116,7 @@ void BuildGUI_FaceDlg::Init() SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr( "GEOM_FACE" ) ); + SelectionIntoArgument(); } diff --git a/src/BuildGUI/BuildGUI_ShellDlg.cxx b/src/BuildGUI/BuildGUI_ShellDlg.cxx index 6c1b33bf9..3cf46a471 100644 --- a/src/BuildGUI/BuildGUI_ShellDlg.cxx +++ b/src/BuildGUI/BuildGUI_ShellDlg.cxx @@ -111,7 +111,6 @@ void BuildGUI_ShellDlg::Init() QList aSubShapes; aSubShapes.append( GEOM_FACE ); globalSelection( aMap, aSubShapes ); - /* signals and slots connections */ connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); @@ -123,6 +122,7 @@ void BuildGUI_ShellDlg::Init() SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr( "GEOM_SHELL" ) ); + SelectionIntoArgument(); } diff --git a/src/BuildGUI/BuildGUI_WireDlg.cxx b/src/BuildGUI/BuildGUI_WireDlg.cxx index 1b930742e..5ecf3efb2 100644 --- a/src/BuildGUI/BuildGUI_WireDlg.cxx +++ b/src/BuildGUI/BuildGUI_WireDlg.cxx @@ -123,6 +123,7 @@ void BuildGUI_WireDlg::Init() SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr( "GEOM_WIRE" ) ); + SelectionIntoArgument(); } diff --git a/src/EntityGUI/EntityGUI_SketcherDlg.cxx b/src/EntityGUI/EntityGUI_SketcherDlg.cxx index d1a4ff9e8..8538d514f 100644 --- a/src/EntityGUI/EntityGUI_SketcherDlg.cxx +++ b/src/EntityGUI/EntityGUI_SketcherDlg.cxx @@ -57,6 +57,8 @@ #include +#include + //================================================================================= // class : EntityGUI_SketcherDlg() // purpose : Constructs a EntityGUI_SketcherDlg which is a child of 'parent', with the @@ -105,12 +107,17 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent, /***************************************************************/ GroupBox1 = new QGroupBox(tr("GEOM_CS"), this); - QGridLayout* OwnLayout = new QGridLayout(GroupBox1); - OwnLayout->setSpacing(6); - OwnLayout->setMargin(11); + QHBoxLayout* planeLayout = new QHBoxLayout(GroupBox1); + planeLayout->setSpacing(6); + planeLayout->setMargin(11); ComboBox1 = new QComboBox(GroupBox1); - OwnLayout->addWidget(ComboBox1); + ComboBox1->setSizePolicy( QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed) ); + planeLayout->addWidget(ComboBox1); + + planeButton = new QPushButton (GroupBox1); + planeButton->setText( tr( "GEOM_SKETCHER_RESTORE" ) ); + planeLayout->addWidget(planeButton); topLayout->addWidget(GroupBox1); topLayout->addWidget( MainWidget ); @@ -233,6 +240,7 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent, connect( Group4Spin->SpinBox_DS, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); connect( ComboBox1, SIGNAL( activated( int ) ), this, SLOT( SelectionIntoArgument() ) ); + connect( planeButton, SIGNAL( clicked() ), this, SLOT( ActivateLocalCS() ) ); connect( myGeometryGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) ); @@ -352,7 +360,7 @@ void EntityGUI_SketcherDlg::Init() FindLocalCS(); resize(100,100); - + ActivateLocalCS(); GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } @@ -896,6 +904,12 @@ void EntityGUI_SketcherDlg::SelectionIntoArgument() double tmpY = myY; myX = myLastX1; myY = myLastY1; + // printf ("\nmyX = %f myY = %f", myX, myY); + // printf ("\nmyLastX1 = %f myLastY1 = %f", myLastX1, myLastY1); + // printf ("\nmyLastX2 = %f myLastY2 = %f", myLastX2, myLastY2); + + if ( sender() == ComboBox1 ) + ActivateLocalCS(); LightApp_SelectionMgr* aSelMgr = myGeometryGUI->getApp()->selectionMgr(); SALOME_ListIO aSelList; @@ -1406,6 +1420,9 @@ bool EntityGUI_SketcherDlg::execute( ObjectList& objects ) //Test if the current point is the same as the last one TopoDS_Shape myShape1, myShape2; + // Set "C" numeric locale + Kernel_Utils::Localizer loc; + //Last Shape QString Command1 = myCommand.join( "" ); Sketcher_Profile aProfile1( Command1.toAscii() ); @@ -1648,15 +1665,15 @@ void EntityGUI_SketcherDlg::initSpinBox( SalomeApp_DoubleSpinBox* spinBox, int aPrecision = resMgr->integerValue( "Geometry", quantity, 6 ); spinBox->setPrecision( aPrecision ); - spinBox->setDecimals( aPrecision ); // it's necessary to set decimals before the range setting, - // by default Qt rounds boundaries to 2 decimals at setRange + spinBox->setDecimals( qAbs( aPrecision ) ); // it's necessary to set decimals before the range setting, + // by default Qt rounds boundaries to 2 decimals at setRange spinBox->setRange( min, max ); spinBox->setSingleStep( step ); // Add a hint for the user saying how to tune precision - QString userPropName = QObject::tr( QString( "PREF_%1" ).arg( quantity ).toLatin1().constData() ); + QString userPropName = QObject::tr( QString( "GEOM_PREF_%1" ).arg( quantity ).toLatin1().constData() ); spinBox->setProperty( "validity_tune_hint", - QVariant( QObject::tr( "PRECISION_HINT" ).arg( userPropName ) ) ); + QVariant( QObject::tr( "GEOM_PRECISION_HINT" ).arg( userPropName ) ) ); } //================================================================================= @@ -1747,7 +1764,7 @@ void EntityGUI_SketcherDlg::FindLocalCS() //================================================================================= // function : GetActiveLocalCS() -// purpose : Find All Coordinates systems in study +// purpose : Get Working plane //================================================================================= gp_Ax3 EntityGUI_SketcherDlg::GetActiveLocalCS() { @@ -1757,7 +1774,15 @@ gp_Ax3 EntityGUI_SketcherDlg::GetActiveLocalCS() gp_Ax3 aLCS = myLCSList.at(ind); - myGeometryGUI->SetWorkingPlane( aLCS ); - myGeometryGUI->ActiveWorkingPlane(); return aLCS; } + +//================================================================================= +// function : ActivateLocalCS() +// purpose : Activate & Fit Working plane +//================================================================================= +void EntityGUI_SketcherDlg::ActivateLocalCS() +{ + myGeometryGUI->SetWorkingPlane( GetActiveLocalCS() ); + myGeometryGUI->ActiveWorkingPlane(); +} diff --git a/src/EntityGUI/EntityGUI_SketcherDlg.h b/src/EntityGUI/EntityGUI_SketcherDlg.h index 8e3eaceb0..0c0f631ac 100644 --- a/src/EntityGUI/EntityGUI_SketcherDlg.h +++ b/src/EntityGUI/EntityGUI_SketcherDlg.h @@ -145,6 +145,7 @@ private: QGroupBox* GroupBox1; QComboBox* ComboBox1; + QPushButton* planeButton; GeometryGUI* myGeometryGUI; @@ -184,6 +185,7 @@ private slots: void SetDoubleSpinBoxStep( double ); void FindLocalCS(); gp_Ax3 GetActiveLocalCS(); + void ActivateLocalCS(); }; #endif // ENTITYGUI_SKETCHERDLG_H diff --git a/src/GEOM/GEOM_Engine.cxx b/src/GEOM/GEOM_Engine.cxx index 11679422a..60a5e7da7 100644 --- a/src/GEOM/GEOM_Engine.cxx +++ b/src/GEOM/GEOM_Engine.cxx @@ -35,6 +35,8 @@ #include "utilities.h" +#include + #include #include #include @@ -528,6 +530,9 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID, bool isPublished, bool& aValidScript) { + // Set "C" numeric locale to save numbers correctly + Kernel_Utils::Localizer loc; + TCollection_AsciiString aScript; Handle(TDocStd_Document) aDoc = GetDocument(theDocID); diff --git a/src/GEOMAlgo/GEOMAlgo_Builder.cxx b/src/GEOMAlgo/GEOMAlgo_Builder.cxx index 4c98d3600..feee863db 100755 --- a/src/GEOMAlgo/GEOMAlgo_Builder.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Builder.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -19,7 +19,6 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - // File: GEOMAlgo_Builder.cxx // Created: // Author: Peter KURNEV @@ -42,6 +41,7 @@ #include #include +#include //======================================================================= //function : @@ -158,28 +158,7 @@ AddShape1(aS); } } -//======================================================================= -//function : PostTreat -//purpose : -//======================================================================= - void GEOMAlgo_Builder::PostTreat() -{ - Standard_Integer aNbS; - TopoDS_Iterator aIt; - TopTools_ListOfShape aLS; - // - aIt.Initialize(myShape); - for (; aIt.More(); aIt.Next()) { - const TopoDS_Shape& aS=aIt.Value(); - aLS.Append(aS); - } - aNbS=aLS.Extent(); - if (aNbS==1) { - myShape=aLS.First(); - } - - BRepLib::SameParameter(myShape, 1.e-7, Standard_True); -} + //======================================================================= //function : AddShape1 //purpose : @@ -399,6 +378,34 @@ PostTreat(); } // +static + void CorrectWires(const TopoDS_Shape& aS); +// +//======================================================================= +//function : PostTreat +//purpose : +//======================================================================= + void GEOMAlgo_Builder::PostTreat() +{ + Standard_Integer aNbS; + TopoDS_Iterator aIt; + TopTools_ListOfShape aLS; + // + aIt.Initialize(myShape); + for (; aIt.More(); aIt.Next()) { + const TopoDS_Shape& aS=aIt.Value(); + aLS.Append(aS); + } + aNbS=aLS.Extent(); + if (aNbS==1) { + myShape=aLS.First(); + } + + BRepLib::SameParameter(myShape, 1.e-7, Standard_True); + // + GEOMAlgo_Tools::CorrectWires(myShape); +} +// // myErrorStatus // // 0 - Ok @@ -406,3 +413,4 @@ // 2 - PaveFiller is failed // 10 - No shapes to process // 30 - SolidBuilder failed + diff --git a/src/GEOMAlgo/GEOMAlgo_Tools.cdl b/src/GEOMAlgo/GEOMAlgo_Tools.cdl index c1bf40a58..92beb2e48 100644 --- a/src/GEOMAlgo/GEOMAlgo_Tools.cdl +++ b/src/GEOMAlgo/GEOMAlgo_Tools.cdl @@ -1,4 +1,4 @@ --- Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- -- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -19,7 +19,6 @@ -- -- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- - -- File: GEOMAlgo_Tools.cdl -- Created: Mon Dec 6 11:26:02 2004 -- Author: Peter KURNEV @@ -108,6 +107,9 @@ is aS:Surface from Geom) returns Boolean from Standard; + CorrectWires(myclass; + aS :Shape from TopoDS) + returns Boolean from Standard; --fields end Tools; diff --git a/src/GEOMAlgo/GEOMAlgo_Tools.hxx b/src/GEOMAlgo/GEOMAlgo_Tools.hxx index f4682ea82..50de1a5de 100644 --- a/src/GEOMAlgo/GEOMAlgo_Tools.hxx +++ b/src/GEOMAlgo/GEOMAlgo_Tools.hxx @@ -1,24 +1,23 @@ -// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// File generated by CPPExt (Value) // -// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 1991 - 2000 by +// Matra Datavision SA. All rights reserved. +// +// Copyright (C) 2001 - 2004 by +// Open CASCADE SA. All rights reserved. +// +// This file is part of the Open CASCADE Technology software. // +// This software may be distributed and/or modified under the terms and +// conditions of the Open CASCADE Public License as defined by Open CASCADE SA +// and appearing in the file LICENSE included in the packaging of this file. +// +// This software is distributed on an "AS IS" basis, without warranty of any +// kind, and Open CASCADE SA hereby disclaims all such warranties, +// including without limitation, any warranties of merchantability, fitness +// for a particular purpose or non-infringement. Please see the License for +// the specific terms and conditions governing rights and limitations under the +// License. #ifndef _GEOMAlgo_Tools_HeaderFile #define _GEOMAlgo_Tools_HeaderFile @@ -110,6 +109,9 @@ Standard_EXPORT static void RefinePCurveForEdgeOnFace(const TopoDS_Edge& aE,con Standard_EXPORT static Standard_Boolean IsUPeriodic(const Handle(Geom_Surface)& aS) ; +Standard_EXPORT static Standard_Boolean CorrectWires(const TopoDS_Shape& aS) ; + + diff --git a/src/GEOMAlgo/GEOMAlgo_Tools_1.cxx b/src/GEOMAlgo/GEOMAlgo_Tools_1.cxx new file mode 100644 index 000000000..992c8af4c --- /dev/null +++ b/src/GEOMAlgo/GEOMAlgo_Tools_1.cxx @@ -0,0 +1,323 @@ +// File: GEOMAlgo_Tools_1.cxx +// Created: Thu May 6 10:46:21 2010 +// Author: Peter KURNEV +// + + +#include +// +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +static + inline Standard_Boolean IsEqual(const TopoDS_Shape& aS1, + const TopoDS_Shape& aS2) { + return TopTools_ShapeMapHasher::IsEqual(aS1, aS2); +} +// +static + Standard_Boolean CorrectWire(const TopoDS_Wire& aW, + const TopoDS_Face& aF); + +//======================================================================= +//function : CorrectWires +//purpose : +//======================================================================= + Standard_Boolean GEOMAlgo_Tools::CorrectWires(const TopoDS_Shape& aShape) +{ + Standard_Boolean bRet; + TopoDS_Iterator aItF; + TopExp_Explorer aExp; + TopTools_MapOfShape aMF; + GeomAdaptor_Surface aGAS; + GeomAbs_SurfaceType aTS; + TopLoc_Location aLoc; + // + bRet=Standard_False; + // + aExp.Init(aShape, TopAbs_FACE); + for (; aExp.More(); aExp.Next()) { + const TopoDS_Face& aF=*((TopoDS_Face*)&aExp.Current()); + if (aMF.Add(aF)) { + const Handle(Geom_Surface)& aS=BRep_Tool::Surface(aF, aLoc); + aGAS.Load(aS); + aTS=aGAS.GetType(); + if (aTS==GeomAbs_Cylinder) { + aItF.Initialize(aF); + for (; aItF.More(); aItF.Next()) { + const TopoDS_Wire& aW=*((TopoDS_Wire*)&aItF.Value()); + if (CorrectWire(aW, aF)) { + bRet=Standard_True; + } + } + } + } + } + return bRet; +} +//======================================================================= +//class: GEOMAlgo_InfoEdge +//purpose : +//======================================================================= +class GEOMAlgo_InfoEdge { + public: + // + GEOMAlgo_InfoEdge() { + myErrorStatus=0; + myTolInt=1.0e-10; + }; + // + ~GEOMAlgo_InfoEdge(){ + }; + // + void Init(const TopoDS_Edge& aE, + const TopoDS_Face& aF); + // + void SetTolInt(const Standard_Real aTolInt) { + myTolInt=aTolInt; + }; + // + const Standard_Real TolInt() const { + return myTolInt; + } + // + const Geom2dAdaptor_Curve& Adaptor() const { + return myGAC2D; + } + // + const IntRes2d_Domain& Domain()const { + return myDomain; + } + // + const Handle(Geom2d_Curve)& CurveOnSurface()const { + return myC2D; + } + // + const Handle(Geom_Curve)& Curve()const { + return myC3D; + } + // + Standard_Integer ErrorStatus()const { + return myErrorStatus; + } + // + protected: + Standard_Integer myErrorStatus; + Standard_Real myTolInt; + Geom2dAdaptor_Curve myGAC2D; + IntRes2d_Domain myDomain; + Handle(Geom2d_Curve) myC2D; + Handle(Geom_Curve) myC3D; +}; +// +typedef NCollection_DataMap GEOMAlgo_DataMapOfShapeInfoEdge; +typedef GEOMAlgo_DataMapOfShapeInfoEdge::Iterator GEOMAlgo_DataMapIteratorOfDataMapOfShapeInfoEdge; + +//======================================================================= +//function : Init +//purpose : +//======================================================================= + void GEOMAlgo_InfoEdge::Init(const TopoDS_Edge& aE, + const TopoDS_Face& aF) +{ + Standard_Real aT1, aT2, aT1x, aT2x; + gp_Pnt2d aP2D1, aP2D2; + // + myErrorStatus=0; + // + myC3D=BRep_Tool::Curve(aE, aT1, aT2); + myC2D=BRep_Tool::CurveOnSurface(aE ,aF, aT1, aT2); + if (!myC2D.IsNull() && aT2>aT1) { + myGAC2D.Load(myC2D); + if(!myGAC2D.IsPeriodic()) { + aT1x=myGAC2D.FirstParameter(); + aT2x=myGAC2D.LastParameter(); + if(aT1x > aT1) { + aT1=aT1x; + } + if(aT2x < aT2) { + aT2=aT2x; + } + } + // + BRep_Tool::UVPoints(aE, aF, aP2D1, aP2D2); + myDomain.SetValues(aP2D1, aT1, myTolInt, aP2D2, aT2, myTolInt); + } + else { + myErrorStatus=10; + return; + } +} +//======================================================================= +//function : CorrectWire +//purpose : +//======================================================================= +Standard_Boolean CorrectWire(const TopoDS_Wire& aW, + const TopoDS_Face& aF) +{ + Standard_Boolean bRet; + Standard_Real aTolInt; + Standard_Integer iErr, aNbV, aNbE; + TopoDS_Iterator aItW, aItE; + Geom2dInt_GInter aInter; + GEOMAlgo_DataMapOfShapeInfoEdge aDMEIE; + TopTools_DataMapOfShapeListOfShape aDMVLE; + TopTools_DataMapIteratorOfDataMapOfShapeListOfShape aItDMVLE; + // + bRet=Standard_False; + aTolInt=1.0e-10; + // + aItW.Initialize(aW); + for (; aItW.More(); aItW.Next()) { + const TopoDS_Edge& aE=*((TopoDS_Edge*)&aItW.Value()); + + aItE.Initialize(aE); + for (aNbV=0; aItE.More(); aItE.Next(), ++aNbV) { + } + if (aNbV<2) { + return bRet; // + } + // + if (!aDMEIE.IsBound(aE)) { + GEOMAlgo_InfoEdge aInfoEdge; + // + aInfoEdge.Init (aE, aF); + iErr=aInfoEdge.ErrorStatus(); + if (iErr) { + return bRet; // + } + // + aDMEIE.Bind(aE, aInfoEdge); + } + // + aItE.Initialize(aE); + for (; aItE.More(); aItE.Next()) { + const TopoDS_Shape& aV=aItE.Value(); + if (aDMVLE.IsBound(aV)) { + TopTools_ListOfShape& aLE=aDMVLE.ChangeFind(aV); + aLE.Append(aE); + } + else { + TopTools_ListOfShape aLE; + aLE.Append(aE); + aDMVLE.Bind(aV, aLE); + } + } + } + // + // 2 + Standard_Real aTolV, aD1, aD2, aDmax, aCoeff; + gp_Pnt aPV; + Handle(Geom_Surface) aS; + BRep_Builder aBB; + // + aCoeff=1.1; + aS=BRep_Tool::Surface(aF); + // + aItDMVLE.Initialize(aDMVLE); + for(; aItDMVLE.More(); aItDMVLE.Next()) { + const TopoDS_Vertex& aV=*((TopoDS_Vertex*)&aItDMVLE.Key()); + const TopTools_ListOfShape& aLE=aItDMVLE.Value(); + aNbE=aLE.Extent(); + if (aNbE!=2) { + continue; + } + // + aPV=BRep_Tool::Pnt(aV); + aTolV=BRep_Tool::Tolerance(aV); + // + const TopoDS_Edge& aE1=*((TopoDS_Edge*)&aLE.First()); + const GEOMAlgo_InfoEdge& aIE1=aDMEIE.Find(aE1); + const Geom2dAdaptor_Curve& aGAC1=aIE1.Adaptor(); + const IntRes2d_Domain& aDomain1=aIE1.Domain(); + // + const TopoDS_Edge& aE2=*((TopoDS_Edge*)&aLE.Last()); + const GEOMAlgo_InfoEdge& aIE2=aDMEIE.Find(aE2); + const Geom2dAdaptor_Curve& aGAC2=aIE2.Adaptor(); + const IntRes2d_Domain& aDomain2=aIE2.Domain(); + // + aInter.Perform(aGAC1, aDomain1,aGAC2, aDomain2, aTolInt, aTolInt); + if(!aInter.IsDone()) { + continue; + } + // + Standard_Integer i, aNbP; + Standard_Real aIP_ParamOnFirst, aIP_ParamOnSecond; + gp_Pnt aP3D1, aP3D2; + gp_Pnt2d aP2D1, aP2D2; + IntRes2d_Transition aTr1, aTr2; + // + aNbP=aInter.NbPoints(); + for (i=1; i<=aNbP; ++i) { + const IntRes2d_IntersectionPoint& aIP = aInter.Point(i); + aIP_ParamOnFirst = aIP.ParamOnFirst(); + aIP_ParamOnSecond = aIP.ParamOnSecond(); + aTr1 =aIP.TransitionOfFirst(); + aTr2 =aIP.TransitionOfSecond(); + if(aTr1.PositionOnCurve()==IntRes2d_Middle || + aTr2.PositionOnCurve()==IntRes2d_Middle) { + // + const Handle(Geom_Curve)& aC3D1=aIE1.Curve(); + if (!aC3D1.IsNull()) { + aP3D1=aC3D1->Value(aIP_ParamOnFirst); + } + else { + aP2D1=aGAC1.Value(aIP_ParamOnFirst); + aS->D0(aP2D1.X(), aP2D1.Y(), aP3D1); + } + // + const Handle(Geom_Curve)& aC3D2=aIE2.Curve(); + if (!aC3D2.IsNull()) { + aP3D2=aC3D2->Value(aIP_ParamOnSecond); + } + else { + aP2D2=aGAC2.Value(aIP_ParamOnSecond); + aS->D0(aP2D2.X(), aP2D2.Y(), aP3D2); + } + // + aD1=aPV.Distance(aP3D1); + aD2=aPV.Distance(aP3D2); + aDmax=(aD1>aD2)? aD1 : aD2; + if (aDmax>aCoeff*aTolV) { + if (aDmax<10.*aTolV){ + aBB.UpdateVertex(aV, aDmax); + bRet=Standard_True; + } + } + }// + }//for (i=1; i<=aNbP; ++i) { + }//for(; aItDMVLE.More(); aItDMVLE.Next()) { + return bRet; +} + + diff --git a/src/GEOMAlgo/Makefile.am b/src/GEOMAlgo/Makefile.am index 891a0dec5..597d6d5c6 100644 --- a/src/GEOMAlgo/Makefile.am +++ b/src/GEOMAlgo/Makefile.am @@ -103,6 +103,7 @@ dist_libGEOMAlgo_la_SOURCES = \ GEOMAlgo_SurfaceTools.cxx \ GEOMAlgo_Tools3D.cxx \ GEOMAlgo_Tools.cxx \ + GEOMAlgo_Tools_1.cxx \ GEOMAlgo_VertexSolid.cxx \ GEOMAlgo_WESCorrector.cxx \ GEOMAlgo_WireEdgeSet.cxx \ diff --git a/src/GEOMGUI/GEOM_msg_en.ts b/src/GEOMGUI/GEOM_msg_en.ts index b54be9129..ade11bc38 100644 --- a/src/GEOMGUI/GEOM_msg_en.ts +++ b/src/GEOMGUI/GEOM_msg_en.ts @@ -1555,6 +1555,10 @@ Please, select face, shell or solid and try again GEOM_SKETCHER_EL Element Type + + GEOM_SKETCHER_RESTORE + Restore + GEOM_SKETCHER_LENGTH Length diff --git a/src/GEOMGUI/GeometryGUI.cxx b/src/GEOMGUI/GeometryGUI.cxx index 855e3b6d8..6f9d09bde 100644 --- a/src/GEOMGUI/GeometryGUI.cxx +++ b/src/GEOMGUI/GeometryGUI.cxx @@ -1278,7 +1278,7 @@ void GeometryGUI::viewManagers( QStringList& lst ) const void GeometryGUI::onViewManagerAdded( SUIT_ViewManager* vm ) { - if ( vm->getType() == OCCViewer_Viewer::Type() ) + if ( vm && vm->getType() == OCCViewer_Viewer::Type() ) { qDebug( "connect" ); connect( vm, SIGNAL( keyPress ( SUIT_ViewWindow*, QKeyEvent* ) ), @@ -1475,8 +1475,8 @@ void GeometryGUI::createPreferences() // Set property for precision value for spinboxes for ( ii = 0; ii < nbQuantities; ii++ ){ - setPreferenceProperty( prec[ii], "min", -10 ); - setPreferenceProperty( prec[ii], "max", 10 ); + setPreferenceProperty( prec[ii], "min", -14 ); + setPreferenceProperty( prec[ii], "max", 14 ); setPreferenceProperty( prec[ii], "precision", 2 ); } diff --git a/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx b/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx index 63dbbb42c..d311b0dce 100644 --- a/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx @@ -438,13 +438,14 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const //} //Alternative case to check shape result Mantis 0020604: EDF 1172 - TopoDS_Iterator It (aShape, Standard_True, Standard_True); +/* TopoDS_Iterator It (aShape, Standard_True, Standard_True); int nbSubshapes=0; for (; It.More(); It.Next()) nbSubshapes++; if (!nbSubshapes) - Standard_ConstructionError::Raise("Boolean operation aborted : result object is empty compound"); + Standard_ConstructionError::Raise("Boolean operation aborted : result object is empty compound");*/ //end of 0020604: EDF 1172 + //! the changes temporary commented because of customer needs (see the same mantis bug) aFunction->SetValue(aShape); diff --git a/src/GEOM_SWIG/geompyDC.py b/src/GEOM_SWIG/geompyDC.py index 24e2406f0..a873fc9c8 100644 --- a/src/GEOM_SWIG/geompyDC.py +++ b/src/GEOM_SWIG/geompyDC.py @@ -17,12 +17,11 @@ # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # - # GEOM GEOM_SWIG : binding of C++ omplementaion with Python # File : geompy.py # Author : Paul RASCLE, EDF # Module : GEOM -# + """ \namespace geompy \brief Module geompy @@ -535,13 +534,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theFace The face for which tangent plane should be built. # @param theParameterV vertical value of the center point (0.0 - 1.0). # @param theParameterU horisontal value of the center point (0.0 - 1.0). - # @param theTrimSize the size of plane. + # @param theTrimSize the size of plane. # @return New GEOM_Object, containing the created tangent. # # @ref swig_MakeTangentPlaneOnFace "Example" - def MakeTangentPlaneOnFace(self, theFace, theParameterU, theParameterV, theTrimSize): - anObj = self.BasicOp.MakeTangentPlaneOnFace(theFace, theParameterU, theParameterV, theTrimSize) - RaiseIfFailed("MakeTangentPlaneOnFace", self.BasicOp) + def MakeTangentPlaneOnFace(self, theFace, theParameterU, theParameterV, theTrimSize): + anObj = self.BasicOp.MakeTangentPlaneOnFace(theFace, theParameterU, theParameterV, theTrimSize) + RaiseIfFailed("MakeTangentPlaneOnFace", self.BasicOp) return anObj ## Create a vector with the given components. @@ -699,7 +698,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): RaiseIfFailed("MakeMarker", self.BasicOp) anObj.SetParameters(Parameters) return anObj - + ## Create a local coordinate system from shape. # @param theShape The initial shape to detect the coordinate system. # @return New GEOM_Object, containing the created coordinate system. @@ -716,7 +715,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theYVec Vector of Y direction # @return New GEOM_Object, containing the created coordinate system. # - # @ref tui_creation_lcs "Example" + # @ref tui_creation_lcs "Example" def MakeMarkerPntTwoVec(self, theOrigin, theXVec, theYVec): anObj = self.BasicOp.MakeMarkerPntTwoVec(theOrigin, theXVec, theYVec) RaiseIfFailed("MakeMarkerPntTwoVec", self.BasicOp) @@ -754,7 +753,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): anObj = self.CurvesOp.MakeArcCenter(thePnt1, thePnt2, thePnt3, theSense) RaiseIfFailed("MakeArcCenter", self.CurvesOp) return anObj - + ## Create an arc of ellipse, of center and two points. # @param theCenter Center of the arc. # @param thePnt1 defines major radius of the arc by distance from Pnt1 to Pnt2. @@ -945,9 +944,9 @@ class geompyDC(GEOM._objref_GEOM_Gen): RaiseIfFailed("MakeSketcherOnPlane", self.CurvesOp) return anObj - ## Create a sketcher wire, following the numerical description, + ## Create a sketcher wire, following the numerical description, # passed through theCoordinates argument. \n - # @param theCoordinates double values, defining points to create a wire, + # @param theCoordinates double values, defining points to create a wire, # passing from it. # @return New GEOM_Object, containing the created wire. # @@ -1008,7 +1007,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): # with edges, parallel to this coordinate axes. # @param theH height of Face. # @param theW width of Face. - # @param theOrientation orientation belong axis OXY OYZ OZX + # @param theOrientation orientation belong axis OXY OYZ OZX # @return New GEOM_Object, containing the created face. # # @ref tui_creation_face "Example" @@ -1023,7 +1022,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): ## Create a face from another plane and two sizes, # vertical size and horisontal size. # @param theObj Normale vector to the creating face or - # the face object. + # the face object. # @param theH Height (vertical size). # @param theW Width (horisontal size). # @return New GEOM_Object, containing the created face. @@ -1065,7 +1064,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): ## Create a disk with specified dimensions along OX-OY coordinate axes. # @param theR Radius of Face. - # @param theOrientation set the orientation belong axis OXY or OYZ or OZX + # @param theOrientation set the orientation belong axis OXY or OYZ or OZX # @return New GEOM_Object, containing the created disk. # # @ref tui_creation_face "Example" @@ -1387,7 +1386,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): ## Create a shape by extrusion of the profile shape along # the path shape. The path shape can be a wire or an edge. - # the several profiles can be specified in the several locations of path. + # the several profiles can be specified in the several locations of path. # @param theSeqBases - list of Bases shape to be extruded. # @param theLocations - list of locations on the path corresponding # specified list of the Bases shapes. Number of locations @@ -1411,7 +1410,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): ## Create a shape by extrusion of the profile shape along # the path shape. The path shape can be a wire or a edge. - # the several profiles can be specified in the several locations of path. + # the several profiles can be specified in the several locations of path. # @param theSeqBases - list of Bases shape to be extruded. Base shape must be # shell or face. If number of faces in neighbour sections # aren't coincided result solid between such sections will @@ -2118,10 +2117,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing processed shape. # # @ref tui_shape_processing "Example" - def ProcessShape(self,theShape, theOperators, theParameters, theValues): + def ProcessShape(self, theShape, theOperators, theParameters, theValues): # Example: see GEOM_TestHealing.py theValues,Parameters = ParseList(theValues) anObj = self.HealOp.ProcessShape(theShape, theOperators, theParameters, theValues) + # To avoid script failure in case of good argument shape + if self.HealOp.GetErrorCode() == "ShHealOper_NotError_msg": + return theShape RaiseIfFailed("ProcessShape", self.HealOp) for string in (theOperators + theParameters): Parameters = ":" + Parameters @@ -2375,10 +2377,10 @@ class geompyDC(GEOM._objref_GEOM_Gen): # in order to avoid possible intersection between shapes from # this compound. # @param Limit Type of resulting shapes (corresponding to TopAbs_ShapeEnum). - # @param KeepNonlimitShapes: if this parameter == 0 - only shapes with - # type <= Limit are kept in the result, - # else - shapes with type > Limit are kept - # also (if they exist) + # @param KeepNonlimitShapes: if this parameter == 0, then only shapes of + # target type (equal to Limit) are kept in the result, + # else standalone shapes of lower dimension + # are kept also (if they exist). # # After implementation new version of PartitionAlgo (October 2006) # other parameters are ignored by current functionality. They are kept @@ -2701,9 +2703,9 @@ class geompyDC(GEOM._objref_GEOM_Gen): ## Modify the Location of the given object by Path, # @param theObject The object to be displaced. # @param thePath Wire or Edge along that the object will be translated. - # @param theDistance progress of Path (0 = start location, 1 = end of path location). - # @param theCopy is to create a copy objects if true. - # @param theReverse - 0 for usual direction, 1 to reverse path direction. + # @param theDistance progress of Path (0 = start location, 1 = end of path location). + # @param theCopy is to create a copy objects if true. + # @param theReverse - 0 for usual direction, 1 to reverse path direction. # @return New GEOM_Object, containing the displaced shape. # # @ref tui_modify_location "Example" @@ -4129,7 +4131,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): # end of l3_groups ## @} - ## @addtogroup l4_advanced + ## @addtogroup l4_advanced ## @{ ## Create a T-shape object with specified caracteristics for the main @@ -4153,11 +4155,11 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @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): - anObj = self.AdvOp.MakePipeTShapeWithPosition(theR1, theW1, theL1, theR2, theW2, theL2, theHexMesh, theP1, theP2, theP3) - else: - anObj = self.AdvOp.MakePipeTShape(theR1, theW1, theL1, theR2, theW2, theL2, theHexMesh) - RaiseIfFailed("MakePipeTShape", self.AdvOp) + if (theP1 and theP2 and theP3): + anObj = self.AdvOp.MakePipeTShapeWithPosition(theR1, theW1, theL1, theR2, theW2, theL2, theHexMesh, theP1, theP2, theP3) + else: + anObj = self.AdvOp.MakePipeTShape(theR1, theW1, theL1, theR2, theW2, theL2, theHexMesh) + RaiseIfFailed("MakePipeTShape", self.AdvOp) if Parameters: anObj[0].SetParameters(Parameters) return anObj @@ -4185,17 +4187,17 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @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): - anObj = self.AdvOp.MakePipeTShapeChamferWithPosition(theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theHexMesh, theP1, theP2, theP3) - else: - anObj = self.AdvOp.MakePipeTShapeChamfer(theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theHexMesh) + if (theP1 and theP2 and theP3): + anObj = self.AdvOp.MakePipeTShapeChamferWithPosition(theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theHexMesh, theP1, theP2, theP3) + else: + anObj = self.AdvOp.MakePipeTShapeChamfer(theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theHexMesh) RaiseIfFailed("MakePipeTShapeChamfer", self.AdvOp) if Parameters: anObj[0].SetParameters(Parameters) return anObj ## Create a T-shape object with fillet and with specified caracteristics for the main # and the incident pipes (radius, width, half-length). The fillet is - # created on the junction of the pipes. + # 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. # If P1, P2 and P3 are not given, the center of the shape is (0,0,0) and @@ -4207,7 +4209,7 @@ 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 Boolean indicating if shape is prepared for hex mesh (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 @@ -4216,10 +4218,10 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @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): - anObj = self.AdvOp.MakePipeTShapeFilletWithPosition(theR1, theW1, theL1, theR2, theW2, theL2, theRF, theHexMesh, theP1, theP2, theP3) - else: - anObj = self.AdvOp.MakePipeTShapeFillet(theR1, theW1, theL1, theR2, theW2, theL2, theRF, theHexMesh) + if (theP1 and theP2 and theP3): + anObj = self.AdvOp.MakePipeTShapeFilletWithPosition(theR1, theW1, theL1, theR2, theW2, theL2, theRF, theHexMesh, theP1, theP2, theP3) + else: + anObj = self.AdvOp.MakePipeTShapeFillet(theR1, theW1, theL1, theR2, theW2, theL2, theRF, theHexMesh) RaiseIfFailed("MakePipeTShapeFillet", self.AdvOp) if Parameters: anObj[0].SetParameters(Parameters) return anObj diff --git a/src/OperationGUI/OperationGUI_FilletDlg.cxx b/src/OperationGUI/OperationGUI_FilletDlg.cxx index 7eb174826..6cd07c94a 100644 --- a/src/OperationGUI/OperationGUI_FilletDlg.cxx +++ b/src/OperationGUI/OperationGUI_FilletDlg.cxx @@ -298,6 +298,7 @@ void OperationGUI_FilletDlg::ConstructorsClicked (int constructorId) qApp->processEvents(); updateGeometry(); resize(minimumSizeHint()); + SelectionIntoArgument(); } //================================================================================= diff --git a/src/OperationGUI/OperationGUI_PartitionDlg.cxx b/src/OperationGUI/OperationGUI_PartitionDlg.cxx index 0b08ae59f..b6fac51c7 100644 --- a/src/OperationGUI/OperationGUI_PartitionDlg.cxx +++ b/src/OperationGUI/OperationGUI_PartitionDlg.cxx @@ -202,6 +202,7 @@ void OperationGUI_PartitionDlg::ConstructorsClicked( int constructorId ) myEditCurrentArgument->setFocus(); connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); + SelectionIntoArgument(); } diff --git a/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.cxx index f5115bd0e..b797fc1bf 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.cxx +++ b/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.cxx @@ -54,8 +54,7 @@ //================================================================================= PrimitiveGUI_BoxDlg::PrimitiveGUI_BoxDlg (GeometryGUI* theGeometryGUI, QWidget* parent, bool modal, Qt::WindowFlags fl) - : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), - myInitial(true) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl) { QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_BOX_2P"))); QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_BOX_DXYZ"))); @@ -196,15 +195,9 @@ void PrimitiveGUI_BoxDlg::ConstructorsClicked (int constructorId) qApp->processEvents(); updateGeometry(); resize(minimumSizeHint()); + SelectionIntoArgument(); - if (myInitial) { - // on dialog initialization we init the first field with a selected object (if any) - SelectionIntoArgument(); - myInitial = false; - } - else { - displayPreview(); - } + displayPreview(); } //================================================================================= @@ -331,10 +324,6 @@ void PrimitiveGUI_BoxDlg::SetEditCurrentArgument() // clear selection //disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - //if (myInitial) - // myInitial = false; - //else - // myGeomGUI->getApp()->selectionMgr()->clearSelected(); if (send == GroupPoints->PushButton1) { myEditCurrentArgument = GroupPoints->LineEdit1; diff --git a/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.h b/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.h index fab0dc390..bdc8e6af8 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.h +++ b/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.h @@ -58,9 +58,6 @@ private: private: GEOM::GEOM_Object_var myPoint1, myPoint2; /* Points containing the vector */ - // to initialize the first selection field with a selected object on the dialog creation - bool myInitial; - DlgRef_2Sel* GroupPoints; DlgRef_3Spin* GroupDimensions; diff --git a/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.cxx index c5ebf0be9..bef1293eb 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.cxx +++ b/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.cxx @@ -54,8 +54,7 @@ //================================================================================= PrimitiveGUI_ConeDlg::PrimitiveGUI_ConeDlg (GeometryGUI* theGeometryGUI, QWidget* parent, bool modal, Qt::WindowFlags fl) - : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), - myInitial(true) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl) { QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_CONE_PV"))); QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_CONE_DXYZ"))); @@ -211,15 +210,9 @@ void PrimitiveGUI_ConeDlg::ConstructorsClicked (int constructorId) qApp->processEvents(); updateGeometry(); resize(minimumSizeHint()); + SelectionIntoArgument(); - if (myInitial) { - // on dialog initialization we init the first field with a selected object (if any) - SelectionIntoArgument(); - myInitial = false; - } - else { - displayPreview(); - } + displayPreview(); } //================================================================================= diff --git a/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.h b/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.h index 0e4d6ad14..abea2e72b 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.h +++ b/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.h @@ -61,9 +61,6 @@ private: private: GEOM::GEOM_Object_var myPoint, myDir; - // to initialize the first selection field with a selected object on the dialog creation - bool myInitial; - DlgRef_2Sel3Spin* GroupPoints; DlgRef_3Spin* GroupDimensions; diff --git a/src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx index be7685d9f..cea029cf6 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx +++ b/src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx @@ -202,20 +202,9 @@ void PrimitiveGUI_CylinderDlg::ConstructorsClicked (int constructorId) qApp->processEvents(); updateGeometry(); resize(minimumSizeHint()); + SelectionIntoArgument(); - if (myInitial) { - myInitial = false; - if (constructorId == 0) { - // on dialog initialization we init the first field with a selected object (if any) - SelectionIntoArgument(); - } - else { - displayPreview(); - } - } - else { - displayPreview(); - } + displayPreview(); } //================================================================================= diff --git a/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.cxx index fb23cb4ef..8aa1a6aee 100755 --- a/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.cxx +++ b/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.cxx @@ -49,8 +49,7 @@ //================================================================================= PrimitiveGUI_DiskDlg::PrimitiveGUI_DiskDlg (GeometryGUI* theGeometryGUI, QWidget* parent, bool modal, Qt::WindowFlags fl) - : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), - myInitial(true) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl) { SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_DISK_PNT_VEC_R"))); @@ -253,20 +252,9 @@ void PrimitiveGUI_DiskDlg::ConstructorsClicked (int constructorId) qApp->processEvents(); updateGeometry(); resize(minimumSizeHint()); + SelectionIntoArgument(); - if (myInitial) { - myInitial = false; - if (constructorId == 1 || constructorId == 2) { - // on dialog initialization we init the first field with a selected object (if any) - SelectionIntoArgument(); - } - else { - displayPreview(); - } - } - else { - displayPreview(); - } + displayPreview(); } //================================================================================= diff --git a/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.h b/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.h index 6e3d3c36d..e7f4e9cc2 100755 --- a/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.h +++ b/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.h @@ -60,9 +60,6 @@ private: private: GEOM::GEOM_Object_var myPoint, myDir, myPoint1, myPoint2, myPoint3; - // to initialize the first selection field with a selected object on the dialog creation - bool myInitial; - DlgRef_2Sel1Spin* GroupPntVecR; DlgRef_3Sel* Group3Pnts; DlgRef_1Spin* GroupDimensions; diff --git a/src/PrimitiveGUI/PrimitiveGUI_SphereDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_SphereDlg.cxx index 23fb51375..44dd44ca0 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_SphereDlg.cxx +++ b/src/PrimitiveGUI/PrimitiveGUI_SphereDlg.cxx @@ -193,6 +193,7 @@ void PrimitiveGUI_SphereDlg::ConstructorsClicked( int constructorId ) qApp->processEvents(); updateGeometry(); resize( minimumSizeHint() ); + SelectionIntoArgument(); displayPreview(); } diff --git a/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.cxx index f0253fcc6..f6a47130a 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.cxx +++ b/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.cxx @@ -54,8 +54,7 @@ //================================================================================= PrimitiveGUI_TorusDlg::PrimitiveGUI_TorusDlg (GeometryGUI* theGeometryGUI, QWidget* parent, bool modal, Qt::WindowFlags fl) - : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), - myInitial(true) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl) { SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_TORUS_PV"))); @@ -201,20 +200,9 @@ void PrimitiveGUI_TorusDlg::ConstructorsClicked (int constructorId) qApp->processEvents(); updateGeometry(); resize(minimumSizeHint()); + SelectionIntoArgument(); - if (myInitial) { - myInitial = false; - if (constructorId == 0) { - // on dialog initialization we init the first field with a selected object (if any) - SelectionIntoArgument(); - } - else { - displayPreview(); - } - } - else { - displayPreview(); - } + displayPreview(); } //================================================================================= diff --git a/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.h b/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.h index 9a190dc95..8cc2a57e2 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.h +++ b/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.h @@ -60,9 +60,6 @@ private: private: GEOM::GEOM_Object_var myPoint, myDir; - // to initialize the first selection field with a selected object on the dialog creation - bool myInitial; - DlgRef_2Sel2Spin* GroupPoints; DlgRef_2Spin* GroupDimensions; diff --git a/src/RepairGUI/RepairGUI_SuppressFacesDlg.cxx b/src/RepairGUI/RepairGUI_SuppressFacesDlg.cxx index b0d60a95b..15796bc2f 100644 --- a/src/RepairGUI/RepairGUI_SuppressFacesDlg.cxx +++ b/src/RepairGUI/RepairGUI_SuppressFacesDlg.cxx @@ -19,11 +19,10 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - // GEOM GEOMGUI : GUI for Geometry component // File : RepairGUI_SuppressFacesDlg.cxx // Author : Lucien PIGNOLONI, Open CASCADE S.A.S. -// + #include "RepairGUI_SuppressFacesDlg.h" #include @@ -111,7 +110,7 @@ void RepairGUI_SuppressFacesDlg::Init() myObject = GEOM::GEOM_Object::_nil(); myFacesInd = new GEOM::short_array(); myFacesInd->length(0); - + mainFrame()->GroupBoxPublish->show(); // signals and slots connections @@ -207,6 +206,8 @@ void RepairGUI_SuppressFacesDlg::SelectionIntoArgument() } if (aMap.IsEmpty() && aSelList.Extent() > 0) { // try to detect selected published sub-shape + TColStd_MapOfInteger anIds; + SalomeApp_Study* appStudy = dynamic_cast(myGeomGUI->getApp()->activeStudy()); if (!appStudy) return; _PTR(Study) aStudy = appStudy->studyDS(); @@ -232,11 +233,30 @@ void RepairGUI_SuppressFacesDlg::SelectionIntoArgument() int anIndex = aMainMap.FindIndex(aSubShape); if (anIndex >= 0) { aMap.Add(anIndex); + anIds.Add(anIndex); } } } } } + if (!aMap.IsEmpty()) { + // highlight local faces, correspondent to OB selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + + aSelMgr->clearSelected(); + + Standard_Boolean isOk; + char* objIOR = GEOMBase::GetIORFromObject(myObject); + Handle(GEOM_AISShape) aSh = GEOMBase::ConvertIORinGEOMAISShape(objIOR, isOk, true); + free(objIOR); + if (!isOk || aSh.IsNull()) + return; + + aSelMgr->AddOrRemoveIndex(aSh->getIO(), anIds, false); + + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + } } const int n = aMap.Extent(); diff --git a/src/TransformationGUI/TransformationGUI_OffsetDlg.cxx b/src/TransformationGUI/TransformationGUI_OffsetDlg.cxx index 442c8615d..d81792e8f 100644 --- a/src/TransformationGUI/TransformationGUI_OffsetDlg.cxx +++ b/src/TransformationGUI/TransformationGUI_OffsetDlg.cxx @@ -130,6 +130,7 @@ void TransformationGUI_OffsetDlg::Init() globalSelection( GEOM_ALLSHAPES ); resize(100,100); + SelectionIntoArgument(); } -- 2.39.2