discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Associative array

PC
Patrick Callahan
Mon, Nov 1, 2021 1:36 PM

function getval(u,k)=u[k];
function select (v,s)=let ( i= search(s,v))
getval(getval(v,i[0]),1);
associative_array=[[3.125,3.107],[2.25,2.104],[1.0,.978],[42, 42]];

echo(select(associative_array,3.125));
echo(select(associative_array,2.25));
echo(select(associative_array,1));
echo(select(associative_array,1.0));
echo(select(associative_array,42));

This seems to work.

function getval(u,k)=u[k]; function select (v,s)=let ( i= search(s,v)) getval(getval(v,i[0]),1); associative_array=[[3.125,3.107],[2.25,2.104],[1.0,.978],[42, 42]]; echo(select(associative_array,3.125)); echo(select(associative_array,2.25)); echo(select(associative_array,1)); echo(select(associative_array,1.0)); echo(select(associative_array,42)); This seems to work.
LM
Leonard Martin Struttmann
Mon, Nov 1, 2021 2:00 PM

You can also use strings for the keys:

shaftD = 3;
shaftL = 10;

//******************************
constants =
[
["shaftD", shaftD ],
["length" , shaftL  ],
];
//******************************

//******************************
function cam( name ) =
let ( row = search( [name], constants )[0] )
assert(row != [], str("Unknown name '", name, "' supplied to getter
function."))
constants[row][1];
//******************************

On Mon, Nov 1, 2021 at 8:37 AM Patrick Callahan pat.callahan1@gmail.com
wrote:

function getval(u,k)=u[k];
function select (v,s)=let ( i= search(s,v))
getval(getval(v,i[0]),1);
associative_array=[[3.125,3.107],[2.25,2.104],[1.0,.978],[42, 42]];

echo(select(associative_array,3.125));
echo(select(associative_array,2.25));
echo(select(associative_array,1));
echo(select(associative_array,1.0));
echo(select(associative_array,42));

This seems to work.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

You can also use strings for the keys: shaftD = 3; shaftL = 10; //****************************** constants = [ ["shaftD", shaftD ], ["length" , shaftL ], ]; //****************************** //****************************** function cam( name ) = let ( row = search( [name], constants )[0] ) assert(row != [], str("Unknown name '", name, "' supplied to getter function.")) constants[row][1]; //****************************** On Mon, Nov 1, 2021 at 8:37 AM Patrick Callahan <pat.callahan1@gmail.com> wrote: > function getval(u,k)=u[k]; > function select (v,s)=let ( i= search(s,v)) > getval(getval(v,i[0]),1); > associative_array=[[3.125,3.107],[2.25,2.104],[1.0,.978],[42, 42]]; > > echo(select(associative_array,3.125)); > echo(select(associative_array,2.25)); > echo(select(associative_array,1)); > echo(select(associative_array,1.0)); > echo(select(associative_array,42)); > > This seems to work. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >