]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
shift save load in file
authorcvw <cvw>
Thu, 23 May 2013 14:27:44 +0000 (14:27 +0000)
committercvw <cvw>
Thu, 23 May 2013 14:27:44 +0000 (14:27 +0000)
21 files changed:
src/Tools/MGCleanerPlug/MGCleanerMonPlugDialog.py
src/Tools/MGCleanerPlug/MGCleanerPlugDialog.ui
src/Tools/MGCleanerPlug/MGCleanerplug_plugin.py
src/Tools/MGCleanerPlug/doc/Advanced_params.rst
src/Tools/MGCleanerPlug/doc/Generics_params.rst
src/Tools/MGCleanerPlug/doc/Mandatory_params.rst
src/Tools/MGCleanerPlug/doc/editHypo.rst
src/Tools/MGCleanerPlug/doc/images/Advanced.png
src/Tools/MGCleanerPlug/doc/images/AppelMGCleaner.png
src/Tools/MGCleanerPlug/doc/images/Generic.png
src/Tools/MGCleanerPlug/doc/images/Simple.png
src/Tools/MGCleanerPlug/doc/index.rst
src/Tools/YamsPlug/YamsPlugDialog.ui
src/Tools/YamsPlug/doc/Generics_params.rst
src/Tools/YamsPlug/doc/editHypo.rst
src/Tools/YamsPlug/doc/images/Advanced.png
src/Tools/YamsPlug/doc/images/AppelYams.png
src/Tools/YamsPlug/doc/images/Generic.png
src/Tools/YamsPlug/doc/images/Simple.png
src/Tools/YamsPlug/doc/index.rst
src/Tools/YamsPlug/monYamsPlugDialog.py

index 667df5ccfc5bccdc590399de018e7e10f2edc971..50bf0714dfd3782af7764efe5107ebe2513e620d 100644 (file)
@@ -120,15 +120,18 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget):
     import salome
     from salome.kernel import studyedit
 
-    #print "enregistreResultat"
     maStudy=studyedit.getActiveStudy()
     smesh.SetCurrentStudy(maStudy)
     (outputMesh, status) = smesh.CreateMeshesFromGMF(self.fichierOut)
     name=str(self.LE_MeshSmesh.text())
+    initialMeshFile=None
+    initialMeshObject=None
     if name=="":
-      #print "name new MESH",self.LE_MeshFile.text()
       a=str(self.fichierIn)
       name=os.path.basename(os.path.splitext(a)[0])
+      initialMeshFile=a
+    else:
+      initialMeshObject=maStudy.FindObjectByName(name ,"SMESH")[0]
 
     meshname = name+"_MGC_"+str(self.num)
     smesh.SetName(outputMesh.GetMesh(), meshname)
@@ -137,20 +140,28 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget):
     self.editor = studyedit.getStudyEditor()
     moduleEntry=self.editor.findOrCreateComponent("SMESH","SMESH")
     HypReMeshEntry = self.editor.findOrCreateItem(
-        moduleEntry, name = "MGCleaner Hypotheses", icon="mesh_tree_algo.png") #, comment = "HypoForRemeshing" )
+        moduleEntry, name = "Plugins Hypotheses", icon="mesh_tree_hypo.png") #, comment = "HypoForRemeshing" )
     
     monStudyBuilder=maStudy.NewBuilder()
     monStudyBuilder.NewCommand()
     newStudyIter=monStudyBuilder.NewObject(HypReMeshEntry)
-    aNameAttrib=monStudyBuilder.FindOrCreateAttribute(newStudyIter,"AttributeName")
-    hypoName = "HypoMGC_"+str(self.num)
-    aNameAttrib.SetValue(hypoName)
-    aCommentAttrib=monStudyBuilder.FindOrCreateAttribute(newStudyIter,"AttributeComment")
-    aCommentAttrib.SetValue(self.getResumeData(separator=" ; "))
+    self.editor.setAttributeValue(newStudyIter, "AttributeName", "MGCleaner Parameters_"+str(self.num))
+    self.editor.setAttributeValue(newStudyIter, "AttributeComment", self.getResumeData(separator=" ; "))
     
     SOMesh=maStudy.FindObjectByName(meshname ,"SMESH")[0]
+    
+    if initialMeshFile!=None:
+      newStudyFileName=monStudyBuilder.NewObject(SOMesh)
+      self.editor.setAttributeValue(newStudyFileName, "AttributeName", "meshFile")
+      self.editor.setAttributeValue(newStudyFileName, "AttributeExternalFileDef", initialMeshFile)
+      self.editor.setAttributeValue(newStudyFileName, "AttributeComment", initialMeshFile)
+
+    if initialMeshObject!=None:
+      newLink=monStudyBuilder.NewObject(SOMesh)
+      monStudyBuilder.Addreference(newLink, initialMeshObject)
+
     newLink=monStudyBuilder.NewObject(SOMesh)
-    monStudyBuilder.Addreference(newLink, newStudyIter);
+    monStudyBuilder.Addreference(newLink, newStudyIter)
 
     if salome.sg.hasDesktop(): salome.sg.updateObjBrowser(0)
     self.num+=1
@@ -193,22 +204,24 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget):
     self.editor = studyedit.getStudyEditor()
     moduleEntry=self.editor.findOrCreateComponent("SMESH","SMESH")
     HypReMeshEntry = self.editor.findOrCreateItem(
-        moduleEntry, name = "MGCleaner Hypotheses", icon="mesh_tree_algo.png") #, comment = "HypoForRemeshing" )
+        moduleEntry, name = "Plugins Hypotheses", icon="mesh_tree_hypo.png") #, comment = "HypoForRemeshing" )
     
     monStudyBuilder=maStudy.NewBuilder()
     monStudyBuilder.NewCommand()
     newStudyIter=monStudyBuilder.NewObject(HypReMeshEntry)
-    aNameAttrib=monStudyBuilder.FindOrCreateAttribute(newStudyIter,"AttributeName")
-    hypoName = "HypoMGC_"+str(self.num)
-    aNameAttrib.SetValue(hypoName)
-    aCommentAttrib=monStudyBuilder.FindOrCreateAttribute(newStudyIter,"AttributeComment")
-    #print "getResumeData",type(self.getResumeData(separator=" ; ")),self.getResumeData(separator=" ; ")
-    aCommentAttrib.SetValue(self.getResumeData(separator=" ; "))
+    self.editor.setAttributeValue(newStudyIter, "AttributeName", "MGCleaner Parameters_"+str(self.num))
+    self.editor.setAttributeValue(newStudyIter, "AttributeComment", self.getResumeData(separator=" ; "))
     
     if salome.sg.hasDesktop(): salome.sg.updateObjBrowser(0)
     self.num+=1
     return True
 
+    """
+    import salome_pluginsmanager
+    print "salome_pluginsmanager.plugins",salome_pluginsmanager.plugins
+    print "salome_pluginsmanager.current_plugins_manager",salome_pluginsmanager.current_plugins_manager
+    """
+
   def getResumeData(self, separator="\n"):
     text=""
     if self.RB_Fix1.isChecked():
index 73eda3035e55384e5e9cfeb8c412ed8f8fdcd2cc..1ad37c7bf6e069ea906ee9458828a73232c8f4eb 100644 (file)
         </property>
       </widget>
      </item>
-     <item>
-      <widget class="QPushButton" name="PB_Save">
-       <property name="text">
-        <string>Save</string>
-       </property>
-        <property name="iconSize">
-         <size>
-          <width>18</width>
-          <height>18</height>
-         </size>
-        </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="PB_Load">
-       <property name="text">
-        <string>Load</string>
-       </property>
-        <property name="iconSize">
-         <size>
-          <width>18</width>
-          <height>18</height>
-         </size>
-        </property>
-      </widget>
-     </item>
      <item>
       <widget class="QPushButton" name="PB_Default">
        <property name="text">
@@ -819,7 +793,7 @@ Default is 3.</string>
          <x>10</x>
          <y>150</y>
          <width>750</width>
-         <height>140</height>
+         <height>170</height>
         </rect>
        </property>
        <property name="title">
@@ -861,6 +835,47 @@ Default is 3.</string>
          </rect>
         </property>
        </widget>
+
+      <widget class="QPushButton" name="PB_Save">
+        <property name="geometry">
+         <rect>
+          <x>20</x>
+          <y>110</y>
+          <width>70</width>
+          <height>31</height>
+         </rect>
+        </property>
+       <property name="text">
+        <string>Save</string>
+       </property>
+        <property name="iconSize">
+         <size>
+          <width>18</width>
+          <height>18</height>
+         </size>
+        </property>
+      </widget>
+
+      <widget class="QPushButton" name="PB_Load">
+        <property name="geometry">
+         <rect>
+          <x>120</x>
+          <y>110</y>
+          <width>70</width>
+          <height>31</height>
+         </rect>
+        </property>
+       <property name="text">
+        <string>Load</string>
+       </property>
+        <property name="iconSize">
+         <size>
+          <width>18</width>
+          <height>18</height>
+         </size>
+        </property>
+      </widget>
+
       </widget>
      </widget>
     </widget>
index 3178fa52a99e81dd82e6e8f86b7c3ef80c923df1..80eeae790cc6bee86ab51aebb50869cbe1b169a3 100644 (file)
@@ -44,3 +44,4 @@ def MGCleanerLct(context):
   import MGCleanerMonPlugDialog
   window=MGCleanerMonPlugDialog.getDialog()
   window.show()
+
index 3fb8316fe6d6097b4b8f5e3f83218ecc811ffa1b..34178cfd3869fa890106ca34abf8edc26db509ad 100644 (file)
@@ -1,42 +1,11 @@
 Advanced Remeshing Options 
 ==========================
 
-** be aware that no control of coherency is done when you set these parameters : for instance, geometrical approximation is only allowed when MG-Cleaner compute a mesh for finite elements but the GUI will let you choose geometrical approximation and compute a visualisation mesh. read DISTENE documentation **
+See tooltips comments for each parameter.
+See also :download:`MG-cleaner user manual <files/mg-cleaner_user_manual.pdf>`.
 
-  - **Ridge detection**
-if not set (ridge detection disabled ), MG-Cleaner will not try to detect any new ridge edge by its own mechanism : 
-it will consider as ridge only the ridges given in the mesh.  All non-ridge edges that would have been detected as ridge by the Ridge angle paramaeter (see below split edge)  will be considered as part of the same continuous patch.  This option should not be checked when all the known ridges of the mesh are given and when all other possible ridges are not geometric ridges to take into account.
-
-  - **Point smoothing**
-When not set (point smoothing is disabled), MG-Cleaner will not try to move the initial given vertices (along an edge, a ridge or onto the surface), hence MG-Cleaner will only swap edges, remove vertices or add vertices (refines) to change the mesh.
-
-  - **Geometrical  approximation**
-this field as well as the Chordal deviation tolerance parameter,enables the user to bound the maximal chordal deviation allowed. it avoids having sharp angles. , that is, the maximal distance allowed between the detected curve and the plane of the corresponding mesh face. It avoids having faces too far away from the curve they represent.
-
-.. image:: images/Tolerance.png
+.. image:: images/Advanced.png
    :align: center
 
 
-This parameter P enables the user to specify the maximal chordal deviation  E relatively to the local curvature. the maximal chordal deviation will be set to E=P x r (r is the radius of the circumcercle) if the units parameter is set to relative or E=P if the units parameter is set to absolute.
-
-
-  - **Ridge angle**
-
-This parameter specifies the angular values  for the automatic detection of ridges and corners. A ridge is automatically detected if the angle between the normal vectors of two adjacent faces exceeds this value.
-
-
-  - **Maximal/Minimal size around vertices**
-
-These two parameters allow the user to prescribe a Maximal/Minimal size for the mesh elements, ie the lengths of the edges. 
-
-
-  - **Mesh gradation**
-This paramater P controls the element size variation : MG-Cleaner will avoid having two adjacent egdes which sizes vary more than th given gradation. a size correction is applied to the size map : if two adjacent edges are respectively e1 and e2 long and e2 > Pxe1, then, the new size for the second edge will be set to P x e1.
-**This procedure is desactived if P=-1***
-
-
-
-  - **Split edge**
-If this option is activated, MG-Cleaner creates new vertices placed on the curved surface and adds them to elements.
-It may be used to obtain higher order elements.
 
index 0a0a08d784530e2dd8b38f37db6c7607821e108f..45133412c28ecf9f65a062449b011a57659b18af 100644 (file)
@@ -7,15 +7,11 @@ These options are not meshing options but allow the user to configure control pa
 - **Verbosity Level**
 
 This parameter (between 0 and 10) indicates the amount of information that MG-Cleaner prints during the run.
-
-
-- **Memory Size**
-You usually don't have to set this parameter but you can choose to limit the amount of memory used by MG-Cleaner. - It requires 370 bytes per node -. Or, if you try to enrich a already big mesh (up to 2 millions nodes), you exceptionally, need to allocate more memory.
     
     
 - **File** 
 
-You can change the file used to store the remeshing hypothesis. see paragraph :ref:`hypothesis-label` for further informations.
+You can change the file used to store your favorite remeshing hypothesis. see paragraph :ref:`hypothesis-label` for further informations.
 
 .. image:: images/Generic.png
    :align: center
index f657c1d92221d9e3c95db325156b4d5f76a05b75..541a3bdf744489412fbaef5a46ce6b6a0f43690f 100644 (file)
@@ -5,7 +5,7 @@ simple case
 -----------
 
    All options, but the input mesh, have default values. however, **you have to specified these
-   simple options in order to drive yams and control remeshing parameters**. 
+   simple options in order to drive MG-Cleaner and control remeshing parameters**. 
 
    You can access Distene documentation by clicking on Help button.
 
@@ -19,83 +19,9 @@ simple case
    You have to select a Mesh Object from Salome Object Browser or choose a .GMF file.
 
 
-Optimisation
+Options
 ------------
     
-This is the main remeshing Option.  Yams always does quality improvement. It is done by point smooting and edge swapping.  It can produce a regular mesh for finite element computation (initial mesh is a a geometrical mesh). In this case, the given surface trianglation is modified in accordance to a size map : an intrinsic size map is computed automatically. it is based on the surface proporties.  Yams is also able to  produce a geometrical mesh (initial mesh is a a mesh for finite element computation). In both case, It can coarsen or enrich the mesh.     
-
-   - **Quality improvement** 
-
-     If you activitate this option, Yams does only quality improvement.  
-
-     It is equivalent to Yams's batch option 0.
-
-   - **Pure Geometry Enrichement**
-
-     The given surface triangulation is enriched (no coarsening at all) in such away that the distance between the elements in the final mesh and those of the initial one is bounded by auser specified tolerance value. One should use this option, to enrich the mesh where purely geometrical features may be insuficiently fine, i.e. the resulting mesh will be least as fine as the input. Mesh and the geometric features will be refined if needed as specified by the other program parameters. The meshes obtained with those settings may not be suitable for computation.
-
-     It is equivalent to Yams's batch option G.
-
-   -  **Uniform subdivision**
-
-     A uniform subdivision of the given surface triangulation is performed : each triangle of the given surface triangulation is considered at and is divided into identical triangles.
-
-     It is equivalent to Yams's batch option U.
-
-   - **Smoothing**
-
-     A surface sandpapering without shrinkage of the given surface triangulation is performed, i.e., the high curvature variations of the given surface will be smoothed out without shrinking the volume in doing so. If ridges are defined, they will be kept as they are in the resulting mesh. It could modify the geometry.
-     It is equivalent to Yams's batch option S.
-
-   - **Geometrical Mesh : Coarsening** 
-
-     The given surface triangulation is modified in such a way that the distance between the elements in the final mesh and those of the initial one is bounded by a user specfied tolerance value.One should use this option, to coarsen when a purely geometrical mesh is needed. (a mesh that keeps and obeys its geometric features only.) The meshes obtained with this option are usually not suitable for computation because anisotropic elements may be generated
-
-     It is equivalent to Yams's batch option -2.
-
-   - **Geometrical Mesh : Coarsening and Enrichment** 
-
-     Yams coarses and enrichs meshes to obtain a purely geometrical mesh. The method is the same as above.
-
-     It is equivalent to Yams's batch option 2.
-
-   - **Mesh for finite element computation : Coarsening** 
-
-     The given surface triangulation is modified in accordance to a size map. The latter is the intrinsic size map (computed automatically and based on the surface properties, i.e. the local curvatures). One should use this option to coarsen  the mesh, when a regular mesh  for computation purposes is desired, i.e. a mesh with good aspect ratios or good quality elements.
-
-     It is equivalent to Yams's batch option -1.
-
-   - **Mesh for finite element computation : Coarsening and Enrichment**
-
-     One should use this option to coarsen  and enrich the mesh, when a regular mesh for computation purposes is desired, i.e. a mesh with good aspect ratios or good quality elements. The method is the same as above.
-
-     It is equivalent to Yams's batch option 1.
+This is the main remeshing Option.
    
 
-Units parameter
----------------
-
-It indicates what reference is used for the values corresponding to size or distance specifications:
-If the Units parameter is absolute, values are relative to the bounding box,otherwise the tolerance parameter is expressed in model units. The bounding box size is defined as the length of the diagonal (lower left back icorner to upper right front corner).
-
-
-
-Chordal deviation tolerance parameter
--------------------------------------
-
-This field enables the user to bound the maximal chordal deviation allowed, that is, the maximal distance allowed between the detected curve and the plane of the corresponding mesh face. It avoids having faces too far away from the curve they represent.
-
-.. image:: images/Tolerance.png
-   :align: center
-
-
-This parameter enables the user to specify the maximal chordal deviation epsilon max.
-
-it can be :
-  - relative : the maximal chordal deviation - epsilon max -is set to 0.001 x the parameter. by default, the parameter is set to 0.1 and the maximum deviation is also 0.1 x 1/1000 * the size of the bounding box,  which is equivalent to say that, for a bouding box of 1 meter, the maximal deviation is 0.1 mm.
-  - absolute : the maximal chordal deviation is the parameter itself. eg if the parameter equals 2, the maximal chordal deviation will be 2 (mm if the point coordonates are given in mm).
-
-Following that criterion:
-  - if the chordal deviation epsilon is smaller than epsilon max, it is acceptable to remove the considered point.
-  - if the chordal deviation epsilon is greater than epsilon max, the considered mesh face should be redifined by adding a point on the curve.
-
index e030f5c5b239c6880ce9a5a887f38983d5e7c8e4..5ab05f374bdd07cf5c11aea601f9bfeadbd6ea2e 100644 (file)
@@ -4,17 +4,23 @@
 How to save MG-Cleaner Parameters 
 ===========================
 
-As MG-Cleaner hypothesis are not meshing hypothesis for Salome (but hypothesis for MG-Cleaner), parameters
-are stored in a special file. Default file is $HOME/.MGCleaner.dat. It is strongly recommended that you
-change this name if you want to preserve the way you obtain a mesh : This file is never cleaned.
-All sets of parameters are logged in it.
+MG-Cleaner hypothesis is not meshing hypothesis for Salome, but hypothesis for MG-Cleaner.
+The current set of parameters is automatically written in the salome study object browser when you run computation.
 
+Theses parameters could also be stored in a special file.
+Default file is $HOME/.MGCleaner.dat.
+This ASCII file is appended, and never cleaned.
 
-- To save the current setting, click on "Save Params" pushbutton. 
-- A set of parameters is automatically written in the .MGCleaner.dat file when you run computation.  
-- Restoring the default settings can be done by pushing "Default Params". 
-- "Loading Params" will reload the last set of parameters
+In frame "Plug-in Generic Options":
 
+- To save the current setting in this file, click on "Save" pushbutton.
+- To load the last set of parameters saved, click on "Load" pushbutton.
+
+At the bottom of the dialog window:  
+
+- To save a current setting in the study object browser, click on "Save" pushbutton.
+- To load a current setting from the study object browser, click on "Load" pushbutton.
+- To load the default setting, click on "Default" pushbutton. .
 
 
 **example of .MGCleaner.dat**
@@ -22,39 +28,23 @@ All sets of parameters are logged in it.
 
 .. code-block:: python
 
-   # Save intermediate params
-   # Params for mesh :
-   Optimisation ='Quality improvement Only (0)'
-   Units ='Relative'
-   Chordal_Tolerance_Deviation=1.0
-   Ridge_Detection=True
-   Split_Edge=False
-   Point_Smoothing=True
-   Geometrical_Approximation=0.04
-   Ridge_Angle=45.0
-   Maximum_Size=-2.0
-   Minimum_Size=-2.0
-   Mesh_Gradation=1.3
-   Verbosity=3
-   Memory=0
-   
-   
-   
-   # Params for Hypothese : anHypo_MGCleaner_0
+   # MGCleaner hypothesis parameters
    # Params for mesh : Mesh_1
-   Optimisation ='Quality improvement Only (0)'
-   Units ='Relative'
-   Chordal_Tolerance_Deviation=1.0
-   Ridge_Detection=True
-   Split_Edge=False
-   Point_Smoothing=True
-   Geometrical_Approximation=0.04
-   Ridge_Angle=45.0
-   Maximum_Size=-2.0
-   Minimum_Size=-2.0
-   Mesh_Gradation=1.3
-   Verbosity=3
-   Memory=0
-
+   # Date : 21/05/13 10:44:05
+   # Command : mg-cleaner.exe --verbose 2 --in /tmp/ForMGCleaner_2.mesh --out /tmp/ForMGCleaner_2_fix.mesh --check --topology ignore --tolerance_displacement 0.0 --folding_angle 15.0 --overlap_angle 15.0
+   CheckOrFix=check
+   PreserveTopology=False
+   FillHoles=False
+   MinHoleSize=0.0
+   ComputedToleranceDisplacement=True
+   ToleranceDisplacement=0.0
+   ComputedResolutionLength=False
+   ResolutionLength=0.0
+   FoldingAngle=15.0
+   RemeshPlanes=False
+   ComputedOverlapDistance=True
+   OverlapDistance=0.0
+   OverlapAngle=15.0
+   Verbosity=2
 
 
index bd91a1733ac43414722f3cc759219b5f97785634..2e19ee577b9d812593905b1f2a6eec5039d35d5a 100644 (file)
Binary files a/src/Tools/MGCleanerPlug/doc/images/Advanced.png and b/src/Tools/MGCleanerPlug/doc/images/Advanced.png differ
index a18b9ef65155f737a1a9bf28daf5a6cea23dfad8..620e8f2e656b47458f970669af6b73270c2bc0a4 100644 (file)
Binary files a/src/Tools/MGCleanerPlug/doc/images/AppelMGCleaner.png and b/src/Tools/MGCleanerPlug/doc/images/AppelMGCleaner.png differ
index fb37ab42c8c26db0c200802be88b2e38a7d2f110..a6614bf491cde396e0ebdda2a439370e8799ef31 100644 (file)
Binary files a/src/Tools/MGCleanerPlug/doc/images/Generic.png and b/src/Tools/MGCleanerPlug/doc/images/Generic.png differ
index 98cf1b9b9f77f7dcb7091154551fa05daa5a8a6e..52775723c96f8ed6ac51f4cb535000ea8bf5cd9b 100644 (file)
Binary files a/src/Tools/MGCleanerPlug/doc/images/Simple.png and b/src/Tools/MGCleanerPlug/doc/images/Simple.png differ
index f742966b5d3818ce282ae4a48ec04f0cd79ceac4..533951573a3a54da4b2b7ce538b2e69ef9811cd4 100644 (file)
@@ -21,8 +21,8 @@ Contents:
   
    lct.rst
    Mandatory_params.rst
-   Generics_params.rst
    Advanced_params.rst
+   Generics_params.rst
    editHypo.rst
    
    
index 1d33bb476daaf5170d4eb42177858fcfebddcffd..2679f857ec463da8f444056eb7a160329b2cc001 100644 (file)
         </property>
       </widget>
      </item>
-     <item>
-      <widget class="QPushButton" name="PB_Save">
-       <property name="text">
-        <string>Save</string>
-       </property>
-        <property name="iconSize">
-         <size>
-          <width>18</width>
-          <height>18</height>
-         </size>
-        </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="PB_Load">
-       <property name="text">
-        <string>Load</string>
-       </property>
-        <property name="iconSize">
-         <size>
-          <width>18</width>
-          <height>18</height>
-         </size>
-        </property>
-      </widget>
-     </item>
      <item>
       <widget class="QPushButton" name="PB_Default">
        <property name="text">
@@ -976,7 +950,7 @@ exceeds the machine capabilities, the tool will stop because of insufficient mem
          <x>10</x>
          <y>150</y>
          <width>750</width>
-         <height>140</height>
+         <height>170</height>
         </rect>
        </property>
        <property name="title">
@@ -1018,6 +992,47 @@ exceeds the machine capabilities, the tool will stop because of insufficient mem
          </rect>
         </property>
        </widget>
+       
+      <widget class="QPushButton" name="PB_Save">
+        <property name="geometry">
+         <rect>
+          <x>20</x>
+          <y>110</y>
+          <width>70</width>
+          <height>31</height>
+         </rect>
+        </property>
+       <property name="text">
+        <string>Save</string>
+       </property>
+        <property name="iconSize">
+         <size>
+          <width>18</width>
+          <height>18</height>
+         </size>
+        </property>
+      </widget>
+
+      <widget class="QPushButton" name="PB_Load">
+        <property name="geometry">
+         <rect>
+          <x>120</x>
+          <y>110</y>
+          <width>70</width>
+          <height>31</height>
+         </rect>
+        </property>
+       <property name="text">
+        <string>Load</string>
+       </property>
+        <property name="iconSize">
+         <size>
+          <width>18</width>
+          <height>18</height>
+         </size>
+        </property>
+      </widget>
+       
       </widget>
      </widget>
     </widget>
index 32b31b1acd439f2e8ad82d597b645361b0871b12..046e688c91ff570d9b4ff84fbbf50716f4fb91e4 100644 (file)
@@ -15,7 +15,7 @@ You usually don't have to set this parameter but you can choose to limit the amo
     
 - **File** 
 
-You can change the file used to store the remeshing hypothesis. see paragraph :ref:`hypothesis-label` for further informations.
+You can change the file used to store remeshing hypotheses. see paragraph :ref:`hypothesis-label` for further informations.
 
 .. image:: images/Generic.png
    :align: center
index a22e38d27e99762d57b0b00117471bf94743654d..75b8eb76ad778cb6bd0f6cb5431626bf3e815437 100644 (file)
@@ -4,17 +4,23 @@
 How to save Yams Parameters 
 ===========================
 
-As Yams hypothesis are not meshing hypothesis for Salome (but hypothesis for yams), parameters
-are stored in a special file. Default file is $HOME/.yams.dat. It is strongly recommended that you
-change this name if you want to preserve the way you obtain a mesh : This file is never cleaned.
-All sets of parameters are logged in it.
+Yams hypothesis is not meshing hypothesis for Salome, but hypothesis for yams.
+The current set of parameters is automatically written in the salome study object browser when you run computation.
 
+Theses parameters could also be stored in a special file.
+Default file is $HOME/.yams.dat.
+This ASCII file is appended, and never cleaned.
 
-- To save the current setting, click on "Save Params" pushbutton. 
-- A set of parameters is automatically written in the .yams.dat file when you run computation.  
-- Restoring the default settings can be done by pushing "Default Params". 
-- "Loading Params" will reload the last set of parameters
+In frame "Plug-in Generic Options":
 
+- To save the current setting in this file, click on "Save" pushbutton.
+- To load the last set of parameters saved, click on "Load" pushbutton.
+
+At the bottom of the dialog window:
+  
+- To save a current setting in the study object browser, click on "Save" pushbutton.
+- To load a current setting from the study object browser, click on "Load" pushbutton.
+- To load the default setting, click on "Default" pushbutton. .
 
 
 **example of .yams.dat**
@@ -22,39 +28,25 @@ All sets of parameters are logged in it.
 
 .. code-block:: python
 
-   # Save intermediate params
-   # Params for mesh :
-   Optimisation ='Quality improvement Only (0)'
-   Units ='Relative'
-   Chordal_Tolerance_Deviation=1.0
-   Ridge_Detection=True
-   Split_Edge=False
-   Point_Smoothing=True
-   Geometrical_Approximation=0.04
-   Ridge_Angle=45.0
-   Maximum_Size=-2.0
-   Minimum_Size=-2.0
-   Mesh_Gradation=1.3
-   Verbosity=3
-   Memory=0
-   
-   
-   
-   # Params for Hypothese : anHypo_Yams_0
+   # YAMS hypothesis parameters
    # Params for mesh : Mesh_1
-   Optimisation ='Quality improvement Only (0)'
-   Units ='Relative'
-   Chordal_Tolerance_Deviation=1.0
-   Ridge_Detection=True
-   Split_Edge=False
-   Point_Smoothing=True
-   Geometrical_Approximation=0.04
-   Ridge_Angle=45.0
-   Maximum_Size=-2.0
-   Minimum_Size=-2.0
-   Mesh_Gradation=1.3
+   # Date : 23/05/13 14:23:18
+   # Command : yams -v 3 -O 0 -Drelative,tolerance=0.100000,maxsize=0.010000,minsize=0.000000 /tmp/ForYams_1.mesh
+   Optimisation=Quality improvement Only (0)
+   Units=Relative
+   ChordalToleranceDeviation=0.1
+   RidgeDetection=True
+   SplitEdge=False
+   PointSmoothing=True
+   GeometricalApproximation=0.04
+   RidgeAngle=45.0
+   MaximumSize=0.01
+   MinimumSize=0.0
+   MeshGradation=1.3
    Verbosity=3
    Memory=0
+   
+
 
 
 
index bd91a1733ac43414722f3cc759219b5f97785634..eb8ee0fb0f8cb28f4a23cb8afc8f21fde0221d7d 100644 (file)
Binary files a/src/Tools/YamsPlug/doc/images/Advanced.png and b/src/Tools/YamsPlug/doc/images/Advanced.png differ
index a18b9ef65155f737a1a9bf28daf5a6cea23dfad8..d3f6fddc6c1e5e5a099093ad494818449e65118f 100644 (file)
Binary files a/src/Tools/YamsPlug/doc/images/AppelYams.png and b/src/Tools/YamsPlug/doc/images/AppelYams.png differ
index fb37ab42c8c26db0c200802be88b2e38a7d2f110..eaabb4c92c223c0d5460ae3645625ffc5ec3025d 100644 (file)
Binary files a/src/Tools/YamsPlug/doc/images/Generic.png and b/src/Tools/YamsPlug/doc/images/Generic.png differ
index 98cf1b9b9f77f7dcb7091154551fa05daa5a8a6e..63f61b4215e234cf03c48d852a6fa3d258f93ec3 100644 (file)
Binary files a/src/Tools/YamsPlug/doc/images/Simple.png and b/src/Tools/YamsPlug/doc/images/Simple.png differ
index e25d0ca032ca877a3a24e2a5d3fc025d7ae8a7ec..45442f9aec195a92fbf8259903eff19e67193089 100644 (file)
@@ -21,8 +21,8 @@ Contents:
   
    lct.rst
    Mandatory_params.rst
-   Generics_params.rst
    Advanced_params.rst
+   Generics_params.rst
    editHypo.rst
    
    
index b708699b723ba8dff0b4993ff0d71504f4a1abdc..d77b1b08a421c83a1f4dbc0d9f0edadb879c98dc 100644 (file)
@@ -113,15 +113,18 @@ class MonYamsPlugDialog(Ui_YamsPlugDialog,QWidget):
     import salome
     from salome.kernel import studyedit
 
-    #print "enregistreResultat"
     maStudy=studyedit.getActiveStudy()
     smesh.SetCurrentStudy(maStudy)
     (outputMesh, status) = smesh.CreateMeshesFromGMF(self.fichierOut)
     name=str(self.LE_MeshSmesh.text())
+    initialMeshFile=None
+    initialMeshObject=None
     if name=="":
-      #print "name new MESH",self.LE_MeshFile.text()
       a=str(self.fichierIn)
       name=os.path.basename(os.path.splitext(a)[0])
+      initialMeshFile=a
+    else:
+      initialMeshObject=maStudy.FindObjectByName(name ,"SMESH")[0]
 
     meshname = name+"_YAMS_"+str(self.num)
     smesh.SetName(outputMesh.GetMesh(), meshname)
@@ -130,21 +133,29 @@ class MonYamsPlugDialog(Ui_YamsPlugDialog,QWidget):
     self.editor = studyedit.getStudyEditor()    # 
     moduleEntry=self.editor.findOrCreateComponent("SMESH","SMESH")
     HypReMeshEntry = self.editor.findOrCreateItem(
-        moduleEntry, name = "YAMS Hypotheses", icon="mesh_tree_algo.png") #, comment = "HypoForRemeshing" )
+        moduleEntry, name = "Plugins Hypotheses", icon="mesh_tree_hypo.png") #, comment = "HypoForRemeshing" )
 
-    monStudyBuilder=maStudy.NewBuilder();
-    monStudyBuilder.NewCommand();
+    monStudyBuilder=maStudy.NewBuilder()
+    monStudyBuilder.NewCommand()
     newStudyIter=monStudyBuilder.NewObject(HypReMeshEntry)
-    aNameAttrib=monStudyBuilder.FindOrCreateAttribute(newStudyIter,"AttributeName")
-    hypoName = "HypoYams_"+str(self.num)
-    aNameAttrib.SetValue(hypoName)
-    aCommentAttrib=monStudyBuilder.FindOrCreateAttribute(newStudyIter,"AttributeComment")
-    aCommentAttrib.SetValue(self.getResumeData(separator=" ; "))
+    self.editor.setAttributeValue(newStudyIter, "AttributeName", "YAMS Parameters_"+str(self.num))
+    self.editor.setAttributeValue(newStudyIter, "AttributeComment", self.getResumeData(separator=" ; "))
     
     SOMesh=maStudy.FindObjectByName(meshname ,"SMESH")[0]
+    
+    if initialMeshFile!=None:
+      newStudyFileName=monStudyBuilder.NewObject(SOMesh)
+      self.editor.setAttributeValue(newStudyFileName, "AttributeName", "meshFile")
+      self.editor.setAttributeValue(newStudyFileName, "AttributeExternalFileDef", initialMeshFile)
+      self.editor.setAttributeValue(newStudyFileName, "AttributeComment", initialMeshFile)
+
+    if initialMeshObject!=None:
+      newLink=monStudyBuilder.NewObject(SOMesh)
+      monStudyBuilder.Addreference(newLink, initialMeshObject)
+
     newLink=monStudyBuilder.NewObject(SOMesh)
     monStudyBuilder.Addreference(newLink, newStudyIter)
-    
+
     if salome.sg.hasDesktop(): salome.sg.updateObjBrowser(0)
     self.num+=1
     return True
@@ -186,17 +197,13 @@ class MonYamsPlugDialog(Ui_YamsPlugDialog,QWidget):
     self.editor = studyedit.getStudyEditor()
     moduleEntry=self.editor.findOrCreateComponent("SMESH","SMESH")
     HypReMeshEntry = self.editor.findOrCreateItem(
-        moduleEntry, name = "YAMS Hypotheses", icon="mesh_tree_algo.png") #, comment = "HypoForRemeshing" )
+        moduleEntry, name = "Plugins Hypotheses", icon="mesh_tree_hypo.png") #, comment = "HypoForRemeshing" )
     
     monStudyBuilder=maStudy.NewBuilder()
     monStudyBuilder.NewCommand()
     newStudyIter=monStudyBuilder.NewObject(HypReMeshEntry)
-    aNameAttrib=monStudyBuilder.FindOrCreateAttribute(newStudyIter,"AttributeName")
-    hypoName = "HypoYams_"+str(self.num)
-    aNameAttrib.SetValue(hypoName)
-    aCommentAttrib=monStudyBuilder.FindOrCreateAttribute(newStudyIter,"AttributeComment")
-    #print "getResumeData",type(self.getResumeData(separator=" ; ")),self.getResumeData(separator=" ; ")
-    aCommentAttrib.SetValue(self.getResumeData(separator=" ; "))
+    self.editor.setAttributeValue(newStudyIter, "AttributeName", "YAMS Parameters_"+str(self.num))
+    self.editor.setAttributeValue(newStudyIter, "AttributeComment", self.getResumeData(separator=" ; "))
     
     if salome.sg.hasDesktop(): salome.sg.updateObjBrowser(0)
     self.num+=1
@@ -284,16 +291,6 @@ class MonYamsPlugDialog(Ui_YamsPlugDialog,QWidget):
       QMessageBox.critical(self, "Hypothese", "select an Object Browser YAMS hypothesis")
       return
     
-    #for i in dir(mySObject): print "dir mySObject",i
-    #print "GetAllAttributes",mySObject.GetAllAttributes()
-    #print "GetComment",mySObject.GetComment()
-    #print "GetName",mySObject.GetName()
-    
-    #could be renamed...
-    #if mySObject.GetFather().GetName()!="MGCleaner Hypotheses":
-    #  QMessageBox.critical(self, "Hypothese", "not a child of MGCleaner Hypotheses")
-    #  return
-    
     text=mySObject.GetComment()
     
     #a verification
@@ -334,8 +331,6 @@ class MonYamsPlugDialog(Ui_YamsPlugDialog,QWidget):
 
   def meshSmeshNameChanged(self):
     """only change by GUI mouse selection, otherwise clear"""
-    #self.MeshIn=str(self.LE_MeshSmesh.text())
-    #print "meshSmeshNameChanged", self.MeshIn
     self.__selectedMesh = None
     self.MeshIn=""
     self.LE_MeshSmesh.setText("")