2.2.1.3. Valori variabili - Funzioni

Valori variabili: tutte le chiavi strutturate secondo lo schema "Nome=?" vengono valutate in fase di esecuzione. L'istruzione è memorizzata nella sintassi VB.

L'esempio seguente mostra che il valore della chiave "FileName" viene composto utilizzando un'istruzione VB.

FileName=?GetObject("iface.calcnameservice").start(0).Format("<GENNAME>").Value()

Di seguito vengono illustrate alcune funzioni importanti, che possono essere utilizzate per personalizzare le istruzioni in base alle proprie esigenze.

  • Funzione Format("..."): Restituisce il nome calcolato

    Questo può essere utilizzato, ad esempio, per costruire il nome del file in vari modi:

    • <NOME>: Restituisce il nome diretto, cioè quello configurato come nome nel PARTdataManager (di solito il NB o l'ERPNUMBER).

    • <NOME>: Il nome generico, simile a "NOME". Tuttavia, GENNAME restituisce anche un nome generato dinamicamente per un nome vuoto, in modo da creare un nome valido in ogni caso. Viene utilizzato l'NB.

    • <NOME(maxlen)>: "maxlen" indica un numero qualsiasi: il valore è limitato alla lunghezza specificata.

      Esempio 1: il nome generico (NB) è limitato a un certo numero di caratteri.

      Format("<GENNAME(25)>")

      Esempio 2: è possibile anche la forma seguente:

      Format("<ATTR(NT)>").maxlen(10)
      Format("<NAME>").maxlen(10)

    • <NOME DEL GENITORE>: Viene utilizzato SHORTNB.

    • <NOME BREVE>:

    • <ATTR(nome)>: Qualsiasi attributo specificato dal suo nome.

      Format("<ATTR(NN)>")

    • <ATTR(lingua,nome)>: Opzionalmente, è possibile specificare anche la lingua.

      Format("<ATTR(english,NB)>")
      Format("<ATTR(NT)>")
      Format("<ATTR(LINA)>")
      Format("<ATTR(ERP_PDM_NUMBER)>")
      Format("<ATTR(NENN)>")

    • <MATERIALE(_)>: Restituisce il materiale della classificazione CNS/CNSPHYPROP/CNSMAT.

      Format("<GENNAME><MATERIAL(_)>") [veraltet]

      Nome generico (NB) e materiale aggiunto con trattino basso

    • <LISTA DI PREFISSI(_)>: I prefissi esistenti sono separati dal nome generico con un trattino basso. Per i progetti che hanno più prefissi, questi vengono inseriti automaticamente nel nome del file con un trattino basso come separatore (ad esempio, Norm9, Kernloch).

      Esempio 1:

      Format("<PREFIXLIST(_)><GENNAME>")

      Esempio 2:

      Format("$CADENAS_DATA/pool/cadname/<PREFIXLIST(/)>")

      "PREFIXLIST" viene utilizzato ad esempio per i percorsi di pool con il separatore "/".

    • <CATALOG>_..................>: Il nome del catalogo ha un prefisso.

      Esempio:

      Format("<CATALOG>_<GENNAME>")

    • <DATA(-)>_<ORA(-): La data e l'ora sono incluse nel nome del file.

      FORMAT("<GENNAME>_<DATE(-)>_<TIME(-)>")

  • Funzione RepSeq(a1,b1): "RepSeq" significa "Sostituisci sequenza". La stringa 1 viene sostituita dalla stringa 2.

  • Funzione add(anyText): aggiunge qualcosa, ad esempio l'estensione del nome del file.

    Esempi:

    Inventor (parte): .ipt; Inventor (assieme): .iam

    SolidWorks (parte): .sldprt; SolidWorks (assieme): .sldasm

    Utilizzare l'estensione del nome del file appropriata per il sistema CAD.

  • Funzione toFileName("_"): sostituisce i caratteri non validi con il carattere specificato nelle parentesi.

    I caratteri non validi sono:

    / \ ? % : | " < > .

  • Funzione alnum("_"): Sostituisce tutti i caratteri non alfanumerici con il carattere specificato nella parentesi; anche gli spazi.

  • Funzione ToLower(): Tutte le lettere vengono convertite in minuscole.

  • funzione ToUpper(): Tutte le lettere vengono convertite in maiuscole.

  • Funzione MaxLen(len): "len" indica un numero qualsiasi: l'intera espressione è limitata alla lunghezza specificata.

  • Funzione Value(): Restituisce il valore corrente come stringa; viene utilizzata come ultima chiamata.

"Assemblaggio" di singole funzioni:

Questi sono "assemblati" separatamente con un punto (.).

Esempio:

La funzione RepSeq(a1,b1) deve essere inserita in una chiave esistente:

Prima:

poolpath(isCreaOptNotSet)=?GetObject("iface.calcnameservice").start(0).
Format("$CADENAS_DATA/pool/cadname").value()

In seguito:

poolpath(isCreaOptNotSet)=?GetObject("iface.calcnameservice").start(0).
Format("$CADENAS_DATA/pool/cadname").RepSeq("NORM9,NORM8").value()