Espressione
Da Opera Wiki.
(→Espressioni) |
|||
Riga 44: | Riga 44: | ||
* <code>typology-option(...) </code>: controlla se un’opzione è attiva in una qualunque struttura della tipologia. | * <code>typology-option(...) </code>: controlla se un’opzione è attiva in una qualunque struttura della tipologia. | ||
* <code>option(...) </code>: controlla se un’opzione è attiva nella struttura corrente. | * <code>option(...) </code>: controlla se un’opzione è attiva nella struttura corrente. | ||
- | * <code>frameside-contains(...) </code>: verifica se un profilo/accessorio è presente | + | * <code>frameside-contains(...) </code>: verifica se un profilo/accessorio è presente nel lato corrente del telaio/anta. |
- | * <code>frame-contains(...) </code>: verifica la presenza di un profilo/accessorio | + | * <code>frame-contains(...) </code>: verifica la presenza di un profilo/accessorio sull'intero perimetro del telaio/anta |
- | + | ||
* <code>struct-contains(...) </code>: verifica nella struttura corrente. | * <code>struct-contains(...) </code>: verifica nella struttura corrente. | ||
* <code>typology-contains(...) </code>: ricerca estesa a tutte le strutture della tipologia. | * <code>typology-contains(...) </code>: ricerca estesa a tutte le strutture della tipologia. |
Versione corrente delle 08:13, 27 ago 2025
Indice |
Espressioni
Le espressioni consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni oppure per la definizione di valori di quota di profili o accessori. Un’espressione può contenere numeri, variabili, operatori matematici/logici, funzioni matematiche e funzioni speciali, che vengono valutati per stabilire se una condizione è vera o falsa.
Gli operatori matematici disponibili sono:
-
+ - * /
→ rispettivamente addizione, sottrazione, moltiplicazione e divisione -
>
→ maggiore -
<
→ minore
Le funzioni matematiche disponibili sono:
-
round(x)
→ restituisce il numero intero più vicino a X -
floor(x)
→ restituisce il numero intero minore o uguale a X -
ceil(x)
→ restituisce il numero intero maggiore o uguale a X -
sqr(x)
→ restituisce la radice quadrata di X -
log(x)
→ restituisce il logaritmo naturale di X -
exp(x)
→ restituisce il risultato di e^x -
cos(x) | sin(x)
→ restituisce rispettivamente il coseno e il seno di X -
acos(x) | asin(x)
→ restituisce rispettivamente l'arcocoseno e l'arcoseno di X
Concatenazione degli elementi
Gli elementi possono essere combinati tra loro tramite:
- l’uso di funzioni nidificate;
- l’uso di operatori logici per unire più condizioni separate da parentesi tonde.
Gli operatori logici sono:
-
&
→ AND logico (entrambe le condizioni devono essere vere); -
|
→ OR logico (almeno una condizione deve essere vera).

profile(A1010) & option(OPZ1) → vero solo se il profilo è 'A1010' E l’opzione 'OPZ1' è attiva
(Lia>500) & (Hia>1600) → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm
Funzioni speciali
Sono previste varie funzioni speciali, utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:
-
profile(...)
: verifica se la condizione è esaminata in uno specifico profilo. -
typology-option(...)
: controlla se un’opzione è attiva in una qualunque struttura della tipologia. -
option(...)
: controlla se un’opzione è attiva nella struttura corrente. -
frameside-contains(...)
: verifica se un profilo/accessorio è presente nel lato corrente del telaio/anta. -
frame-contains(...)
: verifica la presenza di un profilo/accessorio sull'intero perimetro del telaio/anta -
struct-contains(...)
: verifica nella struttura corrente. -
typology-contains(...)
: ricerca estesa a tutte le strutture della tipologia. -
fix-contains(...)
: verifica nei profili del telaio corrente . -
sash-contains(...)
: verifica nei profili dell'anta corrente .
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:
-
sash-panes-contains(...)
: verifica nel riempimento dell'anta corrente. -
struct-panes-contains(...)
: verifica in tutti i riempimenti della struttura.

profile(NOME_PROFILO)
struct-contains(NOME_PROFILO_O_ACCESSORIO)
option(NOME_OPZIONE)
struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio 'ACC123' oppure 'ACC456'.
option(OPZ1) & (side-contains(PF100) | side-contains(PF200)) → l’opzione 'OPZ1' deve essere attiva e, allo stesso tempo, il lato deve contenere 'PF100' o 'PF200'
Ricerca codici avanzata
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:
-
espressione regolare
: se il parametro inizia conr=
, viene interpretato come una regexp. -
parola chiave (keyword)
: se il parametro èkeyword(key)
, viene ricercata la parola chiave key nei campi chiave di profili, accessori o opzioni.

side-contains(r=P.*2) → ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera 'P' seguita dal numero '2', con qualunque carattere in mezzo.
frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave 'KITAR'.
Le ricerche regolari e per parole chiave possono anche essere annidate.

typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per 'FR'.