X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_SWIG%2FStdMeshersBuilder.py;h=afcd449fb9ec38766601d1929ad9dcdbb52230bd;hp=98acce5f6d38b3d3943984d5619d1d0ecf475b8b;hb=b2eb2c3cef7c6fffbcc17e027be5e4d0357a935a;hpb=193c49c87753b6ccabb2b5e6dc935aa480d2d43e diff --git a/src/SMESH_SWIG/StdMeshersBuilder.py b/src/SMESH_SWIG/StdMeshersBuilder.py index 98acce5f6..afcd449fb 100644 --- a/src/SMESH_SWIG/StdMeshersBuilder.py +++ b/src/SMESH_SWIG/StdMeshersBuilder.py @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2016 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 @@ -21,6 +21,8 @@ # @package StdMeshersBuilder # Python API for the standard meshing plug-in module. +LIBRARY = "libStdMeshersEngine.so" + from salome.smesh.smesh_algorithm import Mesh_Algorithm import StdMeshers @@ -261,7 +263,7 @@ class StdMeshersBuilder_Segment(Mesh_Algorithm): # on curve from 0 to 1 (additionally it is neecessary to check # orientation of edges and create list of reversed edges if it is # needed) and sets numbers of segments between given points (default - # values are equals 1 + # values are 1) # @param points defines the list of parameters on curve # @param nbSegs defines the list of numbers of segments # @param reversedEdges is a list of edges to mesh using reversed orientation. @@ -379,6 +381,7 @@ class StdMeshersBuilder_Segment(Mesh_Algorithm): pass # 0D algorithm if self.geom is None: + self.geom = store_geom raise RuntimeError, "Attemp to create SegmentAroundVertex_0D algoritm on None shape" from salome.smesh.smeshBuilder import AssureGeomPublished, GetName, TreatHypoStatus AssureGeomPublished( self.mesh, self.geom ) @@ -961,10 +964,8 @@ class StdMeshersBuilder_Prism3D(Mesh_Algorithm): shape = geom if not shape: shape = mesh.geom - from salome.geom import geomBuilder - nbSolids = len( geomBuilder.geom.SubShapeAll( shape, geomBuilder.geomBuilder.ShapeType["SOLID"] )) - nbShells = len( geomBuilder.geom.SubShapeAll( shape, geomBuilder.geomBuilder.ShapeType["SHELL"] )) - if nbSolids == 0 or nbSolids == nbShells: + isRadial = mesh.smeshpyD.IsApplicable("RadialPrism_3D", LIBRARY, shape, False ) + if not isRadial: self.Create(mesh, geom, "Prism_3D") pass else: @@ -1100,7 +1101,7 @@ class StdMeshersBuilder_Prism3D(Mesh_Algorithm): pass # end of StdMeshersBuilder_Prism3D class -## Defines a Prism 3D algorithm +## Defines Radial Prism 3D algorithm # # It is created by calling smeshBuilder.Mesh.Prism(geom=0) # @@ -1417,10 +1418,13 @@ class StdMeshersBuilder_UseExistingElements_1D2D(Mesh_Algorithm): # @param UseExisting if ==true - searches for the existing hypothesis created with # the same parameters, else (default) - creates a new one def SourceFaces(self, groups, toCopyMesh=False, toCopyGroups=False, UseExisting=False): + import SMESH compFun = lambda hyp, args: ( hyp.GetSourceFaces() == args[0] and \ hyp.GetCopySourceMesh() == args[1], args[2] ) hyp = self.Hypothesis("ImportSource2D", [groups, toCopyMesh, toCopyGroups], UseExisting=UseExisting, CompareMethod=compFun, toAdd=False) + if groups and isinstance( groups, SMESH._objref_SMESH_GroupBase ): + groups = [groups] hyp.SetSourceFaces(groups) hyp.SetCopySourceMesh(toCopyMesh, toCopyGroups) self.mesh.AddHypothesis(hyp, self.geom)