OpenSCAD, den Instructable (23 / 24 steg)
Steg 23: Förståelse variabel räckvidd
Förståelse omfattning kommer att skriva OpenSCAD program långt mindre smärtsamt. Observera följande diskussionen gäller version 2015.3 och senare. Före detta hade version nya scope skapas med den "tilldela" bygga. Det är har inte längre nödvändigt och "assign" ersatts
Det finns ett nytt scope öppnade i moduler och alla kontroll block. Ledtråd är klammerparenteserna. I själva verket kan man skapa ett nytt scope med klammerparenteser. Glöm inte regeln från trädet syntaxen, klammerparenteser måste omgärda en solid. Man kan inte fäste transformeringar. Kompilera regeln gäller för alla scope, det sista värdet i en angiven omfattning är värdet för variabeln genom hela omfattningen.
Verkar enkelt nog, men det finns fortfarande en liten twist; For-loopen och skärningspunkten för Loop kontroll block. Dessa kontroll block har en variabel som tar på ett nytt värde på varje "pass". Här är min ta på detta, slingorna är expanderat till en serie av enskilda scope. Varje "pass" är ett nytt scope och den sista tilldelade värde regeln gäller. "Pass" är en del av det kompilera steg som bygger den interna modellen som senare används för att generera den slutliga 3D modellen. Loopar är komplicerade och kan vara förvirrande, men det är nödvändigt att varje pass har tillämpningsområdet för loopar ska fungera som avsett. Det är också en möjlighet att använda nytt scope för att beräkna värden som är beroende variabeln loop.
Observera att variablerna i ett nytt scope måste definieras utanför träd syntaxen. En går inte att deklarera en variabel mellan en solid och dess transformering. Dock kan man deklarera en variabel mellan två fasta ämnen i en kombinera eller i någon klammerparenteser eftersom det finns en underförstådd union.