@z3dev Hello, I found a way to have my numbers on only one path, for that I redesigned my digits to make them start at 0,0 and finish at 8,0 so that I can easily chain them, some lines are dubbed but it works even if it is a little harder to read.
const jscad = require('@jscad/modeling')
const { line, cube, rectangle, circle, polygon, sphere } = jscad.primitives
const { measureBoundingBox, measureDimensions, measureAggregateBoundingBox, measureCenter } = jscad.measurements
const { rotateZ, translate, translateX, scale, center, align } = jscad.transforms
const { colorize, colorNameToRgb, cssColors } = jscad.colors
const { toPolygons } = jscad.geometries.geom3
const { union } = jscad.booleans
const { vec3 } = jscad.maths
const { radToDeg, degToRad } = jscad.utils
function main () {
var r = []
r.push(line([[0,0],[0,100],[100,100],[100,0],[0,0]] ))
r.push(colorize(cssColors.blue, number(149,2,10, 1)))
r.push(colorize(cssColors.green, number(289,15,35, 0.75)))
return r
}
function number(nb, x, y, ech) {
function digit (n) {
var d = [
[[0,0],[1,1],[1,16],[7,16],[7,1],[1,1],[7,1],[8,0]]
,[[0,0],[4,0],[4,16],[0,8],[4,16],[4,0],[8,0]]
,[[0,0],[1,1],[2,5],[5,8],[7,11],[6,16],[3,16],[1,12],[3,16],[6,16],[7,11],[5,8],[2,5],[1,1],[7,1],[8,0]]
,[[0,0],[1,1],[0,4],[1,1],[5,1],[7,3],[8,7],[3,9],[7,12],[5,16],[1,16],[0,14],[1,16],[5,16],[7,12],[3,9],[8,7],[7,3],[5,1],[8,0]]
,[[0,0],[4,0],[4,16],[0,8],[7,8],[4,8],[4,0],[8,0]]
,[[0,0],[1,1],[7,1],[7,8],[0,8],[0,16],[7,16],[0,16],[0,8],[7,8],[7,1],[8,0]]
,[[0,0],[1,1],[7,1],[7,8],[1,8],[3,13],[7,16],[3,13],[1,8],[1,1],[7,1],[8,0]]
,[[0,0],[1,1],[3,1],[7,16],[0,16],[7,16],[3,1],[7,1],[8,0]]
,[[0,0],[1,1],[7,1],[8,7],[4,9],[1,12],[1,16],[7,16],[7,12],[4,9],[0,7],[1,1],[7,1],[8,0]]
,[[0,0],[1,1],[7,1],[7,16],[0,16],[0,8],[7,8],[7,1],[8,0]]
]
return d[n]
}
var r = []
var sep = [[8,0],[9,0]]
const LC = 9
var ch = nb.toString().split("").map(Number)
var l = []
for(var i = 0; i < ch.length; i++){
l = l.concat(digit(ch[i]).map(v=> [v[0]+LC*i, v[1]]))
if(i < ch.length-1)
l = l.concat(sep.map(v=> [v[0]+LC*i, v[1]]))
}
return translate([x, y], colorize(cssColors.black, scale([ech/2, ech/2], line(l))))
}
module.exports ={ main }