diff --git a/src/kiri/main.js b/src/kiri/main.js index edee5351..875eadcd 100644 --- a/src/kiri/main.js +++ b/src/kiri/main.js @@ -988,7 +988,7 @@ let ctrl = settings.controller, unitMM = ctrl.units === 'mm', gridMajor = unitMM ? 25 : 25.4, - gridMinor = unitMM ? 5 : 25.4 / 4; + gridMinor = unitMM ? 5 : 25.4 / 10; if (ctrl.dark) { SPACE.platform.setGrid(gridMajor, gridMinor, 0x999999, 0x333333); SPACE.platform.opacity(0.8); diff --git a/src/moto/space.js b/src/moto/space.js index 198c9b6e..3ddd7969 100644 --- a/src/moto/space.js +++ b/src/moto/space.js @@ -230,11 +230,10 @@ let x = platform.scale.x, y = isRound ? platform.scale.z : platform.scale.y, z = isRound ? platform.scale.y : platform.scale.z, - xr = Math.round(x / unitMinor) * unitMinor, - yr = Math.round(y / unitMinor) * unitMinor, - xo = isRound ? x/2 : xr/2, - yo = isRound ? y/2 : yr/2, - divs = Math.round(unitMajor / unitMinor), + xr = Math.ceil(x/2 / unitMinor) * unitMinor, + yr = Math.ceil(y/2 / unitMinor) * unitMinor, + xo = isRound ? x/2 : xr, + yo = isRound ? y/2 : yr, w = x / 2, h = y / 2, d = z / 2, @@ -243,7 +242,8 @@ for (i = -xo; i <= xo; i += unitMinor) { let oh = isRound ? Math.sqrt(1-(i/xo)*(i/xo)) * h : h, dM = Math.abs(i % unitMajor); - if (dM < 0.1 || Math.abs(unitMajor - dM) < 0.1) { + if (i < -w || i > w) continue; + if (dM < 1 || Math.abs(unitMajor - dM) < 0.1) { majors.append({x:i, y:-oh, z:zp}).append({x:i, y:oh, z:zp}); } else { minors.append({x:i, y:-oh, z:zp}).append({x:i, y:oh, z:zp}); @@ -252,7 +252,8 @@ for (i = -yo; i <= yo; i += unitMinor) { let ow = isRound ? Math.sqrt(1-(i/yo)*(i/yo)) * w : w, dM = Math.abs(i % unitMajor); - if (dM < 0.1 || Math.abs(unitMajor - dM) < 0.1) { + if (i < -h || i > h) continue; + if (dM < 1 || Math.abs(unitMajor - dM) < 0.1) { majors.append({x:-ow, y:i, z:zp}).append({x:ow, y:i, z:zp}); } else { minors.append({x:-ow, y:i, z:zp}).append({x:ow, y:i, z:zp});