Commit Graph

1045 Commits

Author SHA1 Message Date
vsr
79d1c82a95 0020746: EDF 1274 SMESH : MergeAllNodesButNodesFromGroup feature 2010-09-27 06:17:50 +00:00
vsr
92ccacc7e0 Improve dialog box's layout 2010-09-26 16:14:05 +00:00
vsr
632a68b51c Remove compilation warning 2010-09-26 06:47:43 +00:00
vsr
d4f9cc5a79 EDF 1575 SMESH: Filters and precision preferences 2010-09-24 13:08:23 +00:00
vsr
7615037388 Fix crash in Length2D::GetValues() and MultiConnection2D::GetValues() methods. 2010-09-24 08:28:34 +00:00
eap
c9ba971509 issue 0020959: HEXA_3D fails on shell
Fix DependsOn() for a not-closed SHELL not in SOLID
2010-09-22 11:41:25 +00:00
eap
8ca5200ec2 0020986: EDF 1557 SMESH: Convert to quadratic with medium node on geometry fails on a GHS3D mesh
Optimize FixQuadraticElements()
2010-09-22 11:24:21 +00:00
eap
f3ec053630 0020996: EDF 1549 SMESH: Projection 1D/2D algorithms fail
implement FindFaceAssociation() by UV correspondence which is used
   in case if correspondent vertices belong to inner wires
2010-09-22 10:01:32 +00:00
gdd
5fbfcdf41e GDD:
- fix documentation of ConvertToQuadratic (inform about theForce3d parameter)
- New function PrintDoubleValue added in PluginUtils
2010-09-21 13:48:27 +00:00
eap
13325ec615 0020996: EDF 1549 SMESH: Projection 1D/2D algorithms fail
Fix FindFaceAssociation():
     1) exit from loop on outer_wire_algo as soon as solution is found
     2) treat edges of inner wires
2010-09-21 07:53:49 +00:00
eap
631ad5cae2 Correct name of an argument
static int GetOrderedEdges (const TopoDS_Face&        theFace,
                               TopoDS_Vertex             theFirstVertex,
                               std::list< TopoDS_Edge >& theEdges,
-                              std::list< int >  &       theNbVertexInWires,
+                              std::list< int >  &       theNbEdgesInWires,
                               const bool                theShapeAnalysisAlgo=false);
2010-09-21 07:48:09 +00:00
ouv
47134513c5 Issue 0020226: [CEA 329] Invalid glyphs position in vector fields on polyhedrons cell. 2010-09-20 13:00:13 +00:00
eap
e350ffef91 0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids
-    if ( !subMeshId )
+    if ( !subMeshId && ! _impl->GetMeshDS()->IsGroupOfSubShapes( myLocSubShape ))
       THROW_SALOME_CORBA_EXCEPTION("not sub-shape of the main shape", SALOME::BAD_PARAM);
2010-09-17 05:36:15 +00:00
eap
e0baca518c 0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids
Fix fillAncestorsMap(theShape) for the case if a sub-shape of
   theShape is not in _mapAncestors
2010-09-17 05:35:42 +00:00
eap
c72cfb82fd 0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids
Move all checks of shape validity from AddCompoundSubmesh() to IsGroupOfSubShapes()
2010-09-17 05:34:11 +00:00
eap
52e29b1d26 0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids
bool IsLinked (const SMDS_MeshNode* theNode1,
                  const SMDS_MeshNode* theNode2,
+                 const bool           theIgnoreMediumNodes=false) const;
   // Return true if theNode1 is linked with theNode2.
+  // If theIgnoreMediumNodes then corner nodes of quadratic cell are considered linked as well
2010-09-15 15:11:26 +00:00
eap
27c31e5d2a 0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids
Replace VTK_CONVEX_POINT_SET with VTK_QUADRATIC_PYRAMID
2010-09-15 15:08:58 +00:00
dmv
82fc097deb 0020983: EDF 1569 SMESH: Numbering Display Elements with several groups selected does not work 2010-09-15 14:59:58 +00:00
eap
2cea858d03 indentation 2010-09-15 13:25:26 +00:00
eap
893497d10a 0020876: EDF 1246 SMESH: DoubleNodes fonctions available in the GUI
Add an argument to DoubleNodeXXX() creating groups
2010-09-15 13:25:06 +00:00
eap
ddff0c0a7e 0020876: EDF 1246 SMESH: DoubleNodes fonctions available in the GUI
No need in new commands in smeshDC.py, so DoubleNodeXXXNew() is replaced by DoubleNodeXXX()
2010-09-15 12:46:19 +00:00
eap
ca0696b420 0020746: EDF 1274 SMESH : MergeAllNodesButNodesFromGroup feature
## Finds groups of ajacent nodes within Tolerance.
     #  @param Tolerance the value of tolerance
     #  @param SubMeshOrGroup SubMesh or Group
+    #  @param exceptNodes list of either SubMeshes, Groups or node IDs to exclude from search
     #  @return the list of groups of nodes
     #  @ingroup l2_modif_trsf
-    def FindCoincidentNodesOnPart (self, SubMeshOrGroup, Tolerance):
+    def FindCoincidentNodesOnPart (self, SubMeshOrGroup, Tolerance, exceptNodes=[]):
2010-09-15 12:09:30 +00:00
eap
cd7aa1f910 Use TIDSortedNodeSet instead of set< const SMDS_MeshNode*> when looking for coincident nodes 2010-09-15 11:52:34 +00:00
eap
e38b448770 0020746: EDF 1274 SMESH : MergeAllNodesButNodesFromGroup feature
+  /*!
+   * Returns types of elements it contains
+   */
+  virtual SMESH::array_of_ElementType* GetTypes();
2010-09-15 11:51:57 +00:00
eap
d1d0bb638c 0020746: EDF 1274 SMESH : MergeAllNodesButNodesFromGroup feature
+    TPythonDump&
+    operator<<(const SMESH::ListOfIDSources& theList);
+
2010-09-15 11:50:48 +00:00
eap
c375774866 0020746: EDF 1274 SMESH : MergeAllNodesButNodesFromGroup feature
+  // set "FindCoincidentNodesOnPart()" instead of "FindCoincidentNodesOnPartBut()"
+  if ( !isPyMeshMethod && method == "FindCoincidentNodesOnPartBut")
+  {
+    isPyMeshMethod=true;
+    theCommand->SetMethod("FindCoincidentNodesOnPart");
+  }
2010-09-15 11:50:13 +00:00
eap
fed358c8ec 0020746: EDF 1274 SMESH : MergeAllNodesButNodesFromGroup feature
interface SMESH_MeshEditor
{
-    SMESH_IDSource MakeIDSource(in long_array IDsOfElements);
+    SMESH_IDSource MakeIDSource(in long_array IDsOfElements, in ElementType type);

+    void FindCoincidentNodesOnPartBut (in  SMESH_IDSource      SubMeshOrGroup,
+                                       in  double              Tolerance,
+                                       out array_of_long_array GroupsOfNodes,
+                                       in  ListOfIDSources     ExceptSubMeshOrGroups);
+
2010-09-15 11:49:07 +00:00
eap
1e8fc8a66c 0020746: EDF 1274 SMESH : MergeAllNodesButNodesFromGroup feature
-    SMESH_IDSource MakeIDSource(in long_array IDsOfElements);
+    SMESH_IDSource MakeIDSource(in long_array IDsOfElements, in ElementType type);

+    void FindCoincidentNodesOnPartBut (in  SMESH_IDSource      SubMeshOrGroup,
+                                       in  double              Tolerance,
+                                       out array_of_long_array GroupsOfNodes,
+                                       in  ListOfIDSources     ExceptSubMeshOrGroups);
+
2010-09-15 11:47:53 +00:00
eap
b44f6a0f67 rename SMESHGUI_EditMeshDlg to SMESHGUI_MergeDlg 2010-09-15 11:42:59 +00:00
eap
b166f12b58 Use TIDSortedNodeSet instead of set< const SMDS_MeshNode*> when looking for coincident nodes
+typedef std::set< const SMDS_MeshNode*,    TIDCompare >      TIDSortedNodeSet;
2010-09-15 11:41:11 +00:00
dmv
20db1a650f WinTC5.1.4: Application crash after open Linux study 2010-09-13 14:23:50 +00:00
dmv
7a8dbd1c30 0020082: EDF 869 GEOM : Edges Orientation indicator/reverse 2010-09-09 09:08:23 +00:00
eap
b5eb9a6a03 use linked nodes to get an upward direction when defining orientation 2010-09-07 06:35:44 +00:00
eap
ea6aa32f23 0020968: EDF1545 SMESH: Problem in de creation of a mesh group on geometry
Detect not computed sub-shapes in case if algo computes many
   submeshes at once
2010-09-03 14:19:16 +00:00
eap
6d9d5ab070 0020963: EDF 1528 SMESH: How to combine Netgen1D2D with sizemap with Quadrangle(Mapping) ?
-              sm->ComputeStateEngine(SMESH_subMesh::COMPUTE);
+              _gen->Compute( theMesh, _mainEdge, /*anUpward=*/true);

sm->ComputeStateEngine() fails if vertices it depends on are not yet created
2010-09-02 06:30:53 +00:00
eap
fe8da0148d improve comment 2010-09-02 06:26:55 +00:00
eap
59f4ea94a3 bool SMESH_HypoFilter::IsMoreLocalThanPredicate::IsOk(const SMESH_Hypothesis* aHyp,
const TopoDS_Shape&     aShape) const
 {
+  // issue 0020963
+  // if aShape is COMPOUND (i.e. most probably a GEOM group) then
+  // it is more local if it contains shapes of less dimension than _shapeType
+  ...
2010-09-02 06:26:23 +00:00
eap
b539de9f45 0020959: EDF 1531: HEXA_3D fails on shell
in DependsOn(), do not make a sub-mesh of a not closed SHELL
2010-09-01 11:00:43 +00:00
vsr
d4056b8447 SALOME internationalization: add textual resources for French language 2010-08-31 15:14:20 +00:00
vsr
565717b18c SALOME internationalization: add textual resources for French language 2010-08-31 10:03:26 +00:00
eap
859a8ee4f0 untabify 2010-08-30 12:00:00 +00:00
eap
4802162fe0 Fix dump python of DoubleNode*() 2010-08-30 11:59:17 +00:00
eap
290a70345b Fix TPythonDump::operator<<(const SMESH::ListOfGroups& theList) for an empty list 2010-08-30 11:44:16 +00:00
mzn
cc203f62c3 Fix for imp 0020876: EDF 1246 SMESH: DoubleNodes fonctions available in the GUI. 2010-08-30 10:57:47 +00:00
vsr
9a0bd14a2c Issue: 0020935: A group created with a type of element criteria is empty
- Fix some filters bugs in Python API
2010-08-25 10:17:27 +00:00
eap
91db52567f 0020958: EDF 1529 SMESH : If some faces have been meshed with small
quadrangles Netgen 3D creates pyramids with volume zero and fails

   bool CheckIntersection(const gp_Pnt& P, const gp_Pnt& PC,
                          gp_Pnt& Pint, SMESH_Mesh& aMesh,
                          const TopoDS_Shape& aShape,
-                         const TopoDS_Shape& NotCheckedFace);
+                         const SMDS_MeshElement* NotCheckedFace);
2010-08-23 05:26:19 +00:00
eap
0bce8612a5 Fix for SIGSEGV on Mandriva2008 in optimize mode only
==21300== Invalid read of size 4
==21300==    at 0x1445EA23: StdMeshers_Penta_3D::MakeVolumeMesh() (StdMeshers_Penta_3D.cxx:681)

  while (aItNodes->more()) {

It seems to be an error of optimization, aItNodes.px becomes invalid
before aItNodes->more() returns false but after the loop code is
performed for the last time.
2010-08-19 13:28:02 +00:00
eap
23a1a900c3 remove debug output 2010-08-19 09:41:24 +00:00
eap
1aa25c0e23 0020958: EDF 1529 SMESH : If some faces have been meshed with small
quadrangles Netgen 3D creates pyramids with volume zero and fails

* Fix HasIntersection3(): use reasonable tolerances
* Improve performace using SMESH_ElementSearcher
2010-08-19 09:23:39 +00:00
eap
14c9e5320c fix removing from the std::map being iterated over 2010-08-19 09:21:03 +00:00
eap
3a69b3ea0f 0020958: EDF 1529 SMESH : If some faces have been meshed with small
quadrangles Netgen 3D creates pyramids with volume zero and fails

struct SMESH_ElementSearcher
{
+  /*!
+   * \brief Return elements possibly intersecting the line
+   */
+  virtual void GetElementsNearLine( const gp_Ax1&                           line,
+                                    SMDSAbs_ElementType                     type,
+                                    std::vector< const SMDS_MeshElement* >& foundElems)=0;
2010-08-19 09:19:49 +00:00
eap
32e5402500 Implement iteration in id increasing order
-  SMDS_NodeIteratorPtr nodesIterator(bool idInceasingOrder=false) const;
-  SMDS_0DElementIteratorPtr elements0dIterator() const;
-  SMDS_EdgeIteratorPtr edgesIterator() const;
-  SMDS_FaceIteratorPtr facesIterator() const;
-  SMDS_VolumeIteratorPtr volumesIterator() const;
+  SMDS_NodeIteratorPtr nodesIterator          (bool idInceasingOrder=false) const;
+  SMDS_0DElementIteratorPtr elements0dIterator(bool idInceasingOrder=false) const;
+  SMDS_EdgeIteratorPtr edgesIterator          (bool idInceasingOrder=false) const;
+  SMDS_FaceIteratorPtr facesIterator          (bool idInceasingOrder=false) const;
+  SMDS_VolumeIteratorPtr volumesIterator      (bool idInceasingOrder=false) const;
2010-08-19 09:17:39 +00:00
eap
2712d2bac8 avoid unused variables in release mode 2010-08-18 11:06:29 +00:00
eap
0ead748d34 fix the case of already meshed sole straight edge 2010-08-18 11:06:01 +00:00
eap
986c507e02 0020855: [CEA] Problem with ijk algo
find out orientation by a least distorted hexahedron
2010-08-18 08:00:09 +00:00
eap
99da90c8d2 -theFileName = thePath + "/Shapes/Brep/slots.brep"
+theFileName = os.path.join( thePath,"Shapes","Brep","slots.brep")
2010-08-13 12:56:44 +00:00
eap
9b8d761c97 0020955: EDF 1493 SMESH: Bad import of .unv file
* Complete the set of readable 2D elements
2010-08-09 08:38:48 +00:00
eap
c3ab4d469d Remove unused variables 2010-08-09 08:37:24 +00:00
eap
758a69ebf0 0020951: EDF 1501 SMESH: Conversion linear/quadratic with medium nodes on geometry fails with GHS3D
* Fix splitTrianglesIntoChains()
2010-08-04 12:05:37 +00:00
eap
da13b7ebd3 0020951: EDF 1501 SMESH: Conversion linear/quadratic with medium nodes on geometry fails with GHS3D
* Fix for usecase: open the atached study, convert Mesh_1 from
   quadratic, unassign GHS3D algo -> SIGSEGV. Reason is that the same
   SMDS_SpacePosition is shared by all nodes in different solids.
2010-08-04 12:02:49 +00:00
eap
cb58ff9fa4 untabify 2010-07-27 13:06:18 +00:00
eap
52be03b564 0020951: EDF 1501 SMESH: Conversion linear/quadratic with medium nodes on geometry fails with GHS3D
* Fix GetNodeUV() for a node on seam edge: enable projection of node in face
 * Fix GetMediumNode(): set a node in volume #1 as well
 * Fix QFace::GetLinkChain(), case of triangles
2010-07-27 13:05:28 +00:00
eap
4ea8012155 0020920: EDF 1478 SMESH: Conversion linear to quadratic fails (BLSURF Mesh)
* fix FixQuadraticElements(): ignore internal chains
2010-07-21 05:45:17 +00:00
eap
cc0f9654b4 0020919: EDF 1472 SMESH: Linear to quadratic conversion fails with hexaedron algorithm
* fix FixQuadraticElements()
2010-07-20 06:06:38 +00:00
eap
90bfbd9c1e improve comment 2010-07-20 06:05:22 +00:00
adam
92931e254a Patch from Anthony to be compliant with MED 2010-07-19 15:18:39 +00:00
eap
99adc043fe untabify 2010-07-19 07:57:32 +00:00
vsr
420d105fdb Issue 0020921: EDF 1462 SMESH: Regression in 5.1.4. a quadrangle meshing fails 2010-07-08 06:51:11 +00:00
vsr
32a86c1f4a 0020742: EDF 1270 SMESH : Delete Group with contents and remove Orphan Nodes 2010-07-07 05:32:15 +00:00
adam
3cd9dd3663 windows port 2010-07-06 10:17:30 +00:00
dmv
4d43188368 IPAL21820 TC6.1.0: Lost new nodes 2010-07-05 13:58:35 +00:00
dmv
e3ffb861ce IPAL21831 Can't load the Python dump after Export to MED 2010-06-30 11:40:12 +00:00
vsr
9862fa66b4 Bug IPAL21801: preferences for SMESH: color of Group name text should be added
EDF 703 SMESH VISU : Display Mesh Groups names in viewer (as a caption)
Additional fix: add preferences for the names groups color
2010-06-23 13:19:50 +00:00
vsr
8c1e153907 0020752: EDF 1303 SMESH : Add a 'Select All' button in Create Group dialog box 2010-06-22 15:24:40 +00:00
jfa
946f0a4e5c Mantis issue 0020812: Register() and Destroy() of the GenericObj. 2010-06-22 14:43:41 +00:00
ouv
e533bcb1d7 Issue 0020755: EDF 1279 MESH : 'Mesh to Pass Through a Point' enhancement 2010-06-21 10:30:03 +00:00
vsr
2343a5b385 Fix bug of NodeSearcher: search fails if point is outside the mesh on the distance more than octree node precision value. Version 2 with improved performance. 2010-06-21 07:29:04 +00:00
vsr
97577f2731 Fix bug of NodeSearcher: search fails if point is outside the mesh on the distance more than octree node precision value 2010-06-17 19:00:18 +00:00
vsr
6ea1e8f320 Merge from V5_1_4_BR (5_1_4rc2) 09/06/2010 2010-06-10 06:51:07 +00:00
eap
452d18f670 0020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen
* In GetFaceWires(), create a separate wire for each internal edge
2010-06-08 11:33:26 +00:00
eap
dd4eae00e6 - return ( e && e->NbNodes() == ( e->IsQuadratic() ? 8 : 4 ));
+    return ( e && e->NbCornerNodes() == 4 );
2010-05-20 10:23:56 +00:00
eap
17aeb4f3c7 0020855: [CEA] Problem with ijk algo ---------- KO.med file 2010-05-20 10:04:19 +00:00
eap
5dad3ddd64 0020855: [CEA] Problem with ijk algo
* Fix detection of block corners
  * Fix selection of sides
2010-05-19 08:16:18 +00:00
eap
0611264223 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
## Computes the mesh and returns the status of the computation
+    #  @param discardModifs if True and the mesh has been edited since
+    #         a last total re-compute and that may prevent successful partial re-compute,
+    #         then the mesh is cleaned before Compute()
     #  @return True or False
     #  @ingroup l2_construct
-    def Compute(self, geom=0):
+    def Compute(self, geom=0, discardModifs=False):
2010-05-13 06:24:13 +00:00
eap
475c43c868 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
* set _isModified attribute of the mesh to true
2010-05-13 06:23:03 +00:00
eap
fdac3f59c5 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
* save/restore _isModified attribute of the mesh
2010-05-13 06:22:26 +00:00
eap
38824d786e 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
+    if ( myMesh->HasModificationsToDiscard() && // issue 0020693
+         SUIT_MessageBox::question( desktop(), tr( "SMESH_WARNING" ),
+                                    tr( "FULL_RECOMPUTE_QUESTION" ),
+                                    tr( "SMESH_BUT_YES" ), tr( "SMESH_BUT_NO" ), 1, 0 ) == 0 )
+      myMesh->Clear();
2010-05-13 06:20:35 +00:00
eap
a5103fc7f7 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
+            <source>FULL_RECOMPUTE_QUESTION</source>
+            <translation>
+The mesh has been edited since a last total re-compute
+that may prevent successful computation.
+Do you wish to re-compute the mesh totally to discard the modifications?
+            </translation>
+        </message>
+        <message>
2010-05-13 06:20:02 +00:00
eap
dc9f7a0708 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
+    /*!
+     * Return true if the mesh has been edited since a total re-compute
+     * and those modifications may prevent successful partial re-compute
+     */
+    boolean HasModificationsToDiscard()
+      raises (SALOME::SALOME_Exception);
2010-05-13 06:18:57 +00:00
eap
d0e4aacc56 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
+  void SetIsModified(bool isModified);
+  bool GetIsModified() const { return _isModified; }
+  bool HasModificationsToDiscard() const;
+  bool                       _isModified; //!< modified since last total re-compute, issue 0020693
2010-05-13 06:18:02 +00:00
vsr
6650dea1f8 Merge from V5_1_4_BR 07/05/2010 2010-05-07 15:08:23 +00:00
eap
4a1881f9c1 0020855: [CEA] Problem with ijk algo
* Fix difining sharing of block sides
  * Fix selection of adjacent side
2010-05-06 08:48:21 +00:00
eap
46390b4393 0020855: [CEA] Problem with ijk algo
* Fix uninitialized gravity center
-      gp_XYZ gc;
+      gp_XYZ gc(0,0,0);
2010-04-30 06:45:50 +00:00
eap
8ebb31bcc9 0020849: [CEA] Projection 2D fails
* project by transformation in case if TopoDS_TFace's are different
2010-04-26 10:39:30 +00:00
dmv
0fe4350ada IPAL21668 Call of Edit Group leads to Crash. 2010-04-08 07:52:18 +00:00
san
845309d919 Issue 0020580: improved validation in integer and double spin boxes, possibility to adjust input field precision through preferences 2010-04-05 11:43:42 +00:00
eap
da4a6470be Rename to avoid clash with same name class from GEOM_Engine
-class ObjectStates{
+class SMESH_ObjectStates{
2010-03-31 05:56:30 +00:00
eap
204b3f755c Remove useless extra dump in DEBUG mode 2010-03-31 05:55:11 +00:00
eap
a232cd7e03 0020672: EDF 1243 SMESH : Be able to transform mixed mesh
+    void SplitVolumesIntoTetra(in SMESH_IDSource elems, in short methodFlags)
2010-03-30 12:38:16 +00:00
eap
01d2cde96d 0020672: EDF 1243 SMESH : Be able to transform mixed mesh
* Add "Split into Tetrahedra" operation
2010-03-30 12:36:23 +00:00