COMANDO: File-Comandi

[Ribbon-File]

 

 Questo comando consente di leggere un insieme di comandi contenuti in un file. I comandi devono seguire una certa sintassi, ed il file, ASCII, deve essere costruito seguendo certe regole.

 La possibilità di eseguire comandi contenuti in un file può essere molto utile in contesti nei quali si debba eseguire un gran  numero di operazioni simili, oppure quando si debbano generare modelli o sotto modelli in modo parametrico.

 Qui di seguito viene accluso un esempio di file di comandi (estensione .scm):

 

$ combinazioni per AFS 2000

_ADDCOMBI Permanenti + accidentali  

_COMBI  1      1          1.00

_COMBI  1      2          0.70

_COMBI  1      3          0.90

_ADDCOMBI Permanenti + sisma  x

_COMBI  2      1          1.00

_COMBI  2      4          1.00

 

 Il file .scm è costituito da un certo numero di linee. Ogni linea può essere un commento o un’istruzione. Se la linea è un commento essa deve cominciare con il carattere “$”. Se la linea è un comando deve cominciare con un identificatore di comando. Tutti gli identificatori cominciano con il carattere “_”. Le linee che non cominciano con “$” nè con “_” devono essere continuazioni di comando (per i comandi che ammettono continuazione su linee successive).

 

 

 Qui di seguito viene indicata la sintassi dei comandi che si possono eseguire da file.

Nelle spiegazioni di seguito elencate si tengano presenti le seguenti regole convenzionali:

 

Ciò che è tra parentesi quadre è opzionale.

 

Ciò che è tra parentesi graffe può essere un numero o una variabile precedentemente definita.

 

Sono ammesse le operazioni tra variabili (+, -, *, /) e l'uso delle parentesi tonde anche annidate nelle espressioni. Sono inoltre ammesse le funzioni sin(), cos(), tan(), atan(), asin(), acos(). Per familiarizzarsi con le macro si vedano i file .scm contenuti nel direttorio di installazione.

 

_ADDCOMBI

_ADDELE

_ADDPM

    _ADDLCASE

  _ADDNODE

  _ADDVAR

_COMBI

_COMBISELECT

_COMBISELECTALL

_COMBIUNSELECT

_COMBIUNSELECTALL

_CONSTRNODE

_CURPROP

_DELNOD

    _ENDLOOP

_ENDNEWSTRUC

_FORCENODE

_MASSNODE

_MOMENTNODE

_LOOP

_NEWBLOCK

_NEWSTRUC

_PBEAM

  _POSITION

_POSTIMPORT

_PREFIX

  _REMOVE

  _SUMLCASE

  _SUMXYZLCASE

_UNIT

  _ZEROLCASE

 

 

_ADDCOMBI     name

 

name                nome da dare alla combinazione (può contenere spazi e va fino alla fine della linea)

 

Aggiunge una combinazione a quelle esistenti.

Questo comando è molto utile quando si debbano assegnare parecchie combinazoni. Usato in combinazione con il comando _COMBI consente di rendere molto molto rapida l’aggiunta e la modifica delle combinazioni. Conviene usare questo comando quando le combinazioni sono molte.

 

_ADDLCASE     kind  psi0  psi1  psi2  name

 

kind        indica il tipo del caso di carico e può assumere uno dei valori seguenti:

GRAVITY

DEAD

LIVE

SNOW

WIND

EARTHSTATIC

THERMAL

EARTHMODAL

Psi0                coefficiente di combinazione

Psi1                coefficiente di combinazione (valore frequente)

Psi2                coefficiente di combinazione (valore quasi permanente)

name                nome da dare al caso di carico (può contenere spazi e va fino alla fine della linea)

 

Aggiunge un caso di carico a quelli esistenti.

Questo comando è molto utile quando si debbano assegnare parecchi casi di carico. Esempio:

 

_ADDLCASE  SNOW  0.7  0.2  0.0  Neve sulla copertura

 

_COMBI     nc   nl    fact

 

nc                numero della combinazione

nl                numero del caso di carico

fact                fattore che il caso nl ha nella combinazione nc

 

 

Assegna il fattore di un caso in una combinazione.

Questo comando è molto utile quando si debbano assegnare parecchie combinazoni. Usato in combinazione con il comando _ADDCOMBI consente di rendere molto molto rapida l’aggiunta e la modifica delle combinazioni. Conviene usare questo comando quando le combinazioni sono molte.

_COMBISELECT     nc

 

nc                numero della combinazione da selezionare

 

Seleziona una combinazione.

 

_COMBISELECTALL

 

 

Seleziona tutte le combinazioni.

 

_COMBIUNSELECT     nc

 

nc                numero della combinazione da deselezionare

 

Deseleziona una combinazione.

 

_COMBIUNSELECTALL

 

Deseleziona tutte le combinazioni.

 

_REMOVE     what    num

 

what                indica cosa si vuole cancellare e può assumere uno dei valori seguenti:

 

         COMBI        per rimuovere una combinazione

         LCASE        per rimuovere un caso di carico

 

num                indica il numero che individua l’oggetto da cancellare

 

Cancella casi o combinazioni di carico. Si noti che ad ogni cancellazione e prima di eseguire ogni altro comando, i casi e le combinazioni vengono rinumerati in modo da mantenere una numerazione sequenziale. Ad esempio, se si hanno i casi 1, 2, 3, 4, 5 e si cancella il caso 2, si avranno i casi 1, 2, 3, 4, i quali, prima della cancellazione avevano ordinatamente i seguenti numeri (1, 3, 4, 5).

 

_ADDVAR     type   name   explain

 

type                indica se il parametro è reale o intero e può assumere uno dei valori seguenti:

 

         REAL        perchè il parametro sia un numero reale

         INT        perchè il parametro sia un numero intero

 

Name                indica il nome che individua il parametro (max 19 caratteri)

 

Explain        è la spiegazione da dare a chi deve fornire il parametro (l'utente): max 100 caratteri

 

Consente di aggiungere un parametro, del quale si dà il nome ed il valore.

 

_ADDNODE   {suffix1}  {x}  {y}  {z} [to  {suffix2}  {x2}        {y2}         {z2}  {step}]

 

suffix1                indica il suffisso del primo nodo da aggiungere.

 

x                indica l'ascissa del primo nodo da aggiungere

 

y                indica l'ordinata del primo nodo da aggiungere

 

z                indica la quota del primo nodo da aggiungere

 

step        indica il passo di incremento del suffisso da suffix1 a suffix2

 

Consente di aggiungere nodi. Valgono le seguenti regole:

 

 suffix2 >= suffix1

 suffix1 + n * step = suffix2  n è un intero che deve esistere

 

_ADDELE type  {suffix1}  {suff_n1}  {suff_n2}   {suff_n3}  [to {suffix2} {stepe}  {stepn}]

 

type                indica il tipo degli elementi e può assumere uno dei valori seguenti:

 

         BEAM                perchè gli elementi siano travi

         TRUSS        perchè gli elementi siano bielle

 

suffix1                indica il suffisso del primo elemento da aggiungere.

 

suff_n1        indica il suffisso del primo nodo del primo elemento

 

suff_n2        indica il suffisso del secondo nodo del primo elemento

 

suff_n3        indica il suffisso del terzo nodo del primo elemento. Se viene indicato "INFPX", "INFPY", "INFPZ","INFMX","INFMY","INFMZ", verrà usato il terzo nodo posto all'infinito Positivo o Negativo specificato.

 

suffix2                indica il suffisso dell'ultimo elemento da aggiungere.

 

stepe        indica il passo di incremento del suffisso dell'elemento

 

stepn        indica il passo di incremento del suffisso del primo e del secondo nodo (il terzo non viene incrementato).

 

Consente di aggiungere elementi trave o biella.

 

_ADDPM type  {suffix1}  {suff_n1}  {suff_n2}   {suff_n3}     {suff_n4} [to {suffix2} {stepe}  {stepn}]

 

type                indica il tipo degli elementi e può assumere uno dei valori seguenti:

 

         PLATE                perchè gli elementi siano piastre

         MEMBR        perchè gli elementi siano membrane

 

suffix1                indica il suffisso del primo elemento da aggiungere.

 

suff_n1        indica il suffisso del primo nodo del primo elemento

 

suff_n2        indica il suffisso del secondo nodo del primo elemento

 

suff_n3        indica il suffisso del terzo nodo del primo elemento

 

suff_n4        indica il suffisso del quarto nodo del primo elemento (se = 0 l'elemento è triangolare)

 

suffix2                indica il suffisso dell'ultimo elemento da aggiungere.

 

stepe        indica il passo di incremento del suffisso dell'elemento

 

stepn        indica il passo di incremento del suffisso del primo, del secondo nodo, del terzo e (se diverso da zero) del quarto nodo

 

Consente di aggiungere elementi piastra o membrana.

 

_PREFIX type  string

 

type        indica il tipo degli oggetti dei quali viene stabilito il prefisso e può assumere uno dei valori seguenti:

 

         BEAM, TRUSS, NODE, PLATE, MEMBR, SPRING

 

string        indica la stringa che, da ora in poi costituirà il prefisso per gli oggetti del tipo specificato (max 15 caratteri)

Consente di specificare un prefisso diverso da aggiungere al suffisso. In questo modo si possono usare numerazioni di suffisso identiche avendo nomi diversi.

 

_LOOP var   {start}    {end}

 

var        nome della variabile (anche nuova) da iterare nel ciclo

 

start        valore iniziale

 

end        valore finale

 

 

Esegue le istruzioni contenute sino al prossimo _ENDLOOP un numero di volte pari a (end-start+1). I loop possono essere annidati.

 

_ENDLOOP

 

marca la fine delle istruzioni contenute in un blocco di _LOOP.

 

_CURPROP                {prop}

 

prop        numero della proprietà di sezione da assegnare ai successivi elementi trave e biella aggiunti

 

Stabilisce il valore corrente del numero di sezione. Tale numero viene usato nel comando _ADDELE come numero da attribuire agli elementi aggiunti.

 

_DELNODE

 

Elimina i nodi non referenziati dalla struttura corrente.

 

_CONSTRNODE   {suffix1}  to {suffix2} {step}  [TX]  [TY]  [TZ]  [RX]  [RY]  [RZ]

 

 suffix1                suffisso del primo nodo

 suffix2                suffisso dell'ultimo nodo

 step                incremento del suffisso

 TX                la traslazione x è vincolata

 TY                la traslazione y è vincolata

 TZ                la traslazione z è vincolata

 RX                la rotazione x è vincolata

 RY                la rotazione y è vincolata

 RZ                la rotazione z è vincolata

 

Applica la maschera di vincolo specificata ai nodi specificati, da suffix1 a suffix2 (con il prefisso corrente). Se il grado di libertà è libero non mettere il corrispondente codice: ad esempio una cerniera sferica sarà "TX  TY  TZ".

 

_NEWSTRUC

 

indica che le istruzioni fino al successivo _ENDNEWSTRUC si riferiscono ad una nuova struttura locale, che diventa la struttura corrente. Appena raggiunta l'istruzione _ENDNEWSTRUC, la struttura locale viene fusa automaticamente con le regole del comando "Fondi", nella struttura principale. Le istruzioni _NEWSTRUC non possono essere annidate.

Se il contenuto di un file di macro viene avvolto tra due istruzioni _NEWSTRUC ed _ENDNEWSTRUC, questo può poi essere richiamato da un altro file senza problemi di interferenza. Si veda il file di esempio "prattXZ.scm".

 

_ENDNEWSTRUC

 

termina un blocco _NEWSTRUC ed ordina che la struttura locale venga fusa con quella principale.

 

_NEWBLOCK   {x}   {y}   {z}   filename

 

x        Traslazione x da applicare al nuovo blocco

y        Traslazione y da applicare al nuovo blocco

x        Traslazione z da applicare al nuovo blocco

filename        nome del file di comandi da eseguire

 Consente di eseguire una macro contenuta in un altro file. I nodi e gli oggetti definiti nel nuovo blocco vengono inseriti in una struttura a parte, che, alla fine del blocco, viene fusa con la struttura corrente. Prima di essere fusa la struttura locale viene traslata di (x, y, z).

 

_POSITION

 

Chiede all'utente una traslazione globale della intera struttura corrente. Se questa istruzione viene eseguita come parte di un blocco richiamato da un comando _NEWBLOCK non viene materialmente eseguita, in quanto lo shift è già precedentemente stato specificato (se un file è usato direttamente il comando consente di posizionare la struttura corrente, se è usato indirettamente con una chiamata a _NEWBLOCK la istruzione _POSITION diviene superflua).

 

_POSTIMPORT fatherlcase     sonlcase      file_path

 

Vengono importati nel modello corrente, e sovrascritti, gli spostamenti, gli sforzi e le reazioni vincolari calcolati in un altro modello, che deve avere lo stesso numero di nodi e di elementi. fatherlcase è il caso di carico del modello corrente. sonlcase è il caso di carico da cui trarre i risultati nel modello "son", di appoggio. file_path è l'intero percorso del file di appoggio da cui trarre i risultati (c:\pluto\paperino.wsr). Il comando è utile per automatizzare la sovrascrittura dei risultati da un altro modello nel modello corrente. Automatizza il comando Post-Importa.

_FORCENODE   {suffix1}  to {suffix2} {step}  {lcase}  {Fx}  {Fy}  {Fz}

 

 suffix1                suffisso del primo nodo

 suffix2                suffisso dell'ultimo nodo

 step                incremento del suffisso

 lcase                caso di carico

 Fx                componente in direzione x della forza

 Fy                componente in direzione y della forza

 Fz                componente in direzione z della forza

 

Applica la forza specificata ai nodi specificati, da suffix1 a suffix2 (con il prefisso corrente).Quando il comando viene eseguito il caso di carico lcase deve esistere.

 

_MASSNODE   {suffix1}  to {suffix2} {step}  {Mx}  {My}  {Mz}

 

 suffix1                suffisso del primo nodo

 suffix2                suffisso dell'ultimo nodo

 step                incremento del suffisso

 Mx                componente in direzione x della massa traslazionale

 My                componente in direzione y della massa traslazionale

 Mz                componente in direzione z della massa traslazionale

 

Applica la massa specificata ai nodi specificati, da suffix1 a suffix2 (con il prefisso corrente).

_MOMENTNODE   {suffix1}  to {suffix2} {step}  {lcase}  {Mx}  {My}  {Mz}

 

 suffix1                suffisso del primo nodo

 suffix2                suffisso dell'ultimo nodo

 step                incremento del suffisso

 lcase                caso di carico

 Mx                componente in direzione x della coppia

 My                componente in direzione y della coppia

 Mz                componente in direzione z della coppia

 

Applica la forza specificata ai nodi specificati, da suffix1 a suffix2 (con il prefisso corrente).Quando il comando viene eseguito il caso di carico lcase deve esistere.

 

_pBEAM   {suffix1}  to {suffix2} {step}  {lcase}  {px}  {py}  {pz}

 

 suffix1                suffisso del primo nodo

 suffix2                suffisso dell'ultimo nodo

 step                incremento del suffisso

 lcase                caso di carico

 px                componente in direzione x del carico uniformemente distribuito

 py                componente in direzione y del carico uniformemente distribuito

 pz                componente in direzione z del carico uniformemente distribuito

 

Applica il carico uniformamente distribuito specificato agli elementi beam specificati, da suffix1 a suffix2 (con il prefisso corrente).Quando il comando viene eseguito il caso di carico lcase deve esistere.

 

_SUMLCASE lc1 lc2 {fact}

 

lc1                caso di carico (lc1) a cui si somma un altro caso di carico lc2

lc2                caso di carico che viene sommato a lc1

fact        fattore per cui viene moltiplicato lc2 prima di sommarlo a lc1

 

_SUMXYZLCASE lc1 lc2 {factx} {facty} {factz}

 

lc1                caso di carico (lc1) a cui si somma un altro caso di carico lc2

lc2                caso di carico che viene sommato a lc1

factx        fattore per cui viene moltiplicato lc2 in direzione x prima di sommarlo a lc1

facty        fattore per cui viene moltiplicato lc2 in direzione y prima di sommarlo a lc1

factz        fattore per cui viene moltiplicato lc2 in direzione z prima di sommarlo a lc1

 

_UNIT unit

 

 unit                nuova unità di misura da adottare, può assumere i seguenti valori:

mm        millimetri

cm                centimetri

mt                metri

in                pollici

ft                piedi

yd                iarde

 

N                Newton

DAN        Deca Newton

KN                Kilo Newton

GR                Grammi

KG                Kilogrammi

ton                Tonnellate

p                libbre

kip                migliaia di libbre

 

sec                secondi

min        minuti

hou                ore

 

°C                gradi centigradi

°F                gradi Farenheit

 

 

Assume l’unità di misura specificata come unità con la quale interpretare i successivi dati di input.

 

_ZEROLCASE lc1

 

lc1                caso di carico (lc1) da azzerare

 

 

Tipo:immediato.

Destinazione: documento.