Hi Christophe,
thanks for the answer, that's exactly what I was looking for.
I've tried to use the Visible parameter before but could not figure out how to 
implement it but yesterday the penny finally dropped :-)
Regards,
Marco
PS: If someone is interested below is an example of how you could do it

// Set the number of maximum dielectric 
groups//============================================nr_dielectric_groups_max 
=10;
// Check the number of dielectric group variables present in ONELAB database// 
If there is none no action is taken// old_nr_dg represent the nr. of dielect. 
groups available from previous script 
run//==================================================================================old_nr_dg=0;For
 i In {1:nr_dielectric_groups_max}  seekZero = GetNumber(Sprintf(" Dielectric 
parameters/ Dielectric thickness %g", i));  If (seekZero!=0)    old_nr_dg +=1;  
EndIfEndFor
// Define the new nr. of dielect. 
groups//======================================DefineConstant[ 
nr_dielectric_groups = {1, Min 1, Max nr_dielectric_groups_max, Step 1, Name " 
Dielectric parameters/Nr. of dielectric groups"} ];
// Chose which variables will be 
hidden/shown//===========================================If 
(old_nr_dg>=nr_dielectric_groups)  nr_count=old_nr_dg;Else  
nr_count=nr_dielectric_groups;EndIf
For i In {0:nr_count-1}  visi_flag(i)=0;EndForFor i In 
{0:nr_dielectric_groups-1}  visi_flag(i)=1;EndFor
// Create variables and update menu 
view//======================================For i In {0:nr_count-1}  
dielectric_thickness(i) = DefineNumber[ 550, Min 1, Max 2000, Step 1, Name 
Sprintf(" Dielectric parameters/ Dielectric thickness %g", i+1), Visible 
visi_flag(i) ];  dielectric_thickness(i) = dielectric_thickness(i)/1e6;EndFor
    Il mercoledì 4 novembre 2020, 08:59:12 CET, Christophe Geuzaine 
<[email protected]> ha scritto:  
 
 

> On 30 Oct 2020, at 15:28, Marco Antolovic <[email protected]> wrote:
> 
> Hi all,
> 
> Is there a way to delete a variable that you created in the GUI menu when you 
> reload the script?
> 
> I'll try to explain my question with this example:
> 
>  nr_dielectric_groups = DefineNumber[ 4, Min 1, Max 2000, Step 1, Name " 
>Dielectric parameters/Nr. of dielectric groups" ];
> 
> For i In {0:nr_dielectric_groups-1}
>    dielectric_thickness(i) = DefineNumber[ 550, Min 1, Max 2000, Step 1, Name 
>Sprintf(" Dielectric parameters/ Dielectric thickness %g", i+1) ];
> EndFor
> 
> when you first start the script dielectric_thickness() will be a vector of 
> dimension four and you will see four dielectric_thickness variables in the 
> menu.
> 
> However if I set nr_dielectric_groups=2 the menu will still show four 
> dielectric_thickness variables. Is there a way to delete excess variables 
> from the menu?
> 

You can "undefine" them using "UndefineConstant[]". But in practice we usually 
simply hide them (with the "Visible" attribute) : this way if you change your 
mind and later re-increase "nr_dielectric_groups", you will still have the 
value that you might have selected before.

Christophe



> Many thanks,
> 
> Marco
> 
> 
> _______________________________________________
> gmsh mailing list
> [email protected]
> http://onelab.info/mailman/listinfo/gmsh

— 
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science 
http://people.montefiore.ulg.ac.be/geuzaine



  
_______________________________________________
gmsh mailing list
[email protected]
http://onelab.info/mailman/listinfo/gmsh

Reply via email to