fix #IXK7M 修复板件斜切割错误

pull/333/head
ChenX 5 years ago
parent 9c0a5be7a8
commit 9371eff824

@ -33,3 +33,33 @@ test('板件与板件切割_分裂成多个', () =>
expect(b.Thickness).toMatchNumberSnapshot(); expect(b.Thickness).toMatchNumberSnapshot();
} }
}); });
test('斜切割', () =>
{
let d =
{ "file": [2, "Board", 3, 2, 101, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -2215.328823760792, 499.71410406375077, -2294.099214285263, 1], 2, 1200, 600, 18, true, "Polyline", 3, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 0, 3, 0, 0, 0, 2, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -205.28537176904496, 177.69146652013302, 0, 1], 1, "左侧板", { "roomName": "", "cabinetName": "", "boardName": "", "material": "", "color": "", "lines": 0, "bigHoleDir": 0, "composingFace": 2, "highSealed": [], "sealedUp": "1", "sealedDown": "1", "sealedLeft": "1", "sealedRight": "1", "spliteHeight": "", "spliteWidth": "", "spliteThickness": "", "highDrill": ["三合一", "三合一", "三合一", "三合一"], "frontDrill": true, "backDrill": true, "drillType": "三合一" }, 0, 0, "Board", 3, 2, 102, false, 1, 2, 0, [0, 1, 0, 0, -0.9502295409734979, 0, -0.31155066917163815, 0, -0.31155066917163815, 0, 0.9502295409734979, 0, -1370.93197964564, 499.71410406375077, -1535.8828067472384, 1], 2, 1210.53726169844, 600, 18, true, "Polyline", 3, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 2, 4, [0, 0], 0, [600, 0], 0, [600, 1210.53726169844], 0, [0, 1210.53726169844], 0, true, 0, 3, 0, 0, 0, 2, [0.9502295409734979, 0, 0.31155066917163815, 0, 0, 1, 0, 0, -0.31155066917163815, 0, 0.9502295409734979, 0, 639.1114723461071, 177.69146652013302, 758.2164075380244, 1], 0, "层板", { "roomName": "", "cabinetName": "", "boardName": "", "material": "", "color": "", "lines": 0, "bigHoleDir": 0, "composingFace": 2, "highSealed": [], "sealedUp": "1", "sealedDown": "1", "sealedLeft": "1", "sealedRight": "1", "spliteHeight": "", "spliteWidth": "", "spliteThickness": "", "highDrill": ["三合一", "三合一", "三合一", "三合一"], "frontDrill": true, "backDrill": true, "drillType": "三合一" }, 0, 0], "basePt": { "x": -1847.3471649178755, "y": -8951.992136339191, "z": 0 } }
{
let [br0, br1] = LoadBoardsFromFileData(d) as Board[];
let splitBrs = CuttingBoard(br0, [br1]);
splitBrs.push(br0);
for (let b of splitBrs)
{
expect(b.Width).toMatchNumberSnapshot();
expect(b.Height).toMatchNumberSnapshot();
expect(b.Thickness).toMatchNumberSnapshot();
}
}
{
let [br1, br0] = LoadBoardsFromFileData(d) as Board[];
let splitBrs = CuttingBoard(br0, [br1]);
splitBrs.push(br0);
for (let b of splitBrs)
{
expect(b.Width).toMatchNumberSnapshot();
expect(b.Height).toMatchNumberSnapshot();
expect(b.Thickness).toMatchNumberSnapshot();
}
}
});

@ -1,5 +1,29 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`斜切割 1`] = `"600.00000"`;
exports[`斜切割 2`] = `"481.36498"`;
exports[`斜切割 3`] = `"18.00000"`;
exports[`斜切割 4`] = `"600.00000"`;
exports[`斜切割 5`] = `"693.79059"`;
exports[`斜切割 6`] = `"18.00000"`;
exports[`斜切割 7`] = `"600.00000"`;
exports[`斜切割 8`] = `"321.91319"`;
exports[`斜切割 9`] = `"18.00000"`;
exports[`斜切割 10`] = `"600.00000"`;
exports[`斜切割 11`] = `"863.77964"`;
exports[`斜切割 12`] = `"18.00000"`;
exports[`板件与板件切割_分裂成多个 1`] = `"600.00000"`; exports[`板件与板件切割_分裂成多个 1`] = `"600.00000"`;
exports[`板件与板件切割_分裂成多个 2`] = `"435.90920"`; exports[`板件与板件切割_分裂成多个 2`] = `"435.90920"`;

@ -698,6 +698,7 @@ export class ExtureSolid extends Entity
let yv = target.Normal; let yv = target.Normal;
let zv = this.Normal; let zv = this.Normal;
let xv = yv.clone().cross(zv); let xv = yv.clone().cross(zv);
yv.copy(zv).cross(xv);
let m = new Matrix4().makeBasis(xv, yv, zv).copyPosition(this.OCS); let m = new Matrix4().makeBasis(xv, yv, zv).copyPosition(this.OCS);
let mi = new Matrix4().getInverse(m).multiply(this.OCS); let mi = new Matrix4().getInverse(m).multiply(this.OCS);

Loading…
Cancel
Save