Loading...
Download as svg
Output pixel based svg
/* # Online programmatic 2D CAD ## How to use. Edit this box or drag drop file to image view. If you use visicut, please use pixel based svg. ## Function reference - sin(dig), cos(dig), tan(dig) - line({x1:0, y1:0, x2:1, y2:1}) - square({width:10, height:10}) - roundedSquare({width:10, height:10, round:1}) - arc({end: 90, details: 20}) - union([]) - cut({from: obj, x1:0, y1:0, x2:1, y2}) */ var KEY_HOLE = 14; var KEY_CAP = 19; var KEY_HOLE_MARGIN = (KEY_CAP - KEY_HOLE) / 2; var MAIN_KEY_ROWS = 4; var MAIN_KEY_COLS = 6; var MAIN_KEY_AREA_HEIGHT = KEY_CAP * MAIN_KEY_ROWS; var MOD_KEY_AREA_HEIGHT = 70; var MOD_KEY_COLS = 3; var MOD_KEY_DISTANCE = 52; var PANEL_MARGIN = 3; var PANEL_WIDTH = KEY_CAP * MAIN_KEY_COLS + PANEL_MARGIN*2 + 7; var PANEL_HEIGHT = KEY_CAP * MAIN_KEY_ROWS + MOD_KEY_AREA_HEIGHT + PANEL_MARGIN*2; var SHOW_CAP = false; function key() { if (SHOW_CAP) { return union([ square({width: KEY_HOLE, height:KEY_HOLE}), square({width: KEY_CAP, height:KEY_CAP}) .translate({x:-KEY_HOLE_MARGIN, y:-KEY_HOLE_MARGIN}), ]); } else { return square({width: KEY_HOLE, height:KEY_HOLE}); } } function mainKeys() { function mainKeyRow() { var rv = []; for (var i=0;i