@@ -274,7 +274,8 @@ def name(self):
274
274
@name .setter
275
275
def name (self , value ):
276
276
try :
277
- self ._app .modeler .objects_by_name [self ._name ].name = value
277
+ if self ._app .modeler .objects_by_name [self ._name ].name != value :
278
+ self ._app .modeler .objects_by_name [self ._name ].name = value
278
279
except KeyError :
279
280
if self ._app .modeler .objects_by_name [value ].history ().command == "CreateSubRegion" :
280
281
self ._name = value
@@ -408,6 +409,13 @@ def parts(self, parts):
408
409
409
410
410
411
class MeshSettings (object ):
412
+ """
413
+ Class for managing mesh settings.
414
+
415
+ It can be used like a dictionary. Available keys change according
416
+ to the type of settings chosen (manual or automatic).
417
+ """
418
+
411
419
_automatic_mesh_settings = {"MeshRegionResolution" : 3 } # min: 1, max: 5
412
420
_common_mesh_settings = {
413
421
"ProximitySizeFunction" : True ,
@@ -464,14 +472,14 @@ def _dim_arg(self, value):
464
472
else :
465
473
return _dim_arg (value , getattr (self ._mesh_class , "_model_units" ))
466
474
467
- def parse_settings (self ):
475
+ def parse_settings_as_args (self ):
468
476
"""
469
477
Parse mesh region settings.
470
478
471
479
Returns
472
480
-------
473
- dict
474
- List of strings containing all the parts that must be included in the subregion .
481
+ List
482
+ Arguments to pass to native APIs .
475
483
"""
476
484
out = []
477
485
for k , v in self ._instance_settings .items ():
@@ -481,6 +489,22 @@ def parse_settings(self):
481
489
out .append (v )
482
490
return out
483
491
492
+ def parse_settings_as_dictionary (self ):
493
+ """
494
+ Parse mesh region settings.
495
+
496
+ Returns
497
+ -------
498
+ dict
499
+ Settings of the subregion.
500
+ """
501
+ out = {}
502
+ for k , v in self ._instance_settings .items ():
503
+ if k in ["MaxElementSizeX" , "MaxElementSizeY" , "MaxElementSizeZ" , "MinGapX" , "MinGapY" , "MinGapZ" ]:
504
+ v = self ._dim_arg (v )
505
+ out [k ] = v
506
+ return out
507
+
484
508
def _key_in_dict (self , key ):
485
509
if self ._mesh_class .manual_settings :
486
510
ref_dict = self ._manual_mesh_settings
@@ -489,13 +513,29 @@ def _key_in_dict(self, key):
489
513
return key in ref_dict or key in self ._common_mesh_settings
490
514
491
515
def keys (self ):
492
- return self .parse_settings ().keys ()
516
+ """
517
+ Get mesh region settings keys.
518
+
519
+ Returns
520
+ -------
521
+ dict_keys
522
+ Available settings keys.
523
+ """
524
+ return self .parse_settings_as_dictionary ().keys ()
493
525
494
526
def values (self ):
495
- return self .parse_settings ().values ()
527
+ """
528
+ Get mesh region settings values.
529
+
530
+ Returns
531
+ -------
532
+ dict_values
533
+ Settings values.
534
+ """
535
+ return self .parse_settings_as_dictionary ().values ()
496
536
497
537
def __repr__ (self ):
498
- return repr (self .parse_settings ())
538
+ return repr (self .parse_settings_as_dictionary ())
499
539
500
540
def __getitem__ (self , key ):
501
541
if key == "Level" :
@@ -628,7 +668,7 @@ def update(self):
628
668
>>> oModule.EditGlobalMeshRegion
629
669
"""
630
670
args = ["NAME:Settings" ]
631
- args += self .settings .parse_settings ()
671
+ args += self .settings .parse_settings_as_args ()
632
672
args += ["UserSpecifiedSettings:=" , self .manual_settings ]
633
673
try :
634
674
self ._app .omeshmodule .EditGlobalMeshRegion (args )
@@ -754,7 +794,7 @@ def update(self):
754
794
>>> oModule.EditMeshRegion
755
795
"""
756
796
args = ["NAME:" + self .name , "Enable:=" , self .enable ]
757
- args += self .settings .parse_settings ()
797
+ args += self .settings .parse_settings_as_args ()
758
798
args += self ._parse_assignment_value ()
759
799
args += ["UserSpecifiedSettings:=" , self .manual_settings ]
760
800
try :
@@ -854,7 +894,7 @@ def create(self):
854
894
self ._app .logger .error ("Cannot create a new mesh region with this Name" )
855
895
return False
856
896
args = ["NAME:" + self .name , "Enable:=" , self .enable ]
857
- args += self .settings .parse_settings ()
897
+ args += self .settings .parse_settings_as_args ()
858
898
args += ["UserSpecifiedSettings:=" , not self .manual_settings ]
859
899
args += self ._parse_assignment_value ()
860
900
self ._app .omeshmodule .AssignMeshRegion (args )
0 commit comments