Variabler

Variabler kan vara av en av följande sju operandtyper: heltal, flyttal, sträng, punkt, elementpekare, array och funktion. Variabler skapas och får ett värde och en typ via kommandot TILLDELA.

Variabel-ID:t är en alfanumerisk sträng som inte börjar med en siffra. Du kan använda understreck i variabel-ID så länge som understrecket inte är det första tecknet.

Så länge som mätrutinen förblir öppen, sparar PC-DMIS variabelvärden mellan körningar. Detta innebär att när körningen är klar använder PC-DMIS värdena från slutet av rutinen när du startar om rutinen. Det är kanske inte alltid så som du vill att det ska göras. Om du vill använda nya variabelvärden är det god praxis att rensa dina värden med tilldelningsuttryck i början av varje rutin. Om du till exempel använder ett V1-variabelvärde i ett antal beräkningar så kan du använda TILLDELA/V1=0 för att rensa denna variabel.

Om Redigeringsfönstret är aktivt visas det aktuella värdet för variabeln när markören placeras i fältet. Under körning förändras variabelvärdena beroende på körningsflödet. Placera muspekaren över en variabel om du vill veta det aktuella värdet för variabeln.

TILLDELA/V1=2.2+2
Variabeln V1 är ett värde av typen flyttal med värdet 4.2

TILLDELA/VAR1=CIRKEL1.X
Variabeln VAR1 är ett värde av typen flyttal vars värde är lika med det mätta värdet för CIRKEL1.X vid tilldelningen.

TILLDELA/MINVAR=LINJE1.XYZ
Variabeln MINVAR är ett värde av typen punkt med samma värde som den mätta centroiden för LINJE1 vid tilldelningen.

TILLDELA/SVAR="Godmorgon världen"
Variabeln SVAR är ett värde av typen sträng med värdet "Godmorgon världen"

I dessa exempel tilldelas värden till variablerna. När en variabel har tilldelats ett värde kan du använda den som operand i ett uttrycksfält.

Här används V1 i ett numeriskt fält. Det används för insträckan i kommandot INSTRÄCKA:

TILLDELA/V1=1/3INSTRÄCKA/V1

Eftersom uttryck kan användas i de flesta redigerbara fält är följande uttryck också tillåtet och har samma effekt:
INSTRÄCKA / 1/3.

Du kan referera till individuella komponenter för variabler av typen punkt genom att använda punkttilläggsnoteringen som används för referenser.

TILLDELA/V1=MPOINT(3, 4, 5)
V1 är en mätpunktstyp med värdet 3, 4, 5

TILLDELA/XVAR=V1.X
XVAR är av typen decimaltal med värdet 3

TILLDELA/YVAR=V1.Y
YVAR är en dubbeltyp med värdet 4

TILLDELA/IVAR=V1.I
IVAR är en dubbeltyp med värdet 3

TILLDELA/REDUNVAR=V1.XYZ
REDUNVAR är en mätpunktstyp med värdet 3, 4, 5

Följande tillägg är likvärdiga. Samtliga anges för att förtydliga betydelsen av ett uttryck i en mätrutin.

Anta att V1 är av typen punkt.

V1.X är detsamma som V1.I
V1.Y är detsamma som V1.J
V1.Z är detsamma som V1.K

V1.XYZ är detsamma som V1.IJK och V1 utan tillägg.

Om en variabel av typen sträng har ett värde som är lika med namnet på ett element-ID, en utvärdering eller en uppriktning kan variabeln användas som ett referensobjekt:


TILLDELA/V1="CIRKEL"

Följande operander kan användas och är giltiga om det finns ett element med namnet CIRKEL1:

V1.X – Det mätta X-värdet för CIRKEL1
V1.TX – Det teoretiska X-värdet för CIRKEL1
V1.Diameter – Den mätta diametern för CIRKEL1
V1.Radius – Den mätta radien för CIRKEL1

Den här typen av indirektion som finns för variabler av typen sträng är endast tillgänglig på en nivå av indirektion. Följande exempel fungerar inte.

TILLDELA/V1="CIRKEL1"
TILLDELA/V2="V1"

V2.X - Det här uttrycket utvärderas till 0 i stället för till det aktuella mätta värdet för CIRKEL1.X.

Referensen V2.X flaggas inte som ett fel med röd text trots att det ställs in till ett värde av typen sträng i uttrycket ovanför referensen. Anledningen till att det inte kan flaggas som ett fel är att körningsflödet i mätrutinen inte är känt förrän vid körningen.

Om du däremot använder klammerparenteser blir följande uttryck giltigt:

TILLDELA/V1={CIRKEL1}
TILLDELA/V2={V1}

V2.X - Ger dig värdet för CIRKEL1.X.

Se följande exempel:

TILLDELA/V1="CIRKEL1"
TILLDELA/V2="V1"
OM/CIRKEL1.X>CIRKEL1.TX,GÅTILL,L2
L1=MÄRKE/
TILLDELA/V3=V2.X
GÅTILL/MÄRKE,L3
L2=MÄRKE /
TILLDELA/V2=MPOINT(2,5,7)
GÅTILL/MÄRKE,L1
L3=MÄRKE/

Om värdet på CIRKEL1.X är större än värdet på CIRKEL1.TX under körningen av rutinen är uttrycket V2.X giltigt och utvärderas till 2. Annars utvärderas uttrycket V2.X till 0, eftersom värdet på V2 vid TILLDELA för V3 är strängen "V1". Det är detaljprogrammerarens ansvar att kontrollera att uttryck utför det som förväntas i dessa fall.

Du kan använda nästan alla elementreferenser på vänster sida i ett TILLDELA-kommando för att ange ett värde för en mätt eller teoretisk datamedlem av ett element. De enda undantagen är de enstaka I-, J- och K-komponenterna för vektorer. För att tilldela värden till vektorer måste du tilldela hela vektorn på samma gång med ett uttryck som beräknas till en punkt. Vektordata normaliseras när de matas in i elementets datamedlemmar.

TILLDELA/ CIRKEL1.I=2-ogiltigt
TILLDELA/ CIRKEL1.IJK=MPOINT(2, 0, 0)-giltigt (vektorn normaliseras till 1, 0, 0)

Information om hur du använder variabler i utvärderingar finns i "Utvärdera variabler" i kapitlet "Använda äldre utvärderingsmetoder".