/* Last edited on 2010-04-01 22:35:58 by stolfi Uppercase letters in font "lac" */ #local rdY = 1.1*stemHY; // Leter half-thickness before trimming #declare widthUCaseL = 3.8; #declare depthUCaseL = 0.0; #declare heightUCaseL = 3.0; #declare glyphUCaseL = intersection{ merge{ box { <+0.500-stemR, -rdY, +0.500-stemR>, <+0.500+stemR, +rdY, +2.500+stemR> } box { <+0.499+stemR, -rdY, +0.501-stemR>, <+3.300+stemR, +rdY, +0.501+stemR> } } box{ < 00.000, -stemHY, 00.000 >, < +3.800, +stemHY, +3.000 > } } defchar(asc("L"), widthUCaseL, heightUCaseL, depthUCaseL, glyphUCaseL) // #local thetaA = 100:39.6772 150:37.0687 200:34.5085 // #local deltaA = 100:1.0875 150:1.13125 200:1.175 // #local sigmaA = 100:0.67273 150:0.75353 200:0.83125 // #local omegaA = 100:3.32723 150:3.24647 200:3.16875 #local ssA = stemR - 0.150; #local thetaA = 45.0 - stemR*(54.585 + stemR*9.66); #local trA = radians(thetaA); #local deltaA = (0.92 + 2.4*stemR)*tan(trA) + stemR/cos(trA); #local sigmaA = deltaA - 0.5*tan(trA); #local auxA = merge{ box { <-stemR, -rdY, -2.500+stemR>, <+stemR, +rdY, +2.500-stemR> rotate +thetaA*y translate (00.000+deltaA)*x translate 1.500*z } box { <-stemR, -rdY, -2.500+stemR>, <+stemR, +rdY, +2.500-stemR> rotate -thetaA*y translate (+4.000-deltaA)*x translate 1.500*z } box { <00.000+sigmaA, -rdY, +1.000-stemR>, <+4.000-sigmaA, +rdY, +1.000+stemR> } } #declare widthUCaseA = 4.0; #declare depthUCaseA = 0.0; #declare heightUCaseA = 3.0; #declare glyphUCaseA = intersection{ box { <00.000, -stemHY, 0.500-stemR>, <+4.000, +stemHY, +2.500+stemR> } object{ auxA } } defchar(asc("A"), widthUCaseA, heightUCaseA, depthUCaseA, glyphUCaseA) #local auxC = intersection{ box { <0.500-stemR, -stemHY, 0.500-stemR>, <3.500+stemR, +stemHY, 2.500+stemR> } difference{ object{lac_superlipcyl scale <1.500+stemR, 1.000, 1.000+stemR> } object{lac_superlipcyl scale <1.500-stemR, 1.0000, 1.000-stemR> } translate <2.0, 0, 1.5> } } #declare widthUCaseC = 4.0; #declare depthUCaseC = 0.0; #declare heightUCaseC = 3.0; #declare glyphUCaseC = difference{ object{ auxC } box { <+2.000, -rdY, +1.200>, <+4.100, +rdY, +1.800> } } defchar(asc("C"), widthUCaseC, heightUCaseC, depthUCaseC, glyphUCaseC)