Constraint-editorSyntaxis van constraintexpressies De syntaxis van constraintexpressies is een subset van de syntaxis van LN Tools. Constraintexpressies kunt u opbouwen met de volgende basisinstructies: Rekenkundige operatoren:
Logische operators:
Relationele operators:
Domeinexpressies A is {a1,a2,a3-a4,..} betekent: (A=a1 or A=a2 or A >= a3 and A <= a4 enzovoort). De syntaxis van de domeinexpressie is een verkorte notatie voor logische expressies met betrekking tot het domein van een variabele. Prioriteit in expressies Rekenkundige operators hebben een hogere prioriteit dan relationele operators. Relationele operators hebben een hogere prioriteit dan logische operators. De prioriteitsvolgorde voor rekenkundige operators: * / \ + - De prioriteitsvolgorde voor logische operators: NOT, AND, OR Met ronde haakjes ('()') kunt u een bepaalde prioriteitsvolgorde voor rekenkundige en logische operators afdwingen. Voorbeeld 3 + 4 * 5 = 23 (3 + 4) * 5 = 35 Booleaanse expressies Booleaanse expressies hebben als waarde 'waar' of 'niet waar' (1 of 0). In constraints kunt u dit mechanisme toepassen, vooral in conditionele expressies. Voorbeeld 'if not e then' betekent: Als e = niet waar dan of Als e = 0 dan' If-then-else constructies In constraints kunt u gebruikmaken van uitgebreide if-then-else constructies. Ook geneste constructies zijn toegestaan. Een if-then-else constructie moet u ALTIJD afsluiten met een endif-statement. Het else-statement is niet verplicht. If-, else- en endif-statements staan altijd op een nieuwe regel. (Conditionele) expressies mag u over meerdere regels verspreiden. Een validatie-constraint mag u zonder if-then-else statements definiëren; deze constraint moet dan beginnen met 'c:' Met het '|'-teken kunt u een constraint voorzien van commentaar. Tijdens de configuratieprocedure kunt u berichten genereren met behulp van de variabele "message" (maximaal 80x25 regels tekst). Voorbeeld If expressie1 then expressie2 else expressie3 endif Constraintvariabelen In constraintexpressies kunt u zowel globale als lokale variabelen gebruiken. Globale variabelen zijn productkenmerken en door uzelf gedefinieerde constraintvariabelen die als 'globaal' zijn gedeclareerd. De lokale variabelen zijn variabelen die in de Productconfigurator zijn voorgedefinieerd, zoals invoer, weergave, lengte, breedte enz. Globale variabelen behouden hun waarde gedurende het gehele configuratieproces, tenzij de waarde gewijzigd wordt. Een constraintvariabele kan de volgende typedeclaraties hebben:
De door u zelf gedefinieerde constraintvariabelen moet u altijd bovenaan de constraint declareren. Alle lokale variabelen worden vóór uitvoer van de constraint geïnitialiseerd: alfanumerieke variabelen worden leeg gemaakt, en numerieke variabelen krijgen de waarde nul. De globale variabelen 'input' en 'valideren' worden geïnitialiseerd met de waarde 'true'. Constraintvariabelen gebruiken Productkenmerken moeten in constraintexpressies worden voorzien van vierkante haken openen en sluiten ([......]). De overige variabelen kunnen direct in expressies worden gebruikt. Alfanumerieke variabelen (string-arrays) mogen worden geïndexeerd volgens de notatie: (startpositie[;lengte]). Voorbeeld [kleur] = "rood" valideren = waar Bij waarden van variabelen wordt onderscheid gemaakt tussen alfanumerieke en numerieke waarden. Alfanumerieke waarden moeten worden voorzien van aanhalingstekens ("...."). Numerieke waarden kunt u rechtstreeks invoeren. Het decimaalteken is een punt ('.'). Voorbeeld machine(1;2) = "A5" volume = 28.673 Voor booleaanse expressies kunt u de constanten true/false gebruiken. Rekenkundige functies
Goniometrische functies
Logaritmische functies
String-functies
Datumfuncties
Voorbeeld date(1995,06,01) = 728445
| |||