Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const patch = (expand = 0) => {
const originated = m.model.originate(half(pos_hole()))
let lt = get_line(originated, ['inner', 'top', 't']).end
let lm = get_line(originated, ['inner', 'bottom', 'r']).end
let lb = get_line(originated, ['thumb', 'outer', 't']).end
if (expand) {
lt = m.point.add(lt, [0, expand])
lb = m.point.add(lb, [0, -expand])
}
// hacked right side --> won't matter, as it'll be mirrored anyway
rt = [lt[0] + 30, lt[1]]
rb = [lb[0] + 30, lb[1]]
return {
paths: {
a: line(lt, rt),
b: line(rt, rb),
c: line(rb, lb),
d: line(lb, lm),
e: line(lm, lt)
}
}
pixel_path.forEach(function (p) {
var previous_point = points[points.length - 1];
var point_to_add;
if (moveHorizontal) {
point_to_add = [p, 0];
} else {
point_to_add = [0, p];
}
var e = makerjs.point.add(previous_point, point_to_add);
points.push(e);
// flip direction each time
moveHorizontal = !moveHorizontal;
});
///
var makerjs = require('makerjs');
var arc = makerjs.paths.Arc;
var line = makerjs.paths.Line;
var point = makerjs.point;
var PolygonRimboxInside = (function () {
function PolygonRimboxInside(angle, radius, holeRadius, rimThickness) {
var rim = Math.min(rimThickness, holeRadius);
var innerFilletCenter = point.rotate([radius + 2 * holeRadius + rim, 0], 90 + angle, [radius, 0]);
var innerFilletTop = new arc(innerFilletCenter, holeRadius, 270 + angle, angle);
var innerFilletTopPoints = point.fromArc(innerFilletTop);
var innerFilletBottomPoint = [innerFilletTopPoints[1][0], -innerFilletTopPoints[1][1]];
this.paths = {
innerFilletTop: innerFilletTop,
innerFilletBottom: makerjs.path.mirror(innerFilletTop, false, true),
innerLine: new line(innerFilletTopPoints[1], point.rotate(innerFilletBottomPoint, angle * 2, [0, 0])),
innerFillet: new arc([radius, 0], holeRadius + rim, 90 + angle, 270 - angle)
};
}
return PolygonRimboxInside;
})();
///
var makerjs = require('makerjs');
var arc = makerjs.paths.Arc;
var line = makerjs.paths.Line;
var point = makerjs.point;
var PolygonStackBoxInside = (function () {
function PolygonStackBoxInside(angle, radius, holeRadius, rimThickness) {
var rim = Math.min(rimThickness, holeRadius);
var a2 = angle * 2;
var innerFilletCenter = point.rotate([radius + 2 * holeRadius + rim, 0], 90 + angle, [radius, 0]);
var innerFilletTop = new arc(innerFilletCenter, holeRadius, 270 + angle, angle);
var innerFilletTopPoints = point.fromArc(innerFilletTop);
var innerFilletBottomPoint = [innerFilletTopPoints[1][0], -innerFilletTopPoints[1][1]];
this.paths = {
innerFilletTop: innerFilletTop,
innerFilletBottom: makerjs.path.mirror(innerFilletTop, false, true),
innerLine: new line(innerFilletTopPoints[1], point.rotate(innerFilletBottomPoint, a2, [0, 0])),
innerFillet: new arc([radius, 0], holeRadius + rim, 90 + angle, 270 - angle)
};
}
return PolygonStackBoxInside;
let l = [_left, _bottom + fence_corner]
let lt = [_left, _top - fence_corner]
let t = [_left + fence_corner, _top]
let tr = [_right - fence_corner, _top]
let r = [_right, _top - fence_corner]
let rb = [_right, _bottom + fence_corner]
let b = [_right - fence_corner, _bottom]
let bl = [_left + fence_corner, _bottom]
// simplify the "below the wing" region
if (col == 'ring' && key == 'bottom') {
bl = m.point.add(bl, [0, -1])
b = m.point.add(b, [30, -1])
rb = m.point.add(rb, [30, -1])
} else if (col == 'pinky' && key == 'bottom') {
rb = m.point.add(rb, [10, 10])
// elongate the diagonal to reach the top of the next key
} else if (col == 'middle' && key == 'top') {
r = m.point.add(r, [5, -5])
// skip the mini step on the inner col + handle top middle connection
} else if (col == 'inner' && key == 'top') {
t = m.point.add(t, [0, 2])
tr = m.point.add(tr, [30, 2])
r = m.point.add(r, [30, 2])
// handle bottom middle connection
} else if (col == 'thumb' && key == 'outer') {
tr = m.point.add(tr, [0, 30])
r = m.point.add(r, [0, 30])
}
const patch = (expand = 0) => {
const originated = m.model.originate(half(pos_hole()))
let lt = get_line(originated, ['inner', 'top', 't']).end
let lm = get_line(originated, ['inner', 'bottom', 'r']).end
let lb = get_line(originated, ['thumb', 'outer', 't']).end
if (expand) {
lt = m.point.add(lt, [0, expand])
lb = m.point.add(lb, [0, -expand])
}
// hacked right side --> won't matter, as it'll be mirrored anyway
rt = [lt[0] + 30, lt[1]]
rb = [lb[0] + 30, lb[1]]
return {
paths: {
a: line(lt, rt),
b: line(rt, rb),
c: line(rb, lb),
d: line(lb, lm),
e: line(lm, lt)
}
}
}
circleT: new makerjs.paths.Circle(arcRadius + h2),
circleB: new makerjs.paths.Circle(arcRadius - h2)
};
}
//move each character to a percentage of the total arc
var span = makerjs.angle.ofArcSpan(arc);
for (var i = 0; i < text.length; i++) {
var char = textModel.models[i];
//get the x distance of each character as a percentage
var distFromFirst = char.origin[0] - left;
var center = distFromFirst / textWidth;
//set a new origin at the center of the text
var o = makerjs.point.add(char.origin, [0, h2]);
makerjs.model.originate(char, o);
//project the character x position into an angle
var angle = center * span;
var angleFromEnd = onTop ? endAngle - angle : startAngle + angle;
var p = makerjs.point.fromAngleOnCircle(angleFromEnd, arc);
char.origin = p;
//rotate the char to 90 from tangent
makerjs.model.rotate(char, onTop ? angleFromEnd - 90 : angleFromEnd + 90, p);
}
}
function logo(or, ir, ear, outline, mHeight, serifHeight, speed, drop, columnWidth, spacing, step) {
var point = makerjs.point;
var path = makerjs.path;
var paths = makerjs.paths;
function bend(r, bendTop, x, trimTo, outer) {
outer = outer || 0;
var hguide = new paths.Line([0, bendTop - r], [100, bendTop - r]);
var vguide = path.rotate(new paths.Line([x, 0], [x, 100]), -speed, [x, 0]);
var intersectionPoint = path.intersection(hguide, vguide).intersectionPoints[0];
var center = point.subtract(intersectionPoint, [makerjs.solvers.solveTriangleASA(90, r, speed), 0]);
var arc = new paths.Arc(center, r + outer, - speed, 90 + drop);
var Horizontal = path.rotate(
new paths.Line([-10, arc.origin[1] + r + outer], point.add(arc.origin, [0, r + outer])),
var span = makerjs.angle.ofArcSpan(arc);
for (var i = 0; i < text.length; i++) {
var char = textModel.models[i];
//get the x distance of each character as a percentage
var distFromFirst = char.origin[0] - left;
var center = distFromFirst / textWidth;
//set a new origin at the center of the text
var o = makerjs.point.add(char.origin, [0, h2]);
makerjs.model.originate(char, o);
//project the character x position into an angle
var angle = center * span;
var angleFromEnd = onTop ? endAngle - angle : startAngle + angle;
var p = makerjs.point.fromAngleOnCircle(angleFromEnd, arc);
char.origin = p;
//rotate the char to 90 from tangent
makerjs.model.rotate(char, onTop ? angleFromEnd - 90 : angleFromEnd + 90, p);
}
}
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o