replace 'GMSH' with correct spelling 'Gmsh'
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
__title__ = "Tools for the work with GMSH mesher"
|
||||
__title__ = "Tools for the work with Gmsh mesher"
|
||||
__author__ = "Bernd Hahnebach"
|
||||
__url__ = "http://www.freecadweb.org"
|
||||
|
||||
@@ -116,7 +116,7 @@ class FemGmshTools():
|
||||
self.algorithm3D = '1'
|
||||
|
||||
def create_mesh(self):
|
||||
print("\nWe are going to start GMSH FEM mesh run!")
|
||||
print("\nWe are going to start Gmsh FEM mesh run!")
|
||||
print(' Part to mesh: Name --> ' + self.part_obj.Name + ', Label --> ' + self.part_obj.Label + ', ShapeType --> ' + self.part_obj.Shape.ShapeType)
|
||||
print(' CharacteristicLengthMax: ' + str(self.clmax))
|
||||
print(' CharacteristicLengthMin: ' + str(self.clmin))
|
||||
@@ -136,7 +136,7 @@ class FemGmshTools():
|
||||
def get_dimension(self):
|
||||
# Dimension
|
||||
# known_element_dimensions = ['From Shape', '1D', '2D', '3D']
|
||||
# if not given, GMSH uses the highest available.
|
||||
# if not given, Gmsh uses the highest available.
|
||||
# A use case for not "From Shape" would be a surface (2D) mesh of a solid
|
||||
if self.dimension == 'From Shape':
|
||||
shty = self.part_obj.Shape.ShapeType
|
||||
@@ -185,7 +185,7 @@ class FemGmshTools():
|
||||
self.mesh_name = self.part_obj.Name + '_Mesh_TmpGmsh'
|
||||
self.temp_file_mesh = tmpdir + path_sep + self.mesh_name + '.unv'
|
||||
print(' ' + self.temp_file_mesh)
|
||||
# GMSH input file
|
||||
# Gmsh input file
|
||||
self.temp_file_geo = tmpdir + path_sep + 'shape2mesh.geo'
|
||||
print(' ' + self.temp_file_geo)
|
||||
|
||||
@@ -202,7 +202,7 @@ class FemGmshTools():
|
||||
if p1.wait() == 0:
|
||||
gmsh_path = p1.stdout.read().split('\n')[0]
|
||||
elif p1.wait() == 1:
|
||||
error_message = "GMSH binary gmsh not found in standard system binary path. Please install gmsh or set path to binary in FEM preferences tab GMSH.\n"
|
||||
error_message = "Gmsh binary gmsh not found in standard system binary path. Please install Gmsh or set path to binary in FEM preferences tab Gmsh.\n"
|
||||
FreeCAD.Console.PrintError(error_message)
|
||||
raise Exception(error_message)
|
||||
self.gmsh_bin = gmsh_path
|
||||
@@ -269,7 +269,7 @@ class FemGmshTools():
|
||||
if self.mesh_obj.MeshRegionList:
|
||||
if part.Shape.ShapeType == "Compound" and hasattr(part, "Proxy"): # other part obj might not have a Proxy, thus an exception would be raised
|
||||
if (part.Proxy.Type == "FeatureBooleanFragments" or part.Proxy.Type == "FeatureSlice" or part.Proxy.Type == "FeatureXOR"):
|
||||
error_message = " The mesh to shape is a boolean split tools Compound and the mesh has mesh region list. GMSH could return unexpected meshes in such circumstances. It is strongly recommended to extract the shape to mesh from the Compound and use this one."
|
||||
error_message = " The mesh to shape is a boolean split tools Compound and the mesh has mesh region list. Gmsh could return unexpected meshes in such circumstances. It is strongly recommended to extract the shape to mesh from the Compound and use this one."
|
||||
FreeCAD.Console.PrintError(error_message + "\n")
|
||||
# TODO: no gui popup because FreeCAD will be in a endless print loop
|
||||
# as long as the pop up is on --> maybe find a better solution for
|
||||
@@ -328,7 +328,7 @@ class FemGmshTools():
|
||||
print (' Mesh boundary layers, we need to get the elements.')
|
||||
if self.part_obj.Shape.ShapeType == 'Compound':
|
||||
# see http://forum.freecadweb.org/viewtopic.php?f=18&t=18780&start=40#p149467 and http://forum.freecadweb.org/viewtopic.php?f=18&t=18780&p=149520#p149520
|
||||
err = "GMSH could return unexpected meshes for a boolean split tools Compound. It is strongly recommended to extract the shape to mesh from the Compound and use this one."
|
||||
err = "Gmsh could return unexpected meshes for a boolean split tools Compound. It is strongly recommended to extract the shape to mesh from the Compound and use this one."
|
||||
FreeCAD.Console.PrintError(err + "\n")
|
||||
for mr_obj in self.mesh_obj.MeshBoundaryLayerList:
|
||||
if mr_obj.MinimumThickness and Units.Quantity(mr_obj.MinimumThickness).Value > 0:
|
||||
@@ -397,7 +397,7 @@ class FemGmshTools():
|
||||
for k in item:
|
||||
v = item[k]
|
||||
if k in set(['EdgesList', 'FacesList']):
|
||||
# the element name of FreeCAD which starts with 1 (example: 'Face1'), same as GMSH
|
||||
# the element name of FreeCAD which starts with 1 (example: 'Face1'), same as Gmsh
|
||||
#el_id = int(el[4:]) # FIXME: strip `face` or `edge` prefix
|
||||
ele_nodes = (''.join((str(el[4:]) + ', ') for el in v)).rstrip(', ')
|
||||
line = prefix + '.' + str(k) + ' = {' + ele_nodes + ' };\n'
|
||||
@@ -421,7 +421,7 @@ class FemGmshTools():
|
||||
|
||||
def write_geo(self):
|
||||
geo = open(self.temp_file_geo, "w")
|
||||
geo.write("// geo file for meshing with GMSH meshing software created by FreeCAD\n")
|
||||
geo.write("// geo file for meshing with Gmsh meshing software created by FreeCAD\n")
|
||||
geo.write("\n")
|
||||
geo.write("// open brep geometry\n")
|
||||
geo.write('Merge "' + self.temp_file_geometry + '";\n')
|
||||
@@ -429,7 +429,7 @@ class FemGmshTools():
|
||||
if self.group_elements:
|
||||
# print(' We are going to have to find elements to make mesh groups for.')
|
||||
geo.write("// group data\n")
|
||||
# we use the element name of FreeCAD which starts with 1 (example: 'Face1'), same as GMSH
|
||||
# we use the element name of FreeCAD which starts with 1 (example: 'Face1'), same as Gmsh
|
||||
for group in sorted(self.group_elements.keys()): # for unit test we need them to have a fixed order
|
||||
gdata = self.group_elements[group]
|
||||
# print(gdata)
|
||||
@@ -458,7 +458,7 @@ class FemGmshTools():
|
||||
geo.write("\n")
|
||||
geo.write("// Characteristic Length\n")
|
||||
if self.ele_length_map:
|
||||
# we use the index FreeCAD which starts with 0, we need to add 1 for the index in GMSH
|
||||
# we use the index FreeCAD which starts with 0, we need to add 1 for the index in Gmsh
|
||||
geo.write("// Characteristic Length according CharacteristicLengthMap\n")
|
||||
for e in self.ele_length_map:
|
||||
ele_nodes = (''.join((str(n + 1) + ', ') for n in self.ele_node_map[e])).rstrip(', ')
|
||||
@@ -482,12 +482,12 @@ class FemGmshTools():
|
||||
geo.write("Mesh.RecombineAll = 1;\n")
|
||||
geo.write("\n")
|
||||
geo.write("// optimize the mesh\n")
|
||||
# GMSH tetra optimizer
|
||||
# Gmsh tetra optimizer
|
||||
if hasattr(self.mesh_obj, 'OptimizeStd') and self.mesh_obj.OptimizeStd is True:
|
||||
geo.write("Mesh.Optimize = 1;\n")
|
||||
else:
|
||||
geo.write("Mesh.Optimize = 0;\n")
|
||||
# Netgen optimizer in GMSH
|
||||
# Netgen optimizer in Gmsh
|
||||
if hasattr(self.mesh_obj, 'OptimizeNetgen') and self.mesh_obj.OptimizeNetgen is True:
|
||||
geo.write("Mesh.OptimizeNetgen = 1;\n")
|
||||
else:
|
||||
@@ -532,15 +532,15 @@ class FemGmshTools():
|
||||
geo.write('Save "' + self.temp_file_mesh + '";\n')
|
||||
geo.write("\n\n")
|
||||
geo.write("//////////////////////////////////////////////////////////////////////\n")
|
||||
geo.write("// GMSH documentation:\n")
|
||||
geo.write("// Gmsh documentation:\n")
|
||||
geo.write("// http://gmsh.info/doc/texinfo/gmsh.html#Mesh\n")
|
||||
geo.write("//\n")
|
||||
geo.write("// We do not check if something went wrong, like negative jacobians etc. You can run GMSH manually yourself: \n")
|
||||
geo.write("// We do not check if something went wrong, like negative jacobians etc. You can run Gmsh manually yourself: \n")
|
||||
geo.write("//\n")
|
||||
geo.write("// to see full GMSH log, run in bash:\n")
|
||||
geo.write("// to see full Gmsh log, run in bash:\n")
|
||||
geo.write("// " + self.gmsh_bin + " - " + self.temp_file_geo + "\n")
|
||||
geo.write("//\n")
|
||||
geo.write("// to run GMSH and keep file in GMSH GUI (with log), run in bash:\n")
|
||||
geo.write("// to run Gmsh and keep file in Gmsh GUI (with log), run in bash:\n")
|
||||
geo.write("// " + self.gmsh_bin + " " + self.temp_file_geo + "\n")
|
||||
geo.close
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>GMSH</string>
|
||||
<string>Gmsh</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
@@ -28,7 +28,7 @@
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GMSH</string>
|
||||
<string>Gmsh</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
@@ -58,7 +58,7 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="l_gmsh_binary_std">
|
||||
<property name="text">
|
||||
<string>GMSH binary</string>
|
||||
<string>Gmsh binary</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
@@ -235,8 +235,8 @@ def makeMeshBoundaryLayer(doc, base_mesh, name="MeshBoundaryLayer"):
|
||||
return obj
|
||||
|
||||
|
||||
def makeMeshGmsh(doc, name="FEMMeshGMSH"):
|
||||
'''makeMeshGmsh(document, [name]): makes a GMSH FEM mesh object'''
|
||||
def makeMeshGmsh(doc, name="FEMMeshGmsh"):
|
||||
'''makeMeshGmsh(document, [name]): makes a Gmsh FEM mesh object'''
|
||||
obj = doc.addObject("Fem::FemMeshObjectPython", name)
|
||||
import PyObjects._FemMeshGmsh
|
||||
PyObjects._FemMeshGmsh._FemMeshGmsh(obj)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>FEM Mesh by GMSH </string>
|
||||
<string>FEM Mesh by Gmsh</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
@@ -143,7 +143,7 @@
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GMSH</string>
|
||||
<string>Gmsh</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
|
||||
@@ -40,7 +40,7 @@ class _CommandFemAnalysis(FemCommands):
|
||||
self.resources = {'Pixmap': 'fem-analysis',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("FEM_Analysis", "Analysis container"),
|
||||
'Accel': "N, A",
|
||||
'ToolTip': QtCore.QT_TRANSLATE_NOOP("FEM_Analysis", "Creates a analysis container with standard solver CalculiX")}
|
||||
'ToolTip': QtCore.QT_TRANSLATE_NOOP("FEM_Analysis", "Creates an analysis container with standard solver CalculiX")}
|
||||
self.is_active = 'with_document'
|
||||
|
||||
def Activated(self):
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
__title__ = "Command GMSH Mesh From Shape"
|
||||
__title__ = "Command Gmsh Mesh From Shape"
|
||||
__author__ = "Bernd Hahnebach"
|
||||
__url__ = "http://www.freecadweb.org"
|
||||
|
||||
@@ -39,17 +39,17 @@ class _CommandFemMeshGmshFromShape(FemCommands):
|
||||
def __init__(self):
|
||||
super(_CommandFemMeshGmshFromShape, self).__init__()
|
||||
self.resources = {'Pixmap': 'fem-femmesh-gmsh-from-shape',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("FEM_MeshGmshFromShape", "FEM mesh from shape by GMSH"),
|
||||
'ToolTip': QtCore.QT_TRANSLATE_NOOP("FEM_MeshGmshFromShape", "Create a FEM mesh from a shape by GMSH mesher")}
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("FEM_MeshGmshFromShape", "FEM mesh from shape by Gmsh"),
|
||||
'ToolTip': QtCore.QT_TRANSLATE_NOOP("FEM_MeshGmshFromShape", "Create a FEM mesh from a shape by Gmsh mesher")}
|
||||
self.is_active = 'with_part_feature'
|
||||
|
||||
def Activated(self):
|
||||
FreeCAD.ActiveDocument.openTransaction("Create FEM mesh by GMSH")
|
||||
FreeCAD.ActiveDocument.openTransaction("Create FEM mesh by Gmsh")
|
||||
FreeCADGui.addModule("FemGui")
|
||||
sel = FreeCADGui.Selection.getSelection()
|
||||
if (len(sel) == 1):
|
||||
if(sel[0].isDerivedFrom("Part::Feature")):
|
||||
mesh_obj_name = 'FEMMeshGMSH'
|
||||
mesh_obj_name = 'FEMMeshGmsh'
|
||||
# mesh_obj_name = sel[0].Name + "_Mesh" # if requested by some people add Preference for this
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("ObjectsFem.makeMeshGmsh(FreeCAD.ActiveDocument, '" + mesh_obj_name + "')")
|
||||
|
||||
@@ -129,7 +129,7 @@ class _TaskPanelFemMeshGmsh:
|
||||
if self.mesh_obj.MeshRegionList:
|
||||
if part.Shape.ShapeType == "Compound" and hasattr(part, "Proxy"): # other part obj might not have a Proxy, thus an exception would be raised
|
||||
if (part.Proxy.Type == "FeatureBooleanFragments" or part.Proxy.Type == "FeatureSlice" or part.Proxy.Type == "FeatureXOR"):
|
||||
error_message = "The mesh to shape is a boolean split tools Compound and the mesh has mesh region list. GMSH could return unexpected meshes in such circumstances. It is strongly recommended to extract the shape to mesh from the Compound and use this one."
|
||||
error_message = "The mesh to shape is a boolean split tools Compound and the mesh has mesh region list. Gmsh could return unexpected meshes in such circumstances. It is strongly recommended to extract the shape to mesh from the Compound and use this one."
|
||||
QtGui.QMessageBox.critical(None, "Shape to mesh is a BooleanFragmentsCompound and mesh regions are defined", error_message)
|
||||
self.Start = time.time()
|
||||
self.form.l_time.setText('Time: {0:4.1f}: '.format(time.time() - self.Start))
|
||||
@@ -139,7 +139,7 @@ class _TaskPanelFemMeshGmsh:
|
||||
self.get_active_analysis()
|
||||
import FemGmshTools
|
||||
gmsh_mesh = FemGmshTools.FemGmshTools(self.obj, self.analysis)
|
||||
self.console_log("Start GMSH ...")
|
||||
self.console_log("Start Gmsh ...")
|
||||
error = ''
|
||||
try:
|
||||
error = gmsh_mesh.create_mesh()
|
||||
@@ -148,11 +148,11 @@ class _TaskPanelFemMeshGmsh:
|
||||
print("Unexpected error when creating mesh: ", sys.exc_info()[0])
|
||||
if error:
|
||||
print(error)
|
||||
self.console_log('GMSH had warnings ...')
|
||||
self.console_log('Gmsh had warnings ...')
|
||||
self.console_log(error, '#FF0000')
|
||||
else:
|
||||
self.console_log('Clean run of GMSH')
|
||||
self.console_log("GMSH done!")
|
||||
self.console_log('Clean run of Gmsh')
|
||||
self.console_log("Gmsh done!")
|
||||
self.form.l_time.setText('Time: {0:4.1f}: '.format(time.time() - self.Start))
|
||||
self.Timer.stop()
|
||||
self.update()
|
||||
|
||||
@@ -83,9 +83,9 @@ class _ViewProviderFemMeshGmsh:
|
||||
if not gui_doc.getInEdit():
|
||||
gui_doc.setEdit(vobj.Object.Name)
|
||||
else:
|
||||
FreeCAD.Console.PrintError('Activate the analysis this GMSH FEM mesh object belongs too!\n')
|
||||
FreeCAD.Console.PrintError('Activate the analysis this Gmsh FEM mesh object belongs too!\n')
|
||||
else:
|
||||
print('GMSH FEM mesh object does not belong to the active analysis.')
|
||||
print('Gmsh FEM mesh object does not belong to the active analysis.')
|
||||
found_mesh_analysis = False
|
||||
for o in gui_doc.Document.Objects:
|
||||
if o.isDerivedFrom('Fem::FemAnalysisPython'):
|
||||
@@ -93,16 +93,16 @@ class _ViewProviderFemMeshGmsh:
|
||||
if m == self.Object:
|
||||
found_mesh_analysis = True
|
||||
FemGui.setActiveAnalysis(o)
|
||||
print('The analysis the GMSH FEM mesh object belongs too was found and activated: ' + o.Name)
|
||||
print('The analysis the Gmsh FEM mesh object belongs too was found and activated: ' + o.Name)
|
||||
gui_doc.setEdit(vobj.Object.Name)
|
||||
break
|
||||
if not found_mesh_analysis:
|
||||
print('GMSH FEM mesh object does not belong to an analysis. Analysis group meshing will be deactivated.')
|
||||
print('Gmsh FEM mesh object does not belong to an analysis. Analysis group meshing will be deactivated.')
|
||||
gui_doc.setEdit(vobj.Object.Name)
|
||||
else:
|
||||
FreeCAD.Console.PrintError('Active analysis is not in active document.')
|
||||
else:
|
||||
print('No active analysis in active document, we are going to have a look if the GMSH FEM mesh object belongs to a non active analysis.')
|
||||
print('No active analysis in active document, we are going to have a look if the Gmsh FEM mesh object belongs to a non active analysis.')
|
||||
found_mesh_analysis = False
|
||||
for o in gui_doc.Document.Objects:
|
||||
if o.isDerivedFrom('Fem::FemAnalysisPython'):
|
||||
@@ -110,11 +110,11 @@ class _ViewProviderFemMeshGmsh:
|
||||
if m == self.Object:
|
||||
found_mesh_analysis = True
|
||||
FemGui.setActiveAnalysis(o)
|
||||
print('The analysis the GMSH FEM mesh object belongs to was found and activated: ' + o.Name)
|
||||
print('The analysis the Gmsh FEM mesh object belongs to was found and activated: ' + o.Name)
|
||||
gui_doc.setEdit(vobj.Object.Name)
|
||||
break
|
||||
if not found_mesh_analysis:
|
||||
print('GMSH FEM mesh object does not belong to an analysis. Analysis group meshing will be deactivated.')
|
||||
print('Gmsh FEM mesh object does not belong to an analysis. Analysis group meshing will be deactivated.')
|
||||
gui_doc.setEdit(vobj.Object.Name)
|
||||
else:
|
||||
print('No analysis in the active document.')
|
||||
|
||||
@@ -29,7 +29,7 @@ __url__ = "http://www.freecadweb.org"
|
||||
|
||||
|
||||
class _FemMeshGmsh():
|
||||
"""A Fem::FemMeshObject python type, add GMSH specific properties
|
||||
"""A Fem::FemMeshObject python type, add Gmsh specific properties
|
||||
"""
|
||||
|
||||
# they will be used from the task panel too, thus they need to be outside of the __init__
|
||||
@@ -55,43 +55,43 @@ class _FemMeshGmsh():
|
||||
obj.addProperty("App::PropertyLink", "Part", "FEM Mesh", "Part object to mesh")
|
||||
obj.Part = None
|
||||
|
||||
obj.addProperty("App::PropertyLength", "CharacteristicLengthMax", "FEM GMSH Mesh Params", "Max mesh element size (0.0 = infinity)")
|
||||
obj.addProperty("App::PropertyLength", "CharacteristicLengthMax", "FEM Gmsh Mesh Params", "Max mesh element size (0.0 = infinity)")
|
||||
obj.CharacteristicLengthMax = 0.0 # will be 1e+22
|
||||
|
||||
obj.addProperty("App::PropertyLength", "CharacteristicLengthMin", "FEM GMSH Mesh Params", "Min mesh element size")
|
||||
obj.addProperty("App::PropertyLength", "CharacteristicLengthMin", "FEM Gmsh Mesh Params", "Min mesh element size")
|
||||
obj.CharacteristicLengthMin = 0.0
|
||||
|
||||
obj.addProperty("App::PropertyEnumeration", "ElementDimension", "FEM GMSH Mesh Params", "Dimension of mesh elements (Auto = according ShapeType of part to mesh)")
|
||||
obj.addProperty("App::PropertyEnumeration", "ElementDimension", "FEM Gmsh Mesh Params", "Dimension of mesh elements (Auto = according ShapeType of part to mesh)")
|
||||
obj.ElementDimension = _FemMeshGmsh.known_element_dimensions
|
||||
obj.ElementDimension = 'From Shape' # according ShapeType of Part to mesh
|
||||
|
||||
obj.addProperty("App::PropertyEnumeration", "ElementOrder", "FEM GMSH Mesh Params", "Order of mesh elements")
|
||||
obj.addProperty("App::PropertyEnumeration", "ElementOrder", "FEM Gmsh Mesh Params", "Order of mesh elements")
|
||||
obj.ElementOrder = _FemMeshGmsh.known_element_orders
|
||||
obj.ElementOrder = '2nd'
|
||||
|
||||
obj.addProperty("App::PropertyBool", "OptimizeStd", "FEM GMSH Mesh Params", "Optimize tetra elements")
|
||||
obj.addProperty("App::PropertyBool", "OptimizeStd", "FEM Gmsh Mesh Params", "Optimize tetra elements")
|
||||
obj.OptimizeStd = True
|
||||
|
||||
obj.addProperty("App::PropertyBool", "OptimizeNetgen", "FEM GMSH Mesh Params", "Optimize tetra elements by use of Netgen")
|
||||
obj.addProperty("App::PropertyBool", "OptimizeNetgen", "FEM Gmsh Mesh Params", "Optimize tetra elements by use of Netgen")
|
||||
obj.OptimizeNetgen = False
|
||||
|
||||
obj.addProperty("App::PropertyBool", "HighOrderOptimize", "FEM GMSH Mesh Params", "Optimize hight order meshes")
|
||||
obj.addProperty("App::PropertyBool", "HighOrderOptimize", "FEM Gmsh Mesh Params", "Optimize hight order meshes")
|
||||
obj.HighOrderOptimize = False
|
||||
|
||||
obj.addProperty("App::PropertyBool", "RecombineAll", "FEM GMSH Mesh Params", "Apply recombination algorithm to all surfaces")
|
||||
obj.addProperty("App::PropertyBool", "RecombineAll", "FEM Gmsh Mesh Params", "Apply recombination algorithm to all surfaces")
|
||||
obj.RecombineAll = False
|
||||
|
||||
obj.addProperty("App::PropertyBool", "CoherenceMesh", "FEM GMSH Mesh Params", "Removes all duplicate mesh vertices")
|
||||
obj.addProperty("App::PropertyBool", "CoherenceMesh", "FEM Gmsh Mesh Params", "Removes all duplicate mesh vertices")
|
||||
obj.CoherenceMesh = True
|
||||
|
||||
obj.addProperty("App::PropertyFloat", "GeometryTolerance", "FEM GMSH Mesh Params", "Geometrical Tolerance (0.0 = GMSH std = 1e-08)")
|
||||
obj.addProperty("App::PropertyFloat", "GeometryTolerance", "FEM Gmsh Mesh Params", "Geometrical Tolerance (0.0 = GMSH std = 1e-08)")
|
||||
obj.GeometryTolerance = 1e-06
|
||||
|
||||
obj.addProperty("App::PropertyEnumeration", "Algorithm2D", "FEM GMSH Mesh Params", "mesh algorithm 2D")
|
||||
obj.addProperty("App::PropertyEnumeration", "Algorithm2D", "FEM Gmsh Mesh Params", "mesh algorithm 2D")
|
||||
obj.Algorithm2D = _FemMeshGmsh.known_mesh_algorithm_2D
|
||||
obj.Algorithm2D = 'Automatic' # ?
|
||||
|
||||
obj.addProperty("App::PropertyEnumeration", "Algorithm3D", "FEM GMSH Mesh Params", "mesh algorithm 3D")
|
||||
obj.addProperty("App::PropertyEnumeration", "Algorithm3D", "FEM Gmsh Mesh Params", "mesh algorithm 3D")
|
||||
obj.Algorithm3D = _FemMeshGmsh.known_mesh_algorithm_3D
|
||||
obj.Algorithm3D = 'Automatic' # ?
|
||||
|
||||
|
||||
Reference in New Issue
Block a user