- Home
- Tekla Structures
- Create models
- Custom components
- Add variables to a custom component
- Funzioni nelle formule delle variabili
Funzioni nelle formule delle variabili
Funzioni nelle formule delle variabili
È possibile utilizzare le funzioni per calcolare i valori per le variabili parametriche. Le formule variabili iniziano sempre con un segno di uguale (=).
Per ulteriori informazioni, vedere Impostazione delle proprietà degli oggetti utilizzando le variabili parametriche.
Operatori aritmetici
Utilizzare gli operatori aritmetici per combinare espressioni che restituiscono valori numerici. È possibile utilizzare i seguenti operatori aritmetici:
Operatore |
Descrizione |
Note |
---|---|---|
+ |
somma |
Utilizzare inoltre per creare stringhe di parametri. |
- |
sottrazione |
|
* |
moltiplicazione |
La moltiplicazione è più rapida della divisione. =D1*0,5 è un'operazione più rapida di =D1/2 |
/ |
divisione |
Operatori logici e di confronto
Utilizzare operatori logici e di confronto all'interno delle istruzioni if. È possibile utilizzare istruzioni if-then-else per testare una condizione e impostare il valore in base al risultato.
Ad esempio:
=if (D1>200) then 20 else 10 endif
Nelle istruzioni If è possibile utilizzare i seguenti operatori:
Operatore |
Descrizione |
Esempio |
---|---|---|
== |
entrambi i lati sono uguali |
|
!= |
i lati non sono uguali |
|
< |
il lato sinistro è più piccolo |
|
<= |
il lato sinistro è più piccolo o uguale |
|
> |
il lato destro è più piccolo |
|
>= |
il lato destro è più piccolo o uguale |
|
&& |
AND logico entrambe le condizioni devono essere true |
=if (D1==200 && D2<40) then 6 else 0 endif Se D1 è 200 e D2 è minore di 40, il risultato è 6, altrimenti è 0. |
|| |
OR logico deve essere true una sola condizione |
=if (D1==200 || D2<40) then 6 else 0 endif Se D1 è 200 o D2 è minore di 40, il risultato è 6, altrimenti è 0. |
Funzioni di riferimento
Utilizzare le funzioni di riferimento per fare riferimento alla proprietà di un altro oggetto, ad esempio lo spessore del piatto di una parte secondaria. Tekla Structures si riferisce all'oggetto a livello di sistema, pertanto se la proprietà dell'oggetto cambia, viene modificato anche il valore della funzione di riferimento.
È possibile utilizzare le seguenti funzioni di riferimento:
Funzione |
Descrizione |
Esempio |
---|---|---|
fTpl("template attribute", "object GUID") |
Restituisce il valore di attributo template di un oggetto con un GUID oggetto specificato. |
=fTpl("WEIGHT","ID50B8559A-0000-010B-3133-353432373038") restituisce il peso di un oggetto con GUID ID50B8559A-0000-010B-3133-353432373038. |
fP("user-defined attribute", "object GUID") |
Restituisce il valore dell'attributo utente di un oggetto con un GUID oggetto specificato. |
=fP("comment", "ID50B8559A-0000-010B-3133-353432373038") restituisce l'attributo utente commento di un oggetto con GUID ID50B8559A-0000-010B-3133-353432373038. |
fValueOf("parameter") |
Restituisce il valore del parametro. |
Se l'equazione è =P2+"*"+P3 , il risultato è P2*P3 Con =fValueOf("P2")+"*"+fValueOf("P3") , dove P2=780 e P3=480, il risultato è 780*480 |
fRebarCatalogValue(BarGrade, BarSize, Usage, FieldName) |
Restituisce il valore del catalogo delle barre d'armatura di un oggetto. Usage può essere 2 ("Tie") o 1 ("Main"). FieldName deve essere una delle seguenti operazioni:
|
fRebarCatalogValue("A500HW", "10", 1, 2) restituisce le dimensioni, l'utilizzo e il peso di un oggetto il cui tipo della barra d'armatura è A500HW. |
File ASCII come funzione di riferimento
È possibile fare riferimento ai file ASCII per recuperare i dati. Tekla Structures cerca i file nel seguente ordine:
modello
..\TeklaStructuresModels\<model>\CustomComponentDialogFiles\
progetto (impostare con l'opzione avanzata XS_PROJECT )
azienda (impostare con l'opzione avanzata XS_FIRM )
sistema (impostare con l'opzione avanzata XS_SYSTEM )
Il formato per la lettura dei file è il seguente:
fVF("filename", "key_value_of_row", column_number)
Il valore chiave della riga è un valore di testo univoco.
Il numero di colonna è un indice a partire da 1.
Immettere uno spazio alla fine di ogni riga nel file ASCII. In caso contrario, le informazioni non vengono lette correttamente.
Esempio
La funzione =fVF("Overlap.dat", "MET-202Z25", 5) è nella casella Formula della finestra di dialogo Variabili. La funzione recupera il valore 16.0 per il profilo MET-202Z25 , dal file Overlap.dat.
Valore chiave della riga (MET-202Z25)
Numero della colonna (5)
Funzioni matematiche
Utilizzare le funzioni matematiche per creare espressioni matematiche più complesse. È possibile utilizzare le funzioni seguenti:
Funzione |
Descrizione |
Esempio |
---|---|---|
fabs(parameter) |
Restituisce il valore assoluto del parametro |
=fabs(D1) restituisce 15 se D1 = -15 |
exp(power) |
Restituisce e elevato a potenza e è il numero di Eulero. |
=exp(D1) restituisce 7.39 se D1 = 2 |
ln(parameter) |
Restituisce il logaritmo naturale del parametro (numero di base e ) |
=ln(P2) restituisce 2.71 se P2 = 15 |
log(parameter) |
Restituisce il logaritmo del parametro (numero di base 10) |
=log(D1) restituisce 2 se D1=100 |
sqrt(parameter) |
Restituisce la radice quadrata del parametro |
=sqrt(D1) restituisce 4 se D1 = 16 |
mod(dividend, divider) |
Restituisce il modulo della divisione |
=mod(D1, 5) restituisce 1 se D1 = 16 |
pow(base number, power) |
Restituisce il numero di base elevato alla potenza specificata |
=pow(D1, D2) restituisce 9 se D1 = 3 e D2 = 2 |
hypot(side1,side2) |
Restituisce l'ipotenusa
|
=hypot(D1, D2) restituisce 5 se D1 = 3 e D2 = 4 |
n!(parameter) |
Restituisce il fattoriale del parametro. |
=n!(P2) restituisce 24 se P2 = 4 (1*2*3*4) |
round(parameter, accuracy) |
Restituisce il parametro arrotondato alla precisione specificata |
=round(P1, 0.1) restituisce 10.600 se P1 = 10.567 |
PI |
Restituisce il valore pi con 31 decimali |
=PI restituisce 3.1415926535897932384626433832795 |
Funzioni statistiche
Utilizzare le funzioni statistiche per calcolare somme e medie, nonché per arrotondare i valori. È possibile utilizzare le seguenti funzioni statistiche:
Funzione |
Descrizione |
Esempio (P1 = 1,4 P2 = 2,3) |
---|---|---|
ceil() |
Restituisce il numero intero più piccolo maggiore o uguale al parametro |
=ceil(P1) restituisce 2 |
floor() |
Restituisce il numero intero più grande minore o uguale al parametro |
=floor(P1) restituisce 1 |
min() |
Restituisce il parametro più piccolo |
=min(P1, P2) restituisce 1.4 |
max() |
Restituisce il parametro più grande |
=max(P1, P2) restituisce 2.3 |
sum() |
Somma dei parametri |
=sum(P1, P2) restituisce 3.7 |
sqsum() |
Somma dei parametri elevati al quadrato: (parametro1)2 + (parametro2)2 |
=sqsum(P1, P2) restituisce 7.25 |
ave() |
Media dei parametri |
=ave(P1, P2) restituisce 1.85 |
sqave() |
Media dei parametri elevati al quadrato |
=sqave(P1, P2) restituisce 3.625 |
Esempio: funzioni statistiche ceil e floor
In questo esempio, sono disponibili le seguenti variabili parametriche:
Lunghezza trave: P1 = 3500
Spaziatura montanti: P2 = 450
P1 / P2 = 7,7778
È possibile utilizzare le funzioni statistiche ceil e floor per arrotondare il valore e quindi utilizzare il valore arrotondato come numero di montanti della trave:
=ceil(P1/P2) restituisce 8
=floor(P1/P2) restituisce 7
Funzioni di conversione dei tipi
Utilizzare le funzioni di conversione dei tipi di dati per convertire i valori in un altro tipo di dati. È possibile utilizzare le seguenti funzioni di conversione dei tipi di dati:
Funzione |
Descrizione |
Esempio |
---|---|---|
int() |
Converte i dati in numero intero |
Utile in particolare per il calcolo delle dimensioni dei profili. =int(100.0132222000) restituisce 100, se i decimali sono impostati su 0 nella finestra di dialogo Opzioni |
double() |
Converte i dati in doppia precisione |
|
string() |
Converte i dati in tipo stringa |
|
imp() |
Converte le unità imperiali Utilizzare questa funzione nei calcoli invece delle unità imperiali. Non è possibile utilizzare le unità imperiali direttamente nei calcoli. |
Per i seguenti esempi, l'unità di lunghezza è impostata su mm e i decimali sono impostati su 2 nella finestra di dialogo Opzioni. =imp(1,1,1,2) implica che 1 piede e 1 1/2 pollici restituisce 342,90 mm =imp(1,1,2) implica che 1 1/2 pollici restituisce 38,10 mm =imp(1,2) implica che 1/2 pollici restituisce 12,70 mm =imp(1) implica che 1 pollice restituisce 25,40 mm =3’/3" non è possibile, ma =imp(36)/imp(3) è corretto |
vwu(value, unit) |
Converte i valori di lunghezza e di angolo. Le unità disponibili sono:
|
=vwu(4.0,"in") restituisce 101,60 mm, se l'unità di lunghezza è impostata su mm e i decimali sono impostati su 2 nella finestra di dialogo Opzioni =vwu(2.0,"rad") restituisce 114,59 gradi, se l'angolo è impostato su gradi e i decimali sono impostati su 2 nella finestra di dialogo Opzioni |
Le unità dipendono dalle impostazioni nel menu File > Impostazioni > Opzioni > Unità e decimali .
Operazioni su stringhe
Utilizzare le operazioni su stringhe per gestire le stringhe di caratteri. Le stringe devono essere racchiuse tra virgolette nelle formule delle variabili.
È possibile utilizzare le seguenti operazioni su stringhe:
Operazione |
Descrizione |
Esempio (P1 = "PL100*10") |
---|---|---|
match(parameter1, parameter2) |
Restituisce 1 se i parametri sono uguali e 0 se differiscono. È inoltre possibile utilizzare i caratteri jolly * , ? e [ ] con la funzione di corrispondenza. |
=match(P1, "PL100*10") restituisce 1 Accetta tutti i profili che iniziano con PFC: =match(P4, "PFC*") Accetta i profili che iniziano con PFC e altezze che iniziano con 2, 3, 4 o 5: =match(P4, "PFC[2345]*") Accetta i profili che iniziano con PFC, altezze corrispondenti a 200, 300, 400 o 500 e larghezze che iniziano con 7: =match(P4, "PFC[2345]00?7*") |
length(parameter) |
Restituisce il numero di caratteri nel parametro. |
=length(P1) restituisce 8 |
find(parameter, string) |
Restituisce il numero di ordine (a partire da zero) della stringa specificata e -1 se tale stringa non viene trovata dal parametro. |
=find(P1, "*") restituisce 5 |
getat(parameter, n) |
Restituisce l'ennesimo (a partire da zero) carattere del parametro. |
=getat(P1, 1) restituisce "L" |
setat(parameter, n, character) |
Imposta l'ennesimo (a partire da zero) carattere rispetto al carattere specificato nel parametro. |
=setat(P1, 0, "B") restituisce "BL100*10" |
mid(string, n, x) |
Restituisce x caratteri della stringa a partire dall'ennesimo carattere (a partire da zero). Se si esclude l'ultimo argomento (x), restituisce l'ultima parte della stringa. |
=mid(P1,2,3) restituisce "100" |
reverse(string) |
Inverte la stringa specificata. |
=reverse(P1) restituisce "01*001LP" |
Esempio 1
Per definire le dimensioni di profilo PL100*10 con due variabili P2 = 100 e P3 = 10, immettere la formula come segue:
="PL"+P2+"*"+P3
Esempio 2
Tekla Structures gestisce i passi bulloni come stringhe. Per definire il passo bulloni, impostare Tipo valore su Elenco distanze e immettere la formula come segue:
=P1+" "+P2
Il risultato è 100 200, se P1 = 100 ( lunghezza ) e P2 = 200 ( lunghezza ).
Funzioni trigonometriche
Utilizzare le funzioni trigonometriche per calcolare gli angoli. È possibile utilizzare le seguenti funzioni trigonometriche:
Funzione |
Descrizione |
Esempio |
---|---|---|
sin() |
Restituisce il valore del seno |
=sin(d45) restituisce 0.71 |
cos() |
Restituisce il valore del coseno |
=cos(d45) restituisce 0.71 |
tan() |
Restituisce il valore della tangente |
=tan(d45) restituisce 1.00 |
asin() |
Funzione inversa di sin(), restituisce il valore in radianti |
=asin(1) restituisce 1.571 rad |
acos() |
Funzione inversa di cos(), restituisce il valore in radianti |
=acos(1) restituisce 0 rad |
atan() |
Funzione inversa di tan(), restituisce il valore in radianti |
=atan(1) restituisce 0.785 rad |
sinh() |
Restituisce il valore del seno iperbolico |
=sinh(d45) restituisce 0.87 |
cosh() |
Restituisce il valore del coseno iperbolico |
=cosh(d45) restituisce 1.32 |
tanh() |
Restituisce il valore della tangente iperbolica |
=tanh(d45) restituisce 0.66 |
atan2() |
Restituisce l'angolo la cui tangente è il quoziente dei due numeri. Restituisce il valore in radianti |
=atan2(1,3) restituisce 0.32 |
Quando si utilizzano le funzioni trigonometriche nelle formule delle variabili, è necessario includere un prefisso per definire l'unità. Se non si include un prefisso, Tekla Structures utilizza i radianti come unità di default.
d sta per degree (angolo). Ad esempio, sin(d180)
r sta per radianti (default). Ad esempio, sin(r3.14) o sin(3.14)
Funzione della dimensione di commercio
Utilizzare la funzione della dimensione di commercio in un componente personalizzato per selezionare una dimensione del piatto idonea (in genere spessore del piatto) tra le dimensioni di commercio disponibili. Ad esempio, lo spessore di un piatto deve corrispondere all'anima di una trave.
Funzione |
Descrizione |
Esempio |
---|---|---|
fMarketSize(material, thickness, extrastep) |
Restituisce la dimensione di commercio disponibile successiva per il materiale dal file marketsize.dat in base allo spessore specificato. Il file deve essere nella cartella ..\environments\your_environment\profil o nella cartella di sistema. Per incremento extra immettere un numero per definire l'incremento alla dimensione successiva (valore di default 0) |
=fMarketSize("S235JR", 10, 0) |
Esempio
In questo esempio, sono disponibili i seguenti dati in marketsize.dat :
S235JR,6,9,12,16,19,22 SS400,1.6,2.3,3.2,4.5,6,9,12,16,19,22,25,28,32,38 DEFAULT,6,9,12,16,19,22,25,28,32,38
Il primo elemento di una riga specifica il materiale, seguito dagli spessori di piatti disponibili in millimetri. La riga DEFAULT elenca gli spessori disponibili in tutte le altre classi di materiale.
Con i dati sopra riportati, la funzione =fMarketSize("S235JR",10,0) restituisce 12 e =fMarketSize("S235JR",10,1) restituisce 16 (la dimensione immediatamente successiva).
Funzioni della condizione di vincolo geometrico
Utilizzare le funzioni della condizione di vincolo geometrico per restituire l'angolo di inclinazione, pendenza e rotazione della trave secondaria rispetto alla parte principale (colonna o trave). È possibile utilizzare le seguenti funzioni della condizione di vincolo geometrico:
Funzione |
Descrizione |
Esempio |
---|---|---|
fAD("skew", GUID) |
Restituisce l'angolo inclinato della parte secondaria con GUID specificato. |
=fAD("skew","ID50B8559A-0000-010B-3133-353432373038") restituisce 45 ID50B8559A-0000-010B-3133-353432373038 è il GUID della parte secondaria che è con un angolo di 45 gradi rispetto alla parte principale. |
fAD("slope", GUID) |
Restituisce l'angolo obliquo della parte secondaria con GUID specificato. |
=fAD("slope","ID50B8559A-0000-010B-3133-353432373038") |
fAD("cant", GUID) |
Restituisce l'angolo di rotazione della parte secondaria ruotata con il GUID specificato. |
=fAD("cant","ID50B8559A-0000-010B-3133-353432373038") |
Queste funzioni non restituiscono valori di angolo di inclinazione e pendenza positivi e negativi. Non è possibile determinare l'angolo di pendenza superiore e inferiore e l'inclinazione sinistra o destra con queste funzioni.
L'angolo di inclinazione massimo restituibile è di 45 gradi.
Tekla Structures calcola gli angoli in 2D in modo che pendenza e inclinazione siano isolate l'una dall'altra. Ad esempio, l'angolo obliquo non viene preso in considerazione quando si calcolo l'angolo di inclinazione, ovvero il valore dell'angolo di inclinazione rimane invariato indipendentemente dalla rotazione della parte secondaria attorno alla parte principale.
Per trovare la pendenza reale 3D con l'inclinazione inclusa, è possibile utilizzare la seguente formula matematica:
TRUE_SLOPE = atan( tan(SLOPE) * cos(SKEW))
Esempio 1
Pendenza e inclinazione sono relative alla struttura di una trave in una colonna.
Vista laterale |
Vista superiore |
- Colonna
- Trave
- Pendenza
- Inclinazione
Esempio 2
Con due travi, la pendenza corrisponde in effetti all'inclinazione orizzontale della struttura della trave nell'altra trave, mentre la pendenza verticale della trave rispetto alla principale corrisponde all'angolo di inclinazione.
Vista laterale |
Vista superiore |
- Inclinazione
- Pendenza