discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Re: [OpenSCAD] Using a single parameter to set multiple variables

LB
L Boyd
Sat, Oct 10, 2015 5:18 PM

Here is one possibility which moves the later part of your script to another
module so it can be more easily used within the scope of the if().

module coaster(element){
if (element=="Hydrogen") rest_of_coaster(1,"Hydrogen","H",1.008);
else if (element=="Helium")    rest_of_coaster(2,"Helium", "He",4.003);
}

module rest_of_coaster(atomic_number,element,symbol,atomic_mass){
// do whatever
}

A different approach is this

element_data = [[0,"","",0],  // must be in order
[1,"Hydrogen","H",1.008],  // indexed via atomic number
[2,"Helium",  "He",4.003]    // redundant atomic number to preserve
your sanity later
];

Hydrogen = 1;
Helium  = 2;

module coaster(atomic_number){
element      = element_data[atomic_number][0];
symbol        = element_data[atomic_number][1];
atomic_mass= element_data[atomic_number][2];
//rest of script
}

--
View this message in context: http://forum.openscad.org/Using-a-single-parameter-to-set-multiple-variables-tp14102p14103.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Here is one possibility which moves the later part of your script to another module so it can be more easily used within the scope of the if(). module coaster(element){ if (element=="Hydrogen") rest_of_coaster(1,"Hydrogen","H",1.008); else if (element=="Helium") rest_of_coaster(2,"Helium", "He",4.003); } module rest_of_coaster(atomic_number,element,symbol,atomic_mass){ // do whatever } A different approach is this element_data = [[0,"","",0], // must be in order [1,"Hydrogen","H",1.008], // indexed via atomic number [2,"Helium", "He",4.003] // redundant atomic number to preserve your sanity later ]; Hydrogen = 1; Helium = 2; module coaster(atomic_number){ element = element_data[atomic_number][0]; symbol = element_data[atomic_number][1]; atomic_mass= element_data[atomic_number][2]; //rest of script } -- View this message in context: http://forum.openscad.org/Using-a-single-parameter-to-set-multiple-variables-tp14102p14103.html Sent from the OpenSCAD mailing list archive at Nabble.com.