## Handing OpenSCAD module parameters derived from other variables

2

1

I'm new to OpenSCAD, but I can only get default parameters working for simple values.

I'm wondering if there is any way to achieve the following, where I have some parameters available to the module caller but by default they are derived from other parameters.

I had expected this to work - I thought the compiler to be able to resolve these variables in-scope during compilation since everything here is deterministic - so perhaps I'm just missing some syntax? If not, is there some better way to achieve this?

module clasp(length=20,
mouth = pin_radius * 0.9,
) {
... do the work ...
}


Unfortunately this approach leaves mount/inner/outer all undef.

mouth = is_undef(mouth) ? pin_radius * 0.9 : mouth;

etc. If you'll only be using the file via a use directive in other files, another approach is file-scope variables. These can be overridden when the module is called, just like module parameters, and they do not provide or take values for/from the calling file's file-scope variable namespace.