From bebdf3bbe900e481e609c036759d3f69dfcb6e6b Mon Sep 17 00:00:00 2001 From: Chen Fu Date: Wed, 18 Aug 2021 14:10:22 -0700 Subject: [PATCH] Multiple font legends on the same key --- keys.scad | 3 +++ src/key.scad | 8 ++++---- src/key_transformations.scad | 10 ++++++---- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/keys.scad b/keys.scad index 768110e..c24a962 100644 --- a/keys.scad +++ b/keys.scad @@ -11,6 +11,9 @@ include <./includes.scad> // example key dcs_row(5) legend("⇪", size=9) key(); +// different font legends +translate_u(0,-1) dsa_row(3) legend("A", position=[-1,-1], size=4, font_name="Arial") legend("%", position=[1,0], size=3, font_name="Arial Rounded MT Bold")key(); + // example row /* for (x = [0:1:4]) { translate_u(0,-x) dcs_row(x) key(); diff --git a/src/key.scad b/src/key.scad index 65b76a7..b8d67f0 100644 --- a/src/key.scad +++ b/src/key.scad @@ -268,12 +268,12 @@ module top_of_key(){ } } -module keytext(text, position, font_size, depth) { +module keytext(text, position, font_size, font_name, depth) { woffset = (top_total_key_width()/3.5) * position[0]; hoffset = (top_total_key_height()/3.5) * -position[1]; translate([woffset, hoffset, -depth]){ color($tertiary_color) linear_extrude(height=$dish_depth){ - text(text=text, font=$font, size=font_size, halign="center", valign="center"); + text(text=text, font=font_name, size=font_size, halign="center", valign="center"); } } } @@ -333,7 +333,7 @@ module legends(depth=0) { front_placement() { if (len($front_legends) > 0) { for (i=[0:len($front_legends)-1]) { - rotate([90,0,0]) keytext($front_legends[i][0], $front_legends[i][1], $front_legends[i][2], depth); + rotate([90,0,0]) keytext($front_legends[i][0], $front_legends[i][1], $front_legends[i][2], $front_legends[i][3], depth); } } } @@ -343,7 +343,7 @@ module legends(depth=0) { // outset legend if (len($legends) > 0) { for (i=[0:len($legends)-1]) { - keytext($legends[i][0], $legends[i][1], $legends[i][2], depth); + keytext($legends[i][0], $legends[i][1], $legends[i][2], $legends[i][3], depth); } } } diff --git a/src/key_transformations.scad b/src/key_transformations.scad index c47289c..22d0cbc 100644 --- a/src/key_transformations.scad +++ b/src/key_transformations.scad @@ -131,15 +131,17 @@ module flat_support() { children(); } -module legend(text, position=[0,0], size=undef) { +module legend(text, position=[0,0], size=undef, font_name=undef) { font_size = size == undef ? $font_size : size; - $legends = [for(L=[$legends, [[text, position, font_size]]], a=L) a]; + font_name = font_name == undef ? $font : font_name; + $legends = [for(L=[$legends, [[text, position, font_size, font_name]]], a=L) a]; children(); } -module front_legend(text, position=[0,0], size=undef) { +module front_legend(text, position=[0,0], size=undef, font_name=undef) { font_size = size == undef ? $font_size : size; - $front_legends = [for(L=[$front_legends, [[text, position, font_size]]], a=L) a]; + font_name = font_name == undef ? $font : font_name; + $front_legends = [for(L=[$front_legends, [[text, position, font_size, font_name]]], a=L) a]; children(); }