Jdi na navigaci předmětu

Proměnné v OpenSCADu - Co jde a co ne

// Jednotlivé bloky oddělené komentářem uvažujte v jiném souboru (tedy nezávisle na ostatních)


// tohle jde
variable = 5;


// tohle nejde
// respektive nebude to fungovat tak, jak byste si mohli myslet
variable = 5;
variable = 6;


// tohle jde
module foo(arg) {
    arg = 3;
}


// tohle nejde
// respektive změněná hodnota arg bude platiti jen uvnitř těla ifu
module foo(arg) {
    if (arg < 0) {
        arg = 0;
    }
    // ...
}


// tohle ale jde
module foo(arg) {
    arg = arg >= 0 ? arg : 0;
    // ... arg je změněný, pokud něco
}


// ale samozřejmě, arg je v celém modulu stejný
module foo(arg) {
    echo(arg); // vypíše změněný arg!
    arg = arg >= 0 ? arg : 0;
}


// jde to ale udělat jenom jednou
// tohle nejde
module foo(arg) {
    arg = 5;
    echo(arg); // 3
    arg = 3;
}


// ani tohle nejde
module foo(arg) {
    arg = arg >= 0 ? arg : 0;
    arg = arg <= 10 ? arg : 10;
}


// musí se to spojit do jednoho komplikovaného ternárního operátoru
// nebo si na to napsat funkci a udělat:
arg = xyz(arg);