Salome HOME
Merge branch V7_6_BR
authorvsr <vsr@opencascade.com>
Wed, 3 Jun 2015 08:06:53 +0000 (11:06 +0300)
committervsr <vsr@opencascade.com>
Wed, 3 Jun 2015 08:06:53 +0000 (11:06 +0300)
88 files changed:
CMakeLists.txt
adm_local/cmake_files/FindSalomeOpenCV.cmake
doc/salome/gui/GEOM/collect_geom_methods.py
doc/salome/gui/GEOM/images/pref15.png
doc/salome/gui/GEOM/images/tolerances.png [new file with mode: 0644]
doc/salome/gui/GEOM/input/add_point_on_edge_operation.doc
doc/salome/gui/GEOM/input/check_compound_of_blocks.doc
doc/salome/gui/GEOM/input/check_self_intersections.doc
doc/salome/gui/GEOM/input/creating_complex_obj.doc
doc/salome/gui/GEOM/input/creating_explode.doc
doc/salome/gui/GEOM/input/creating_surface_from_face.doc
doc/salome/gui/GEOM/input/creating_thickness_page.doc
doc/salome/gui/GEOM/input/dependency_tree.doc
doc/salome/gui/GEOM/input/display_mode.doc
doc/salome/gui/GEOM/input/extension_operation.doc
doc/salome/gui/GEOM/input/faq.doc
doc/salome/gui/GEOM/input/fast_intersection.doc
doc/salome/gui/GEOM/input/geometry_preferences.doc
doc/salome/gui/GEOM/input/glue_edges_operation.doc
doc/salome/gui/GEOM/input/glue_faces_operation.doc
doc/salome/gui/GEOM/input/inspect_object_operation.doc
doc/salome/gui/GEOM/input/projection_on_cylinder_operation.doc
doc/salome/gui/GEOM/input/sewing_operation.doc
doc/salome/gui/GEOM/input/shape_processing_operation.doc
doc/salome/gui/GEOM/input/shared_shapes.doc
doc/salome/gui/GEOM/input/size_models_range.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/transfer_data.doc
doc/salome/gui/GEOM/input/whatis.doc
doc/salome/gui/GEOM/input/working_with_groups.doc
doc/salome/tui/CMakeLists.txt
idl/GEOM_Gen.idl
src/AdvancedEngine/AdvancedEngine_IOperations.cxx
src/AdvancedGUI/AdvancedGEOM_msg_ja.ts
src/BREPPlugin/BREPPlugin_msg_ja.ts
src/BasicGUI/BasicGUI_PointDlg.cxx
src/BlockFix/BlockFix_UnionEdges.cxx
src/CurveCreator/CurveCreator_Utils.cxx
src/DependencyTree/resources/DependencyTree_msg_fr.ts
src/DependencyTree/resources/DependencyTree_msg_ja.ts
src/EntityGUI/EntityGUI_FeatureDetectorDlg.cxx
src/EntityGUI/EntityGUI_PictureImportDlg.cxx
src/EntityGUI/EntityGUI_PolylineDlg.cxx
src/EntityGUI/EntityGUI_PolylineDlg.h
src/EntityGUI/EntityGUI_SketcherDlg.cxx
src/GEOM/GEOM_BaseObject.cxx
src/GEOM/GEOM_BaseObject.hxx
src/GEOMAlgo/GEOMAlgo_AlgoTools.cxx
src/GEOMAlgo/GEOMAlgo_GetInPlaceAPI.cxx
src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller_1.cxx
src/GEOMGUI/GEOMGUI_CreationInfoWdg.cxx
src/GEOMGUI/GEOMGUI_CreationInfoWdg.h
src/GEOMGUI/GEOMGUI_OCCSelector.cxx
src/GEOMGUI/GEOM_msg_en.ts
src/GEOMGUI/GEOM_msg_fr.ts
src/GEOMGUI/GEOM_msg_ja.ts
src/GEOMGUI/GeometryGUI.cxx
src/GEOMImpl/GEOMImpl_BooleanDriver.cxx
src/GEOMImpl/GEOMImpl_DiskDriver.cxx [changed mode: 0755->0644]
src/GEOMImpl/GEOMImpl_FieldDriver.cxx
src/GEOMImpl/GEOMImpl_IProjOnCyl.hxx
src/GEOMImpl/GEOMImpl_IShapesOperations.cxx
src/GEOMImpl/GEOMImpl_OffsetDriver.cxx
src/GEOMImpl/GEOMImpl_ProjectionDriver.cxx
src/GEOMImpl/GEOMImpl_ShapeDriver.cxx
src/GEOMImpl/GEOMImpl_SplineDriver.cxx
src/GEOMUtils/GEOMUtils_HTrsfCurve2d.cxx
src/GEOMUtils/GEOMUtils_HTrsfCurve2d.hxx
src/GEOMUtils/GEOMUtils_Trsf2d.cxx
src/GEOMUtils/GEOMUtils_Trsf2d.hxx
src/GEOMUtils/GEOMUtils_TrsfCurve2d.cxx
src/GEOMUtils/GEOMUtils_TrsfCurve2d.hxx
src/GEOM_I/GEOM_BaseObject_i.cc
src/GEOM_I/GEOM_BaseObject_i.hh
src/GEOM_I/GEOM_Gen_i.cc
src/GEOM_SWIG/geomBuilder.py
src/GenerationGUI/CMakeLists.txt
src/GroupGUI/GroupGUI_GroupDlg.cxx
src/IGESPlugin/IGESPlugin_msg_ja.ts
src/MeasureGUI/MeasureGUI_ManageDimensionsDlg.cxx
src/MeasureGUI/MeasureGUI_ManageDimensionsDlg.h
src/OBJECT/GEOM_AISShape.cxx
src/OBJECT/GEOM_VTKTrihedron.cxx
src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx
src/RepairGUI/RepairGUI_ShapeProcessDlg.cxx
src/STEPPlugin/STEPPlugin_msg_ja.ts
src/STLPlugin/STLPlugin_msg_ja.ts
src/VTKPlugin/VTKPlugin_msg_ja.ts
src/XAOPlugin/XAOPlugin_msg_ja.ts

index 6b8e90fac9d80fcd6d266bf3f5cd03d7ca10e244..dbf940714bd43519142597159a5ea51971a29982 100755 (executable)
@@ -30,8 +30,8 @@ CMAKE_POLICY(SET CMP0003 NEW)
 STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
 
 SET(${PROJECT_NAME_UC}_MAJOR_VERSION 7)
-SET(${PROJECT_NAME_UC}_MINOR_VERSION 5)
-SET(${PROJECT_NAME_UC}_PATCH_VERSION 1)
+SET(${PROJECT_NAME_UC}_MINOR_VERSION 6)
+SET(${PROJECT_NAME_UC}_PATCH_VERSION 0)
 SET(${PROJECT_NAME_UC}_VERSION
   ${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
 SET(${PROJECT_NAME_UC}_VERSION_DEV 1)
index 8556e961da57d1eb75036a10f59fe6253b06bd8a..63932fea42987990ddccc039ca49b205bf1f0fe5 100644 (file)
 #
 #  !! Please read the generic detection procedure in SalomeMacros.cmake !!
 #
-SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(OpenCV OpenCV_DIR 2)
+SET(UpCount 2)
+
+IF (WIN32)
+  SET(UpCount 0)
+ENDIF (WIN32)
+
+SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(OpenCV OpenCV_DIR ${UpCount})
+
 #MARK_AS_ADVANCED()
 
 IF(OpenCV_FOUND) 
index 3639181c4d03cd8920303464a680da6bb3b6288a..2f489aefb3be3851e0ea20f20b148ea680525640 100644 (file)
@@ -117,16 +117,22 @@ if __name__ == "__main__":
     if len( args ) < 1: sys.exit("Plugin name is not specified")
 
     f = open(options.output, "w")
-    
+
+    if len(args) > 1:
+        plugins_names = " ".join(args) + " plugins"
+    elif len(args) == 1:
+        plugins_names = args[0] + " plugin"
+    else:
+        plugins_names = ""
     output = []
     if options.dummygeomhelp:
         output.append( "## @package geomBuilder" )
-        output.append( "#  Documentation of the methods dynamically added by the " + plugin_name + " Geometry plug-in to the geomBuilder class." )
+        output.append( "#  Documentation of the methods dynamically added by the " + plugins_names + " to the @b %geomBuilder class." )
         # Add dummy Geometry help
         # This is supposed to be done when generating documentation for Geometry module plug-ins
         output.append( "#  @note The documentation below does not provide complete description of class @b %geomBuilder" )
         output.append( "#  from @b geomBuilder package. This documentation provides only information about" )
-        output.append( "#  the methods dynamically added to the %geomBuilder class by the " + plugin_name + " plugin" )
+        output.append( "#  the methods dynamically added to the %geomBuilder class by the " + plugins_names + "." )
         output.append( "#  For more details on the %geomBuilder class, please refer to the SALOME %Geometry module" )
         output.append( "#  documentation." )
         pass
index d2b5966a61a4acdbe61e2e3bdb23afb3e20e570b..26d0a40dd9677fb26580e719106ae5b67b9bc330 100644 (file)
Binary files a/doc/salome/gui/GEOM/images/pref15.png and b/doc/salome/gui/GEOM/images/pref15.png differ
diff --git a/doc/salome/gui/GEOM/images/tolerances.png b/doc/salome/gui/GEOM/images/tolerances.png
new file mode 100644 (file)
index 0000000..69b1367
Binary files /dev/null and b/doc/salome/gui/GEOM/images/tolerances.png differ
index 187cefbcd32284196cfbca0bc504a0e84648a652..92d6c31a11e968a6fbc79966bac824b4e18c4ca2 100644 (file)
@@ -10,25 +10,24 @@ This operation is available in <b>OCC Viewer</b> only.
 
 The \b Result will be a \b GEOM_Object.
 
-\n Location of a new vertex on a selected edge can be defined two ways:
+\n The location of a new vertex on the selected edge can be defined in two ways:
 <ol>
-  <li> We can specify a position (ranging from 0.0 to 1.0) of the
-    vertex on the selected edge either by length or by parameter.
+  <li> By specifying the position (ranging from 0.0 to 1.0) by length or by parameter.
     <p>
     <b>TUI Command:</b> <em>geompy.DivideEdge(Shape, EdgeID, Value,
       IsByParameter)</em>
     <ul>
-      <li> \em Shape is a shape which contains an edge to be divided</li>
+      <li> \em Shape is a shape, which contains an edge to be divided;</li>
       <li>\em EdgeID is the ID of the edge to be divided, if it is = -1,
-        then \em Shape should be an edge itself.</li>
+        then \em Shape should be an edge itself;</li>
       <li> \em Value is a value of parameter on edge or length parameter,
-        depending on \em IsByParameter</li>
-      <li> \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] </li>
+        depending on \em IsByParameter;</li>
+      <li> \em IsByParameter is a boolean flag, specifying the 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] </li>
     </ul>
     \b Arguments: Name + 1 Edge + 1 Value setting the position of
-    the point according to one of the selected modes.
+    the point according to the selected mode.
 
     The difference between "by parameter" and "by length" modes becomes
     apparent on the edges with irregular parametrization (for example,
@@ -41,15 +40,15 @@ The \b Result will be a \b GEOM_Object.
     \image html repair8.png
     \n\n
   </li>
-  <li>We can select several points that will be projected to the selected
+  <li> By selecting several points that will be projected to the selected
     edge to find the location of new vertices.
     <p>
-    <b>TUI Command:</b> <em>geompy.DivideEdgeByPoint(Shape, Edge, Points)</em>
+    <b>TUI Command:</b> <em>geompy.DivideEdgeByPoint(Shape, Edge, Points):</em>
     <ul>
-      <li> \em Shape is a shape which contains an edge to be divided</li>
-      <li>\em Edge is an edge to be divided (or it's ID, if it is = -1,
-        then \em Shape should be an edge itself).</li>
-      <li> \em Points is a list of points to project to \a Edge. </li>
+      <li> \em Shape is a shape, which contains an edge to be divided;</li>
+      <li>\em Edge is an edge to be divided (or its ID, if it is = -1,
+        then \em Shape should be an edge itself);</li>
+      <li> \em Points is a list of points to be projected to the \a Edge.</li>
     </ul>
     \b Arguments: Name + 1 Edge + 1 or more Points.
 
index 7151dcff7b27f3e73980b9f277ac296e76c63d9f..d903fc1ba05f8cff5f71ae6a68718431308dc021 100644 (file)
@@ -8,10 +8,10 @@ This operation checks whether a shape is a compound of glued blocks.
 
 To be considered as a compound of blocks, the given shape must satisfy the
 following conditions:
-- Each element of the compound should be a Block (6 quadrangle faces);
-- Each quadrangle face is a face that has 1 wire with 4 edges. If there are
-more than 4 edges in a single wire and C1 continuity mode is switched on,
-a face is quadrangular if it has 4 bounds of C1 continuity.
+- Each element of the compound should be a Block, i.e. have 6 quadrangle faces;
+- Each quadrangle face should have one wire with four edges. If there are
+more than four edges in a single wire and C1 continuity mode is switched on,
+a face is quadrangular if it has four bounds with C1 continuity.
 - Blocks can be connected only via an entire quadrangle face or an entire edge;
 - The compound should be connected;
 - Each couple of connecting quadrangle faces should be glued.
@@ -20,7 +20,7 @@ a face is quadrangular if it has 4 bounds of C1 continuity.
 In this dialog:
 
 - \b Object - the checked object. \b Selection button allows picking it in the viewer or in the object browser.
-- <b>Use C1 criterion</b> - option that shitches on/off the C1 continuity mode.
+- <b>Use C1 criterion</b> - option switches on/off the C1 continuity mode.
 - <b>Angular Tolerance</b> - angular tolerance to check C1 continuity between neighbor edges in a wire.
 - \b Errors list informs of possible errors, for example:
        - Not a block;
index 8cf4d57bfa47bb07278e1719d814ac6759154088..41658151a35203cea0453fcba98600cf44f66281 100644 (file)
@@ -9,17 +9,14 @@ This operation checks the topology of the selected shape to detect self-intersec
 In this dialog:
 
 - \b Object - the checked object. \b Selection button allows picking it in the viewer or in the object browser.
-- <b>Level of check</b> - The combo box that allows to set the level of checking shape on self-interference.
-  It defines which interferferences will be checked. Default value is "All interferences".
-- <b>Compute self-intersections</b> button computes self-interferences.
-- \b Summary section contains the general report if the object has self-intersections and/or if errors are occured during computation.
-- \b Self-intersections list contains the list of self-intersections detected.
-Select the intersection(s) to show <b>Sub-shapes</b> in the field to the right. 
-- \b Apply and <b>Apply and Close</b> buttons are used to store interferences selected in the "Self-intersections" list box in the study for further analysis.
-If no any interference is selected, all interferences are published in the study. Each interference is published as a child
-compound of the source shape and contains a couple of intersecting sub-shapes.
-
-\note This tool is useful for detection of shapes, not suitable for
+- <b>Level of check</b> - combo box allows setting the level of self-interference checking. It defines, which interferences will be checked. The default value is "All interferences".
+- <b>Compute self-intersections</b> button performs the computation.
+- \b Summary section contains the general report about self-intersections of the object and/or errors that occurred during the computation.
+- \b Self-intersections list contains the list of detected self-intersections. Select the intersection to show <b>Sub-shapes</b> in the field to the right. 
+- \b Apply and <b>Apply and Close</b> buttons store the interferences selected in the <b>Self-intersections</b> list box in the study for further analysis. 
+If no interferences are selected, all of them are published in the study. Each interference is published as a child compound of the source shape and contains a couple of intersecting sub-shapes.
+
+\note This tool is useful for detection of shapes that are not suitable as
 arguments of Boolean operations and Partition algorithm.
 For more information about Partition and Boolean Operations Algorithms
 and their limitations refer to <a href="SALOME_BOA_PA.pdf">this document</a>.
index 1fbb1d6a266be6b6242b76cb2258f8b3228a09c6..01b6eb85f16210a389c2e7ff33dc9ce4c3f773b4 100644 (file)
@@ -15,10 +15,8 @@ axis, creating a body of revolution.</li>
 <li>\subpage create_extrusion_alongpath_page "Extrude an object along a path",
 creating a more complex trajectory object.</li>
 <li>\subpage create_pipe_path_page "Restore Path" of a pipe-like shape.</li>
-<li>\subpage create_thickness_page "Thickness" operation that allows to add a thickness to objects.</li>
-
-<li>\subpage create_groups_page "Generate Groups".
-This cross-operation functionality allows creation of groups for certain generation operations.</li>
+<li>\subpage create_thickness_page "Add thickness" to objects.</li>
+<li>\subpage create_groups_page "Generate Groups" for certain generation operations.</li>
 </ul>
 
 <b> New entity -> Advanced </b> sub-menu allows creating new geometric
index c25b719ae4545df649247c7e4442441d8a3d4a05..69377397357422652da8702a20691801ffe383fe 100644 (file)
@@ -16,7 +16,7 @@ obtain from it.
 The \b Result of the operation will be a List of \b GEOM_Objects
 (vertexes, edges, wires, faces, shells or solids).
 
-Available choices in the <b>Sub Shapes Type</b> combo box depend on the type
+The choices available in the <b>Sub Shapes Type</b> combo box depend on the type
 of selected <b>Main Object</b>:
 - \b Compound: to extract compounds;
 - \b Compsolid: to extract compsolids;
@@ -29,72 +29,70 @@ of selected <b>Main Object</b>:
 - \b Shape: to extract top-level contents of the compound shape;
 - \b Flat: to extract "flat" contents of the compound shape.
 
-Note: "flat" contents means top-level simple-type sub-shapes extracted from
-the compound object recursively (i.e. there is no compounds in the result).
-For example, if a compound C1 contains a solid S1 and another compound C2 that
-contains solids S2 and S3 (see picture below):
+Note: "flat" contents means that top-level simple-type sub-shapes are extracted from
+the compound object recursively (i.e. there are no compounds in the result).
+
+Let us take, for example, compound C1 that contains solid S1 and another compound C2 that
+contains solids S2 and S3 (see the picture below):
 - Explode operation with \b Shape type given as parameter will return S1 and C2;
 - Explode operation with \b Flat type given as parameter will return S1, S2 and S3.
 
 \image html flat_contents.png
 
 Switching on <b>Select Sub-shapes</b> check box allows manual selection of sub-shapes
-to be extracted from the main object. In this mode the user can select sub-shapes
+to be extracted from the main object. In this mode it is possible to select sub-shapes
 directly in 3D viewer.
 
 When <b>Select Sub-shapes</b> check box is switched on, additional \b Filter controls
-allow to automatically pick up entites which satisfy specified threshold value(s).
-The numerical functor for each sub-shape that is compared with threshold value(s)
-is computed according to the shape's topological properties:
-- length for edges and wires
-- area for faces and shells
-- volume for solids, compounds, compsolids
+allow to automatically pick up entities, which satisfy the specified threshold value(s).
+The numerical functor for each sub-shape that is compared with the threshold value(s)
+is computed according to the topological properties of the shape:
+- length for edges and wires;
+- area for faces and shells;
+- volume for solids, compounds and compsolids. 
 
 Filtering capabilities are not available for vertices.
 
-In order to filter out some entities:
-- Activate one or two filtering controls by switching on corresponding check boxes;
-- Select required threshold comparator type; the following choices are available:
+To filter out some entities it is necessary to do the following:
+- Activate one or two filtering controls by switching on the corresponding check boxes;
+- Select the required threshold comparator type; the following choices are available:
   - <b>Less Than</b> or <b>Equal or Less Than</b> for the first comparator;
   - <b>Greater Than</b> or <b>Equal or Greater Than</b> for the second comparator;
-- Enter required threshold value (values);
+- Enter the required threshold value (values);
 - Press \b Apply button in the \b Filter group.
 
-The entities which satisfy entered filtering parameters will be automatically highlighted
+The entities, which correspond to the entered filtering parameters, will be automatically highlighted
 in the 3D viewer.
 
 Using <b>TUI Commands</b> you can perform this operation in a
 variety of ways:
 - <em>geompy.ExtractShapes(Shape, Type, isSorted)</em> explodes a
   Shape into sub-shapes of a given Type and returns a List of sub-shapes.
-  This method does not return the Shape itself if it matches the
-  Type.
-- <em>geompy.SubShapeAll(Shape, Type)</em> explodes a Shape on
+  This method does not return the Shape itself if it matches the Type.
+- <em>geompy.SubShapeAll(Shape, Type)</em> explodes a Shape into
   sub-shapes of a given Type and returns a List of sub-shapes.
-- <em>geompy.SubShapeAllIDs(Shape, Type)</em> explodes a Shape on
-  sub-shapes of a given Type and returns a List of IDs of
-  sub-shapes.
+- <em>geompy.SubShapeAllIDs(Shape, Type)</em> explodes a Shape into sub-shapes of a given Type and returns a List of IDs of sub-shapes.
 - <em>geompy.SubShapeAllSortedCentres(Shape, Type)</em> explodes a
-  shape on sub-shapes of a given type and sorts them taking into account
+  shape into sub-shapes of a given type and sorts them taking into account
   their gravity centers, to provide a stable order of sub-shapes.
   It returns a list of sub-shapes.
 - <em>geompy.SubShapeAllSortedCentresIDs(Shape, Type)</em> explodes
-  a shape on sub-shapes of a given type and sorts them taking into
+  a shape into sub-shapes of a given type and sorts them taking into
   account their gravity centers, to provide a stable order of sub-shapes.
   It returns a List of IDs of sub-shapes.
 - <em>geompy.SubShape(Shape, Type, ListOfInd)</em> allows to obtain
-  a compound of sub-shapes of  the Shape,  selected by they indices in a
+  a compound of sub-shapes of the Shape, selected by their indexes in a
   list of all sub-shapes of the given Type. Each index is in the range
   [1, Nb_Sub-Shapes_Of_Given_Type].
 - <em>geompy.SubShapeSortedCentres(Shape, Type, ListOfInd)</em>
   allows to obtain a compound of sub-shapes of the Shape, selected by
-  they indices in sorted list of all sub-shapes of the given Type. Each
+  their indexes in a sorted list of all sub-shapes of the given Type. Each
   index is in the range [1, Nb_Sub-Shapes_Of_Given_Type]
 
 <b>Arguments: </b>1 SHAPE + 1 type of SubShape.
 
 <b>Example:</b>
 
-\image html explode.png "A box, exploded into faces"
+\image html explode.png "A box exploded into faces"
 
 */
index 6034ed5e313a2718cbb9bdd337f31ad24cb5323f..a707dc64e6c840356bb002923258079ca9d56cb8 100644 (file)
@@ -4,10 +4,10 @@
 
 To create a <b>Surface From Face</B> in the <b>Main Menu</b> select <b>New Entity - > Basic - > Surface From Face</b>
 
-\n This function takes some face as input parameter and creates new
-GEOM_Object, i.e. topological shape by extracting underlying surface
-of the source face and limiting it by the Umin, Umax, Vmin, Vmax
-parameters of the source face (in the parametrical space).
+\n This function takes a face at input and creates a new
+<b>GEOM_Object</b>, i.e. topological shape by extracting the underlying surface
+of the source face and limiting it by the <b>Umin, Umax, Vmin</b> and <b>Vmax</b>
+parameters of the source face (in the parametric space).
 \n
 \ref restore_presentation_parameters_page "Advanced options".
 
index 140c02fc1b6df970e71c8f8ae670a6bf69399af2..88dfc221e067d911981439bbe270a2cd6d1c2b5e 100644 (file)
@@ -2,26 +2,28 @@
 
 \page create_thickness_page Thickness Construction
 
-To add a \b Thickness to a shape in the <b>Main Menu</b> select <b>New Entity - > Generation  - > Thickness</b>
-\n
-It is possible to create a Solid from a Face or a Shell by applying a
-\b Thickness. To do it you should define an \b Object that is a Face or a
-Shell, \b Thickness and to define the thickness direction by means of
-<b>Thicken towards the inside</b> check box.
+To add \b Thickness to a shape in the <b>Main Menu</b> select <b>New Entity - > Generation  - > Thickness</b>.
+
+Switch between adding thickness to a Face (Shell) or a Solid using radio buttons.
+
+Firstly, \b Thickness can be applied to a Face or a Shell to create a Solid.
 
 \image html thickness.png
 
+It is necessary to define an \b Object (Face or Shell) and the value of \b Thickness.
+<b>Thicken towards the inside</b> check box allows changing the thickness direction.
+
 <b>Example:</b>
 
 \image html thickness_result.png "Thickness of Shell"
 
-It is possible to apply \b Thickness to a Solid. The result of this operation
-is the hollowed Solid. To do it you should define an \b Object that is a Solid,
-\b Faces to be removed from result, \b Thickness and the thickness direction by
-means of <b>Thicken towards the inside</b> check box.
+Secondly, the \b Thickness can be applied to a Solid to create a hollowed Solid. 
 
 \image html thicksolid.png
 
+It is necessary to define a Solid \b Object \b Faces to be removed from the result and \b Thickness.
+<b>Thicken towards the inside</b> check box allows changing the thickness direction.
+
 <b>Example:</b>
 
 \image html thicksolid_result.png "Thickness of Solid"
@@ -36,8 +38,8 @@ Modifies a shape to make it a thick solid.
 
 <b>Arguments:</b> Name + 1 shape (face, shell or solid) + thickness +
 the list of face IDs.
-\n If the shape is face or shell the list of face IDs is not used.
-The thickness can be positive or negative for thicken towards the inside.
+\n If the shape is a face or a shell the list of face IDs is not used.
+The thickness can be positive or negative for thickening towards the inside.
 \n\n <b>Advanced options</b> \ref preview_anchor "Preview"
 
 Our <b>TUI Scripts</b> provide you with useful examples of creation of
index 2f07c9bd33867c731636559d2d5908f1341e3dc9..b8346eec7553ef4ee1e26879baefc7c2350cf59c 100644 (file)
@@ -34,7 +34,7 @@ All necessary parameters of Dependency Tree Viewer can be edited in the \ref pre
 Tree nodes in the Dependency Viewer are named according to the study 
 names of the corresponding objects. 
 
-All nodes have fixed size, so long names are cut; the full object name can be seen in the tooltip 
+All nodes have fixed size, so long names are cut; the full object name can be seen in the tool-tip 
 when the cursor is hovered over the node.
 
 "Dependency Tree" view supports the following states of nodes:
@@ -61,11 +61,11 @@ Browser, OCC Viewer or Dependency Tree Viewer;</li></ul>
 Dependency Tree Viewer shows oriented links between nodes to 
 represent the dependency direction. The viewer supports the following states of links:
 
-<ul><li><b>Unidirectional link</b> - shows that object B depends on object A;</li></ul>
+<ul><li><b>Unidirectional link</b> - shows that object \b B depends on object \b A;</li></ul>
 \image html tree_unidir_link.png
 
-<ul><li><b>Bidirectional link</b> - shows that object B depends on 
-object A and, at the same time, object A depends on object B;</li></ul>
+<ul><li><b>Bidirectional link</b> - shows that object \b B depends on 
+object \b A and, at the same time, object \b A depends on object \b B;</li></ul>
 \image html tree_bidir_link.png
 
 <ul><li><b>Self-dependency link</b> - shows that an object depends on itself;</li></ul>
index 7ba53518420ce7087377a555182002ce49d70226..af842ccf1dff480a731e446fb79062bdb830887e 100644 (file)
@@ -29,7 +29,7 @@ functionality for all objects in the current view via the main menu
 
 \n <b>TUI Command:</b> <em>gg.setVectorsMode(ID, Bool)</em>
 
-\n Also it is possible to show the vertices of the selected
+\n It is possible to show the vertices of the selected
 shape. For this, choose in the context menu of the shape
 <b>Display mode -> Show Vertices</b>, or apply this
 functionality for all objects in the current view via the main menu
@@ -40,10 +40,9 @@ functionality for all objects in the current view via the main menu
 
 \n <b>TUI Command:</b> <em>gg.setVerticesMode(ID, Bool)</em>
 
-\n Moreover user can show the name of the selected
-shape. For this, choose in the context menu of the shape
+\n To show the name of the selected shape, choose in its context menu
 <b>Display mode -> Show Name</b>, or apply this
-functionality for all objects in the current view via the main menu
+functionality for all objects in the current view via the main menu option
 <b> View -> Display Mode -> Show/Hide Name.</b>
 
 \image html name_mode.png
index 605ff176f3d52d8c5fa901276202905f7645c55d..dd2ad27fa671d630031e410d7464d89e179bf970 100644 (file)
@@ -1,25 +1,20 @@
 /*!
 
-\page extension_operation_page Extension of an Edge or a Face
+\page extension_operation_page Extension 
 
-\n To produce an \b Extension in the <b>Main Menu</b> select
-<b>Operations - > Transformation - > Extension</b>
+\n To produce an \b Extension of an Edge or a Face select in the <b>Main Menu</b> 
+<b>Operations - > Transformation - > Extension</b>. The type of extension is defined using the radio buttons.
 
-\n This operation resizes an \b Edge by means of first
- and last parameters modification or a \b Face by means of modification
- of minimal and maximal U- and V-Parameters. \n
-\ref restore_presentation_parameters_page "Advanced options".
+Firstly it is possible to resize an \b Edge by modifying its first
+and last parameters
 
-The type of extension is defined using the radio buttons.
+\image html extension1.png "Edge Extension" 
 
-Firstly it is possible to resize an \b Edge.
 \n <b>TUI Command:</b> <em>geompy.ExtendEdge(theEdge, theMin, theMax)</em>,
 where \em theEdge the input edge to be resized, \em theMin the minimal
 parameter value, \em theMax the maximal parameter value.
 \n <b>Arguments:</b> Name + Object (Edge) + 2 values (Min and Max Parameters).
 
-\image html extension1.png "Extension of an Edge"
-
 \n <b>Example:</b>
 
 \image html extend_edge_example.png "Original edge (white) and extended edge"
@@ -28,8 +23,12 @@ parameter value, \em theMax the maximal parameter value.
       negative, the input Edge is extended, otherwise it is shrinked by
       \b theMin parameter. If \b theMax is greater than 1, the Edge is
       extended, otherwise it is shrinked by \b theMax parameter.
+       
+Secondly it is possible to resize a \b Face by modifying its 
+minimal and maximal U- and V-Parameters. 
 
-Secondly it is possible to resize a \b Face.
+ \image html extension2.png "Face Extension" 
 \n <b>TUI Command:</b> <em>geompy.ExtendFace(theFace, theUMin, theUMax,
 theVMin, theVMax)</em>, where \em theFace the input face to be resized,
 \em theUMin the minimal U-Parameter value, \em theUMax the maximal U-Parameter
@@ -38,18 +37,16 @@ V-Parameter value.
 \n <b>Arguments:</b> Name + Object (Face) + 4 values (Min and Max U- and
 V-Parameters).
 
-\image html extension2.png "Extension of a Face"
 
 \n <b>Example:</b>
 
-\image html extend_face_example.png "The original face (gray) and a result
-       face shrinked along U-Direction and extended along V-Direction"
+\image html extend_face_example.png "The original face (gray) and a result face shrinked along U-Direction and extended along V-Direction"
 
 \note The input Face U- and V-Parameters range is [0, 1]. If \b theUMin
       parameter is negative, the input Face is extended, otherwise it is
-      shrinked along U-Direction by \b theUMin parameter. If theUMax is
+      shrinked along U-Direction by \b theUMin parameter. If \b theUMax is
       greater than 1, the Face is extended, otherwise it is shrinked along
-      U-Direction by \b theUMax parameter. So as for \b theVMin, \b theVMax
+      U-Direction by \b theUMax parameter. The same applies to \b theVMin, \b theVMax
       and V-Direction of the input Face.
 
 Our <b>TUI Scripts</b> provide you with useful examples of the use of
index 78fa0d58cdb60aa6e351fbecb3cbe82264ce1009..3976f44ea04828ed2f022a10052f3e4bbc2542f3 100644 (file)
@@ -6,6 +6,7 @@ Here you can find the answers to some frequently asked questions:
 
 <ul>
 <li>\subpage partition_explanation "What is the difference between partition, compounds and fuse operation ?" </li>
+<li>\subpage size_models_range "What are the valid sizes of models ?" </li>
 </ul>
 
 
index 4de27fc29fea3f5668d770fcd5cb89146added68..f27a6d94461026be3e3bbb78379e3058393e2577 100644 (file)
@@ -1,11 +1,11 @@
 /*!
 \page fast_intersection_page Fast intersection
 
-This operation checks whether or not two selected shapes are overlapped.
+This operation checks if two selected shapes are overlapped.
 
 This tool is useful for fast detection of intersections and gaps.
 In contrast to Boolean Operations, Partition and Detect Self-intersection 
-algorithms that compute topological intersections, this algoritm computes 
+algorithms that compute topological intersections, this algorithm computes 
 intersections by generating tessellation (triangulation) of the source 
 shapes and detecting overlapping of resulting meshes. High performance is 
 achieved through the use of existing triangulation of faces.
@@ -28,22 +28,21 @@ of the GUI module's documentation.
 
 In this dialog:
 
-- \b Object 1 - first checked object. \b Selection button allows picking it in the viewer or in the object browser.
-- \b Object 2 - second checked object. \b Selection button allows picking it in the viewer or in the object browser.
+- <b> Object 1 </b> and <b> Object 2 </b> the checked objects. \b Selection button allows picking them in the viewer or in the object browser.
 - <b>Deflection coefficient</b> specifies the quality of shapes tessellation.
 - <b>Detect gaps</b> - when switched on, allows detecting gaps between shapes. 
-- <b>Tolerance</b> - specifies a distance between shapes used for detecting gaps.
+- <b>Tolerance</b> - specifies the distance between shapes used for detecting gaps.
 - <b>Compute intersections</b> - press this button to compute interferences.
 - <b>Sub-shapes of Object 1</b> - list of sub-shapes from the first source shape that localize the intersection.
 - <b>Sub-shapes of Object 2</b> - list of sub-shapes from the second source shape that localize the intersection.
 - \b Apply and <b>Apply and Close</b> buttons are used to store selected intersected shapes in the study for
 further analysis (see below).
 
-\note Quality of the result depends on the quality of triangulation. Changing a value of the deflection coefficient
-parameter can strongly affect the result. On the other hand, small values of deflection coefficient might lead to
+\note The result quality depends on the quality of triangulation. Changing the value of the deflection coefficient
+parameter can strongly affect the result. However, small values of the deflection coefficient might lead to
 some performance loss of the algorithm, as number of triangles of the tesselation mesh depends on this parameter.
 
-It is possible to store sub-shapes selected by the user in the study, for the further analysis.
+Press <b>Apply and Close</b> or \b Apply button to store the selected sub-shapes in the study for further analysis.
 The selection will be published as a compound containing intersected sub-shapes from both source objects.
 
 <b>TUI Command:</b> <em>geompy.FastIntersect(theShape1, theShape2, theTolerance = 0.0, theDeflection = 0.001),</em> \n
index 87bb9fc56959ff3016e2f82a685274c8071be673..454ac3210d5257adab477d9f64429418fd533d06 100644 (file)
@@ -5,7 +5,8 @@
 \anchor pref_settings <h2>Settings</h2>
 
 In the \b Geometry module you can set preferences for visualization of
-geometrical figures, which can be used in later sessions with this module.
+geometrical figures, which can be used right now or in later sessions 
+with this module according to the preferences.
 
 
 \image html pref15.png
@@ -48,16 +49,16 @@ place (in the back) and add the additional wireframe actor in the viewer foregro
 <li><b>Shading With Edges</b> - allows to switch display mode to shading with edges mode after 
 "top-level" operation.</li>
 </ul>
-<li><b>Transparency</b> - allows to define default transparency value.</li>
-<li><b>Deflection coefficient</b> - allows to define default deflection
+<li><b>Default transparency</b> - allows to define default transparency value.</li>
+<li><b>Default deflection coefficient</b> - allows to define default deflection
 coefficient for lines and surfaces. A smaller coefficient provides
 better quality of a shape in the viewer.</li>
 <li><b>Show predefined materials in popup menu</b> - allows to customize the displaying of popup menu with list of 
 predefined materials.</li>
 <li><b>Default material</b> - allows to define default material.</li>
 <li><b>Subshapes color for editing a group</b> - allows to select default color for subshapes in a group.</li>
-<li><b>Edges width</b> - allows to define default width of the edges.</li>
-<li><b>Isolines width</b> - allows to define default width of the isolines.</li>
+<li><b>Default edges width</b> - allows to define default width of the edges.</li>
+<li><b>Default isolines width</b> - allows to define default width of the isolines.</li>
 <li><b>Preview edges width</b> - allows to define width of the edges for preview.</li>
 <li><b>Measures line width</b> - allows to define lines width of measurements tools.</li>
 <li><b>Step value for spin boxes</b> - allows to define the increment
@@ -82,7 +83,7 @@ of values set in spin boxes.</li>
 </ul>
 
 <ul>
-<li><b>Number of isolines</b> - allows to specify the number of isolines along <b>Along U</b> and <b>Along V</b> coordinate axes. They are shown on each selected face. For example:
+<li><b>Default number of isolines</b> - allows to specify the default number of isolines along <b>Along U</b> and <b>Along V</b> coordinate axes. They are shown on each selected face. For example:
 
 \image html isos.png
 
@@ -107,26 +108,15 @@ precision for floating-point data.</li>
 </ul>
 
 <ul>
-<li><b>Marker of Points</b></li>
+<li><b>Default marker of points</b></li>
 <ul>
-<li><b>Type</b> - allows to select the symbol for representation of
+<li><b>Type</b> - allows to select the default symbol for representation of
 points (cross, asterisk, etc.).</li>
-<li><b>Size</b> - allows to define the size of the marker from 1
+<li><b>Size</b> - allows to define the default size of the marker from 1
 (smallest) to 7 (largest).</li>
 </ul>
 </ul>
 
-<ul>
-<li><b>Origin and base vectors</b></li>
-<ul>
-<li><b>Length of base vectors</b> - allows to define the length
-of base vectors.</li>
-<li><b>Auto create</b> - allows to automatically create a point
-of origin and three base vectors of the rectangular coordinate
-system immediately after the module activation.</li>
-</ul>
-</ul>
-
 <ul>
 <li><b>Scalar bar for field presentation</b></li>
 <ul>
@@ -139,11 +129,23 @@ system immediately after the module activation.</li>
 </ul>
 </ul>
 
+<ul>
+<li><b>Origin and base vectors</b></li>
+<ul>
+<li><b>Length of base vectors</b> - allows to define the length
+of base vectors.</li>
+<li><b>Auto create</b> - allows to automatically create a point
+of origin and three base vectors of the rectangular coordinate
+system immediately after the module activation.</li>
+</ul>
+</ul>
 
 <ul>
 <li><b>Operations</b></li>
 <ul>
 <li><b>Preview</b> - allows to customize the displaying preview by default.</li>
+<li><b>Hide input objects from the viewer</b> - allows automatic hiding of input 
+shapes from the 3D viewer (OCC and VTK) in all operations of Geometry module.</li>
 </ul>
 </ul>
 
index eb7d2377c07673b66c52387079c3c86f095b7e39..2b5c8a98111eb73c77d0f2b70ad8b3df63b7cf7a 100644 (file)
@@ -17,7 +17,7 @@ given tolerance value.
 
 \n <b>TUI Command:</b>
 <p><em>geompy.MakeGlueEdges( theShapes, theTolerance )</em>,
-\n where \em theShapes is either a list or compound of shapes to be
+\n where \em theShapes is a list or compound of shapes to be
 glued, and \em theTolerance is a maximum distance between two
 edges, which can be considered as coincident.
 
@@ -41,12 +41,12 @@ The selected edges will be marked in white.
  theTolerance is a maximum distance between two edges, which can
  be considered as coincident. The \b Result will be a list of \b
  GEOM_Objects (edges), containing one sub-shape per each detected set of
- coincident sub-shapes. For example if there are two coincident edges
-in selected shapes, the result list contains one of the two coincident edges.
+ coincident sub-shapes. For example, if there are two coincident edges
+in the selected shapes, the result list contains one of the two coincident edges.
 
 <em>geompy.MakeGlueEdgesByList( theShapes, theTolerance, theEdges )</em>,
-\n where \em theShape is either a list or compound of shapes to be glued, \em
- theTolerance is a maximum distance between two edges, which can
+\n where \em theShape is a list or compound of shapes to be glued, 
+\em theTolerance is a maximum distance between two edges, which can
  be considered as coincident, \em theEdges is a list of
  edges to be glued. 
 
index 8f020115bcdbfae1bbc4ced1bfc42bb017d775da..c6a6fa021583320f6b423d3568f7a032e8ae18d3 100644 (file)
@@ -41,12 +41,12 @@ The selected faces will be marked in white.
 
 When the faces are glued their edges are glued as well. By default, other
 edges are not glued. To force gluing of all edges, check <b>Glue all coincident edges</b>
-checkbox.
+check-box.
 
 \n <b>TUI Commands:</b>
 
 <em>geompy.GetGlueFaces( theShapes, theTolerance )</em>,
-\n where \em theShapes is either a list or compound of shapes to be glued, \em
+\n where \em theShapes is a list or compound of shapes to be glued, \em
 theTolerance is a maximum distance between two faces, which can
 be considered as coincident. The \b Result will be a list of \b
 GEOM_Objects (faces), containing one sub-shape per each detected set of
index 40cc4c027d00f4fdaa67a793efe8dbc70847fafd..0650bd47ba636de10cf1d18d6a09de8036159b5b 100755 (executable)
@@ -12,11 +12,11 @@ In this dialog:
 - Click on the "selection" button and select an object to inspect in the Object Browser or in the viewer.
 - Show/hide sub-shape(s) in the 3D viewer, by pressing “eye” icon in the first column of the tree view.
 - Show/hide all sub-shapes in the 3D viewer, by pressing “eye” icon in the first column of the tree view header.
-- Rename selected sub-shape by double-clicking on the item or pressing <F2> key.
-- Show selected sub-shape(s) in the 3D viewer by pressing <b>Show Selected</b> button.
-- Show selected sub-shape(s) in the 3D viewer and erase all currently shown objects by pressing <b>Show Only Selected</b> button.
-- Hide selected sub-shape(s) from the 3D viewer by pressing <b>Hide Selected</b> button.
-- Publish selected sub-shapes in the study, by pressing <b>Publish Selected</b> button.
+- Rename the selected sub-shape by double-clicking on the item or pressing <F2> key.
+- Show the selected sub-shape(s) in the 3D viewer by pressing <b>Show Selected</b> button.
+- Show the selected sub-shape(s) in the 3D viewer and erase all currently shown objects by pressing <b>Show Only Selected</b> button.
+- Hide the selected sub-shape(s) from the 3D viewer by pressing <b>Hide Selected</b> button.
+- Publish the selected sub-shapes in the study, by pressing <b>Publish Selected</b> button.
 - Close dialog box, by pressing <b>Close</b> button.
 
 */
index be0c5aa279bde7f24c43a9bbb0b4a0b1520108e1..88e4d9fbdebaed9ccc28c71031284180483b1724 100644 (file)
@@ -14,12 +14,11 @@ To make a projection it is necessary to define:
 - \b Object to be projected. It can be either a planar wire or a face;
 - \b Radius of the cylinder;
 - <b>Starting angle</b> from the cylinder's X axis around Z axis. This is
-the angle of the projection starting.
-- <b>Length angle</b> in which to project the total length of
-the wire. If it is unchecked the projection is not scaled and natural
+the angle of the projection start.
+- <b>Length angle</b> where the total length of
+the wire should be projected. If it is unchecked the projection is not scaled and the natural
 wire length is kept for the projection.
-
-\ref restore_presentation_parameters_page "Advanced options".
+- \ref restore_presentation_parameters_page "Advanced options".
 
 \image html proj_on_cyl_dlg.png
 
@@ -29,8 +28,8 @@ wire length is kept for the projection.
 
 \n <b>TUI Command:</b> <em>geompy.MakeProjectionOnCylinder(theObject, theRadius,
 theStartAngle=0.0, theAngleLength=-1.0),</em>
-where \em theObject is a shape which has to be projected, \em theRadius
-is a cylinder radius, \em theStartAngle the starting angle of projection in
+where \em theObject is a shape to be projected, \em theRadius
+is a cylinder radius, \em theStartAngle is the starting angle of projection in
 radians, \em theAngleLength the projection length angle in radians.
 The \em Result will be a \em GEOM_Object.
 
index 0008dc80a6c5f86124373028ad15622e51f5f10f..9d293dec40d247ee4d24c0b1889b82836e70fb9a 100644 (file)
@@ -3,18 +3,18 @@
 \page sewing_operation_page Sewing
 
 \b Sewing operation allows uniting several faces (possibly contained
-in a shell, solid or compound) into one shell while geometrically
+in a shell, solid or compound) into one shell. Geometrically
 coincident (within a specified tolerance) edges (or parts of edges) of
 different faces are replaced by one edge thus producing a shell of
 faces with shared boundaries.<p> 
 This operation is similar to <b>New Entity - > Build - > Shell</b>
 operation, the difference is that with \b Sewing you can specify the
-tolerance and can get a non-manifold result. <p>
-Possibility to create a non-manifold shell can be used e.g. to create a
+tolerance and get a non-manifold result. <p>
+The possibility to create a non-manifold shell can be used e.g. to create a
 shell forming several closed domains and then to create several solids
 with shared boundaries from this shell.
 
-\note Geometrically coincident faces (or part of faces) won't be
+\note Geometrically coincident faces (or parts of faces) will not be
 replaced by one face during \b Sewing.
 
 To produce a \b Sewing operation in the <b>Main Menu</b> select <b>Repair - > Sewing</b>.
index c92d48b8cedbcc05d6f9a6aac3ad27ae847cd597..643c706386bcd9af63d3e7ba3393a47091c7cf72 100644 (file)
@@ -56,22 +56,22 @@ merge with neighboring edges.</li>
 <li><b>3D Tolerance</b> (DropSmallEdges.Tolerance3d) - defines minimum
 possible distance between two parallel edges.</li>
 </ul>
-<li><b>Drop Small Solids</b> (DropSmallSolids) - either removes small
+<li><b>Drop Small Solids</b> (DropSmallSolids) - removes small
   solids or merges them with neighboring ones.</li>
 <ul>
 <li><b>Width factor tol.</b> (DropSmallSolids.WidthFactorThreshold) -
-  defines maximum value of <em>2V/S</em> of a solid which is
-  considered small, where \a V is volume and \a S is surface area of
+  defines the maximum value of <em>2V/S</em> of a solid, which is
+  considered small, where \a V is the volume and \a S is the surface area of
   the solid.</li>
 <li><b>Volume tol.</b> (DropSmallSolids.VolumeThreshold) - defines
-  maximum volume of a solid which is considered small.</li>
+  the maximum volume of a solid, which is considered small.</li>
 <li><b>To merge solids</b> (DropSmallSolids.MergeSolids) - if
   activated, small solids are removed, else small solids are merged to
-  adjacent non-small solids or left untouched if cannot be merged.
+  adjacent non-small solids or left untouched if they cannot be merged.
 </li>
 </ul>
 If the both tolerances are activated a solid is considered small if
-it meets the both criteria.
+it meets both criteria.
 <li><b>Split Angle</b> (SplitAngle) - splits faces based on conical
 surfaces, surfaces of revolution and cylindrical surfaces in segments
 using a certain angle.</li>
index 802fc45a1782dba7fc9911725025e738547da3d5..23d94d2f0c7083e878fa18812eda7230405157d3 100755 (executable)
@@ -15,22 +15,22 @@ Shared Shapes.</b> The following dialog box will appear.
 
 In this dialog:
 - <b>Name</b> is the base name of the resulting shapes.
-- <b>Shapes</b> are the shapes to fing shared sub-shapes of.
+- <b>Shapes</b> are the shapes whose shared sub-shapes should be found.
 - <b>Sub-shapes Type</b> is the type of required sub-shapes.
 - <b>Shared by all</b> option specifies what type of shared sub-shapes should be checked:
-  - \b On: causes to search sub-shapes from the first input shape shared with all other input shapes;
-  - \b Off: causes to search sub-shapes shared between couples of input shapes.
+  - \b On: searches for sub-shapes from the first input shape shared with all other input shapes;
+  - \b Off: searches for sub-shapes shared between couples of input shapes.
 
 \note For the case when "Shared by all" option is switched off - if an input list of shapes
-contains single compound, the sub-shapes shared between all possible couples of its top-level shapes
-are searched; otherwise, only sub-shapes that are shared between first input shape and all rest input
-shapes are searched.
+contains single compound, the sub-shapes shared between all possible couples of its top-level shapes
+are searched for; otherwise, only sub-shapes that are shared between the first input shape and 
+all other input shapes are searched.
 
 <b>Advanced options:</b> \ref preview_anchor "Preview"
 
 <b>TUI Command:</b> <em> geompy.GetSharedShapesMulti( Shapes, Type ),</em> 
-<br> where \em Shapes is a list or compound of shapes to fing shared sub-
-shapes of and \em Type is the type of required sub-shapes.
+<br> where \em Shapes is a list or compound of shapes, whose shared sub-
+shapes should be found and \em Type is the type of required sub-shapes.
 
 Our <b>TUI Scripts</b> provide you with useful examples of the use of
 Get Shared Shapes functionality:
diff --git a/doc/salome/gui/GEOM/input/size_models_range.doc b/doc/salome/gui/GEOM/input/size_models_range.doc
new file mode 100644 (file)
index 0000000..c8594ab
--- /dev/null
@@ -0,0 +1,83 @@
+/*!
+
+\page size_models_range Sizes of Models in Salome
+
+\tableofcontents
+
+In Salome and Open CASCADE Technology (OCCT), which is a modeling core
+of Salome %GEOM module, any model has its location in the 3D-space and size.
+This document defines the range of values (tolerances, locations
+and sizes) that should be taken into account for any 3D model design.
+
+It is not obligatory to create models within this range,
+however, algorithms can fail or return unexpected results if the 
+recommendations are not followed.
+
+\section sec1 Maximal Size of the Model
+
+The Maximal Size of the model corresponds to the maximal diameter of
+enclosed sphere built for the model. In OCCT any model has a location defined
+relatively to the absolute origin. Thus the maximal diameter should be built
+taking into account the model itself and its location.
+
+In OCCT there are two tolerances: Tolerance Confusion (TolC)
+and Tolerance Angular (TolA) (see OCCT Precision package for more details).
+These values are used for geometric comparisons. However, they are not used inside
+low-level algorithms (e.g. intersection), where more precise values are
+used instead. The value TolC guarantees that the error associated with
+the computations for a given geometric entity is not greater than TolC.
+
+- TolC - precision value used to check the coincidence of two points
+  [by default 1.e-7];
+- TolA - precision value used to check the equality of two angles
+  [by default 1.e-12].
+
+For more information on tolerance definition please see
+<a href="SALOME_BOA_PA.pdf">Chapter 4 of this document</a>. To see limitations
+that are due to modeling errors or inaccuracies of tolerance usage please
+refer to <a href="SALOME_BOA_PA.pdf">Chapter 9.2.2 of the same document</a>.
+
+To provide robust geometric modeling the computations should be consistent,
+i.e. the one tolerance value should be used for all computations. Thus, the
+TolC and TolA values should be consistent:
+
+<CENTER><B><PRE>Smax = TolC / TolA             (1)</PRE></B></CENTER>
+
+\image html tolerances.png "TolC, TolA and Maximal Size Consistency"
+
+In accordance with <B>(1)</B> the Maximal Size for the Model is [by default]:
+
+<CENTER><B><PRE>Smax = 1.e-7 / 1.e-12 = 1.e+5  (2)</PRE></B></CENTER>
+
+\section sec2 Minimal Size of the Model
+
+The Minimal Size of the Model is defined as the maximal diameter of enclosed
+sphere built for the smallest BRep entity of the Model.
+
+All models in OCCT are represented using double precision
+floating point numbers. This representation contains approximately 14-16
+significant digits.
+
+From the experience, it is considered that the last four significant
+digits contain rounding-off errors occurring during the computation. So
+(taking into account the worst cases), there are ten reliable significant digits
+for double precision floating point numbers. Having the estimation it is
+possible to compute the value of the Minimal size of the model:
+
+<CENTER><B><PRE>Smin=Smax / 1.e+10             (3)</PRE></B></CENTER>
+
+In accordance with <B>(2)</B> for the default value it will be [by default]:
+
+<CENTER><B><PRE>Smin=1.e-5.                    (4)</PRE></B></CENTER>
+
+\section sec3 Full Range of Sizes
+
+The values <B>Smax (2)</B>, <B>Smin (4)</B> are theoretical. Taking into
+account the practical purposes of improving the reliability, the lower limit
+should be restricted by one order. Thus, the full Range of Sizes of the Models
+is:
+
+<CENTER><B><PRE>[Smin, Smax] = [1.e-4, 1.e+5]  (5)</PRE></B></CENTER>
+
+*/
index b34b34f31bba3337f5aea324492ff87661d831b0..87a64860fef18c1461e04387a8e6fb288c1f8d3a 100644 (file)
@@ -21,24 +21,23 @@ In this dialog:
 <ul>
 <li> <b>Source Shape</b> is an object that is a source of non-topological data.</li>
 <li> <b>Destination Shape</b> is a data destination object. </li>
-<li> <b>Type of detection operation</b> is the method to search sub-shapes of
-     <b>Source Shape</b> in <b>Destination Shape</b>. Data are transferred
-     from these corresponding sub-shapes. This is a combo-box with the following
-     possible values:
+<li> <b>Type of detection operation</b> allows choosing how to search sub-shapes of the 
+     <b>Source Shape</b> in the <b>Destination Shape</b>. The data are transferred
+     from these corresponding sub-shapes. The following methods are possible:
     <ul>
-    <li><b>Get In Place</b> - current implementation of Get In Place algorithm
+    <li><b>Get In Place</b> - the current implementation of Get In Place algorithm
         (default value).</li>
-    <li><b>Get In Place (old)</b> - old implementation of Get In Place
+    <li><b>Get In Place (old)</b> - the old implementation of Get In Place
         algorithm.</li>
     <li><b>Get In Place By History</b> - Get In Place By History algorithm.</li>
     </ul>
 </li>
 </ul>
 
-To copy data click on \b Apply or <b>Apply and Close</b> button. As the result
-it is possible to see how many names and materials are copied as well as
-maximum number of names and materials available for copying. This information is
-provided on the following message box:
+To copy the data click on \b Apply or <b>Apply and Close</b> button. 
+It is possible to see how many names and materials are copied as well as
+the maximum number of names and materials available for copying. This information is
+provided in the following message box:
 
 \image html transfer_data2.png "Transfer Data Information"
 
index fad70f01c9028401590d7d7a02892ad832afc0ed..43dc0f6f70fe4d97ab17c0f26cb6e4e624551801 100644 (file)
@@ -5,13 +5,13 @@
 This operation provides the list of types and quantities of all topological
 entities, composing the selected geometrical object.
 
-For the \em COMPOUND or \em COMPSOLID shape, additionally the information about
-"flat" content is shown - a number of "simple" top-level shapes enclosed into the compound.
+The information about \em COMPOUND or \em COMPSOLID shapes additionally shows
+"flat" content - the number of "simple" top-level shapes enclosed into the compound.
 
 \image html measures8.png
 
 \note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
-- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
+- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when the input focus is
 in the viewer to navigate between selectable objects.
 - Press left mouse button to select an appropriate object to the dialog box.
 .
index df36fd6a2c5801ddd05c5f946b457c827a1a61bf..852047dfb04216c9bde75c4842cb30c26a38dc53 100644 (file)
@@ -81,24 +81,24 @@ creation of other groups), or skip it by clicking \b Close button.
 
 \n The Result of the operation will be a \b GEOM_Object.
 
-The \b Filter controls allow to automatically pick up entites which satisfy specified 
+The \b Filter controls allow to automatically pick up entities, which satisfy specified 
 threshold value(s). The numerical functor for each sub-shape that is compared with
 threshold value(s) is computed according to the shape's topological properties:
-- length for edges and wires
-- area for faces and shells
-- volume for solids, compounds, compsolids
+- length for edges and wires;
+- area for faces and shells;
+- volume for solids, compounds, compsolids.
 
 Filtering capabilities are not available for vertices.
 
 In order to filter out some entities:
-- Activate one or two filtering controls by switching on corresponding check boxes;
-- Select required threshold comparator type; the following choices are available:
+- Activate one or two filtering controls by switching on the corresponding check boxes;
+- Select the required threshold comparator type; the following choices are available:
   - <b>Less Than</b> or <b>Equal or Less Than</b> for the first comparator;
   - <b>Greater Than</b> or <b>Equal or Greater Than</b> for the second comparator;
-- Enter required threshold value (values);
+- Enter the required threshold value (values);
 - Press \b Apply button in the \b Filter group.
 
-The entities which satisfy entered filtering parameters will be automatically highlighted
+The entities, which satisfy the entered filtering parameters, will be automatically highlighted
 in the 3D viewer.
 
 \b Plot button into "Filter" group box provides an access 
index 14419f220ba6a0d568a5b10b5a779f06b9cf3f30..d716f2ae39588f136d06d9aadc56de47a799f142 100755 (executable)
@@ -26,7 +26,10 @@ SALOME_CONFIGURE_FILE(static/header.html.in static/header.html)
 ADD_CUSTOM_TARGET(dev_docs ${DOXYGEN_EXECUTABLE})
 
 INSTALL(CODE "FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/GEOM)")
-INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/GEOM DESTINATION ${SALOME_INSTALL_DOC}/tui)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/GEOM
+        DESTINATION ${SALOME_INSTALL_DOC}/tui
+        PATTERN "*.md5" EXCLUDE
+        PATTERN "*.map" EXCLUDE)
 INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/tui/GEOM)
 
 SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES GEOM)
index f63819e9755ff990d5514fa18c1c22f7830102e0..87a912edc3829cb0cbb0237637947422e9819efe 100644 (file)
@@ -226,6 +226,7 @@ module GEOM
     string     operationName;
     Parameters params;
   };
+  typedef sequence<CreationInformation> CreationInformationSeq;
 
   /*!
    * \brief Reporting on shape healing
@@ -348,7 +349,7 @@ module GEOM
     /*!
      * \brief Return name of operation and values of parameters used for object creation
      */
-    CreationInformation GetCreationInformation();
+    CreationInformationSeq GetCreationInformation();
   };
 
   //# GEOM_Object
index d311338c95b4455b4126467cc7f61f3d237e34d0..cddf9c5cfb39bc19dcd3824eaf0ed0232dbd5ceb 100644 (file)
@@ -1474,70 +1474,16 @@ bool AdvancedEngine_IOperations::MakePipeTShapePartition(Handle(GEOM_Object) the
       face_t->GetLastFunction()->SetDescription("");
       theShapes.push_back(face_t);
 
-      gp_Pnt aP2 = BRep_Tool::Pnt(TopoDS::Vertex(P2->GetValue()));
-      gp_Pnt aP5 = BRep_Tool::Pnt(TopoDS::Vertex(vi1->GetValue()));
-      double deltaZ = aP2.Z() - aP5.Z();
-      //         std::cerr << "Creating new point from vi1 with deltaZ = " << deltaZ << std::endl;
-      Handle(GEOM_Object) P5bis = myTransformOperations->TranslateDXDYDZCopy(vi1, 0, 0, deltaZ);
-      if (P5bis.IsNull()) {
-        SetErrorCode("Impossible to translate vertex");
-        return false;
-      }
-      P5bis->GetLastFunction()->SetDescription("");
-
-      gp_Pnt aP4 = BRep_Tool::Pnt(TopoDS::Vertex(P4->GetValue()));
-      gp_Pnt aP6 = BRep_Tool::Pnt(TopoDS::Vertex(vi2->GetValue()));
-      deltaZ = aP4.Z() - aP6.Z();
-      //         std::cerr << "Creating new point from vi2 with deltaZ = " << deltaZ << std::endl;
-      Handle(GEOM_Object) P6bis = myTransformOperations->TranslateDXDYDZCopy(vi2, 0, 0, deltaZ);
-      if (P6bis.IsNull()) {
-        SetErrorCode("Impossible to translate vertex");
-        return false;
-      }
-      P6bis->GetLastFunction()->SetDescription("");
-
-      //         std::cerr << "Creating new line 1 from 2 previous points" << std::endl;
-      Handle(GEOM_Object) Cote_3 = myBasicOperations->MakeLineTwoPnt(P5bis, P2);
-      if (Cote_3.IsNull()) {
-        SetErrorCode("Impossible to build edge in thickness");
-        return false;
-      }
-      Cote_3->GetLastFunction()->SetDescription("");
+      // Create a prism from edge_chan_inc
+      Handle(GEOM_Object) aPrismDir = myBasicOperations->MakeVectorDXDYDZ(1., 1., 0.);
 
-      //         std::cerr << "Creating new line 2 from 2 previous points" << std::endl;
-      Handle(GEOM_Object) Cote_4 = myBasicOperations->MakeLineTwoPnt(P6bis, P4);
-      if (Cote_4.IsNull()) {
-        SetErrorCode("Impossible to build edge in thickness");
+      if (aPrismDir.IsNull()) {
+        SetErrorCode("Impossible to build Prism direction");
         return false;
       }
-      Cote_4->GetLastFunction()->SetDescription("");
+      aPrismDir->GetLastFunction()->SetDescription("");
+      face_t2 = my3DPrimOperations->MakePrismVecH(edge_chan_inc, aPrismDir, theR2 + theW2);
 
-      //         std::cerr << "Creating new line 3 from 2 previous points" << std::endl;
-      Handle(GEOM_Object) Cote_5 = myBasicOperations->MakeLineTwoPnt(P5bis, P6bis);
-      if (Cote_4.IsNull()) {
-        SetErrorCode("Impossible to build edge in thickness");
-        return false;
-      }
-      Cote_5->GetLastFunction()->SetDescription("");
-
-      //std::list<Handle(GEOM_Object)> edgeList2;
-      //edgeList2.push_back(edge_chan_inc);
-      //edgeList2.push_back(Cote_3);
-      //edgeList2.push_back(Cote_5);
-      //edgeList2.push_back(Cote_4);
-      //         std::cerr << "Creating wire 2" << std::endl;
-      //wire_t2 = myShapesOperations->MakeWire(edgeList2, 1e-7);
-      //if (wire_t2.IsNull()) {
-      //  SetErrorCode("Impossible to build wire");
-      //  return false;
-      //}
-      //wire_t2->GetLastFunction()->SetDescription("");
-      //         std::cerr << "Creating face 2" << std::endl;
-      //face_t2 = myShapesOperations->MakeFace(wire_t2, false);
-
-      // Mantis issue 0021682
-      face_t2 = my3DPrimOperations->MakePrismVecH(edge_chan_inc, Cote_4, - (theR2 + theW2));
-      //face_t2 = my3DPrimOperations->MakePrismVecH(edge_chan_inc, Cote_4, - 2.0*theR2);
       if (face_t2.IsNull()) {
         SetErrorCode("Impossible to build face");
         return false;
index fb449602ef7be362a4cc47ccb6d9fb3dc3d42089..67a8923d3348c69dbdd935e3f8684b2e0a9ba9e8 100644 (file)
     </message>
     <message>
       <source>INTERNAL_FACES</source>
-      <translation>å\86\85é\83¨ã\81®é¡\94</translation>
+      <translation>å\86\85é\83¨ã\81®é\9d¢</translation>
     </message>
   </context>
   <context>
index cca0947a331d4b523dfdfad97365e783398d7b29..cc1bb291f1733dff07f79de400f235c165e6f60f 100644 (file)
@@ -32,7 +32,7 @@
     <name>BREPPlugin_GUI</name>
     <message>
       <source>BREP_FILES</source>
-      <translation>BREPファイル</translation>
+      <translation>BREP ファイル ( *.brep )</translation>
     </message>
     <message>
       <source>EXPORT_TITLE</source>
index 84b9a7bd5de12552c802329070962229852293e4..983666d280b9af71eed29afc0963034ebb9635b5 100644 (file)
@@ -613,9 +613,9 @@ void BasicGUI_PointDlg::SetEditCurrentArgument()
   }
   send->setDown(true);
 
-  if ((send == GroupLineIntersection->PushButton1 ||
-         send == GroupLineIntersection->PushButton2) && !myBusy)
-    SelectionIntoArgument();
+  //  if ((send == GroupLineIntersection->PushButton1 ||
+  //         send == GroupLineIntersection->PushButton2) && !myBusy)
+  //    SelectionIntoArgument();
 }
 
 
index 09e4974c54cc6ad0349d8097e6c82be0b54072b6..4647d9e558dc1f693a29ba4c78842ea0049fc6c6 100644 (file)
 //           be merged. The edges can be merged if:
 //             1. They belong to same faces.
 //             2. They either both seam or both not seam on each face.
-//             3. They are based on coincident lines, or:
-//             4. They are based on coincident circles, or:
-//             5. They are based on either Bezier of BSplines.
+//             3. There are no another edges (e.g. seam) on each common face
+//                that are connected to the common vertex of two edges.
+//             4. They are based on coincident lines, or:
+//             5. They are based on coincident circles, or:
+//             6. They are based on either Bezier of BSplines.
 //=======================================================================
 static Standard_Boolean IsToMerge
     (const TopoDS_Edge                               &theEdge1,
@@ -108,7 +110,6 @@ static Standard_Boolean IsToMerge
   Standard_Boolean aResult  = Standard_False;
   Standard_Boolean isDegen1 = BRep_Tool::Degenerated(theEdge1);
   Standard_Boolean isDegen2 = BRep_Tool::Degenerated(theEdge2);
-  Standard_Boolean isCompareGeom = Standard_False;
 
   if (isDegen1 && isDegen2) {
     // Both of edges are degenerated.
@@ -141,6 +142,44 @@ static Standard_Boolean IsToMerge
               Standard_Boolean isSeam2 = BRep_Tool::IsClosed(theEdge2, aFace1);
 
               isSame = (isSeam1 && isSeam2) || (isSeam1 == isSeam2);
+
+              if (isSame) {
+                // Check if there are no other edges (e.g. seam) on this face
+                // that are connected to the common vertex.
+                TopoDS_Vertex aVCommon;
+
+                if (TopExp::CommonVertex(theEdge1, theEdge2, aVCommon)) {
+                  TopTools_IndexedDataMapOfShapeListOfShape aMapVE;
+
+                  TopExp::MapShapesAndAncestors
+                    (aFace1, TopAbs_VERTEX, TopAbs_EDGE, aMapVE);
+
+                  if (aMapVE.Contains(aVCommon)) {
+                    TopTools_ListIteratorOfListOfShape 
+                      anItE(aMapVE.FindFromKey(aVCommon));
+
+                    for (; anItE.More(); anItE.Next()) {
+                      const TopoDS_Shape &anEdge = anItE.Value();
+
+                      if (!theEdge1.IsSame(anEdge) &&
+                          !theEdge2.IsSame(anEdge)) {
+                        // There is another edge that shares the common vertex.
+                        // Nothing to merge.
+                        isSame = Standard_False;
+                        break;
+                      }
+                    }
+                  } else {
+                    // Common vertex doesn't belong to the face.
+                    // Nothing to merge. NEVERREACHED.
+                    isSame = Standard_False;
+                  }
+                } else {
+                  // No common vertex. Nothing to merge. NEVERREACHED.
+                  isSame = Standard_False;
+                }
+              }
+
               break;
             }
           }
index b8471abe8c215303f8cd5b3f57cfe880ba19c89d..7b6075c2b3063c1fabe73885852eecc60a78ac3e 100644 (file)
@@ -582,7 +582,7 @@ void CurveCreator_Utils::setSelectedPoints( Handle(AIS_InteractiveContext) theCo
   for( aSelection->Init(); aSelection->More(); aSelection->Next() )
   {    
 #if OCC_VERSION_LARGE > 0x06080100
-    const SelectMgr_HSensitiveEntity aHSenEntity = aSelection->Sensitive();
+    const Handle(SelectMgr_SensitiveEntity) aHSenEntity = aSelection->Sensitive();
     if( aHSenEntity.IsNull() )
       continue;
     Handle_SelectBasics_SensitiveEntity aSenEntity = aHSenEntity->BaseSensitive();
index 33c54ff5aeb24ea7b1436a2fc6d114a486d9685e..8e838db17a24436110f98bc52bb07f6083c7f07f 100644 (file)
         <source>UPDATE</source>
         <translation>Mise à jour</translation>
     </message>
-</context>
-<context>
     <name>DependencyTree_ViewModel</name>
     <message>
         <source>MEN_REBUILD_THE_TREE</source>
-        <translation type="unfinished">Rebuild the tree</translation>
+        <translation>Reconstruire l'arbre</translation>
     </message>
     <message>
         <source>MEN_REDUCE_STUDY</source>
-        <translation type="unfinished">Reduce study</translation>
+        <translation>Réduire l'étude</translation>
     </message>
 </context>
 </TS>
index a463109e8565e80acd734a6f8898810a3789c96e..b53b0f588d86f4e80e4399c411823c100aa66062 100644 (file)
@@ -5,40 +5,40 @@
     <name>DependencyTree_View</name>
     <message>
       <source>DEPENDENCY_TREE</source>
-      <translation type="unfinished">Dependency Tree</translation>
+      <translation>依存関係ツリー</translation>
     </message>
     <message>
       <source>MOVE_NODES</source>
-      <translation type="unfinished">Move nodes</translation>
+      <translation>ノードの移動</translation>
     </message>
     <message>
       <source>HIERARCHY_DEPTH</source>
-      <translation type="unfinished">Hierarchy depth  </translation>
+      <translation>階層の深さ</translation>
     </message>
     <message>
       <source>DISPLAY_ASCENDANTS</source>
-      <translation type="unfinished">Display ascendants</translation>
+      <translation>上位の表示</translation>
     </message>
     <message>
       <source>DISPLAY_DESCENDANTS</source>
-      <translation type="unfinished">Display descendants</translation>
+      <translation>下位の表示</translation>
     </message>
     <message>
       <source>SHOW_ALL</source>
-      <translation type="unfinished">Show all</translation>
+      <translation>すべてを表示</translation>
     </message>
     <message>
       <source>UPDATE</source>
-      <translation type="unfinished">Update</translation>
+      <translation>更新</translation>
     </message>
     <name>DependencyTree_ViewModel</name>
     <message>
       <source>MEN_REBUILD_THE_TREE</source>
-      <translation type="unfinished">Rebuild the tree</translation>
+      <translation>ツリーの再構築</translation>
     </message>
     <message>
       <source>MEN_REDUCE_STUDY</source>
-      <translation type="unfinished">Reduce study</translation>
+      <translation>スタディの削減</translation>
     </message>
   </context>
 </TS>
index a2d7c67a282df3ef8a364094129153e90618c9bb..00b35eaec64dfb4099a0f2d9c0a44693b78072be 100644 (file)
@@ -26,7 +26,8 @@
 
 // SALOME includes
 #include "EntityGUI_FeatureDetectorDlg.h"
-#include <ShapeRec_FeatureDetector.hxx>
+#include "ShapeRec_FeatureDetector.hxx"
+#include "GEOM_Constants.h"
 
 #include <OCCViewer_ViewWindow.h>
 #include <OCCViewer_ViewManager.h>
@@ -399,7 +400,6 @@ void EntityGUI_FeatureDetectorDlg::SelectionIntoArgument()
   
   // TODO supprimer les lignes qui ne servent à rien le cas échéant
   SUIT_ViewWindow*       theViewWindow  = getDesktop()->activeWindow();
-  std::map< std::string , std::vector<Handle(AIS_InteractiveObject)> >::iterator AISit;
   SOCC_Viewer* soccViewer = (SOCC_Viewer*)(theViewWindow->getViewManager()->getViewModel());
 
   if (!myEditCurrentArgument->isEnabled())
@@ -433,24 +433,20 @@ void EntityGUI_FeatureDetectorDlg::SelectionIntoArgument()
     
     if ( myEditCurrentArgument == mySelectionGroup->LineEdit1 ) {
       myFace = aSelectedObject;
-      AISit = soccViewer->entry2aisobjects.find(myFaceEntry.toStdString());
-      if (AISit == soccViewer->entry2aisobjects.end())
+
+      SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
+      if ( !study ) return;
+      LightApp_Application* app = ::qobject_cast<LightApp_Application*>( study->application() );
+      if ( !app ) return;
+      SUIT_ViewManager* vm = app->activeViewManager();
+      if ( !vm ) return;
+      PropMap propMap = study->getObjectProperties( vm->getGlobalId(), myFaceEntry );
+      QString theImgFileName = propMap.value( GEOM::propertyName( GEOM::Texture ) ).toString();
+      if ( theImgFileName.isEmpty() )
         return;
-      
-      Handle(AIS_InteractiveObject) myAIS = (*AISit).second[0];
-      Handle(GEOM_AISShape) myAISShape;
-      if( myAIS->IsInstance( STANDARD_TYPE(GEOM_AISShape) ) ) {
-        myAISShape = Handle(GEOM_AISShape)::DownCast( myAIS );
-      }
-      else
-        return ;
-      
-      std::string theImgFileName = myAISShape->TextureFile();      
-      if ( theImgFileName == "" )
-        return ;
 
       // Setting the image caracteristics
-      myDetector->SetPath( theImgFileName );
+      myDetector->SetPath( theImgFileName.toStdString() );
       height            =  myDetector->GetImgHeight();
       width             =  myDetector->GetImgWidth();
       pictureLeft       = -0.5 * width;              // X coordinate of the top left  corner of the background image in the view
index 74eacd8f80f8416411f68ca0dc7ba8b026ad02eb..425980457585b2c014c3e46fe8d55f09eb9cc64b 100644 (file)
@@ -188,9 +188,9 @@ bool EntityGUI_PictureImportDlg::execute( ObjectList& objects )
   delete pixmap;
   
   GEOM::GEOM_Object_var P1 = aBasicOperations->MakePointXYZ( -0.5*width, -0.5*height, 0 );
-  GEOM::GEOM_Object_var P2 = aBasicOperations->MakePointXYZ( -0.5*width,  0.5*height, 0 );
+  GEOM::GEOM_Object_var P2 = aBasicOperations->MakePointXYZ(  0.5*width, -0.5*height, 0 );
   GEOM::GEOM_Object_var P3 = aBasicOperations->MakePointXYZ(  0.5*width,  0.5*height, 0 );
-  GEOM::GEOM_Object_var P4 = aBasicOperations->MakePointXYZ(  0.5*width, -0.5*height, 0 );
+  GEOM::GEOM_Object_var P4 = aBasicOperations->MakePointXYZ( -0.5*width,  0.5*height, 0 );
   
   GEOM::GEOM_Object_var aFace = aBlocksOperations->MakeQuad4Vertices(P1,P2,P3,P4);
   getDisplayer()->SetDisplayMode(3);
index 7f8a5228361762daece3c0ee00d8acd51df7dd45..ed2f4ee3696445808775e8f2e869d02106f4827c 100644 (file)
@@ -162,6 +162,7 @@ EntityGUI_PolylineDlg::EntityGUI_PolylineDlg
 EntityGUI_PolylineDlg::~EntityGUI_PolylineDlg()
 {
   erasePreview();
+  myEditorWidget->SetViewer2DMode(false);
 }
 
 //=================================================================================
@@ -381,16 +382,6 @@ bool EntityGUI_PolylineDlg::ClickOnApply()
   return true;
 }
 
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void EntityGUI_PolylineDlg::ClickOnCancel()
-{
-  myEditorWidget->SetViewer2DMode(false);
-  GEOMBase_Skeleton::ClickOnCancel();
-}
-
 //=================================================================================
 // function : processStartedSubOperation
 // purpose  :
index 53ff8dfc9914406f34790a43f3999be778e01d66..3172a040bd8be89773bddbf56f63b8fb57a5a26b 100644 (file)
@@ -152,7 +152,6 @@ protected slots:
 
   void ClickOnOk();
   bool ClickOnApply();
-  void ClickOnCancel();
   void processStartedSubOperation( QWidget*, bool );
   void processFinishedSubOperation( QWidget* );
   void SetEditCurrentArgument( bool );
index 29af40921bc49591ebc0ef979b609c346d0236bf..f489c89c2e029bc718fbfe6847c2e44a7f2c6227 100644 (file)
@@ -632,15 +632,14 @@ void EntityGUI_SketcherDlg::RectClicked()
        SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
   
   GroupRect->show();
-  
   myX1=0;
-  myX2=10;
-  myY1=0;
-  myY2=10;
-
   GroupRect->SpinBox_DX1->setValue(myX1); 
+  myY1=0;
   GroupRect->SpinBox_DY1->setValue(myY1);
+  myX2=10;
   GroupRect->SpinBox_DX2->setValue(myX2);
+  myY2=10;
   GroupRect->SpinBox_DY2->setValue(myY2);
   
   resize( minimumSizeHint() );
index 6c56f0f7109dfbdd123f2776ff0cea15ad0fbe74..b2a5efca736f549287a92abd7a93e473a67b00cc 100644 (file)
@@ -493,18 +493,17 @@ Handle(TColStd_HSequenceOfTransient) GEOM_BaseObject::GetLastDependency()
  */
 //================================================================================
 
-Handle(TFunction_Driver) GEOM_BaseObject::GetCreationDriver()
+Handle(TFunction_Driver) GEOM_BaseObject::GetCreationDriver(int funNb)
 {
-  Handle(TFunction_Driver) aDriver;
-
-  Handle(GEOM_Function) function = GetFunction(1);
+  Handle(TFunction_Driver) driver;
+  Handle(GEOM_Function) function = GetFunction(funNb);
   if ( !function.IsNull() )
   {
     Standard_GUID aGUID = function->GetDriverGUID();
-    if ( TFunction_DriverTable::Get()->FindDriver(aGUID, aDriver))
-      aDriver->Init( function->GetEntry() );
+    if ( TFunction_DriverTable::Get()->FindDriver(aGUID, driver ))
+      driver->Init( function->GetEntry() );
   }
-  return aDriver;
+  return driver;
 }
 
 //=============================================================================
index 83388851f855902f134c7c3f1291ee643b570447..68e6bdc5ae302df781407611d46d4ddf89c127f1 100644 (file)
@@ -31,6 +31,8 @@
 #include <TDF_Label.hxx>
 #include <TDataStd_TreeNode.hxx>
 
+#include <vector>
+
 class GEOM_BaseObject;
 class Handle(TFunction_Driver);
 class GEOM_Engine;
@@ -146,8 +148,8 @@ public:
   //Returns the dependencies of the last function
   Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetLastDependency();
 
-  //Returns a driver creator of this object
-  Standard_EXPORT Handle(TFunction_Driver) GetCreationDriver();
+  //Returns drivers creators of this object
+  Standard_EXPORT Handle(TFunction_Driver) GetCreationDriver(int funNb);
 
   //###########################################################
   // Internal methods
index ed44029e33d66abc7a4e2c953b3e1563fcdeb240..57184bff18b7f0a5ff51ec4bac0ee955f939409a 100644 (file)
@@ -222,6 +222,19 @@ Standard_Integer GEOMAlgo_AlgoTools::BuildPCurveForEdgeOnFace
     return iRet;
   }
   //
+#if OCC_VERSION_LARGE > 0x06080000
+  // Try to copy PCurve from old edge to the new one.
+  iRet = BOPTools_AlgoTools2D::AttachExistingPCurve(aEold, aEnew, aF, aCtx);
+
+  if (iRet) {
+    // Do PCurve using projection algorithm.
+    iRet = 0;
+  } else {
+    // The PCurve is attached successfully.
+    return iRet;
+  }
+#endif
+  //
   BOPTools_AlgoTools2D::BuildPCurveForEdgeOnFace(aEnew, aF);
   aC2D=BRep_Tool::CurveOnSurface(aEnew, aF, aT1, aT2);
   if (aC2D.IsNull()){
index 6c1afa4e9832329f4cc1e4fcc9247aab9aaf6cf6..c7abe5e96484b9c0830233c0842cf5be47d6c63b 100644 (file)
@@ -126,93 +126,75 @@ Standard_Integer GEOMAlgo_GetInPlaceAPI::GetInPlaceOld
     return 1;
   }
 
-  TopoDS_Shape     aPntShape;
-  TopoDS_Vertex    aVertex;
-  bool             isFound = false;
-  TopAbs_ShapeEnum iType   = TopAbs_SOLID;
-  //Standard_Real    aWhat_Mass = 0., aWhere_Mass = 0.;
-  Standard_Real    tab_aWhat[4],    tab_aWhere[4];
-  Standard_Real    dl_l = 1e-3;
-  Standard_Real    min_l, Tol_0D, Tol_1D, Tol_2D, Tol_3D, Tol_Mass;
-  Standard_Real    aXmin, aYmin, aZmin, aXmax, aYmax, aZmax;
-  Bnd_Box          BoundingBox;
-  gp_Pnt           aPnt, aPnt_aWhat, tab_Pnt[2];
-  GProp_GProps     aProps;
-
-  iType = GEOMUtils::GetTypeOfSimplePart(theWhat);
+  // Check shape type.
+  TopAbs_ShapeEnum iType = GEOMUtils::GetTypeOfSimplePart(theWhat);
+
   if (iType == TopAbs_SHAPE) {
     // Error: An attempt to extract a shape of not supported type.
     return 2;
   }
 
-  TopExp_Explorer Exp_aWhat  ( theWhat,  iType );
-  TopExp_Explorer Exp_aWhere ( theWhere, iType );
-  TopExp_Explorer Exp_Edge   ( theWhere, TopAbs_EDGE );
-
-  // Find the shortest edge in theShapeWhere shape
-  BRepBndLib::Add(theWhere, BoundingBox);
-  BoundingBox.Get(aXmin, aYmin, aZmin, aXmax, aYmax, aZmax);
-  min_l = fabs(aXmax - aXmin);
-  if( min_l < fabs(aYmax - aYmin) ) min_l = fabs(aYmax - aYmin);
-  if( min_l < fabs(aZmax - aZmin) ) min_l = fabs(aZmax - aZmin);
-  min_l /= dl_l;
-  // Mantis issue 0020908 BEGIN
-  if (!Exp_Edge.More()) {
-    min_l = Precision::Confusion();
-  }
-  // Mantis issue 0020908 END
-  for ( Standard_Integer nbEdge = 0; Exp_Edge.More(); Exp_Edge.Next(), nbEdge++ ) {
-    TopExp_Explorer Exp_Vertex( Exp_Edge.Current(), TopAbs_VERTEX);
-    for ( Standard_Integer nbVertex = 0; Exp_Vertex.More(); Exp_Vertex.Next(), nbVertex++ ) {
-      aPnt = BRep_Tool::Pnt( TopoDS::Vertex( Exp_Vertex.Current() ) );
-      tab_Pnt[nbVertex] = aPnt;
-    }
-    if ( ! tab_Pnt[0].IsEqual(tab_Pnt[1], dl_l) ) {
-      BRepGProp::LinearProperties(Exp_Edge.Current(), aProps);
-      if ( aProps.Mass() < min_l ) min_l = aProps.Mass();
+  // Compute confusion tolerance.
+  Standard_Real    aTolConf = Precision::Confusion();
+  Standard_Integer i;
+
+  for (i = 0; i < 2; ++i) {
+    TopExp_Explorer anExp(i == 0 ? theWhere : theWhat, TopAbs_VERTEX);
+
+    for (; anExp.More(); anExp.Next()) {
+      const TopoDS_Vertex aVtx = TopoDS::Vertex(anExp.Current());
+      const Standard_Real aTolVtx = BRep_Tool::Tolerance(aVtx);
+
+      if (aTolVtx > aTolConf) {
+        aTolConf = aTolVtx;
+      }
     }
   }
 
-  // Compute tolerances
-  Tol_0D = dl_l;
-  Tol_1D = dl_l * min_l;
-  Tol_2D = dl_l * ( min_l * min_l) * ( 2. + dl_l);
-  Tol_3D = dl_l * ( min_l * min_l * min_l ) * ( 3. + (3 * dl_l) + (dl_l * dl_l) );
-
-  if (Tol_0D < Precision::Confusion()) Tol_0D = Precision::Confusion();
-  if (Tol_1D < Precision::Confusion()) Tol_1D = Precision::Confusion();
-  if (Tol_2D < Precision::Confusion()) Tol_2D = Precision::Confusion();
-  if (Tol_3D < Precision::Confusion()) Tol_3D = Precision::Confusion();
+  // Compute mass tolerance.
+  Bnd_Box       aBoundingBox;
+  Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax;
+  Standard_Real aMassTol;
 
-  Tol_Mass = Tol_3D;
-  if ( iType == TopAbs_VERTEX )    Tol_Mass = Tol_0D;
-  else if ( iType == TopAbs_EDGE ) Tol_Mass = Tol_1D;
-  else if ( iType == TopAbs_FACE ) Tol_Mass = Tol_2D;
+  BRepBndLib::Add(theWhere, aBoundingBox);
+  BRepBndLib::Add(theWhat,  aBoundingBox);
+  aBoundingBox.Get(aXmin, aYmin, aZmin, aXmax, aYmax, aZmax);
+  aMassTol = Max(aXmax - aXmin, aYmax - aYmin);
+  aMassTol = Max(aMassTol, aZmax - aZmin);
+  aMassTol *= aTolConf;
 
-  // Searching for the sub-shapes inside the ShapeWhere shape
+  // Compute the result.
+  TopExp_Explorer     Exp_aWhat  (theWhat,  iType);
+  TopExp_Explorer     Exp_aWhere (theWhere, iType);
+  Standard_Real       tab_aWhat[4], tab_aWhere[4];
+  gp_Pnt              aPnt, aPnt_aWhat;
+  TopoDS_Shape        aPntShape;
+  TopoDS_Vertex       aVertex;
+  bool                isFound = false;
   TopTools_MapOfShape map_aWhere;
-  for ( Exp_aWhere.ReInit(); Exp_aWhere.More(); Exp_aWhere.Next() ) {
+
+  for (; Exp_aWhere.More(); Exp_aWhere.Next()) {
     if (!map_aWhere.Add(Exp_aWhere.Current()))
       continue; // skip repeated shape to avoid mass addition
     GetShapeProperties( Exp_aWhere.Current(), tab_aWhere, aPnt );
     for ( Exp_aWhat.ReInit(); Exp_aWhat.More(); Exp_aWhat.Next() ) {
       GetShapeProperties( Exp_aWhat.Current(), tab_aWhat, aPnt_aWhat );
-      if ( fabs(tab_aWhat[3] - tab_aWhere[3]) <= Tol_Mass && aPnt_aWhat.Distance(aPnt) <= Tol_1D )
+      if (fabs(tab_aWhat[3] - tab_aWhere[3]) <= aMassTol && aPnt_aWhat.Distance(aPnt) <= aTolConf)
         isFound = true;
       else {
-        if ( (tab_aWhat[3] - tab_aWhere[3]) > Tol_Mass ) {
+        if ((tab_aWhat[3] - tab_aWhere[3]) > aMassTol) {
           aPntShape = BRepBuilderAPI_MakeVertex( aPnt ).Shape();
           aVertex   = TopoDS::Vertex( aPntShape );
           BRepExtrema_DistShapeShape aWhereDistance ( aVertex, Exp_aWhere.Current() );
           BRepExtrema_DistShapeShape aWhatDistance  ( aVertex, Exp_aWhat.Current() );
-          if ( aWhereDistance.IsDone() && aWhatDistance.IsDone() &&
-               fabs(aWhereDistance.Value() - aWhatDistance.Value()) <= Tol_1D )
+          if (aWhereDistance.IsDone() && aWhatDistance.IsDone() &&
+              fabs(aWhereDistance.Value() - aWhatDistance.Value()) <= aTolConf)
           {
             // 0020162: "EDF 961 GEOM : Getinplace is getting additionnal orthogonal faces"
             // aVertex must be projected to the same point on Where and on What
             gp_Pnt pOnWhat  = aWhatDistance.PointOnShape2(1);
             gp_Pnt pOnWhere = aWhereDistance.PointOnShape2(1);
-            isFound = ( pOnWhat.Distance(pOnWhere) <= Tol_1D );
+            isFound = (pOnWhat.Distance(pOnWhere) <= aTolConf);
             if ( isFound && iType == TopAbs_FACE )
             {
               // check normals at pOnWhat and pOnWhere
index 785ceb416981b193312b71282e678d0a553de318..f5f50949689eb996fc3466134bc506f238a50cf4 100644 (file)
@@ -424,19 +424,18 @@ void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Face& aF,
         aPx[i]=aInfoEx.Location();
       }
       //
+      Standard_Boolean isRectangle = Standard_True;
       for (i=0; i<4; ++i) {
         j=(i==3) ? 0 : i+1;
         aDot=aDx[i]*aDx[j];
         if (fabs (aDot) > myTolerance) {
-          aInfo.SetKindOfName(GEOMAlgo_KN_QUADRANGLE);
-          return;
+          isRectangle = Standard_False;
+          break;
         }
       }
       //
       // rectangle
-      aInfo.SetKindOfName(GEOMAlgo_KN_RECTANGLE);
-      //
-      // shift location to the center and calc. sizes
+      // shift location to the center
       aXYZc.SetCoord(0.,0.,0.);
       TopExp::MapShapes(aF, TopAbs_VERTEX, aMV);
       for (i=1; i<=aNbV; ++i) {
@@ -448,33 +447,41 @@ void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Face& aF,
       //
       // Location : aPc in center of rectangle
       // Position : 0z is plane normal
-      //            0x is along length
+      //            0x is along the first edge (quadrangle) or
+      //            along length (rectangle)
       //
       aXYZc.Divide(4.);
       aPc.SetXYZ(aXYZc);
-      //
-      gp_Lin aL0(aPx[0], aDx[0]);
-      gp_Lin aL1(aPx[1], aDx[1]);
-      //
-      aD0=aL0.Distance(aPc);
-      aD1=aL1.Distance(aPc);
-      //
-      aLength=aD0;
-      aWidth =aD1;
-      aDX=aL1.Direction();
-      if (aD0<aD1) {
+      aDX=aDx[0];
+      aInfo.SetLocation(aPc);
+
+      if (isRectangle) {
+      // Calculate sizes
+        gp_Lin aL0(aPx[0], aDx[0]);
+        gp_Lin aL1(aPx[1], aDx[1]);
+        //
+        aD0=aL0.Distance(aPc);
+        aD1=aL1.Distance(aPc);
+        //
         aLength=aD1;
         aWidth =aD0;
-        aDX=aL0.Direction();
+        
+        if (aD0>aD1) {
+          aLength=aD0;
+          aWidth =aD1;
+          aDX=aDx[1];
+        }
+        //
+        aLength=2.*aLength;
+        aWidth =2.*aWidth;
+        //
+        aInfo.SetLength(aLength);
+        aInfo.SetWidth(aWidth);
+        aInfo.SetKindOfName(GEOMAlgo_KN_RECTANGLE);
+      } else {
+        aInfo.SetKindOfName(GEOMAlgo_KN_QUADRANGLE);
       }
       //
-      aLength=2.*aLength;
-      aWidth =2.*aWidth;
-      //
-      aInfo.SetLocation(aPc);
-      aInfo.SetLength(aLength);
-      aInfo.SetWidth(aWidth);
-      //
       const gp_Dir& aDZ=aPln.Axis().Direction();
       gp_Ax2 aAx2(aPc, aDZ, aDX);
       gp_Ax3 aAx3(aAx2);
index 88f76b7d8ae6374df341093e285703f311fc67a2..5c3681e28df6f1fa778bac57d987225ebce38c1c 100644 (file)
 // Author    : Edward AGAPOV (eap)
 
 #include "GEOMGUI_CreationInfoWdg.h"
+#include "GEOMImpl_Types.hxx"
 
-#include <SalomeApp_Application.h>
 #include <SUIT_Desktop.h>
+#include <SUIT_ResourceMgr.h>
+#include <SUIT_Session.h>
+#include <SalomeApp_Application.h>
 
 #include <QString>
 #include <QLabel>
@@ -38,33 +42,16 @@ GEOMGUI_CreationInfoWdg::GEOMGUI_CreationInfoWdg( SalomeApp_Application* app )
 //:QWidget( app->desktop() )
 {
   setWindowTitle( tr( "CREATION_INFO_TITLE" ) );
-  setObjectName( "geomCreationInformation" );
-
-  QFrame* frame = new QFrame( this );
-
-  QVBoxLayout* myLayout = new QVBoxLayout( this );
-  myLayout->addWidget( frame );
-  myLayout->setMargin(0);
 
-  QGroupBox* operationGB = new QGroupBox( tr( "OPERATION" ), frame );
-
-  myIconLbl      = new QLabel( operationGB );
-  myOperaionLnEd = new QLineEdit( operationGB );
-  myOperaionLnEd->setReadOnly( true );
-  myParamsTreeWd = new QTreeWidget( frame );
+  myParamsTreeWd = new QTreeWidget( this );
   myParamsTreeWd->setColumnCount( 2 );
   myParamsTreeWd->setHeaderLabels( QStringList() << tr( "PARAMETER" ) << tr( "VALUE" ) );
   myParamsTreeWd->header()->setStretchLastSection( true );
   myParamsTreeWd->header()->setResizeMode( 0, QHeaderView::ResizeToContents );
 
-  QHBoxLayout* operationLay = new QHBoxLayout( operationGB );
-  operationLay->addWidget( myIconLbl );
-  operationLay->addWidget( myOperaionLnEd );
-  operationLay->setMargin(5);
-
-  QVBoxLayout* aLayout = new QVBoxLayout( frame );
-  aLayout->addWidget( operationGB );
+  QVBoxLayout* aLayout = new QVBoxLayout( this );
   aLayout->addWidget( myParamsTreeWd );
+  aLayout->setMargin(11);
 
   // get a free dockable window id
   myWindowID = 10;
@@ -73,18 +60,25 @@ GEOMGUI_CreationInfoWdg::GEOMGUI_CreationInfoWdg( SalomeApp_Application* app )
   ++myWindowID; // pb when a GEOM is a sole module: CreationInfoWdg replaces Python console
 }
 
-void GEOMGUI_CreationInfoWdg::setOperation(const QPixmap& icon, const QString& name)
+QTreeWidgetItem* GEOMGUI_CreationInfoWdg::addOperation(const QPixmap& icon, const QString& name)
 {
-  myIconLbl->setPixmap( icon );
-  myOperaionLnEd->setText( name );
+  QTreeWidgetItem* item = new QTreeWidgetItem( myParamsTreeWd );
 
+  item->setIcon( 0, icon );
+  item->setText( 0, name );
   if ( name.isEmpty() )
-    myOperaionLnEd->setText( tr("NO_INFO"));
+    item->setText( 0, tr("NO_INFO"));
+
+  item->setExpanded( true );
+
+  return item;
 }
 
-void GEOMGUI_CreationInfoWdg::addParam (const QString& name, const QString& value)
+void GEOMGUI_CreationInfoWdg::addParam (QTreeWidgetItem* operation,
+                                        const QString&   name,
+                                        const QString&   value)
 {
-  QTreeWidgetItem* item = new QTreeWidgetItem( myParamsTreeWd );
+  QTreeWidgetItem* item = new QTreeWidgetItem( operation );
 
   //item->setFlags( Qt::NoItemFlags );
   item->setExpanded( true );
@@ -95,8 +89,6 @@ void GEOMGUI_CreationInfoWdg::addParam (const QString& name, const QString& valu
 
 void GEOMGUI_CreationInfoWdg::clear()
 {
-  myIconLbl->setPixmap( QPixmap() );
-  myOperaionLnEd->setText( "" );
   myParamsTreeWd->clear();
 }
 
@@ -104,3 +96,57 @@ GEOMGUI_CreationInfoWdg::~GEOMGUI_CreationInfoWdg()
 {
   //std::cout<<"~GEOMGUI_CreationInfoWdg"<<std::endl;
 }
+
+void GEOMGUI_CreationInfoWdg::setInfo( GEOM::CreationInformationSeq& info )
+{
+  clear();
+
+  QPixmap icon;
+  QString operationName;
+
+  try
+  {
+    if ( &info && info.length() > 0 )
+    {
+      SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
+      for ( int j = 0, nb = info.length(); j < nb; ++j )
+      {
+        QString name = info[j].operationName.in();
+        if ( !name.isEmpty() )
+        {
+          // get plugin_name if any
+          QString plugin_name;
+          for ( size_t i = 0; i < info[j].params.length(); ++i )
+          {
+            QString value = info[j].params[i].name.in();
+            if ( value == PLUGIN_NAME )
+              plugin_name = info[j].params[i].value.in();
+          }
+          // get icon
+          QString prefix = plugin_name.isEmpty() ? "GEOM" : plugin_name;
+          icon = resMgr->loadPixmap( prefix, tr( ("ICO_"+name).toLatin1().constData() ), false );
+
+          // translate operation name
+          operationName = tr( ("MEN_"+name).toLatin1().constData() );
+          if ( operationName.startsWith( "MEN_" ))
+            operationName = name; // no translation
+
+          QTreeWidgetItem* operation = addOperation( icon, operationName );
+
+          // add parameters
+          for ( size_t i = 0; i < info[j].params.length(); ++i )
+            addParam( operation,
+                      info[j].params[i].name.in(),
+                      info[j].params[i].value.in() );
+        }
+      }
+    }
+    else
+    {
+      addOperation( icon, operationName );
+    }
+  }
+  catch (...)
+  {
+  }
+}
index 923b5ea91c4988437046040efe6dd72f206ad7a6..de935e8f7c418322ce9fd33084e4d3d4b1495c09 100644 (file)
 
 #include "GEOM_GEOMGUI.hxx"
 
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(GEOM_Gen)
+
 #include <QWidget>
 
-class QString;
 class QLabel;
 class QLineEdit;
+class QString;
 class QTreeWidget;
+class QTreeWidgetItem;
 class SalomeApp_Application;
 
 /*!
@@ -46,16 +50,18 @@ class GEOMGUI_EXPORT GEOMGUI_CreationInfoWdg : public QWidget
   GEOMGUI_CreationInfoWdg( SalomeApp_Application* app );
   ~GEOMGUI_CreationInfoWdg();
 
-  int getWinID() { return myWindowID; }
-
+  void setInfo( GEOM::CreationInformationSeq& info );
   void clear();
-  void setOperation(const QPixmap& icon, const QString& name);
-  void addParam    (const QString& name, const QString& value);
+
+  int getWinID() { return myWindowID; }
 
  private:
 
-  QLabel*      myIconLbl;
-  QLineEdit*   myOperaionLnEd;
+  QTreeWidgetItem* addOperation(const QPixmap& icon, const QString& name);
+  void addParam (QTreeWidgetItem* operation, const QString& name, const QString& value);
+
+ QLabel*      myIconLbl;
+  //QLineEdit*   myOperaionLnEd;
   QTreeWidget* myParamsTreeWd;
   int          myWindowID;
 
index efb4dcd6bea45f89f2aa715ca5fb49a8b421fec7..8bed68fb23623b9058f33fe124039e85c5643724 100644 (file)
@@ -179,7 +179,7 @@ static void getEntityOwners( const Handle(AIS_InteractiveObject)& theObj,
 
     for ( sel->Init(); sel->More(); sel->Next() ) {
 #if OCC_VERSION_LARGE > 0x06080100
-      const SelectMgr_HSensitiveEntity aHSenEntity = sel->Sensitive();
+      const Handle(SelectMgr_SensitiveEntity) aHSenEntity = sel->Sensitive();
       if( aHSenEntity.IsNull() )
         continue;
 
index 9e13e729b97177cb197c7ddfba1271fcda91ca52..8c43d9c848b5c1a1e61e51499ecd733d4e44fdac 100644 (file)
@@ -541,7 +541,7 @@ Please, select face, shell or solid and try again</translation>
     </message>
     <message>
         <source>GEOM_CYLINDER_ANGLE_ERR</source>
-        <translation>Angle values 0 and 360 are unsafe to build proper volumes. Please uncheck the "Angle" box to use the regular cylinder constructor.</translation>
+        <translation>Angle values 0 and 360 are unsafe to build proper volumes. Please uncheck the &quot;Angle&quot; box to use the regular cylinder constructor.</translation>
     </message>
     <message>
         <source>GEOM_D1</source>
@@ -2477,12 +2477,12 @@ Please, select face, shell or solid and try again</translation>
         <translation>2D Polyline</translation>
     </message>
     <message>
-      <source>TOP_CURVE_CREATOR</source>
-      <translation>Create 2D polyline</translation>
+        <source>TOP_CURVE_CREATOR</source>
+        <translation>Create 2D polyline</translation>
     </message>
     <message>
-      <source>STB_CURVE_CREATOR</source>
-      <translation>Create 2D polyline</translation>
+        <source>STB_CURVE_CREATOR</source>
+        <translation>Create 2D polyline</translation>
     </message>
     <message>
         <source>MEN_ALL_SEL_ONLY</source>
@@ -3270,7 +3270,7 @@ Please, select face, shell or solid and try again</translation>
     </message>
     <message>
         <source>PREF_DEFLECTION</source>
-        <translation>Deflection coefficient</translation>
+        <translation>Default deflection coefficient</translation>
     </message>
     <message>
         <source>GEOM_PREF_def_precision</source>
@@ -3318,7 +3318,7 @@ Please, select face, shell or solid and try again</translation>
     </message>
     <message>
         <source>PREF_TRANSPARENCY</source>
-        <translation>Transparency</translation>
+        <translation>Default transparency</translation>
     </message>
     <message>
         <source>PREF_FREE_BOUND_COLOR</source>
@@ -3342,7 +3342,7 @@ Please, select face, shell or solid and try again</translation>
     </message>
     <message>
         <source>PREF_GROUP_VERTEX</source>
-        <translation>Marker of Points</translation>
+        <translation>Default marker of points</translation>
     </message>
     <message>
         <source>PREF_ISOS_COLOR</source>
@@ -3422,11 +3422,11 @@ Please, select face, shell or solid and try again</translation>
     </message>
     <message>
         <source>PREF_EDGE_WIDTH</source>
-        <translation>Edges width</translation>
+        <translation>Default edges width</translation>
     </message>
     <message>
         <source>PREF_ISOLINES_WIDTH</source>
-        <translation>Iso lines width</translation>
+        <translation>Default isolines width</translation>
     </message>
     <message>
         <source>PREF_PREVIEW_EDGE_WIDTH</source>
@@ -3486,7 +3486,7 @@ Please, select face, shell or solid and try again</translation>
     </message>
     <message>
         <source>PREF_ISOS</source>
-        <translation>Number of isolines</translation>
+        <translation>Default number of isolines</translation>
     </message>
     <message>
         <source>PREF_ISOS_U</source>
@@ -5759,23 +5759,23 @@ shells and solids on the other hand.</translation>
     </message>
 </context>
 <context>
-  <name>CurveCreator_TableView</name>
-  <message>
-    <source>TABLE_SECTION</source>
-    <translation>Section</translation>
-  </message>
-  <message>
-    <source>TABLE_INDEX</source>
-    <translation>Index</translation>
-  </message>
-  <message>
-    <source>TABLE_X</source>
-    <translation>X</translation>
-  </message>
-  <message>
-    <source>TABLE_Y</source>
-    <translation>Y</translation>
-  </message>
+    <name>CurveCreator_TableView</name>
+    <message>
+        <source>TABLE_SECTION</source>
+        <translation>Section</translation>
+    </message>
+    <message>
+        <source>TABLE_INDEX</source>
+        <translation>Index</translation>
+    </message>
+    <message>
+        <source>TABLE_X</source>
+        <translation>X</translation>
+    </message>
+    <message>
+        <source>TABLE_Y</source>
+        <translation>Y</translation>
+    </message>
 </context>
 <context>
     <name>CurveCreator_Widget</name>
@@ -7199,7 +7199,7 @@ Do you want to create new material?</translation>
         <translation>Main shape</translation>
     </message>
     <message>
-    <source>GEOM_INSPECT_OBJECT_SHOW</source>
+        <source>GEOM_INSPECT_OBJECT_SHOW</source>
         <translation>Show Selected</translation>
     </message>
     <message>
@@ -7322,22 +7322,22 @@ Do you want to create new material?</translation>
         <source>GEOM_CHECK_INTE_V_E</source>
         <translation>Vertex to Edge + all above</translation>
     </message>
-  <message>
-    <source>GEOM_CHECK_INTE_E_E</source>
-    <translation>Edge to Edge + all above</translation>
-  </message>
-  <message>
-    <source>GEOM_CHECK_INTE_V_F</source>
-    <translation>Vertex to Face + all above</translation>
-  </message>
-  <message>
-    <source>GEOM_CHECK_INTE_E_F</source>
-    <translation>Edge to Face + all above</translation>
-  </message>
-  <message>
-    <source>GEOM_CHECK_INTE_ALL</source>
-    <translation>Face to Face + all above</translation>
-  </message>
+    <message>
+        <source>GEOM_CHECK_INTE_E_E</source>
+        <translation>Edge to Edge + all above</translation>
+    </message>
+    <message>
+        <source>GEOM_CHECK_INTE_V_F</source>
+        <translation>Vertex to Face + all above</translation>
+    </message>
+    <message>
+        <source>GEOM_CHECK_INTE_E_F</source>
+        <translation>Edge to Face + all above</translation>
+    </message>
+    <message>
+        <source>GEOM_CHECK_INTE_ALL</source>
+        <translation>Face to Face + all above</translation>
+    </message>
 </context>
 <context>
     <name>MeasureGUI_FastCheckIntersectionsDlg</name>
@@ -7549,16 +7549,16 @@ Do you want to create new material?</translation>
 <context>
     <name>TransformationGUI_ProjectionOnCylDlg</name>
     <message>
-      <source>GEOM_PROJ_ON_CYL_TITLE</source>
-      <translation>Projection On A Cylinder</translation>
+        <source>GEOM_PROJ_ON_CYL_TITLE</source>
+        <translation>Projection On A Cylinder</translation>
     </message>
     <message>
-      <source>GEOM_PROJ_ON_CYL_START_ANGLE</source>
-      <translation>Starting angle</translation>
+        <source>GEOM_PROJ_ON_CYL_START_ANGLE</source>
+        <translation>Starting angle</translation>
     </message>
     <message>
-      <source>GEOM_PROJ_ON_CYL_LENGTH_ANGLE</source>
-      <translation>Length angle</translation>
+        <source>GEOM_PROJ_ON_CYL_LENGTH_ANGLE</source>
+        <translation>Length angle</translation>
     </message>
 </context>
 </TS>
index 54b86aee7abbd293d7c8511f5da5d2704b259d36..0d8d4623c3bbb62f7dd84caf99fa79a2861d1980 100644 (file)
@@ -679,6 +679,18 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
         <source>GEOM_EXTRUSION_TITLE</source>
         <translation>Construction par extrusion</translation>
     </message>
+    <message>
+        <source>GEOM_THICKNESS_TITLE</source>
+        <translation>Epaississement</translation>
+    </message>
+    <message>
+        <source>GEOM_THICKNESS_NAME</source>
+        <translation>Epaississement</translation>
+    </message>
+    <message>
+        <source>GEOM_TOWARDS_INSIDE</source>
+        <translation>Epaissit vers l'intérieur</translation>
+    </message>
     <message>
         <source>GEOM_SCALE_PRISM</source>
         <translation>Appliquer le facteur d&apos;échelle</translation>
@@ -1252,6 +1264,10 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
         <source>GEOM_PROJECTION_TITLE</source>
         <translation>Projection sur une face</translation>
     </message>
+    <message>
+        <source>GEOM_PROJECTION_NAME</source>
+        <translation>Projection</translation>
+    </message>
     <message>
         <source>GEOM_PROJ_ON_FACE_SOURCE</source>
         <translation>Point, arête ou contour source</translation>
@@ -1400,6 +1416,14 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
         <source>GEOM_SELECT_UNPUBLISHED_EDGES</source>
         <translation>Choisir les arêtes non-publiées</translation>
     </message>
+    <message>
+        <source>GEOM_GENERATE_GROUPS</source>
+        <translation>Générer les groupes</translation>
+    </message>
+    <message>
+        <source>GEOM_GROUP_NAME_PREFIX</source>
+        <translation>Préfixe des groupes</translation>
+    </message>
     <message>
         <source>GEOM_PLANE</source>
         <translation>Plan</translation>
@@ -2408,6 +2432,26 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
         <source>WRN_NULL_OBJECT_OR_SHAPE</source>
         <translation>La forme %1 pour la création d&apos;un solide est invalide</translation>
     </message>
+    <message>
+        <source>GROUP_DOWN</source>
+        <translation>Bas</translation>
+    </message>
+    <message>
+        <source>GROUP_UP</source>
+        <translation>Haut</translation>
+    </message>
+    <message>
+        <source>GROUP_SIDE1</source>
+        <translation>Gauche</translation>
+    </message>
+    <message>
+        <source>GROUP_SIDE2</source>
+        <translation>Droite</translation>
+    </message>
+    <message>
+        <source>GROUP_OTHER</source>
+        <translation>Autre</translation>
+    </message>
     <message>
         <source>GEOM_X</source>
         <translation>X :</translation>
@@ -2433,12 +2477,12 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
         <translation>Créateur de courbe</translation>
     </message>
     <message>
-      <source>TOP_CURVE_CREATOR</source>
-      <translation>Créer une courbe</translation>
+        <source>TOP_CURVE_CREATOR</source>
+        <translation>Créer une courbe</translation>
     </message>
     <message>
-      <source>STB_CURVE_CREATOR</source>
-      <translation>Créer une courbe</translation>
+        <source>STB_CURVE_CREATOR</source>
+        <translation>Créer une courbe</translation>
     </message>
     <message>
         <source>MEN_ALL_SEL_ONLY</source>
@@ -2840,6 +2884,10 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
         <source>MEN_PROJECTION</source>
         <translation>Projection</translation>
     </message>
+    <message>
+        <source>MEN_PROJ_ON_CYL</source>
+        <translation>Projection sur un cylindre</translation>
+    </message>
     <message>
         <source>MEN_OPERATIONS</source>
         <translation>Opérations</translation>
@@ -2860,6 +2908,10 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
         <source>MEN_PIPE_PATH</source>
         <translation>Retrouver le chemin</translation>
     </message>
+    <message>
+        <source>MEN_THICKNESS</source>
+        <translation>Epaisseur</translation>
+    </message>
     <message>
         <source>MEN_PLANE</source>
         <translation>Plan</translation>
@@ -3218,7 +3270,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
     </message>
     <message>
         <source>PREF_DEFLECTION</source>
-        <translation>Coefficient de déformation</translation>
+        <translation>Coefficient de déformation par défaut</translation>
     </message>
     <message>
         <source>GEOM_PREF_def_precision</source>
@@ -3266,7 +3318,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
     </message>
     <message>
         <source>PREF_TRANSPARENCY</source>
-        <translation>Transparence</translation>
+        <translation>Transparence par défaut</translation>
     </message>
     <message>
         <source>PREF_FREE_BOUND_COLOR</source>
@@ -3290,7 +3342,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
     </message>
     <message>
         <source>PREF_GROUP_VERTEX</source>
-        <translation>Marqueurs de points</translation>
+        <translation>Marqueurs de points par défaut</translation>
     </message>
     <message>
         <source>PREF_ISOS_COLOR</source>
@@ -3298,7 +3350,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
     </message>
     <message>
         <source>PREF_LABEL_COLOR</source>
-        <translation type="unfinished">Color of labels</translation>
+        <translation>Couleur des étiquettes</translation>
     </message>
     <message>
         <source>PREF_TOPLEVEL_COLOR</source>
@@ -3370,11 +3422,11 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
     </message>
     <message>
         <source>PREF_EDGE_WIDTH</source>
-        <translation>Epaisseur des arêtes</translation>
+        <translation>Epaisseur des arêtes par défaut</translation>
     </message>
     <message>
         <source>PREF_ISOLINES_WIDTH</source>
-        <translation>Epaisseur des isolignes</translation>
+        <translation>Epaisseur des isolignes par défaut</translation>
     </message>
     <message>
         <source>PREF_PREVIEW_EDGE_WIDTH</source>
@@ -3430,11 +3482,11 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
     </message>
     <message>
         <source>PREF_HIDE_INPUT_OBJECT</source>
-        <translation type="unfinished">Hide input objects from the viewer</translation>
+        <translation>Cacher dans la vue les objets en entrée</translation>
     </message>
     <message>
         <source>PREF_ISOS</source>
-        <translation>Nombre d&apos;isolignes</translation>
+        <translation>Nombre d&apos;isolignes par défaut</translation>
     </message>
     <message>
         <source>PREF_ISOS_U</source>
@@ -3804,6 +3856,10 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
         <source>STB_PROJECTION</source>
         <translation>Projeter un point, une arête ou un contour sur une face</translation>
     </message>
+    <message>
+        <source>STB_PROJ_ON_CYL</source>
+        <translation>Projète un contour ou une face sur un cylindre</translation>
+    </message>
     <message>
         <source>STB_ORIGIN_AND_VECTORS</source>
         <translation>Créer les vecteurs de base et l&apos;origine</translation>
@@ -3820,6 +3876,10 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
         <source>STB_PIPE_PATH</source>
         <translation>Retrouver le chemin à partir d&apos;un objet de type tuyau</translation>
     </message>
+    <message>
+        <source>STB_THICKNESS</source>
+        <translation>Crée un solide par ajout d'épaisseur</translation>
+    </message>
     <message>
         <source>STB_PLANE</source>
         <translation>Créer un plan</translation>
@@ -3966,7 +4026,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
     </message>
     <message>
         <source>STB_NAME_MODE</source>
-        <translation type="unfinished">Show/Hide names of visible shapes</translation>
+        <translation>Montrer/cacher le nom des objets visibles</translation>
     </message>
     <message>
         <source>STB_SHADING_COLOR</source>
@@ -4424,6 +4484,10 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
         <source>TOP_PROJECTION</source>
         <translation>Projection</translation>
     </message>
+    <message>
+        <source>TOP_PROJ_ON_CYL</source>
+        <translation>Projection sur un cylindre</translation>
+    </message>
     <message>
         <source>TOP_ORIGIN_AND_VECTORS</source>
         <translation>Créer l&apos;origine et les vecteurs de base</translation>
@@ -4440,6 +4504,10 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
         <source>TOP_PIPE_PATH</source>
         <translation>Retrouver le chemin</translation>
     </message>
+    <message>
+        <source>TOP_THICKNESS</source>
+        <translation>Epaississement</translation>
+    </message>
     <message>
         <source>TOP_PLANE</source>
         <translation>Créer un plan</translation>
@@ -5395,22 +5463,6 @@ le paramètre &apos;%1&apos; aux préférences du module Géométrie.</translati
         <source>TOOL_IMPORTEXPORT</source>
         <translation>Import / Export XAO</translation>
     </message>
-    <message>
-        <source>TABLE_SECTION</source>
-        <translation>Section</translation>
-    </message>
-    <message>
-        <source>TABLE_INDEX</source>
-        <translation>Indice</translation>
-    </message>
-    <message>
-        <source>TABLE_X</source>
-        <translation>X</translation>
-    </message>
-    <message>
-        <source>TABLE_Y</source>
-        <translation>Y</translation>
-    </message>
 </context>
 <context>
     <name>BasicGUI_CurveDlg</name>
@@ -5706,6 +5758,25 @@ le paramètre &apos;%1&apos; aux préférences du module Géométrie.</translati
         <translation>X=%1, Y=%2, Z=%3</translation>
     </message>
 </context>
+<context>
+    <name>CurveCreator_TableView</name>
+    <message>
+        <source>TABLE_SECTION</source>
+        <translation>Section</translation>
+    </message>
+    <message>
+        <source>TABLE_INDEX</source>
+        <translation>Indice</translation>
+    </message>
+    <message>
+        <source>TABLE_X</source>
+        <translation>X</translation>
+    </message>
+    <message>
+        <source>TABLE_Y</source>
+        <translation>Y</translation>
+    </message>
+</context>
 <context>
     <name>CurveCreator_Widget</name>
     <message>
@@ -6064,10 +6135,6 @@ Le nombre de points n&apos;est pas suffisant</translation>
         <source>GEOM_ADD_THICKNESS</source>
         <translation>Epaissir (arêtes ou contours uniquement)</translation>
     </message>
-    <message>
-        <source>GEOM_TOWARDS_INSIDE</source>
-        <translation>Epaissir vers l&apos;intérieur</translation>
-    </message>
 </context>
 <context>
     <name>GroupGUI</name>
@@ -7132,7 +7199,7 @@ Voulez-vous en créer un nouveau ?</translation>
         <translation>Forme principale</translation>
     </message>
     <message>
-    <source>GEOM_INSPECT_OBJECT_SHOW</source>
+        <source>GEOM_INSPECT_OBJECT_SHOW</source>
         <translation>Afficher la sélection</translation>
     </message>
     <message>
@@ -7255,22 +7322,22 @@ Voulez-vous en créer un nouveau ?</translation>
         <source>GEOM_CHECK_INTE_V_E</source>
         <translation>Point à arête + tout au-delà</translation>
     </message>
-  <message>
-    <source>GEOM_CHECK_INTE_E_E</source>
-    <translation>Arête à arête + tout au-delà</translation>
-  </message>
-  <message>
-    <source>GEOM_CHECK_INTE_V_F</source>
-    <translation>Point à face + tout au-delà</translation>
-  </message>
-  <message>
-    <source>GEOM_CHECK_INTE_E_F</source>
-    <translation>Arête à Face + tout au-delà</translation>
-  </message>
-  <message>
-    <source>GEOM_CHECK_INTE_ALL</source>
-    <translation>Face à Face + tout au-delà</translation>
-  </message>
+    <message>
+        <source>GEOM_CHECK_INTE_E_E</source>
+        <translation>Arête à arête + tout au-delà</translation>
+    </message>
+    <message>
+        <source>GEOM_CHECK_INTE_V_F</source>
+        <translation>Point à face + tout au-delà</translation>
+    </message>
+    <message>
+        <source>GEOM_CHECK_INTE_E_F</source>
+        <translation>Arête à Face + tout au-delà</translation>
+    </message>
+    <message>
+        <source>GEOM_CHECK_INTE_ALL</source>
+        <translation>Face à Face + tout au-delà</translation>
+    </message>
 </context>
 <context>
     <name>MeasureGUI_FastCheckIntersectionsDlg</name>
@@ -7479,4 +7546,19 @@ Voulez-vous en créer un nouveau ?</translation>
         <translation>Matériaux: %1 de %2</translation>
     </message>
 </context>
+<context>
+    <name>TransformationGUI_ProjectionOnCylDlg</name>
+    <message>
+        <source>GEOM_PROJ_ON_CYL_TITLE</source>
+        <translation>Projection sur un cylindre</translation>
+    </message>
+    <message>
+        <source>GEOM_PROJ_ON_CYL_START_ANGLE</source>
+        <translation>Angle de départ</translation>
+    </message>
+    <message>
+        <source>GEOM_PROJ_ON_CYL_LENGTH_ANGLE</source>
+        <translation>Longueur de l'angle</translation>
+    </message>
+</context>
 </TS>
index 5f181fa6e1237c139277da9f90b8c2577fe50db1..6efba76e0b9f9bb483c940df350fca65d89633bb 100644 (file)
       <source>DEVIDE_EDGE_NEW_OBJECT_NAME</source>
       <translation>NewObject</translation>
     </message>
+    <message>
+      <source>DEVIDE_EDGE_BAD_PROJ_MSG</source>
+      <translation>エッジ外側の投影</translation>
+    </message>
+    <message>
+      <source>DEVIDE_EDGE_BY_PROJ_POINT</source>
+      <translation>投影点</translation>
+    </message>
     <message>
       <source>ERROR_SHAPE_TYPE</source>
       <translation>選択したオブジェクトの種類が正しくありません!\nフェース、シェルまたはソリッドを選択し、もう一度やり直してください。</translation>
       <source>GEOM_NONBLOCKS</source>
       <translation>GroupeSolidesNonBlocs</translation>
     </message>
+    <message>
+      <source>GEOM_USE_C1_CRITERION</source>
+      <translation>C1 criterion の使用</translation>
+    </message>
     <message>
       <source>GEOM_CHECK_INFOS</source>
       <translation>オブジェクトとその位相情報</translation>
       <translation>自己交差の検出</translation>
     </message>
     <message>
-        <source>GEOM_FAST_CHECK_INTERSECTIONS</source>
-        <translation type="unfinished">Fast intersection</translation>
+      <source>GEOM_FAST_CHECK_INTERSECTIONS</source>
+      <translation>クイック交点</translation>
     </message>
     <message>
-        <source>GEOM_SHAPE_STATISTICS</source>
-        <translation type="unfinished">Shape Statistics</translation>
+      <source>GEOM_SHAPE_STATISTICS</source>
+      <translation type="unfinished">Shape Statistics</translation>
     </message>
     <message>
       <source>GEOM_CHECK_SELF_INTERSECTIONS_FAILED</source>
     </message>
     <message>
       <source>GEOM_CYLINDER_ANGLE_ERR</source>
-      <translation type="unfinished">Angle values 0 and 360 are unsafe to build proper volumes. Please uncheck the "Angle" box to use the regular cylinder constructor.</translation>
+      <translation>角度値0°と360°はボリューム構築には不適切です。標準の円筒構築機能を使用するために角度ボックスのチェックを外してください。</translation>
     </message>
     <message>
       <source>GEOM_D1</source>
       <source>GEOM_EXTRUSION_TITLE</source>
       <translation>面の押出し</translation>
     </message>
+    <message>
+      <source>GEOM_THICKNESS_TITLE</source>
+      <translation>厚みの構築</translation>
+    </message>
+    <message>
+      <source>GEOM_THICKNESS_NAME</source>
+      <translation>Thickness</translation>
+    </message>
+    <message>
+      <source>GEOM_TOWARDS_INSIDE</source>
+      <translation>内側への厚み</translation>
+    </message>
     <message>
       <source>GEOM_SCALE_PRISM</source>
       <translation>面のサイズを変えながら押し出す</translation>
       <source>GEOM_FACE_FFW</source>
       <translation>顔輪郭またはエッジからの作成</translation>
     </message>
+    <message>
+      <source>GEOM_FACE_FROM_SURFACE</source>
+      <translation>ワイヤによる境界面からの面作成</translation>
+    </message>
     <message>
       <source>GEOM_FACE_OPT</source>
       <translation>平らなフェースを作成</translation>
     </message>
     <message>
-        <source>GEOM_FACE_FFWC</source>
-        <translation type="unfinished">Face creation from wire and constraints</translation>
+      <source>GEOM_FACE_FFWC</source>
+      <translation>ワイヤと拘束点からの面作成</translation>
     </message>
     <message>
-        <source>GEOM_CONSTRAINTS</source>
-        <translation type="unfinished">Constraints</translation>
+      <source>GEOM_CONSTRAINTS</source>
+      <translation>拘束</translation>
     </message>
     <message>
-        <source>GEOM_FACE_CONSTRAINT</source>
-        <translation type="unfinished">Constraint Face</translation>
+      <source>GEOM_FACE_CONSTRAINT</source>
+      <translation>拘束面</translation>
     </message>
     <message>
-        <source>GEOM_SOLID_FROM_FACE_OPT</source>
-        <translation type="unfinished">Intersect/sew shapes</translation>
+      <source>GEOM_SOLID_FROM_FACE_OPT</source>
+      <translation>形状の交差・縫合</translation>
     </message>
     <message>
       <source>MAKE_FACE_TOLERANCE_TOO_BIG</source>
       <source>GEOM_FREE_FACES</source>
       <translation>フリーフェース</translation>
     </message>
+    <message>
+      <source>GEOM_FREE_FACES_NAME</source>
+      <translation>Free_face</translation>
+    </message>
     <message>
       <source>GEOM_FREE_FACES_TITLE</source>
       <translation>フリーフェース</translation>
       <source>GEOM_GLUE_EDGES_TITLE</source>
       <translation>エッジ固着</translation>
     </message>
+    <message>
+      <source>GEOM_GLUE_EDGES_DETECT_TITLE</source>
+      <translation>一致エッジ検出</translation>
+    </message>
+    <message>
+      <source>GEOM_GLUE_FACES_DETECT_TITLE</source>
+      <translation>一致面検出</translation>
+    </message>
     <message>
       <source>GLUE_ERROR_STICKED_SHAPES</source>
       <translation>公差の値が大きすぎます。「付着」図形の検出。</translation>
       <translation>加工図</translation>
     </message>
     <message>
-      <source>GEOM_PROJECTION</source>
-      <translation>Projection</translation>
+      <source>GEOM_PROJECTION_ON_FACE</source>
+      <translation>面上の投影</translation>
+    </message>
+    <message>
+      <source>GEOM_PROJECTION_ON_WIRE</source>
+      <translation>ワイヤ上の投影</translation>
+    </message>
+    <message>
+      <source>GEOM_PROJECTION_ON_EDGE</source>
+      <translation>エッジ上の投影</translation>
     </message>
     <message>
       <source>GEOM_PROJECTION_TITLE</source>
       <translation>フェース上に投影</translation>
     </message>
     <message>
-      <source>GEOM_SOURCE_OBJECT</source>
-      <translation>基になるポイント、エッジ、またはワイヤー</translation>
+      <source>GEOM_PROJECTION_NAME</source>
+      <translation>Projection</translation>
+    </message>
+    <message>
+      <source>GEOM_PROJ_ON_FACE_SOURCE</source>
+      <translation>ソース頂点、エッジまたはワイヤ</translation>
+    </message>
+    <message>
+      <source>GEOM_PROJ_ON_FACE_TARGET</source>
+      <translation>ターゲット面</translation>
+    </message>
+    <message>
+      <source>GEOM_PROJ_ON_WIRE_SOURCE</source>
+      <translation>ソース頂点</translation>
+    </message>
+    <message>
+      <source>GEOM_PROJ_ON_WIRE_TARGET</source>
+      <translation>ターゲットワイヤ</translation>
+    </message>
+    <message>
+      <source>GEOM_PROJ_ON_EDGE_SOURCE</source>
+      <translation>ソース頂点</translation>
+    </message>
+    <message>
+      <source>GEOM_PROJ_ON_EDGE_TARGET</source>
+      <translation>ターゲットエッジ</translation>
     </message>
     <message>
       <source>GEOM_SOLUTION</source>
       <source>GEOM_SOLUTION_I</source>
       <translation>%1 のソリューション</translation>
     </message>
-    <message>
-      <source>GEOM_TARGET_OBJECT</source>
-      <translation>目的面</translation>
-    </message>
     <message>
       <source>GEOM_WITH_CONTACT</source>
       <translation>接触している</translation>
       <source>GEOM_SELECT_UNPUBLISHED_EDGES</source>
       <translation>非公開のエッジを選択</translation>
     </message>
+    <message>
+      <source>GEOM_GENERATE_GROUPS</source>
+      <translation>グループの作成</translation>
+    </message>
+    <message>
+      <source>GEOM_GROUP_NAME_PREFIX</source>
+      <translation>グループ名Prefix</translation>
+    </message>
     <message>
       <source>GEOM_PLANE</source>
       <translation>Plane</translation>
       <source>GEOM_SELECTED_SHAPE</source>
       <translation>選択した形状</translation>
     </message>
+    <message>
+      <source>GEOM_SELECTED_SHAPES</source>
+      <translation>選択済み形状</translation>
+    </message>
     <message>
       <source>GEOM_SELECTION</source>
       <translation>選択</translation>
     </message>
     <message>
       <source>GEOM_SOLID_SHELLS</source>
-      <translation type="unfinished">Make Solid From Shells</translation>
+      <translation>シェルからソリッドの作成</translation>
     </message>
     <message>
       <source>GEOM_SOLID_FACES</source>
-      <translation type="unfinished">Make Solid From Connected Set Of Faces/Shells</translation>
+      <translation>接続された面、シェルからソリッド作成</translation>
     </message>
     <message>
       <source>GEOM_SPHERE</source>
       <source>WRN_NULL_OBJECT_OR_SHAPE</source>
       <translation>ソリッド作成のオブジェクト %1 が無効</translation>
     </message>
+    <message>
+      <source>GROUP_DOWN</source>
+      <translation>下</translation>
+    </message>
+    <message>
+      <source>GROUP_UP</source>
+      <translation>上</translation>
+    </message>
+    <message>
+      <source>GROUP_SIDE1</source>
+      <translation>横1</translation>
+    </message>
+    <message>
+      <source>GROUP_SIDE2</source>
+      <translation>横2</translation>
+    </message>
+    <message>
+      <source>GROUP_OTHER</source>
+      <translation>その他</translation>
+    </message>
     <message>
       <source>GEOM_X</source>
       <translation>X :</translation>
     </message>
     <message>
       <source>TOP_CURVE_CREATOR</source>
-      <translation type="unfinished">Create 2D polyline</translation>
+      <translation>2Dポリラインの作成</translation>
     </message>
     <message>
       <source>STB_CURVE_CREATOR</source>
-      <translation type="unfinished">Create 2D polyline</translation>
+      <translation>2Dポリラインの作成</translation>
     </message>
     <message>
       <source>MEN_ALL_SEL_ONLY</source>
       <translation>自己交差の確認</translation>
     </message>
     <message>
-        <source>MEN_FAST_CHECK_INTERSECTIONS</source>
-        <translation type="unfinished">Fast intersection</translation>
+      <source>MEN_FAST_CHECK_INTERSECTIONS</source>
+      <translation>クイック交点</translation>
     </message>
     <message>
         <source>MEN_SHAPE_STATISTICS</source>
       <source>MEN_PROJECTION</source>
       <translation>投影</translation>
     </message>
+    <message>
+      <source>MEN_PROJ_ON_CYL</source>
+      <translation>円筒の投影</translation>
+    </message>
     <message>
       <source>MEN_OPERATIONS</source>
       <translation>操作</translation>
       <source>MEN_PIPE_PATH</source>
       <translation>経路の復元</translation>
     </message>
+    <message>
+      <source>MEN_THICKNESS</source>
+      <translation>厚み</translation>
+    </message>
     <message>
       <source>MEN_PLANE</source>
       <translation>平面</translation>
     </message>
     <message>
       <source>MEN_POP_VERTICES</source>
-      <translation type="unfinished">Show Vertices</translation>
+      <translation>頂点の表示</translation>
     </message>
     <message>
       <source>MEN_POP_SHOW_NAME</source>
-      <translation type="unfinished">Show Name</translation>
-    </message>    
+      <translation>名前の表示</translation>
+    </message>
     <message>
       <source>MEN_PREFERENCES</source>
       <translation>設定</translation>
       <source>MEN_ISOLINE</source>
       <translation>等高線</translation>
     </message>
+    <message>
+      <source>MEN_SURFACE_FROM_FACE</source>
+      <translation>面から表面</translation>
+    </message>
     <message>
       <source>MEN_SOLID</source>
       <translation>ソリッド</translation>
     </message>
     <message>
-        <source>MEN_SOLID_FROM_FACES</source>
-        <translation type="unfinished">Solid from connected faces</translation>
+      <source>MEN_SOLID_FROM_FACES</source>
+      <translation>接続された面からソリッド</translation>
     </message>
     <message>
       <source>MEN_SOLID_SEL_ONLY</source>
     </message>
     <message>
       <source>MEN_MATERIALS_LIBRARY</source>
-      <translation>æ\9d\90æ\96\99ã\81®ç\89¹æ\80§</translation>
+      <translation>æ\9d\90æ\96\99ã\83©ã\82¤ã\83\96ã\83©ã\83ª</translation>
     </message>
     <message>
       <source>MEN_TEXTURE</source>
     </message>
     <message>
       <source>MEN_VERTICES_MODE_ON</source>
-      <translation type="unfinished">Show Vertices</translation>
+      <translation>頂点の表示</translation>
     </message>
     <message>
       <source>MEN_VERTICES_MODE_OFF</source>
-      <translation type="unfinished">Hide Vertices</translation>
+      <translation>頂点の非表示</translation>
     </message>
     <message>
       <source>MEN_NAME_MODE_ON</source>
-      <translation type="unfinished">Show Name</translation>
+      <translation>名前の表示</translation>
     </message>
     <message>
       <source>MEN_NAME_MODE_OFF</source>
-      <translation type="unfinished">Hide Name</translation>
+      <translation>名前の非表示</translation>
     </message>
     <message>
       <source>MEN_WIREFRAME</source>
       <source>MEN_POP_PREDEF_MATER_CUSTOM</source>
       <translation>カスタム...</translation>
     </message>
+    <message>
+      <source>MEN_EDGE_EXTEND</source>
+      <translation>拡張エッジ</translation>
+    </message>
+    <message>
+      <source>MEN_FACE_EXTEND</source>
+      <translation>拡張面</translation>
+    </message>
     <message>
       <source>NAME_LBL</source>
       <translation>名前:</translation>
       <translation>輪郭の色</translation>
     </message>
     <message>
-        <source>PREF_LABEL_COLOR</source>
-        <translation type="unfinished">Color of labels</translation>
+      <source>PREF_LABEL_COLOR</source>
+      <translation>ラベルの色</translation>
     </message>
     <message>
       <source>PREF_TOPLEVEL_COLOR</source>
     </message>
     <message>
       <source>PREF_HIDE_INPUT_OBJECT</source>
-      <translation type="unfinished">Hide input objects from the viewer</translation>
+      <translation>ビューワから入力したオブジェクトの非表示</translation>
     </message>
     <message>
       <source>PREF_ISOS</source>
     </message>
     <message>
       <source>MATERIAL_LIBRARY_TLT</source>
-      <translation>図書館資料</translation>
+      <translation>材料ライブラリ</translation>
     </message>
     <message>
       <source>REMOVE_HOLES_NEW_OBJ_NAME</source>
-      <translation>SuppressHoles</translation>
+      <translation>SupressHoles</translation>
     </message>
     <message>
       <source>REMOVE_INT_WIRES_NEW_OBJ_NAME</source>
       <translation>自己交差の確認</translation>
     </message>
     <message>
-        <source>STB_FAST_CHECK_INTERSECTIONS</source>
-        <translation type="unfinished">Fast intersection</translation>
+      <source>STB_FAST_CHECK_INTERSECTIONS</source>
+      <translation>クイック交点</translation>
     </message>
     <message>
-        <source>STB_SHAPE_STATISTICS</source>
-        <translation type="unfinished">Shape Statistics</translation>
+      <source>STB_SHAPE_STATISTICS</source>
+      <translation type="unfinished">Shape Statistics</translation>
     </message>
     <message>
       <source>STB_CHECK_FREE_BNDS</source>
       <source>STB_PROJECTION</source>
       <translation>ポイント、エッジ、または輪郭上の 1 つの側面を投影</translation>
     </message>
+    <message>
+      <source>STB_PROJ_ON_CYL</source>
+      <translation>円筒上のワイヤまたは面を投影</translation>
+    </message>
     <message>
       <source>STB_ORIGIN_AND_VECTORS</source>
       <translation>起源と基底ベクトルを作成します。</translation>
       <source>STB_PIPE_PATH</source>
       <translation>経路の復元</translation>
     </message>
+    <message>
+      <source>STB_THICKNESS</source>
+      <translation>厚みのあるソリッドの作成</translation>
+    </message>
     <message>
       <source>STB_PLANE</source>
       <translation>平面を作成</translation>
     </message>
     <message>
       <source>STB_POP_VERTICES</source>
-      <translation type="unfinished">Show Vertices</translation>
+      <translation>頂点の表示</translation>
     </message>
     <message>
       <source>STB_POP_SHOW_NAME</source>
-      <translation type="unfinished">Show Name</translation>
+      <translation>名前の表示</translation>
     </message>
     <message>
       <source>STB_POP_SETTEXTURE</source>
       <translation>エッジの表示モードを変更</translation>
     </message>
     <message>
-        <source>STB_NAME_MODE</source>
-        <translation type="unfinished">Show/Hide names of visible shapes</translation>
+      <source>STB_NAME_MODE</source>
+      <translation>表示中の形状の名前を表示/非表示</translation>
     </message>
     <message>
       <source>STB_SHADING_COLOR</source>
       <source>STB_ISOLINE</source>
       <translation>UまたはV方向等高線の作成</translation>
     </message>
+    <message>
+      <source>STB_SURFACE_FROM_FACE</source>
+      <translation>面から表面の作成</translation>
+    </message>
     <message>
       <source>STB_SOLID</source>
       <translation>ソリッドを構築</translation>
     </message>
     <message>
       <source>SUPRESS_FACE_NEW_OBJ_NAME</source>
-      <translation>SuppressFaces</translation>
+      <translation>SupressFaces</translation>
     </message>
     <message>
       <source>ShHealOper_ErrorExecution_msg</source>
     </message>
     <message>
       <source>TOP_FAST_CHECK_INTERSECTIONS</source>
-      <translation type="unfinished">Fast intersection</translation>
+      <translation>クイック交点</translation>
     </message>
     <message>
       <source>TOP_SHAPE_STATISTICS</source>
       <source>TOP_PROJECTION</source>
       <translation>投影</translation>
     </message>
+    <message>
+      <source>TOP_PROJ_ON_CYL</source>
+      <translation>円筒上に投影</translation>
+    </message>
     <message>
       <source>TOP_ORIGIN_AND_VECTORS</source>
       <translation>起源と根拠のベクトルを作成します。</translation>
       <source>TOP_PIPE_PATH</source>
       <translation>経路の復元</translation>
     </message>
+    <message>
+      <source>TOP_THICKNESS</source>
+      <translation>厚み</translation>
+    </message>
     <message>
       <source>TOP_PLANE</source>
       <translation>平面を作成</translation>
       <source>TOP_ISOLINE</source>
       <translation>等高線</translation>
     </message>
+    <message>
+      <source>TOP_SURFACE_FROM_FACE</source>
+      <translation>面から表面</translation>
+    </message>
     <message>
       <source>TOP_SOLID</source>
       <translation>ソリッドを作成</translation>
     </message>
     <message>
       <source>MEN_UNION_FACES</source>
-      <translation>é\80£å\90\88ã\81«ç\9b´é\9d¢ã\81\97ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82</translation>
+      <translation>é\9d¢ã\81®å\85±æ\9c\89</translation>
     </message>
     <message>
       <source>STB_UNION_FACES</source>
       <translation>連合に直面しています。</translation>
     </message>
     <message>
-        <source>TOP_INSPECT_OBJECT</source>
-        <translation type="unfinished">Inspect Object</translation>
+      <source>TOP_INSPECT_OBJECT</source>
+      <translation>オブジェクトの点検</translation>
     </message>
     <message>
-        <source>MEN_INSPECT_OBJECT</source>
-        <translation type="unfinished">Inspect Object</translation>
+      <source>MEN_INSPECT_OBJECT</source>
+      <translation>オブジェクトの点検</translation>
     </message>
     <message>
-        <source>STB_INSPECT_OBJECT</source>
-        <translation type="unfinished">Inspect Object</translation>
+      <source>STB_INSPECT_OBJECT</source>
+      <translation>オブジェクトの点検</translation>
     </message>
     <message>
       <source>TOP_NORMALE</source>
     </message>
     <message>
       <source>MEN_POP_SHOW_DEPENDENCY_TREE</source>
-      <translation type="unfinished">Show dependency tree</translation>
+      <translation>依存ツリーの表示</translation>
     </message>
     <message>
       <source>MEN_POP_REDUCE_STUDY</source>
-      <translation type="unfinished">Reduce study</translation>
+      <translation>スタディの削減</translation>
     </message>
     <message>
       <source>MEN_POP_SHOW_ALL_DIMENSIONS</source>
       <source>STB_GET_SHARED_SHAPES</source>
       <translation>共有アイテムを取得</translation>
     </message>
+    <message>
+      <source>TOP_TRANSFER_DATA</source>
+      <translation>データ転送</translation>
+    </message>
+    <message>
+      <source>MEN_TRANSFER_DATA</source>
+      <translation>データ転送</translation>
+    </message>
+    <message>
+      <source>STB_TRANSFER_DATA</source>
+      <translation>データ転送</translation>
+    </message>
+    <message>
+      <source>TOP_EXTENSION</source>
+      <translation>エッジまたは面の拡張</translation>
+    </message>
+    <message>
+      <source>MEN_EXTENSION</source>
+      <translation>拡張</translation>
+    </message>
+    <message>
+      <source>STB_EXTENSION</source>
+      <translation>エッジまたは面の拡張</translation>
+    </message>
     <message>
       <source>GEOM_PUBLISH_RESULT_GRP</source>
       <translation>高度なオプション</translation>
     </message>
     <message>
       <source>PREF_TAB_DEPENDENCY_VIEW</source>
-      <translation type="unfinished">Dependency Tree</translation>
+      <translation>依存ツリー</translation>
     </message>
     <message>
       <source>PREF_HIERARCHY_TYPE</source>
-      <translation type="unfinished">Hierarchy type</translation>
+      <translation>階層タイプ</translation>
     </message>
     <message>
       <source>MEN_ONLY_ASCENDANTS</source>
-      <translation type="unfinished">Display only ascendants tree</translation>
+      <translation>ツリー上位のみ表示</translation>
     </message>
     <message>
       <source>MEN_ONLY_DESCENDANTS</source>
-      <translation type="unfinished">Display only descendants tree</translation>
+      <translation>ツリー下位のみ表示</translation>
     </message>
     <message>
       <source>MEN_BOTH_ASCENDANTS_DESCENDANTS</source>
-      <translation type="unfinished">Display both ascendants and descendants trees</translation>
+      <translation>ツリー上位と下位の両方表示</translation>
     </message>
     <message>
       <source>GEOM_MOVE_POSSIBILITY</source>
-      <translation type="unfinished">Possibility to move nodes</translation>
+      <translation>ノード移動可能性</translation>
     </message>
     <message>
       <source>PREF_GROUP_DEPENDENCY_VIEW_COLOR</source>
-      <translation type="unfinished">Color</translation>
+      <translation>色</translation>
     </message>
     <message>
       <source>PREF_DEPENDENCY_VIEW_BACKGROUND_COLOR</source>
-      <translation type="unfinished">Background color</translation>
+      <translation>背景色</translation>
     </message>
     <message>
       <source>PREF_DEPENDENCY_VIEW_NODE_COLOR</source>
-      <translation type="unfinished">Default node color</translation>
+      <translation>デフォルトノード色</translation>
     </message>
     <message>
       <source>PREF_DEPENDENCY_VIEW_MAIN_NODE_COLOR</source>
-      <translation type="unfinished">Main node color</translation>
+      <translation>主ノード色</translation>
     </message>
     <message>
       <source>PREF_DEPENDENCY_VIEW_UNPUBLISH_NODE_COLOR</source>
-      <translation type="unfinished">Unpublished node color</translation>
+      <translation>非公開ノード色</translation>
     </message>
     <message>
       <source>PREF_DEPENDENCY_VIEW_SELECT_NODE_COLOR</source>
-      <translation type="unfinished">Selected node color</translation>
+      <translation>選択ノード色</translation>
     </message>
     <message>
       <source>PREF_DEPENDENCY_VIEW_ARROW_COLOR</source>
-      <translation type="unfinished">Default arrow color</translation>
+      <translation>デフォルト矢印色</translation>
     </message>
     <message>
       <source>PREF_DEPENDENCY_VIEW_HIGHLIGHT_ARROW_COLOR</source>
-      <translation type="unfinished">Highlighted arrow color</translation>
+      <translation>ハイライト矢印色</translation>
     </message>
     <message>
       <source>PREF_DEPENDENCY_VIEW_SELECT_ARROW_COLOR</source>
-      <translation type="unfinished">Selected arrow color</translation>
+      <translation>選択矢印色</translation>
     </message>
     <message>
       <source>GEOM_ALL_IMPORT_FILES</source>
     </message>
     <message>
       <source>CC_PNT_ITEM_X_Y</source>
-      <translation>X=%1, Y=%2</translation>
+      <translation type="unfinished">X=%1, Y=%2</translation>
     </message>
     <message>
       <source>CC_PNT_ITEM_X_Y_Z</source>
-      <translation>X=%1, Y=%2, Z=%3</translation>
+      <translation type="unfinished">X=%1, Y=%2, Z=%3</translation>
     </message>
     <message>
-        <source>GEOM_FILTER</source>
-        <translation type="unfinished">Filter</translation>
+      <source>GEOM_FILTER</source>
+      <translation>フィルタ</translation>
     </message>
     <message>
-        <source>GEOM_LESS_THAN</source>
-        <translation type="unfinished">Less Than</translation>
+      <source>GEOM_LESS_THAN</source>
+      <translation>未満</translation>
     </message>
     <message>
-        <source>GEOM_LESSOREQUAL_THAN</source>
-        <translation type="unfinished">Equal or Less Than</translation>
+      <source>GEOM_LESSOREQUAL_THAN</source>
+      <translation>以下</translation>
     </message>
     <message>
-        <source>GEOM_GREAT_THAN</source>
-        <translation type="unfinished">Greater Than</translation>
+      <source>GEOM_GREAT_THAN</source>
+      <translation>超える</translation>
     </message>
     <message>
-        <source>GEOM_GREATOREQUAL_THAN</source>
-        <translation type="unfinished">Equal or Greater Than</translation>
+      <source>GEOM_GREATOREQUAL_THAN</source>
+      <translation>以上</translation>
     </message>
     <message>
-        <source>GEOM_SOME_SHAPES_SELECTED</source>
-        <translation type="unfinished">%1 shape(s) has(have) been selected</translation>
+      <source>GEOM_SOME_SHAPES_SELECTED</source>
+      <translation>%1 個選択済み</translation>
     </message>
     <message>
-        <source>GEOM_NO_SHAPES_SELECTED</source>
-        <translation type="unfinished">There are no shapes that meet filtering parameters</translation>
+      <source>GEOM_NO_SHAPES_SELECTED</source>
+      <translation>フィルタリングパラメータに適合する形状はありません</translation>
+    </message>
+    <message>
+      <source>GEOM_HEALING_STATS_TITLE</source>
+      <translation>行われた変更</translation>
+    </message>
+    <message>
+      <source>GEOM_HEALING_STATS_COL_1</source>
+      <translation>カウント</translation>
+    </message>
+    <message>
+      <source>GEOM_HEALING_STATS_COL_2</source>
+      <translation>修正</translation>
     </message>
     <message>
         <source>GEOM_PLOT_DISTRIBUTION</source>
     <name>GeometryGUI</name>
     <message>
       <source>TOOL_BASIC</source>
-      <translation type="unfinished">Basic</translation>
+      <translation>基本</translation>
     </message>
     <message>
       <source>TOOL_BLOCKS</source>
-      <translation type="unfinished">Blocks</translation>
+      <translation>ブロック</translation>
     </message>
     <message>
       <source>TOOL_BOOLEAN</source>
-      <translation type="unfinished">Boolean operations</translation>
+      <translation>ブーリアン演算</translation>
     </message>
     <message>
       <source>TOOL_FEATURES</source>
-      <translation type="unfinished">Modification</translation>
+      <translation>修正</translation>
     </message>
     <message>
       <source>TOOL_GENERATION</source>
-      <translation type="unfinished">Generation</translation>
+      <translation>作成</translation>
     </message>
     <message>
       <source>TOOL_PRIMITIVES</source>
-      <translation type="unfinished">Primitives</translation>
+      <translation>プリミティブ</translation>
     </message>
     <message>
       <source>TOOL_TRANSFORMATION</source>
-      <translation type="unfinished">Transformation</translation>
+      <translation>変形</translation>
     </message>
     <message>
       <source>TOOL_BUILD</source>
-      <translation type="unfinished">Build</translation>
+      <translation>構築</translation>
     </message>
     <message>
       <source>TOOL_OPERATIONS</source>
-      <translation type="unfinished">Operations</translation>
+      <translation>操作</translation>
     </message>
     <message>
       <source>TOOL_PICTURES</source>
-      <translation type="unfinished">Pictures</translation>
+      <translation>画像</translation>
     </message>
     <message>
       <source>TOOL_ADVANCED</source>
-      <translation type="unfinished">Advanced</translation>
+      <translation>上級</translation>
     </message>
     <message>
       <source>TOOL_MEASURES</source>
-      <translation type="unfinished">Inspection</translation>
+      <translation>測定</translation>
     </message>
     <message>
       <source>TOOL_IMPORTEXPORT</source>
-      <translation type="unfinished">Import / Export XAO</translation>
-    </message>
-    <message>
-      <source>TABLE_SECTION</source>
-      <translation type="unfinished">Section</translation>
-    </message>
-    <message>
-      <source>TABLE_INDEX</source>
-      <translation type="unfinished">Index</translation>
-    </message>
-    <message>
-      <source>TABLE_X</source>
-      <translation type="unfinished">X</translation>
-    </message>
-    <message>
-      <source>TABLE_Y</source>
-      <translation type="unfinished">Y</translation>
+      <translation>インポート / エクスポート XAO</translation>
     </message>
   </context>
   <context>
     <name>CurveCreator_NewSectionDlg</name>
     <message>
       <source>SECTION_NAME</source>
-      <translation type="unfinished">Name</translation>
+      <translation>名前</translation>
     </message>
     <message>
       <source>SECTION_LINE_TYPE</source>
-      <translation type="unfinished">Type</translation>
+      <translation>タイプ</translation>
     </message>
     <message>
       <source>SECTION_POLYLINE_TYPE</source>
-      <translation type="unfinished">Polyline</translation>
+      <translation>ポリライン</translation>
     </message>
     <message>
       <source>SECTION_SPLINE_TYPE</source>
-      <translation type="unfinished">Spline</translation>
+      <translation>スプライン</translation>
     </message>
     <message>
       <source>SECTION_LINE_CLOSED</source>
-      <translation type="unfinished">Closed</translation>
+      <translation>閉じたライン</translation>
     </message>
     <message>
       <source>SECTION_ADD_BTN</source>
-      <translation type="unfinished">Add</translation>
+      <translation>追加</translation>
     </message>
     <message>
       <source>SECTION_OK_BTN</source>
-      <translation type="unfinished">Ok</translation>
+      <translation>Ok</translation>
     </message>
     <message>
       <source>SECTION_CANCEL_BTN</source>
-      <translation type="unfinished">Cancel</translation>
+      <translation>キャンセル</translation>
     </message>
     <message>
       <source>ADD_NEW_SECTION</source>
     <name>CurveCreator_TreeViewModel</name>
     <message>
       <source>X=%1, Y=%2</source>
-      <translation type="unfinished">X=%1, Y=%2</translation>
+      <translation>X=%1, Y=%2</translation>
     </message>
     <message>
       <source>X=%1, Y=%2, Z=%3</source>
-      <translation type="unfinished">X=%1, Y=%2, Z=%3</translation>
+      <translation>X=%1, Y=%2, Z=%3</translation>
+    </message>
+  </context>
+  <context>
+    <name>CurveCreator_TableView</name>
+    <message>
+      <source>TABLE_SECTION</source>
+      <translation>Section</translation>
+    </message>
+    <message>
+      <source>TABLE_INDEX</source>
+      <translation>Index</translation>
+    </message>
+    <message>
+      <source>TABLE_X</source>
+      <translation type="unfinished">X</translation>
+    </message>
+    <message>
+      <source>TABLE_Y</source>
+      <translation type="unfinished">Y</translation>
     </message>
   </context>
   <context>
     <name>CurveCreator_Widget</name>
     <message>
       <source>SECTION_GROUP_TITLE</source>
-      <translation type="unfinished">Sections</translation>
+      <translation>断面</translation>
     </message>
     <message>
       <source>UNDO</source>
     <name>EntityGUI_PolylineDlg</name>
     <message>
       <source>POLYLINE_DLG_TITLE</source>
-      <translation type="unfinished">Polyline Construction</translation>
+      <translation>ポリラインの構築</translation>
     </message>
     <message>
       <source>POLYLINE_TITLE</source>
-      <translation type="unfinished">Polyline</translation>
+      <translation>ポリライン</translation>
     </message>
     <message>
       <source>POLYLINE_NAME</source>
-      <translation type="unfinished">Polyline</translation>
+      <translation>Polyline</translation>
     </message>
     <message>
       <source>POLYLINE_IMPORT</source>
-      <translation type="unfinished">Import polyline</translation>
+      <translation>ポリラインのインポート</translation>
     </message>
     <message>
       <source>POLYLINE_ADD_SECTION</source>
-      <translation type="unfinished">Add section</translation>
+      <translation>断面の追加</translation>
     </message>
     <message>
       <source>POLYLINE_EDIT_SECTION</source>
-      <translation type="unfinished">Edit section</translation>
+      <translation>断面の編集</translation>
     </message>
   </context>
   <context>
       <source>GEOM_ADD_THICKNESS</source>
       <translation>厚み追加(エッジまたはワイヤーのみ)</translation>
     </message>
-    <message>
-      <source>GEOM_TOWARDS_INSIDE</source>
-      <translation>内側に向かって厚く</translation>
-    </message>
   </context>
   <context>
     <name>GroupGUI</name>
     </message>
     <message>
       <source>X</source>
-      <translation type="unfinished">X</translation>
+      <translation>X</translation>
     </message>
     <message>
       <source>Y</source>
-      <translation type="unfinished">Y</translation>
+      <translation>Y</translation>
     </message>
     <message>
       <source>Z</source>
     </message>
     <message>
       <source>WIDTH_FACTOR_TOL</source>
-      <translation type="unfinished">Width factor tol.</translation>
+      <translation>Width factor tol.</translation>
     </message>
     <message>
       <source>VOLUME_TOL</source>
-      <translation type="unfinished">Volume tol.</translation>
+      <translation>Volume tol.</translation>
     </message>
     <message>
       <source>TO_MERGE_SOLIDS</source>
-      <translation type="unfinished">To merge solids</translation>
+      <translation>ソリッドのマージ 用</translation>
     </message>
     <message>
       <source>SELECT_ALL</source>
-      <translation>選択</translation>
+      <translation>すべて選択</translation>
     </message>
   </context>
   <context>
       <translation>Shared_%1</translation>
     </message>
     <message>
-        <source>GEOM_SHARED_SHAPES_MULTISHARE</source>
-        <translation type="unfinished">Shared by all</translation>
+      <source>GEOM_SHARED_SHAPES_MULTISHARE</source>
+      <translation>すべてが共有する</translation>
     </message>
   </context>
   <context>
     <name>GEOMToolsGUI_ReduceStudyDlg</name>
     <message>
       <source>GEOM_REDUCE_STUDY_TITLE</source>
-      <translation type="unfinished">Reduce study</translation>
+      <translation>スタディの削減</translation>
     </message>
     <message>
       <source>GEOM_REDUCE_STUDY_KEPT_OBJECTS</source>
-      <translation type="unfinished">Objects to be kept</translation>
+      <translation>保持されたオブジェクト</translation>
     </message>
     <message>
       <source>GEOM_REDUCE_STUDY_REMOVE_OBJECTS</source>
-      <translation type="unfinished">Objects to be removed</translation>
+      <translation>削除されたオブジェクト</translation>
     </message>
     <message>
       <source>GEOM_REDUCE_STUDY_NAME</source>
-      <translation type="unfinished">Name</translation>
+      <translation>Name</translation>
     </message>
     <message>
       <source>GEOM_REDUCE_STUDY_OPTIONS</source>
-      <translation type="unfinished">Options</translation>
+      <translation>オプション</translation>
     </message>
     <message>
       <source>GEOM_REDUCE_STUDY_INTERMEDIATES</source>
-      <translation type="unfinished">Intermediate objects</translation>
+      <translation>中間オブジェクト</translation>
     </message>
     <message>
       <source>GEOM_REDUCE_STUDY_SUB_OBJECTS</source>
-      <translation type="unfinished">Sub-objects</translation>
+      <translation>サブオブジェクト</translation>
     </message>
     <message>
       <source>GEOM_REDUCE_STUDY_KEEP</source>
-      <translation type="unfinished">Keep</translation>
+      <translation>保持</translation>
     </message>
     <message>
       <source>GEOM_REDUCE_STUDY_UNPUBLISH</source>
-      <translation type="unfinished">Unpublish</translation>
+      <translation>非公開</translation>
     </message>
     <message>
       <source>GEOM_REDUCE_STUDY_REMOVE</source>
-      <translation type="unfinished">Remove</translation>
+      <translation>削除</translation>
     </message>
     <message>
       <source>GEOM_REDUCE_STUDY_REMOVE_EMPTY_FOLDER</source>
-      <translation type="unfinished">Remove empty folders</translation>
+      <translation>空フォルダの削除</translation>
     </message>
     <message>
       <source>GEOM_REDUCE_STUDY_SOFT_REMOVAL</source>
-      <translation type="unfinished">Soft removal</translation>
+      <translation>ソフト除去</translation>
     </message>
     <message>
       <source>GEOM_REDUCE_STUDY_WARNING_DELETE</source>
-      <translation type="unfinished">Do you really want to delete intermediate objects? After applying this operation study will be broken.</translation>
+      <translation>本当に中間オブジェクトを削除しますか? この操作の適用後、スタディは無くなります。</translation>
     </message>
   </context>
   <context>
   <context>
     <name>RepairGUI_InspectObjectDlg</name>
     <message>
-        <source>GEOM_INSPECT_OBJECT_TITLE</source>
-        <translation type="unfinished">Inspect object</translation>
+      <source>GEOM_INSPECT_OBJECT_TITLE</source>
+      <translation>オブジェクト点検</translation>
     </message>
     <message>
-        <source>GEOM_INSPECT_OBJECT_MAIN_SHAPE</source>
-        <translation type="unfinished">Main shape</translation>
+      <source>GEOM_INSPECT_OBJECT_MAIN_SHAPE</source>
+      <translation>主形状</translation>
     </message>
     <message>
-    <source>GEOM_INSPECT_OBJECT_SHOW</source>
-        <translation type="unfinished">Show Selected</translation>
+      <source>GEOM_INSPECT_OBJECT_SHOW</source>
+      <translation>選択を表示</translation>
     </message>
     <message>
-        <source>GEOM_INSPECT_OBJECT_SHOW_ONLY</source>
-        <translation type="unfinished">Show Only Selected</translation>
+      <source>GEOM_INSPECT_OBJECT_SHOW_ONLY</source>
+      <translation>選択のみを表示</translation>
     </message>
     <message>
-        <source>GEOM_INSPECT_OBJECT_HIDE</source>
-        <translation type="unfinished">Hide Selected</translation>
+      <source>GEOM_INSPECT_OBJECT_HIDE</source>
+      <translation>選択を非表示</translation>
     </message>
     <message>
-        <source>GEOM_INSPECT_OBJECT_PUBLISH</source>
-        <translation type="unfinished">Publish Selected</translation>
+      <source>GEOM_INSPECT_OBJECT_PUBLISH</source>
+      <translation>選択を公開</translation>
     </message>
     <message>
-        <source>GEOM_INSPECT_OBJECT_NAME</source>
-        <translation type="unfinished">Name</translation>
+      <source>GEOM_INSPECT_OBJECT_NAME</source>
+      <translation>名前</translation>
     </message>
   </context>
   <context>
       <translation>V-Isoline</translation>
     </message>
   </context>
-<context>
+  <context>
     <name>MeasureGUI_CheckSelfIntersectionsDlg</name>
     <message>
-        <source>GEOM_CHECK_INTE_INTERSECTIONS</source>
-        <translation type="unfinished">Self-intersections</translation>
+      <source>GEOM_CHECK_INTE_INTERSECTIONS</source>
+      <translation>自己交差</translation>
     </message>
     <message>
-        <source>GEOM_CHECK_INTE_SUBSHAPES</source>
-        <translation type="unfinished">Sub-shapes</translation>
+      <source>GEOM_CHECK_INTE_SUBSHAPES</source>
+      <translation>サブ形状</translation>
     </message>
     <message>
-        <source>GEOM_CHECK_INTE_CHECK_LEVEL</source>
-        <translation type="unfinished">Level of check</translation>
+      <source>GEOM_CHECK_INTE_CHECK_LEVEL</source>
+      <translation>チェックのレベル</translation>
     </message>
     <message>
-        <source>GEOM_CHECK_INTE_SUMMARY</source>
-        <translation type="unfinished">Summary</translation>
+      <source>GEOM_CHECK_INTE_SUMMARY</source>
+      <translation>サマリ</translation>
     </message>
     <message>
-        <source>GEOM_CHECK_INTE_COMPUTE</source>
-        <translation type="unfinished">Compute self-intersections</translation>
+      <source>GEOM_CHECK_INTE_COMPUTE</source>
+      <translation>自己交差の計算</translation>
     </message>
     <message>
-        <source>GEOM_SELF_INTERSECTION_NAME</source>
-        <translation type="unfinished">Self_intersection</translation>
+      <source>GEOM_SELF_INTERSECTION_NAME</source>
+      <translation>自己交差</translation>
     </message>
     <message>
-        <source>GEOM_NO_SELF_INTERSECTIONS</source>
-        <translation type="unfinished">There are no self-intersections in the shape</translation>
+      <source>GEOM_NO_SELF_INTERSECTIONS</source>
+      <translation>形状内に自己交差はありません。</translation>
     </message>
     <message>
-        <source>GEOM_SELF_INTERSECTIONS_FOUND</source>
-        <translation type="unfinished">Some self-intersections detected</translation>
+      <source>GEOM_SELF_INTERSECTIONS_FOUND</source>
+      <translation>いくつかの自己交差が検出されました</translation>
     </message>
     <message>
-        <source>GEOM_CHECK_SELF_INTERSECTIONS_FAILED</source>
-        <translation type="unfinished">Detection of self-intersections failed</translation>
+      <source>GEOM_CHECK_SELF_INTERSECTIONS_FAILED</source>
+      <translation>自己交差の検出に失敗しました</translation>
+    </message>
+    <message>
+      <source>GEOM_CHECK_SELF_INTERSECTIONS_ERRORS</source>
+      <translation>警告: 操作中にエラーが発生したため、リストは完成されません。</translation>
+    </message>
+    <message>
+      <source>GEOM_CHECK_INTE_V_V</source>
+      <translation>頂点から頂点</translation>
+    </message>
+    <message>
+      <source>GEOM_CHECK_INTE_V_E</source>
+      <translation>頂点からエッジ と上記すべて</translation>
+    </message>
+    <message>
+      <source>GEOM_CHECK_INTE_E_E</source>
+      <translation>エッジからエッジと上記すべて</translation>
     </message>
     <message>
-        <source>GEOM_CHECK_SELF_INTERSECTIONS_ERRORS</source>
-        <translation type="unfinished">Warning: there were errors during the operation, so the list may be incomplete.</translation>
+      <source>GEOM_CHECK_INTE_V_F</source>
+      <translation>頂点から面と上記すべて</translation>
     </message>
     <message>
-        <source>GEOM_CHECK_INTE_V_V</source>
-        <translation type="unfinished">Vertex to Vertex</translation>
+      <source>GEOM_CHECK_INTE_E_F</source>
+      <translation>エッジから面と上記すべて</translation>
     </message>
     <message>
-        <source>GEOM_CHECK_INTE_V_E</source>
-        <translation type="unfinished">Vertex to Edge + all above</translation>
+      <source>GEOM_CHECK_INTE_ALL</source>
+      <translation>面から面と上記すべて</translation>
     </message>
-  <message>
-    <source>GEOM_CHECK_INTE_E_E</source>
-    <translation type="unfinished">Edge to Edge + all above</translation>
-  </message>
-  <message>
-    <source>GEOM_CHECK_INTE_V_F</source>
-    <translation type="unfinished">Vertex to Face + all above</translation>
-  </message>
-  <message>
-    <source>GEOM_CHECK_INTE_E_F</source>
-    <translation type="unfinished">Edge to Face + all above</translation>
-  </message>
-  <message>
-    <source>GEOM_CHECK_INTE_ALL</source>
-    <translation type="unfinished">Face to Face + all above</translation>
-  </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MeasureGUI_FastCheckIntersectionsDlg</name>
     <message>
-        <source>GEOM_FAST_CHECK_INT_DEFLECT</source>
-        <translation type="unfinished">Deflection coefficient</translation>
+      <source>GEOM_FAST_CHECK_INT_DEFLECT</source>
+      <translation>たわみ係数</translation>
     </message>
     <message>
-        <source>GEOM_FAST_CHECK_INT_DETECT_GAPS</source>
-        <translation type="unfinished">Detect gaps with tolerance</translation>
+      <source>GEOM_FAST_CHECK_INT_DETECT_GAPS</source>
+      <translation>トレランスによるギャップ検出</translation>
     </message>
     <message>
-        <source>GEOM_FAST_CHECK_INT_SUBSHAPES</source>
-        <translation type="unfinished">Sub-shapes of Object %1:</translation>
+      <source>GEOM_FAST_CHECK_INT_SUBSHAPES</source>
+      <translation>オブジェクト %1 のサブ形状:</translation>
     </message>
     <message>
-        <source>GEOM_FAST_CHECK_INT_COMPUTE</source>
-        <translation type="unfinished">Compute intersections</translation>
+      <source>GEOM_FAST_CHECK_INT_COMPUTE</source>
+      <translation>交点の計算</translation>
     </message>
     <message>
-        <source>GEOM_FAST_INTERSECTION_NAME</source>
-        <translation type="unfinished">Fast_intersection</translation>
+      <source>GEOM_FAST_INTERSECTION_NAME</source>
+      <translation>クイック交点</translation>
     </message>
     <message>
-        <source>GEOM_FAST_INTERSECTION_FAILS</source>
-        <translation type="unfinished">No intersections</translation>
+      <source>GEOM_FAST_INTERSECTION_FAILS</source>
+      <translation>交点はない</translation>
     </message>
     <message>
-        <source>GEOM_FAST_CHECK_OBJ</source>
-        <translation type="unfinished">Objects And Results</translation>
+      <source>GEOM_FAST_CHECK_OBJ</source>
+      <translation>オブジェクトと結果</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MeasureGUI_ShapeStatisticsDlg</name>
     <message>
         <source>GEOM_SHAPE_STATISTICS_TYPE</source>
         <source>GEOM_MSG_GROUPS_CREATED</source>
         <translation type="unfinished">%1 groups created</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>TransformationGUI_ExtensionDlg</name>
     <message>
-        <source>GEOM_EXTENSION_TITLE</source>
-        <translation type="unfinished">Extension of Edge or Face</translation>
+      <source>GEOM_EXTENSION_TITLE</source>
+      <translation>エッジまたは面の拡張</translation>
     </message>
     <message>
-        <source>GEOM_EXTENSION</source>
-        <translation type="unfinished">Extension</translation>
+      <source>GEOM_EXTENSION</source>
+      <translation>拡張</translation>
     </message>
     <message>
-        <source>GEOM_EXTENSION_MIN</source>
-        <translation type="unfinished">First Parameter</translation>
+      <source>GEOM_EXTENSION_MIN</source>
+      <translation>第1パラメータ</translation>
     </message>
     <message>
-        <source>GEOM_EXTENSION_MAX</source>
-        <translation type="unfinished">Last Parameter</translation>
+      <source>GEOM_EXTENSION_MAX</source>
+      <translation>最後のパラメータ</translation>
     </message>
     <message>
-        <source>GEOM_EXTENSION_MIN_U</source>
-        <translation type="unfinished">First U-Parameter</translation>
+      <source>GEOM_EXTENSION_MIN_U</source>
+      <translation>第1U-パラメータ</translation>
     </message>
     <message>
-        <source>GEOM_EXTENSION_MAX_U</source>
-        <translation type="unfinished">Last U-Parameter</translation>
+      <source>GEOM_EXTENSION_MAX_U</source>
+      <translation>最後のU-パラメータ</translation>
     </message>
     <message>
-        <source>GEOM_EXTENSION_MIN_V</source>
-        <translation type="unfinished">First V-Parameter</translation>
+      <source>GEOM_EXTENSION_MIN_V</source>
+      <translation>第1V-パラメータ</translation>
     </message>
     <message>
-        <source>GEOM_EXTENSION_MAX_V</source>
-        <translation type="unfinished">Last V-Parameter</translation>
+      <source>GEOM_EXTENSION_MAX_V</source>
+      <translation>最後のV-パラメータ</translation>
     </message>
     <message>
-        <source>GEOM_EXTENSION_EDGE_NAME</source>
-        <translation type="unfinished">ExtendedEdge</translation>
+      <source>GEOM_EXTENSION_EDGE_NAME</source>
+      <translation>ExtendedEdge</translation>
     </message>
     <message>
-        <source>GEOM_EXTENSION_FACE_NAME</source>
-        <translation type="unfinished">ExtendedFace</translation>
+      <source>GEOM_EXTENSION_FACE_NAME</source>
+      <translation>拡張面</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>EntityGUI_SurfFromFaceDlg</name>
     <message>
-        <source>GEOM_SURF_FROM_FACE_TITLE</source>
-        <translation type="unfinished">Surface From Face Construction</translation>
+      <source>GEOM_SURF_FROM_FACE_TITLE</source>
+      <translation>面から表面の作成</translation>
+    </message>
+    <message>
+      <source>GEOM_SURF_FROM_FACE</source>
+      <translation>面から表面</translation>
+    </message>
+    <message>
+      <source>GEOM_SURF_FROM_FACE_NAME</source>
+      <translation>SurfaceFromFace</translation>
+    </message>
+  </context>
+  <context>
+    <name>OperationGUI_TransferDataDlg</name>
+    <message>
+      <source>GEOM_TRANSFER_DATA_TITLE</source>
+      <translation>データ転送</translation>
+    </message>
+    <message>
+      <source>GEOM_TRANSFER_DATA</source>
+      <translation>データ転送</translation>
+    </message>
+    <message>
+      <source>GEOM_TRANSFER_DATA_FROM</source>
+      <translation>ソース形状</translation>
+    </message>
+    <message>
+      <source>GEOM_TRANSFER_DATA_TO</source>
+      <translation>行き先形状</translation>
+    </message>
+    <message>
+      <source>GEOM_TRANSFER_DATA_METHOD</source>
+      <translation>検出操作のタイプ</translation>
+    </message>
+    <message>
+      <source>GEOM_TD_METHOD_GETINPLACE</source>
+      <translation>場所の中で取得</translation>
+    </message>
+    <message>
+      <source>GEOM_TD_METHOD_GETINPLACE_OLD</source>
+      <translation>場所(旧)の中で取得</translation>
+    </message>
+    <message>
+      <source>GEOM_TD_METHOD_GETINPLACE_HISTORY</source>
+      <translation>履歴より場所の中で取得</translation>
+    </message>
+    <message>
+      <source>GEOM_TRANSFER_DATA_INFO</source>
+      <translation>データ転送: 情報</translation>
+    </message>
+    <message>
+      <source>GEOM_TRANSFER_DATA_NOT_COPIED</source>
+      <translation>コピーされたものはありません。</translation>
+    </message>
+    <message>
+      <source>GEOM_TRANSFER_DATA_COPIED</source>
+      <translation>以下のデータがコピーされます:</translation>
+    </message>
+    <message>
+      <source>GEOM_TRANSFER_DATA_NAMES</source>
+      <translation>名前: %2 の %1</translation>
     </message>
     <message>
-        <source>GEOM_SURF_FROM_FACE</source>
-        <translation type="unfinished">Surface From Face</translation>
+      <source>GEOM_TRANSFER_DATA_MATERIALS</source>
+      <translation>材料: %2 の %1</translation>
+    </message>
+  </context>
+  <context>
+    <name>TransformationGUI_ProjectionOnCylDlg</name>
+    <message>
+      <source>GEOM_PROJ_ON_CYL_TITLE</source>
+      <translation>円筒上に投影</translation>
     </message>
     <message>
-        <source>GEOM_SURF_FROM_FACE_NAME</source>
-        <translation type="unfinished">SurfaceFromFace</translation>
+      <source>GEOM_PROJ_ON_CYL_START_ANGLE</source>
+      <translation>Starting angle</translation>
     </message>
-</context>
+    <message>
+      <source>GEOM_PROJ_ON_CYL_LENGTH_ANGLE</source>
+      <translation>Length angle</translation>
+    </message>
+  </context>
 </TS>
index ffe4ee97f4022bb421b19b89dd9794054274ffb0..8b4f0968a95e0a8ee22d656cbb423f13a1509139 100644 (file)
@@ -1686,7 +1686,7 @@ void GeometryGUI::addPluginActions()
       // icon
       QPixmap icon;
       if ( !adata.icon.empty() )
-       icon = resMgr->loadPixmap( pdata.name.c_str(), adata.icon.c_str() );
+        icon = resMgr->loadPixmap( pdata.name.c_str(), adata.icon.c_str() );
       // menu text (path)
       QStringList smenus = QString( adata.menuText.c_str() ).split( "/" );
       QString actionName = smenus.last();
@@ -1703,30 +1703,30 @@ void GeometryGUI::addPluginActions()
       actionStat = actionStat.toUpper().prepend( "STB_" );
 
       createAction( id, // ~ adata.label
-                   tr( actionTool.toLatin1().constData() ),
-                   icon,
-                   tr( actionName.toLatin1().constData() ),
-                   tr( actionStat.toLatin1().constData() ),
-                   QKeySequence( tr( adata.accel.c_str() ) ),
-                   application()->desktop(),
-                   false /*toggle*/,
-                   this, SLOT( OnGUIEvent() ),
-                   QString() /*shortcutAction*/ );
+                    tr( actionTool.toLatin1().constData() ),
+                    icon,
+                    tr( actionName.toLatin1().constData() ),
+                    tr( actionStat.toLatin1().constData() ),
+                    QKeySequence( tr( adata.accel.c_str() ) ),
+                    application()->desktop(),
+                    false /*toggle*/,
+                    this, SLOT( OnGUIEvent() ),
+                    QString() /*shortcutAction*/ );
       
       int menuId = -1;
       foreach ( QString subMenu, smenus ) {
-       QStringList subMenuList = subMenu.split( ":" );
-       QString subMenuName = subMenuList[0].toUpper().prepend( "MEN_" );
-       int subMenuGroup = subMenuList.size() > 1 ? subMenuList[1].toInt() : -1;
-       menuId = createMenu( tr( subMenuName.toLatin1().constData() ), menuId, -1, subMenuGroup );
+        QStringList subMenuList = subMenu.split( ":" );
+        QString subMenuName = subMenuList[0].toUpper().prepend( "MEN_" );
+        int subMenuGroup = subMenuList.size() > 1 ? subMenuList[1].toInt() : -1;
+        menuId = createMenu( tr( subMenuName.toLatin1().constData() ), menuId, -1, subMenuGroup );
       }
       createMenu( id, menuId, -1 );
       
       if ( !stools.isEmpty() ) {
-       QString subTool = stools[0];
-       subTool = subTool.toUpper().prepend( "TOOL_" );
-       int toolId = createTool( tr( subTool.toLatin1().constData() ) );
-       createTool(id, toolId);
+        QString subTool = stools[0];
+        subTool = subTool.toUpper().prepend( "TOOL_" );
+        int toolId = createTool( tr( subTool.toLatin1().constData() ) );
+        createTool(id, toolId);
       }
 
       // add action id to map
@@ -1763,8 +1763,8 @@ bool GeometryGUI::activateModule( SUIT_Study* study )
   else {
     PyObjWrapper result =
       PyObject_CallMethod(pluginsmanager, (char*)"initialize", (char*)"isss", 1, "geom",
-                          tr("MEN_NEW_ENTITY").toStdString().c_str(),
-                          tr("GEOM_PLUGINS_OTHER").toStdString().c_str());
+                          tr("MEN_NEW_ENTITY").toUtf8().data(),
+                          tr("GEOM_PLUGINS_OTHER").toUtf8().data());
     if ( !result )
       PyErr_Print();
   }
@@ -2041,38 +2041,15 @@ void GeometryGUI::updateCreationInfo()
   // pass creation info of geomObj to myCreationInfoWdg
 
   if ( myCreationInfoWdg ) {
-    QPixmap icon;
-    QString operationName;
-    myCreationInfoWdg->setOperation( icon, operationName );
 
+    GEOM::CreationInformationSeq_var info;
     try {
       OCC_CATCH_SIGNALS;
-      GEOM::CreationInformation_var info = geomObj->GetCreationInformation();
-      if ( &info.in() ) {
-        SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
-        QString name = info->operationName.in();
-        if ( !name.isEmpty() ) {
-         
-         QString plugin_name;
-          for ( size_t i = 0; i < info->params.length(); ++i ) {
-            myCreationInfoWdg->addParam( info->params[i].name.in(),
-                                         info->params[i].value.in() );
-            QString value = info->params[i].name.in();
-           if( value == PLUGIN_NAME ) {
-             plugin_name = info->params[i].value.in();
-           }
-         }
-         QString prefix = plugin_name.isEmpty() ? "GEOM" : plugin_name;
-          icon = resMgr->loadPixmap( prefix, tr( ("ICO_"+name).toLatin1().constData() ), false );
-          operationName = tr( ("MEN_"+name).toLatin1().constData() );
-          if ( operationName.startsWith( "MEN_" ))
-            operationName = name; // no translation
-          myCreationInfoWdg->setOperation( icon, operationName );
-        }
-      }
+      info = geomObj->GetCreationInformation();
     }
     catch (...) {
     }
+    myCreationInfoWdg->setInfo( info );
   }
 }
 
@@ -2304,7 +2281,7 @@ void GeometryGUI::createPreferences()
                       LightApp_Preferences::Selector, "Geometry", "toplevel_dm" );
 
   int transparency = addPreference( tr( "PREF_TRANSPARENCY" ), genGroup,
-                                   LightApp_Preferences::IntSpin, "Geometry", "transparency" );
+                                    LightApp_Preferences::IntSpin, "Geometry", "transparency" );
 
   int defl = addPreference( tr( "PREF_DEFLECTION" ), genGroup,
                             LightApp_Preferences::DblSpin, "Geometry", "deflection_coeff" );
index 5c0812760ea6b7ce172836291bc08dc63dedf26d..4d6a72f2abb8358fbea33ded131924e70bf312ed 100644 (file)
@@ -548,71 +548,6 @@ TopoDS_Shape GEOMImpl_BooleanDriver::performOperation
   if ( !GEOMUtils::CheckShape(aShape, true) && !GEOMUtils::FixShapeTolerance(aShape) )
     Standard_ConstructionError::Raise("Boolean operation aborted : non valid shape result");
 
-  // BEGIN: Mantis issue 0021060: always limit tolerance of BOP result
-  // 1. Get shape parameters for comparison
-  int nbTypes [TopAbs_SHAPE];
-  {
-    for (int iType = 0; iType < TopAbs_SHAPE; ++iType)
-      nbTypes[iType] = 0;
-    nbTypes[aShape.ShapeType()]++;
-
-    TopTools_MapOfShape aMapOfShape;
-    aMapOfShape.Add(aShape);
-    TopTools_ListOfShape aListOfShape;
-    aListOfShape.Append(aShape);
-
-    TopTools_ListIteratorOfListOfShape itL (aListOfShape);
-    for (; itL.More(); itL.Next()) {
-      TopoDS_Iterator it (itL.Value());
-      for (; it.More(); it.Next()) {
-        TopoDS_Shape s = it.Value();
-        if (aMapOfShape.Add(s)) {
-          aListOfShape.Append(s);
-          nbTypes[s.ShapeType()]++;
-        }
-      }
-    }
-  }
-
-  // 2. Limit tolerance
-  TopoDS_Shape aShapeCopy;
-  TColStd_IndexedDataMapOfTransientTransient aMapTShapes;
-  TNaming_CopyShape::CopyTool(aShape, aMapTShapes, aShapeCopy);
-
-  if ( GEOMUtils::FixShapeTolerance(aShapeCopy, true) ) {
-    int iType, nbTypesCopy [TopAbs_SHAPE];
-
-    for (iType = 0; iType < TopAbs_SHAPE; ++iType)
-      nbTypesCopy[iType] = 0;
-    nbTypesCopy[aShapeCopy.ShapeType()]++;
-
-    TopTools_MapOfShape aMapOfShape;
-    aMapOfShape.Add(aShapeCopy);
-    TopTools_ListOfShape aListOfShape;
-    aListOfShape.Append(aShapeCopy);
-
-    TopTools_ListIteratorOfListOfShape itL (aListOfShape);
-    for (; itL.More(); itL.Next()) {
-      TopoDS_Iterator it (itL.Value());
-      for (; it.More(); it.Next()) {
-        TopoDS_Shape s = it.Value();
-        if (aMapOfShape.Add(s)) {
-          aListOfShape.Append(s);
-          nbTypesCopy[s.ShapeType()]++;
-        }
-      }
-    }
-
-    bool isEqual = true;
-    for (iType = 0; iType < TopAbs_SHAPE && isEqual; ++iType) {
-      if (nbTypes[iType] != nbTypesCopy[iType])
-        isEqual = false;
-    }
-    if (isEqual)
-      aShape = aShapeCopy;
-  }
-  // END: Mantis issue 0021060
-
   return aShape;
 }
 
old mode 100755 (executable)
new mode 100644 (file)
index 63a21d8..460f105
@@ -41,6 +41,7 @@
 
 #include <Standard_ConstructionError.hxx>
 #include <Precision.hxx>
+#include <gp_Pln.hxx>
 #include <gp_Pnt.hxx>
 #include <gp_Vec.hxx>
 #include <gp_Circ.hxx>
@@ -91,12 +92,15 @@ Standard_Integer GEOMImpl_DiskDriver::Execute(TFunction_Logbook& log) const
       TopExp::Vertices(anE, V1, V2, Standard_True);
       if (!V1.IsNull() && !V2.IsNull()) {
         gp_Vec aV (BRep_Tool::Pnt(V1), BRep_Tool::Pnt(V2));
-        gp_Ax2 anAxes (aP, -aV);
-        gp_Circ aCirc (anAxes, aCI.GetRadius());
+        gp_Ax2 anAxes (aP, aV);
+        gp_Ax3 anAxes3(anAxes);
+        gp_Pln aPln(anAxes3);
+        gp_Ax2 anAxes1(aP, -aV);
+        gp_Circ aCirc (anAxes1, aCI.GetRadius());
         TopoDS_Shape aCircle = BRepBuilderAPI_MakeEdge(aCirc).Edge();
         BRepBuilderAPI_MakeWire MW;
         MW.Add(TopoDS::Edge(aCircle));
-        BRepBuilderAPI_MakeFace MF (MW, Standard_False);
+        BRepBuilderAPI_MakeFace MF (aPln, MW);
         aShape = MF.Shape();
       }
     }
@@ -121,10 +125,14 @@ Standard_Integer GEOMImpl_DiskDriver::Execute(TFunction_Logbook& log) const
       if (gp_Vec(aP1, aP2).IsParallel(gp_Vec(aP1, aP3), Precision::Angular()))
         Standard_ConstructionError::Raise("Disk creation aborted: points lay on one line");
       Handle(Geom_Circle) aCirc = GC_MakeCircle(aP3, aP2, aP1).Value();
+      gp_Circ aGpCirc = aCirc->Circ();
+      gp_Ax2 anAxes = aGpCirc.Position();
+      gp_Ax3 anAxes3(anAxes.Location(), -anAxes.Direction());
+      gp_Pln aPln(anAxes3);
       TopoDS_Shape aCircle = BRepBuilderAPI_MakeEdge(aCirc).Edge();
       BRepBuilderAPI_MakeWire MW;
       MW.Add(TopoDS::Edge(aCircle));
-      BRepBuilderAPI_MakeFace MF (MW, Standard_False);
+      BRepBuilderAPI_MakeFace MF (aPln, MW);
       aShape = MF.Shape();
     }  
   }
@@ -139,12 +147,15 @@ Standard_Integer GEOMImpl_DiskDriver::Execute(TFunction_Logbook& log) const
     else if (anOrient == 3)
       aV = gp::DY();
 
-    gp_Ax2 anAxes (aP, -aV);
-    gp_Circ aCirc (anAxes, aCI.GetRadius());
+    gp_Ax2 anAxes (aP, aV);
+    gp_Ax2 anAxes1(aP, -aV);
+    gp_Ax3 anAxes3(anAxes);
+    gp_Pln aPln(anAxes3);
+    gp_Circ aCirc (anAxes1, aCI.GetRadius());
     TopoDS_Shape aCircle = BRepBuilderAPI_MakeEdge(aCirc).Edge();
     BRepBuilderAPI_MakeWire MW;
     MW.Add(TopoDS::Edge(aCircle));
-    BRepBuilderAPI_MakeFace MF (MW, Standard_False);
+    BRepBuilderAPI_MakeFace MF (aPln, MW);
     aShape = MF.Shape();
   }
    else {
index 434f0289af14bdbbd38d5d2d8eac21613333c12d..96c30e6a67f94b21a21622fe510b5f51715d4dcd 100644 (file)
@@ -83,6 +83,20 @@ GetCreationInformation(std::string&             theOperationName,
     AddParam( theParams, "Step", data.GetStepID() );
     AddParam( theParams, "Stamp", data.GetStepStamp() );
   }
+  else if ( funType == GEOM_Field::FUN_CHANGE_COMP_NAMES )
+  {
+    theOperationName = "Change component names";
+  }
+  else if ( funType == GEOM_Field::FUN_CHANGE_STEP_STAMP )
+  {
+    theOperationName = "Change stamp";
+    AddParam( theParams, "Stamp", data.GetStepStamp() );
+  }
+  else if ( funType == GEOM_Field::FUN_CHANGE_VALUE )
+  {
+    theOperationName = "FIELD_EDIT";//"Change values";
+    AddParam( theParams, "Values", "..." );
+  }
   else
   {
     return false;
index 9fc6024d1fb12f362cd88384b293c2a816e5c3b5..a5162534e261c3bcde646cdb9e60681f40cefbdb 100644 (file)
 
 #include "GEOM_Function.hxx"
 
-#define PROJECTION_ARG_SHAPE            1
-#define PROJECTION_ARG_RADIUS           2
-#define PROJECTION_ARG_START_ANGLE      3
-#define PROJECTION_ARG_ANGLE_LENGTH     4
+#define PROJCYL_ARG_SHAPE            1
+#define PROJCYL_ARG_RADIUS           2
+#define PROJCYL_ARG_START_ANGLE      3
+#define PROJCYL_ARG_ANGLE_LENGTH     4
 
 class GEOMImpl_IProjOnCyl
 {
@@ -37,22 +37,22 @@ public:
   GEOMImpl_IProjOnCyl(Handle(GEOM_Function) theFunction): _func(theFunction) {}
 
   void SetShape       (const Handle(GEOM_Function) &theShape)
-          { _func->SetReference(PROJECTION_ARG_SHAPE,   theShape); }
+          { _func->SetReference(PROJCYL_ARG_SHAPE,   theShape); }
   void SetRadius      (const Standard_Real          theRadius)
-          { _func->SetReal(PROJECTION_ARG_RADIUS,       theRadius); }
+          { _func->SetReal(PROJCYL_ARG_RADIUS,       theRadius); }
   void SetStartAngle  (const Standard_Real          theStartAngle)
-          { _func->SetReal(PROJECTION_ARG_START_ANGLE,  theStartAngle); }
+          { _func->SetReal(PROJCYL_ARG_START_ANGLE,  theStartAngle); }
   void SetAngleLength (const Standard_Real          theAngleLength)
-          { _func->SetReal(PROJECTION_ARG_ANGLE_LENGTH, theAngleLength); }
+          { _func->SetReal(PROJCYL_ARG_ANGLE_LENGTH, theAngleLength); }
 
   Handle(GEOM_Function) GetShape()
-          { return _func->GetReference(PROJECTION_ARG_SHAPE); }
+          { return _func->GetReference(PROJCYL_ARG_SHAPE); }
   Standard_Real         GetRadius()
-          { return _func->GetReal(PROJECTION_ARG_RADIUS ); }
+          { return _func->GetReal(PROJCYL_ARG_RADIUS ); }
   Standard_Real         GetStartAngle()
-          { return _func->GetReal(PROJECTION_ARG_START_ANGLE ); }
+          { return _func->GetReal(PROJCYL_ARG_START_ANGLE ); }
   Standard_Real         GetAngleLength()
-          { return _func->GetReal(PROJECTION_ARG_ANGLE_LENGTH ); }
+          { return _func->GetReal(PROJCYL_ARG_ANGLE_LENGTH ); }
 
  private:
 
index 2afb575f36f9bb288a3826790e06430d38927ce4..affb64b9c81492c67a5eafd1de99b9f626d8dd3c 100644 (file)
@@ -2787,9 +2787,31 @@ Handle(TColStd_HSequenceOfInteger)
     return aSeqOfIDs;
   }
 
+  // Compute classification tolerance.
+  TopTools_IndexedMapOfShape aMapVtx;
+  Standard_Real              aTol = Precision::Confusion();
+
+  TopExp::MapShapes(aShape, TopAbs_VERTEX, aMapVtx);
+
+  Standard_Integer i;
+  Standard_Integer aNbVtx = aMapVtx.Extent();
+
+  for (i = 1; i <= aNbVtx; ++i) {
+    const TopoDS_Vertex aVtx    = TopoDS::Vertex(aMapVtx.FindKey(i));
+    const Standard_Real aVtxTol = BRep_Tool::Tolerance(aVtx);
+
+    if (aTol < aVtxTol) {
+      aTol = aVtxTol;
+    }
+  }
+
+  // Bound the tolerance value.
+  if (aTol > 0.0001) {
+    aTol = 0.0001;
+  }
+
   // Call algo
   GEOMAlgo_FinderShapeOn2 aFinder;
-  Standard_Real aTol = 0.0001; // default value
 
   Handle(GEOMAlgo_ClsfSolid) aClsfSolid = new GEOMAlgo_ClsfSolid;
   aClsfSolid->SetShape(aCheckShape);
index da393a67edf988bda4bff539398ff33a0b79f6ac..112966a3f276b1f5547febd55111bccb3bf11e86 100644 (file)
@@ -210,7 +210,7 @@ GetCreationInformation(std::string&             theOperationName,
     break;
   case OFFSET_THICKENING:
   case OFFSET_THICKENING_COPY:
-    theOperationName = "MakeThickening";
+    theOperationName = "THICKNESS";
     AddParam( theParams, "Object", aCI.GetShape() );
     AddParam( theParams, "Offset", aCI.GetParam() ? -aCI.GetValue() : aCI.GetValue() );
     {
index d226969c88619e2cb3432b6e5d77d08e4ee745fe..0c34bc8c26570c689a3dc37fbcb9bb5dc3b0b483 100644 (file)
@@ -473,41 +473,43 @@ GetCreationInformation(std::string&             theOperationName,
 
   switch ( aType ) {
   case PROJECTION_COPY:
-    {
-      GEOMImpl_IMirror aCI( function );
+  {
+    GEOMImpl_IMirror aCI( function );
 
-      AddParam( theParams, "Source object", aCI.GetOriginal() );
-      AddParam( theParams, "Target face", aCI.GetPlane() );
-      break;
-    }
+    AddParam( theParams, "Source object", aCI.GetOriginal() );
+    AddParam( theParams, "Target face", aCI.GetPlane() );
+    break;
+  }
   case PROJECTION_ON_WIRE:
-    {
-      GEOMImpl_IProjection aProj (function);
+  {
+    GEOMImpl_IProjection aProj (function);
 
-      AddParam(theParams, "Point", aProj.GetPoint());
-      AddParam(theParams, "Shape", aProj.GetShape());
+    AddParam(theParams, "Point", aProj.GetPoint());
+    AddParam(theParams, "Shape", aProj.GetShape());
 
-      break;
-    }
+    break;
+  }
   case PROJECTION_ON_CYLINDER:
-    {
-      GEOMImpl_IProjOnCyl aProj (function);
-      const Standard_Real aLengthAngle = aProj.GetAngleLength();
+  {
+    theOperationName = "PROJ_ON_CYL";
 
-      AddParam(theParams, "Shape",        aProj.GetShape());
-      AddParam(theParams, "Radius",       aProj.GetRadius());
-      AddParam(theParams, "Start angle",  aProj.GetStartAngle());
+    GEOMImpl_IProjOnCyl aProj (function);
+    const Standard_Real aLengthAngle = aProj.GetAngleLength();
 
-      if (aLengthAngle >= 0.) {
-        AddParam(theParams, "Length angle", aLengthAngle);
-      }
+    AddParam(theParams, "Shape",        aProj.GetShape());
+    AddParam(theParams, "Radius",       aProj.GetRadius());
+    AddParam(theParams, "Start angle",  aProj.GetStartAngle());
 
-      break;
+    if (aLengthAngle >= 0.) {
+      AddParam(theParams, "Length angle", aLengthAngle);
     }
+
+    break;
+  }
   default:
     return false;
   }
-  
+
   return true;
 }
 
@@ -661,7 +663,7 @@ TopoDS_Shape GEOMImpl_ProjectionDriver::projectOnCylinder
       GEOMUtils::Handle(HTrsfCurve2d) aTrsfCurve =
         new GEOMUtils::HTrsfCurve2d(aCurve, aPar[0], aPar[1], aTrsf2d);
       Approx_Curve2d                  aConv (aTrsfCurve, aPar[0], aPar[1],
-                                                        aUResol, aVResol, GeomAbs_C1,
+                                                         aUResol, aVResol, GeomAbs_C1,
                                              9, 1000);
 
       if (!aConv.IsDone() && !aConv.HasResult()) {
index 8ad9f43494854ec3356a7809a157fccbe7d5c03f..933ad9eea273c2c693c4ee3250f12c6d401d06be 100644 (file)
@@ -59,6 +59,8 @@
 #include <ShapeAnalysis.hxx>
 #include <ShapeAnalysis_FreeBounds.hxx>
 
+#include <TNaming_CopyShape.hxx>
+
 #include <TopAbs.hxx>
 #include <TopExp.hxx>
 #include <TopExp_Explorer.hxx>
@@ -86,6 +88,7 @@
 #include <GeomConvert.hxx>
 #include <GeomLProp.hxx>
 
+#include <TColStd_IndexedDataMapOfTransientTransient.hxx>
 #include <TColStd_SequenceOfReal.hxx>
 #include <TColStd_HSequenceOfTransient.hxx>
 #include <TColStd_Array1OfReal.hxx>
@@ -208,6 +211,7 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(TFunction_Logbook& log) const
     // 1. Extract all edges from the given arguments
     TopTools_MapOfShape aMapEdges;
     Handle(TopTools_HSequenceOfShape) aSeqEdgesIn = new TopTools_HSequenceOfShape;
+    TColStd_IndexedDataMapOfTransientTransient aMapTShapes;
 
     for (ind = 1; ind <= nbshapes; ind++) {
       Handle(GEOM_Function) aRefSh_i = Handle(GEOM_Function)::DownCast(aShapes->Value(ind));
@@ -216,7 +220,12 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(TFunction_Logbook& log) const
       TopExp_Explorer anExpE_i (aSh_i, TopAbs_EDGE);
       for (; anExpE_i.More(); anExpE_i.Next()) {
         if (aMapEdges.Add(anExpE_i.Current())) {
-          aSeqEdgesIn->Append(anExpE_i.Current());
+          // Copy the original shape.
+          TopoDS_Shape aShapeCopy;
+
+          TNaming_CopyShape::CopyTool
+            (anExpE_i.Current(), aMapTShapes, aShapeCopy);
+          aSeqEdgesIn->Append(aShapeCopy);
         }
       }
     }
index 4b15e32773baadc44b5c7c23891aa10ca3c51f30..c4c3b509dd8b93f7250e206c549deec04154f094 100644 (file)
@@ -55,7 +55,7 @@
 // Below macro specifies how the closed point set is processed (issue 0022885).
 // See below for more information.
 // Currently solution 4 is chosen!
-#define BSPLINE_PROCESS_CLOSED_PNTSET 4
+#define BSPLINE_PROCESS_CLOSED_PNTSET 2
 
 namespace
 {
@@ -152,6 +152,8 @@ Standard_Integer GEOMImpl_SplineDriver::Execute(TFunction_Logbook& log) const
 
     // reorder points if required (bspline only)
     if ((aType == SPLINE_INTERPOLATION || aType == SPLINE_INTERPOL_TANGENTS) && aCI.GetDoReordering()) {
+      int nbDup = 0;
+      gp_Pnt pPrev = points->Value(1);
       for (int i = 1; i < length - 1; i++) {
         gp_Pnt pi = points->Value(i);
         int nearest = 0;
@@ -175,6 +177,22 @@ Standard_Integer GEOMImpl_SplineDriver::Execute(TFunction_Logbook& log) const
             points->SetValue(j, points->Value(j-1));
           points->SetValue(i+1, p);
         }
+        if ( pPrev.Distance(points->Value(i+1)) <= Precision::Confusion() )
+          nbDup++;
+        else
+          pPrev = points->Value(i+1);
+      }
+      if ( nbDup > 0 ) {
+        Handle(TColgp_HArray1OfPnt) tmpPoints = new TColgp_HArray1OfPnt(1, length-nbDup);
+        int j = 1;
+        for (int i = 1; i <= length; i++) {
+          if (i == 1 || pPrev.Distance(points->Value(i)) > Precision::Confusion() ) {
+            tmpPoints->SetValue(j++, points->Value(i));
+            pPrev = points->Value(i);
+          }
+        }
+        points = tmpPoints;
+        length = points->Length();
       }
     } // end of reordering
 
index 976d29690f2cbc1174464f2b131c5f6e7c039ed0..560f43aa2971c16ec17078e5d910ef8a8b0622e7 100644 (file)
@@ -1,7 +1,4 @@
-// Copyright (C) 2007-2014  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
+// Copyright (C) 2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index d37b7f2934c914e701956a2133780524afd2bb23..510fdcb661a3b5cbd9e5640a64ad378ba9ed0849 100644 (file)
@@ -1,7 +1,4 @@
-// Copyright (C) 2007-2014  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
+// Copyright (C) 2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index 4938d497907f568bbead03f529f5a91e4a57c667..f96cb9a8ae6fe2eff861f7ecdf4c6929cb1c3e46 100644 (file)
@@ -1,7 +1,4 @@
-// Copyright (C) 2007-2014  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
+// Copyright (C) 2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index c287f90d883f68dabe558dbe185dcd61d9675271..4bb436650f220a845f86550daf69609646e05999 100644 (file)
@@ -1,7 +1,4 @@
-// Copyright (C) 2007-2014  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
+// Copyright (C) 2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index 6793bb13272a9c248ed8ce2f0f56b6f54d3ddf68..f81acacb8e63efdff9882f45c0f64623e9a9d496 100644 (file)
@@ -1,7 +1,4 @@
-// Copyright (C) 2007-2014  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
+// Copyright (C) 2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index b3bd194330456fb3139ff21ca6390ce9d39268a5..f0d94bbcad0d6583356049e3e781f62edc124692 100644 (file)
@@ -1,7 +1,4 @@
-// Copyright (C) 2007-2014  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
+// Copyright (C) 2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
index 5e77c3a45bc2a042bda6ba73aea74ee8011caeba..e16ef594070c023138eecf2776c53eab762bd34f 100644 (file)
@@ -268,50 +268,59 @@ char* GEOM_BaseObject_i::GetParameters()
  */
 //================================================================================
 
-GEOM::CreationInformation* GEOM_BaseObject_i::GetCreationInformation()
+GEOM::CreationInformationSeq* GEOM_BaseObject_i::GetCreationInformation()
 {
-  GEOM::CreationInformation_var info = new GEOM::CreationInformation;
+  GEOM::CreationInformationSeq_var info = new GEOM::CreationInformationSeq();
 
-  Handle(GEOM_BaseDriver) driver =
-    Handle(GEOM_BaseDriver)::DownCast( _impl->GetCreationDriver() );
-  if ( !driver.IsNull() )
+  int nbFun = _impl->GetNbFunctions();
+  info->length( nbFun );
+  int nbI = 0;
+  for ( int i = 1; i <= nbFun; ++i )
   {
-    std::vector<GEOM_Param> params;
-    std::string             operationName;
-    try
+    Handle(GEOM_BaseDriver) driver =
+      Handle(GEOM_BaseDriver)::DownCast( _impl->GetCreationDriver( i ));
+    if ( !driver.IsNull() )
     {
-      OCC_CATCH_SIGNALS;
-      if ( driver->GetCreationInformation( operationName, params ))
+      std::vector<GEOM_Param> params;
+      std::string             operationName;
+      try
       {
-        info->operationName = operationName.c_str();
-        info->params.length( params.size() );
-        for ( size_t i = 0; i < params.size(); ++i )
+        OCC_CATCH_SIGNALS;
+        if ( driver->GetCreationInformation( operationName, params ))
         {
-          info->params[i].name  = params[i].name.c_str();
-          info->params[i].value = params[i].value.c_str();
+          info[nbI].operationName = operationName.c_str();
+          info[nbI].params.length( params.size() );
+          for ( size_t i = 0; i < params.size(); ++i )
+          {
+            info[nbI].params[i].name  = params[i].name.c_str();
+            info[nbI].params[i].value = params[i].value.c_str();
+          }
+          nbI++;
         }
-      }
 #ifdef _DEBUG_
-      if ( operationName.empty() )
-      {
-        cout << endl << endl << endl << "Warning: " << endl << "Dear developer!!!" << endl
-             << "  Consider implementing "
-             <<    typeid(*(driver.operator->())).name() << "::GetCreationInformation() " << endl
-             << "  for the case of operation which has created '" << GetName() << "' object" << endl
-             << "PLEEEEEEEASE" << endl
-             << "\tPLEEEEEEEASE" << endl
-             << "\t\tPLEEEEEEEASE" << endl
-             << "\t\t\tPLEEEEEEEASE" << endl
-             << "\t\t\t\tPLEEEEEEEASE" << endl;
-      }
+        if ( operationName.empty() )
+        {
+          cout << endl << endl << endl << "Warning: " << endl << "Dear developer!!!" << endl
+               << "  Consider implementing "
+               <<    typeid(*(driver.operator->())).name() << "::GetCreationInformation() " << endl
+               << "  for the case of operation which has created '" << GetName() << "' object" << endl
+               << "PLEEEEEEEASE" << endl
+               << "\tPLEEEEEEEASE" << endl
+               << "\t\tPLEEEEEEEASE" << endl
+               << "\t\t\tPLEEEEEEEASE" << endl
+               << "\t\t\t\tPLEEEEEEEASE" << endl;
+        }
 #endif
-    }
-    catch(...)
-    {
+      }
+      catch(...)
+      {
 #ifdef _DEBUG_
-      cout << "Ecxeption in GEOM_BaseObject_i::GetCreationInformation()" << endl;
+        cout << "Ecxeption in GEOM_BaseObject_i::GetCreationInformation()" << endl;
 #endif
+      }
     }
   }
+  info->length( nbI );
+
   return info._retn();
 }
index e7988fdf37a7d93765a3eefd9e7580a1932c5d0e..aeb291ca7e8c28f5a542716f8ef9845ec832f29e 100644 (file)
@@ -66,7 +66,7 @@ class GEOM_I_EXPORT GEOM_BaseObject_i : public virtual POA_GEOM::GEOM_BaseObject
 
   virtual char* GetParameters();
 
-  virtual GEOM::CreationInformation* GetCreationInformation();
+  virtual GEOM::CreationInformationSeq* GetCreationInformation();
 
   Handle(GEOM_BaseObject) GetImpl() { return _impl; }
 
index 3c6a97386e0bdcfd501b3419ecf1141d10138b82..7a824de3510f6afc92d178e0751668ad3bb9ced5 100755 (executable)
@@ -320,24 +320,25 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::PublishInStudy(SALOMEDS::Study_ptr   theStudy,
     aResultSO->SetAttrString("AttributePixMap","ICON_OBJBROWSER_LCS");
     aNamePrefix = "LocalCS_";
   }  else if ( mytype >= USER_TYPE_EX ) {
-      char buf[20];
-      sprintf( buf, "%d", aBaseObj->GetType() );
-      GEOM::CreationInformation_var info = aBaseObj->GetCreationInformation();
-      std::string plgId;
-      for ( size_t i = 0; i < info->params.length(); ++i ) {
-       std::string param_name = info->params[i].name.in();
-       std::string param_value = info->params[i].value.in();   
-       if( param_name == PLUGIN_NAME) {
-         plgId = param_value;
-         break;
-       }
-      }
-      if(plgId.length() > 0 ) {
-       plgId += "::";
+    char buf[20];
+    sprintf( buf, "%d", aBaseObj->GetType() );
+    GEOM::CreationInformationSeq_var infoSeq = aBaseObj->GetCreationInformation();
+    std::string plgId;
+    for ( size_t j = 0; j < infoSeq->length(); ++j )
+      for ( size_t i = 0; i < infoSeq[j].params.length(); ++i ) {
+       std::string param_name  = infoSeq[j].params[i].name.in();
+       std::string param_value = infoSeq[j].params[i].value.in();
+        if( param_name == PLUGIN_NAME) {
+          plgId = param_value;
+          break;
+        }
       }
-      plgId +="ICON_OBJBROWSER_"; 
-      plgId += buf;
-      aResultSO->SetAttrString("AttributePixMap",plgId.c_str());
+    if(plgId.length() > 0 ) {
+      plgId += "::";
+    }
+    plgId +="ICON_OBJBROWSER_";
+    plgId += buf;
+    aResultSO->SetAttrString("AttributePixMap",plgId.c_str());
   } else if ( mytype > USER_TYPE ) {
     char buf[20];
     sprintf( buf, "%d", aBaseObj->GetType() );
index e2bf0b10bd64ea33019a383e1c9d41a166f6aa13..f932a632a2147d3fdb7c85af77f1f971c30c5b88 100644 (file)
@@ -3055,10 +3055,12 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
             theR,theH,theA,Parameters = ParseParameters(theR, theH, theA)
            if flag:
                 theA = theA*math.pi/180.
-            anObj = self.PrimOp.MakeCylinderPntVecRHA(thePnt, theAxis, theR, theH, theA)
-            RaiseIfFailed("MakeCylinderPntVecRHA", self.PrimOp)
-            anObj.SetParameters(Parameters)
-            self._autoPublish(anObj, theName, "cylinder")
+           if theA<=0. or theA>=2*math.pi:
+             raise ValueError("The angle parameter should be strictly between 0 and 2*pi.")
+           anObj = self.PrimOp.MakeCylinderPntVecRHA(thePnt, theAxis, theR, theH, theA)
+           RaiseIfFailed("MakeCylinderPntVecRHA", self.PrimOp)
+           anObj.SetParameters(Parameters)
+           self._autoPublish(anObj, theName, "cylinder")
             return anObj
 
         ## Create a cylinder with given radius and height at
@@ -3136,6 +3138,8 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
             theR,theH,theA,Parameters = ParseParameters(theR, theH, theA)
             if flag:
                 theA = theA*math.pi/180.
+            if theA<=0. or theA>=2*math.pi:
+             raise ValueError("The angle parameter should be strictly between 0 and 2*pi.")
             anObj = self.PrimOp.MakeCylinderRHA(theR, theH, theA)
             RaiseIfFailed("MakeCylinderRHA", self.PrimOp)
             anObj.SetParameters(Parameters)
@@ -4472,7 +4476,7 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
         # end of l3_complex
         ## @}
 
-        ## @addtogroup l3_advanced
+        ## @addtogroup l3_basic_go
         ## @{
 
         ## Create a linear edge with specified ends.
@@ -4904,7 +4908,7 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
             self._autoPublish(anObj, theName, "solid")
             return anObj
 
-        # end of l3_advanced
+        # end of l3_basic_go
         ## @}
 
         ## @addtogroup l2_measure
@@ -7375,7 +7379,7 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
             Returns:
                 New GEOM.GEOM_Object, containing copies of theShapes without coincident faces.
             """
-            anObj = self.ShapesOp.MakeGlueFacesByList(ToList(theShapes), theTolerance, theFaces,
+            anObj = self.ShapesOp.MakeGlueFacesByList(ToList(theShapes), theTolerance, ToList(theFaces),
                                                       doKeepNonSolids, doGlueAllEdges)
             if anObj is None:
                 raise RuntimeError, "MakeGlueFacesByList : " + self.ShapesOp.GetErrorCode()
@@ -9161,7 +9165,7 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
             self._autoPublish(anObj, theName, "projection")
             return anObj
 
-        ## Create a projection projection of the given point on a wire or an edge.
+        ## Create a projection of the given point on a wire or an edge.
         #  If there are no solutions or there are 2 or more solutions It throws an
         #  exception.
         #  @param thePoint the point to be projected.
@@ -9179,7 +9183,7 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
         @ManageTransactions("TrsfOp")
         def MakeProjectionOnWire(self, thePoint, theWire, theName=None):
             """
-            Create a projection projection of the given point on a wire or an edge.
+            Create a projection of the given point on a wire or an edge.
             If there are no solutions or there are 2 or more solutions It throws an
             exception.
 
@@ -10966,14 +10970,17 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
             return aDict
 
         def GetCreationInformation(self, theShape):
-            info = theShape.GetCreationInformation()
-            # operationName
-            opName = info.operationName
-            if not opName: opName = "no info available"
-            res = "Operation: " + opName
-            # parameters
-            for parVal in info.params:
-                res += " \n %s = %s" % ( parVal.name, parVal.value )
+            res = ''
+            infos = theShape.GetCreationInformation()
+            for info in infos:
+                # operationName
+                opName = info.operationName
+                if not opName: opName = "no info available"
+                if res: res += "\n"
+                res += "Operation: " + opName
+                # parameters
+                for parVal in info.params:
+                    res += "\n \t%s = %s" % ( parVal.name, parVal.value )
             return res
 
         ## Get a point, situated at the centre of mass of theShape.
index 5f7afb3a1b54cb600e3bb14c571baa0a4dfb0205..b60f1dde6b0d767bff471d15b103adf154ae4376 100755 (executable)
@@ -50,6 +50,10 @@ ADD_DEFINITIONS(
   ${QT_DEFINITIONS}
   )
 
+IF(WIN32)
+  ADD_DEFINITIONS(-DNOGDI)
+ENDIF(WIN32)
+
 # libraries to link to
 SET(_link_LIBRARIES
   GEOMObject
index a13977ef6c54257a6ed266efc28148197297a284..a13236cd2930b0302f53b54b43efcc2dedb175c9 100644 (file)
@@ -443,11 +443,17 @@ void GroupGUI_GroupDlg::SetEditCurrentArgument()
   if (send == mySelBtn) {
     myEditCurrentArgument = myMainName;
     myShape2Name->setText("");
+    mySelBtn->setDown(true);
+    mySelBtn2->setDown(false);
   }
   else if (send == mySelBtn2 || sender() == myRestrictGroup) {
     setInPlaceObj(GEOM::GEOM_Object::_nil());
     myShape2Name->setText("");
-    if (subSelectionWay() != ALL_SUBSHAPES) {
+    if ( send == mySelBtn2 ) {
+      mySelBtn2->setDown(true);
+      mySelBtn->setDown(false);
+    }
+  if (subSelectionWay() != ALL_SUBSHAPES) {
       myEditCurrentArgument = myShape2Name;
     }
     else {
@@ -455,7 +461,11 @@ void GroupGUI_GroupDlg::SetEditCurrentArgument()
     }
   }
 
-  activateSelection();
+  //  activateSelection();
+  if(myEditCurrentArgument) {
+    myEditCurrentArgument->setFocus();
+    send->setDown(true);
+  }
 
   updateState();
 }
@@ -562,6 +572,9 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
 {
   if (subSelectionWay() != ALL_SUBSHAPES && myEditCurrentArgument == myShape2Name) {
     onGetInPlace();
+    if( !myInPlaceObj->_is_nil() ) {
+      mySelBtn2->setDown(false);
+    }
     return;
   }
 
@@ -586,6 +599,7 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
         }
         myMainObj = anObj;
         if (!CORBA::is_nil(myMainObj)) {
+         mySelBtn->setDown(false);
           SALOME_View* view = GEOM_Displayer::GetActiveView();
           if (view) {
             CORBA::String_var aMainEntry = myMainObj->GetStudyEntry();
index e7f66919eaaea9337dbefb3e3c8ee424e92ef277..ef4817a65c134b866525b07a79170ccaee803e55 100644 (file)
@@ -32,7 +32,7 @@
     <name>IGESPlugin_GUI</name>
     <message>
       <source>IGES_FILES</source>
-      <translation>IGESファイル</translation>
+      <translation>IGES ファイル ( *.iges *.igs )</translation>
     </message>
     <message>
       <source>EXPORT_TITLE</source>
index 370204f943b527def41a9b8ff8f2fef79723f211..4618f9c808b1dce56a0985731f035d63b5020862 100644 (file)
@@ -135,7 +135,7 @@ MeasureGUI_ManageDimensionsDlg::MeasureGUI_ManageDimensionsDlg( GeometryGUI* the
   {
     myObjectSelector->PushButton1->click();
   }
-
+  myIsNeedRedisplay = false;
   setHelpFileName("managing_dimensions_page.html");
 }
 
@@ -809,7 +809,9 @@ void MeasureGUI_ManageDimensionsDlg::OnFinish()
                              GEOM::propertyName( GEOM::Dimensions ),
                              QVariant() );
 
-  redisplay( myEditObject.get() );
+  if ( myIsNeedRedisplay ) {
+    redisplay( myEditObject.get() );
+  }
   
   myGeomGUI->emitDimensionsUpdated( QString( myEditObject->GetStudyEntry() ) );
 }
@@ -894,8 +896,8 @@ void MeasureGUI_ManageDimensionsDlg::SetEditObject( const GEOM::GeomObjPtr& theO
 
   if ( myEditObject.isNull() )
   {
+    myDimensionView->TreeWidget->clear();
     myDimensionView->setEnabled( false );
-
     return;
   }
 
@@ -960,8 +962,6 @@ void MeasureGUI_ManageDimensionsDlg::RestoreState()
                              myEditObject->GetStudyEntry(),
                              GEOM::propertyName( GEOM::Dimensions ),
                              QVariant() );
-
-  RedisplayObject();
 }
 
 //=================================================================================
@@ -1112,8 +1112,8 @@ bool MeasureGUI_ManageDimensionsDlg::AllowedToCancelChanges()
                                             tr( "WRN_MSG_CHANGES_LOST" ),
                                             QMessageBox::Ok,
                                             QMessageBox::Cancel );
-
-  return aResponse == QMessageBox::Ok;
+  myIsNeedRedisplay = ( aResponse == QMessageBox::Ok );
+  return myIsNeedRedisplay;
 }
 
 //=================================================================================
index bed9d34650c77657dcb0c45c284336bf7ab54197..7fd6f0904e69d33f96f9afcaf3df00bf3a55eff5 100644 (file)
@@ -114,7 +114,7 @@ private:
 
 private:
   GEOM::GeomObjPtr                myEditObject;
-
+  bool                            myIsNeedRedisplay;
 private:
   DlgRef_1Sel*                    myObjectSelector;
   MeasureGUI_1TreeWidget_4Button* myDimensionView;
index 5415d5373d355dc4429a5323c72ae101f9b81aac..b2a0efa5ca671dbcf3b429e33bed898d6d2887cb 100644 (file)
@@ -109,7 +109,7 @@ static void getEntityOwners( const Handle(AIS_InteractiveObject)& theObj,
 
     for ( sel->Init(); sel->More(); sel->Next() ) {
 #if OCC_VERSION_LARGE > 0x06080100
-      const SelectMgr_HSensitiveEntity aHSenEntity = sel->Sensitive();
+      const Handle(SelectMgr_SensitiveEntity) aHSenEntity = sel->Sensitive();
       if( aHSenEntity.IsNull() )
         continue;
 
index 2cb53b8543f27248996dbc7b5f10278405f1216f..54cf54fe2b6ea07889c5e7eb89461eceece8ca92 100644 (file)
@@ -259,6 +259,7 @@ void GEOM_VTKTrihedron::SetSize( double theSize )
   aRes->AddInputConnection( aSrcZ->GetOutputPort() );
   
   myMapper->SetInputConnection( aRes->GetOutputPort() );
+  aRes->Update();
   SALOME_Actor::SetMapper( myMapper );
 
   aSrcX->Delete();
index 9149eee9f681658a690e6e7465d89734ae22bd47..fd30c9b4462be889ee3fa99ed287cf06e6ee7e9d 100644 (file)
@@ -411,7 +411,7 @@ bool PrimitiveGUI_CylinderDlg::isValid (QString& msg)
   {
     ok = GroupDimensions->SpinBox_DX->isValid( msg, !IsPreview() ) &&
          GroupDimensions->SpinBox_DY->isValid( msg, !IsPreview() ) &&
-         ( GroupDimensions->checkBox->isChecked() || GroupDimensions->SpinBox_DZ->isValid( msg, !IsPreview() ) );
+         ( !GroupDimensions->checkBox->isChecked() || GroupDimensions->SpinBox_DZ->isValid( msg, !IsPreview() ) );
     if ( GroupDimensions->checkBox->isChecked() &&
         ( GroupDimensions->SpinBox_DZ->value() <= 0. || GroupDimensions->SpinBox_DZ->value() >= 360. ) ) {
       msg += tr("GEOM_CYLINDER_ANGLE_ERR") + "\n";
index 0ad89b70846ff414dab287483b186b331c79696d..e3df32f8a66842b0e03c89a37e8b85c9f78f6986 100755 (executable)
@@ -959,6 +959,7 @@ void RepairGUI_ShapeProcessDlg::operatorChecked( QListWidgetItem * item )
 {
   if ( item && item->checkState() == Qt::Checked )
   {
+    item->setSelected(true);
     myStack->setCurrentIndex( myOpList->row( item ));
   }
   updateSelectAll();
index 1d8b70447987657b0c7e6908e3838c89c8f0de01..686db9ad48ba62b2a092955f46685e5c269763ab 100644 (file)
@@ -32,7 +32,7 @@
     <name>STEPPlugin_GUI</name>
     <message>
       <source>STEP_FILES</source>
-      <translation>STEPファイル</translation>
+      <translation>STEP ファイル ( *.step *.stp )</translation>
     </message>
     <message>
       <source>EXPORT_TITLE</source>
index da367eaf3eabad470dc847e11a5303898ad86df1..5054d2f6a31361be5ec1eaa1071b66e9545d81fe 100644 (file)
@@ -32,7 +32,7 @@
     <name>STLPlugin_GUI</name>
     <message>
       <source>STL_FILES</source>
-      <translation>STLファイル</translation>
+      <translation>STL ファイル( *.stl )</translation>
     </message>
     <message>
       <source>EXPORT_TITLE</source>
     </message>
     <message>
       <source>RELATIVE</source>
-      <translation type="unfinished">Relative</translation>
+      <translation>相対</translation>
     </message>
     <message>
       <source>DEFLECTION</source>
-      <translation type="unfinished">Deflection</translation>
+      <translation>たわみ</translation>
     </message>
   </context>
 </TS>
index 87944b0bb550ef1e8c1b549bb3b2bde422d57cd8..5736f4b5e8a0aaeb0339d12dee057ef15c5a90bd 100644 (file)
@@ -32,7 +32,7 @@
     <name>VTKPlugin_GUI</name>
     <message>
       <source>VTK_FILES</source>
-      <translation>VTKファイル</translation>
+      <translation>VTKファイル( *.vtk )</translation>
     </message>
     <message>
       <source>EXPORT_TITLE</source>
@@ -43,7 +43,7 @@
     <name>VTKPlugin_ExportDlg</name>
     <message>
       <source>DEFLECTION</source>
-      <translation type="unfinished">Deflection</translation>
+      <translation>たわみ</translation>
     </message>
   </context>
 </TS>
index 7d26ad27a09c447109f3b143a8f14c37ba39f2aa..4f340dbddfafc1186ce930923f41bf415a6fbd20 100644 (file)
@@ -5,27 +5,27 @@
     <name>@default</name>
     <message>
       <source>MEN_EXPORTXAO</source>
-      <translation>エクスポートしました。</translation>
+      <translation>XAOエクスポート</translation>
     </message>
     <message>
       <source>TOP_EXPORTXAO</source>
-      <translation>エクスポートしました。</translation>
+      <translation>XAOのエクスポート</translation>
     </message>
     <message>
       <source>STB_EXPORTXAO</source>
-      <translation>ソテーした形式でフォームをエクスポートします。</translation>
+      <translation>XAOのエクスポート</translation>
     </message>
     <message>
       <source>MEN_IMPORTXAO</source>
-      <translation>インポートしました。</translation>
+      <translation>XAOインポート</translation>
     </message>
     <message>
       <source>TOP_IMPORTXAO</source>
-      <translation>インポートしました。</translation>
+      <translation>XAOのインポート</translation>
     </message>
     <message>
       <source>STB_IMPORTXAO</source>
-      <translation>ソテーしたフォームをインポートします。</translation>
+      <translation>XAOのインポート</translation>
     </message>
     <message>
       <source>XAOPLUGIN_IMPORT_SELECT</source>
     </message>
     <message>
       <source>XAOPLUGIN_EXPORT_SELECT</source>
-      <translation>エクスポートしました。</translation>
+      <translation>XAOへのエクスポート</translation>
     </message>
     <message>
       <source>XAOPLUGIN_FILES</source>
-      <translation>ファイルした (*.xao)</translation>
+      <translation>XAO ファイル (*.xao)</translation>
     </message>
   </context>
   <context>
     <name>XAOPlugin_ExportDlg</name>
     <message>
       <source>XAOPLUGIN_EXPORT_TITLE</source>
-      <translation>エクスポートしました。</translation>
+      <translation>XAOエクスポート</translation>
     </message>
     <message>
       <source>XAOPLUGIN_EXPORTXAO</source>
-      <translation>エクスポートしました。</translation>
+      <translation>XAOエクスポート</translation>
     </message>
     <message>
       <source>XAOPLUGIN_EXPORT_INGSHAPE</source>
     <name>XAOPlugin_ImportDlg</name>
     <message>
       <source>XAOPLUGIN_IMPORT_TITLE</source>
-      <translation>インポートしました。</translation>
+      <translation>XAOインポート</translation>
     </message>
     <message>
       <source>XAOPLUGIN_IMPORTXAO</source>
-      <translation>インポートしました。</translation>
+      <translation>XAOインポート</translation>
     </message>
     <message>
       <source>XAOPLUGIN_IMPORT_INGSHAPE</source>