You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
WebCAD/__test__/FeedingToolPath/FeedingToolPath.test.ts

243 lines
92 KiB

import { Vector3 } from "three";
import { Polyline } from "../../src/DatabaseServices/Entity/Polyline";
import { Production } from "../../src/Production/Product";
import { LoadBoardsFromFileData } from "../Utils/LoadEntity.util";
import "../Utils/jest.util";
import { testPathCount } from "./testPathCount";
test("通孔造型测试", () =>
{
let data =
[1, "Board", 2, 1, 0, false, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 126.93136983439945, -7851.102620205904, 0, 1], 0, 1, 1200, 600, 18, true, "Polyline", 2, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 1, 673.8380465638395, 274.47037051586176, 18, true, "Polyline", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7679.5111852499285, 1949.1412985704153, 0, 1], 0, 2, 4, [-7679.5111852499285, -1949.1412985704153], 0, [-7405.040814734067, -1949.141298570415], 0, [-7405.040814734067, -1275.3032520065758], 0, [-7679.5111852499285, -1275.303252006576], 0, true, 0, 3, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -53.391487696768536, -7707.983215386429, 0, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0];
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0]);
});
test("带孔造型板件", () =>
{
let data =
[1, "Board", 2, 1, 0, false, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 315.04650013028345, -2923.9345412691255, 0, 1], 0, 1, 1200, 600, 18, true, "Polyline", 2, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 1, 781.9411552098454, 316.04590245415375, 10, true, "Polyline", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2793.4596524207154, 1846.8398587682314, 0, 1], 0, 2, 4, [-2793.4596524207154, -1846.8398587682314], 0, [-2477.4137499665617, -1846.8398587682314], 0, [-2477.4137499665617, -1064.898703558386], 0, [-2793.4596524207154, -1064.898703558386], 0, true, 1, 1, 460.44618547199957, 144.40028301784605, 10, true, "Polyline", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2714.448176807177, 1707.8886430340776, 0, 1], 0, 2, 4, [-2714.448176807177, -1707.8886430340776], 0, [-2570.047893789331, -1707.8886430340776], 0, [-2570.047893789331, -1247.442457562078], 0, [-2714.448176807177, -1247.442457562078], 0, true, 0, null, null, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 35.32771290074447, -2722.0163258123052, 0, 1], 3, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 174.2789286348982, -2801.027801425844, 0, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0];
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0]);
data =
[2, "Board", 2, 1, 0, false, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 315.04650013028345, -2923.9345412691255, 0, 1], 0, 1, 1200, 600, 18, true, "Polyline", 2, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 1, 781.9411552098454, 316.04590245415375, 10, true, "Polyline", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2793.4596524207154, 1846.8398587682314, 0, 1], 0, 2, 4, [-2793.4596524207154, -1846.8398587682314], 0, [-2477.4137499665617, -1846.8398587682314], 0, [-2477.4137499665617, -1064.898703558386], 0, [-2793.4596524207154, -1064.898703558386], 0, true, 1, 1, 460.44618547199957, 144.40028301784605, 10, true, "Polyline", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2714.448176807177, 1707.8886430340776, 0, 1], 0, 2, 4, [-2714.448176807177, -1707.8886430340776], 0, [-2570.047893789331, -1707.8886430340776], 0, [-2570.047893789331, -1247.442457562078], 0, [-2714.448176807177, -1247.442457562078], 0, true, 0, null, null, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 35.32771290074447, -2722.0163258123052, 0, 1], 3, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 174.2789286348982, -2801.027801425844, 0, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0, "Board", 2, 1, 0, false, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 142.7476665886519, -6652.181401176747, 0, 1], 0, 1, 1200, 600, 18, true, "Polyline", 2, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 1, 570.6446281875853, 297.7276320978708, 15, false, "Polyline", 2, 1, 0, false, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6466.692360544344, 1702.2733585298784, 0, 1], 0, 2, 6, [-6459.603607399157, -1131.628730342293], 0, [-6168.964728446474, -1131.628730342293], 0, [-6303.651038205035, -1393.9125967142265], 0, [-6186.686611309442, -1702.2733585298784], 0, [-6466.692360544344, -1702.2733585298784], 0, [-6388.716075947283, -1393.9125967142265], 0, true, 2, 1, 99.24760729856871, 99.24760729856868, 15, false, "Circle", 2, 1, 0, false, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 49.623803649284326, 49.623803649284355, 0, 1], 0, 1, 49.62380364928433, 0, null, null, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -223.59656432166037, -6396.185427559853, 0, 1], 1, 86.61609364238552, 86.61609364238564, 15, false, "Circle", 2, 1, 0, false, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 43.30804682119282, 43.30804682119276, 0, 1], 0, 1, 43.30804682119281, 0, null, null, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -602.4971864608012, -6386.041744033361, 0, 1], 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -176.24622494478092, -6472.599654832001, 0, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0];
brs = LoadBoardsFromFileData(data);
testPathCount(brs[0]);
});
test("极限刀半径", () =>
{
let data =
[1, "Board", 2, 1, 0, false, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -657.7056127057733, -888.0170782475586, 0, 1], 0, 1, 1200, 600, 18, true, "Polyline", 2, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 1, 560, 310, 15, false, "Polyline", 2, 1, 0, false, 1, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 533.9316239316239, 40.76923076923083, 0, 1], 0, 2, 8, [-269.2307692307692, -223.9316239316239], 0, [-209.23076923076923, -223.9316239316239], 0, [-209.2307692307692, -473.9316239316239], 0, [40.7692307692308, -473.9316239316239], 0, [40.76923076923081, -533.9316239316239], 0, [-519.2307692307692, -533.9316239316238], 0, [-519.2307692307692, -473.9316239316238], 0, [-269.23076923076917, -473.9316239316238], 0, true, 0, 30, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -990.7928086301262, -752.1719826564371, 0, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0];
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 1);
data =
[1, "Board", 2, 1, 0, false, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -663.8732094729834, -1836.8490686954794, 0, 1], 0, 1, 1200, 600, 18, true, "Polyline", 2, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 1, 746.2524018100552, 30, 18, false, "Polyline", 2, 1, 0, false, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1480.7590848806103, 719.3699285130117, 0, 1], 0, 2, 4, [-1450.7590848806103, 26.7131494779253], 0, [-1450.7590848806103, -719.3699285130117], 0, [-1480.7590848806103, -719.3699285130117], 0, [-1480.7590848806103, 26.88247329704346], 0, true, 0, 15, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -864.4413047383622, -1532.97311226155, 0, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0];
brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 1);
data =
[1, "Board", 2, 1, 0, false, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -1045.5289925195948, 676.3547294712749, 0, 1], 0, 1, 1200, 600, 18, true, "Polyline", 2, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 1, 795.8575198929175, 511.55082631160246, 20, false, "Polyline", 2, 1, 0, false, 3, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, -119.65811965811962, 526.6267506621481, 0, 1], 0, 2, 8, [-269.2307692307692, 119.65811965811966], 0, [-269.23076923076945, 631.2089459697221], 0, [526.6267506621481, 631.2089459697221], 0, [526.6267506621481, 119.65811965811963], 0, [466.6267506621481, 119.65811965811962], 0, [466.62675066214797, 571.2089459697221], 0, [-209.2307692307695, 571.2089459697221], 0, [-209.23076923076923, 119.65811965811966], 0, true, 0, 30, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -1252.7209932983192, 706.2274154410178, 0, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0];
brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 1);
data =
[1, "Board", 5, 2, 103, false, 1, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -2464.8536219638777, -3019.7114880500603, 0, 1], 0, 0, 2, 1200, 600, 18, true, "Polyline", 5, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 2, 400.00000000000006, 120, 18, false, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -229.66939762350881, -293.05345437892123, 0, 1], 0, 0, 2, 6, [229.66939762350881, 293.05345437892123], 0, [349.6693976235088, 293.05345437892123], 0, [349.6693976235088, 493.05345437892123], 0, [289.6693976235088, 493.05345437892123], 0, [289.6693976235088, 693.0534543789213], 0, [229.66939762350881, 693.0534543789213], 0, true, 0, 30, 0, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -2757.907076342799, -2790.0420904265516, 0, 1], null, null, 0, 0, 5, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1761.6637493564908, 12.017858403159153, 0, 1], null, "", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0];
brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 1);
data =
[1, "Board", 2, 1, 0, false, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -723.8046937091931, -4479.271007572378, 0, 1], 0, 1, 1200, 600, 18, true, "Polyline", 2, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 1, 300, 150, 18, false, "Polyline", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4161.700851750289, 687.1968681241217, 0, 1], 0, 2, 6, [-4011.700851750289, -387.1968681241217], 0, [-4011.700851750289, -687.1968681241217], 0, [-4161.700851750289, -687.1968681241217], 0, [-4161.700851750289, -657.1968681241217], 0, [-4041.700851750289, -657.1968681241217], 0, [-4041.700851750289, -387.1968681241217], 0, true, 0, 15, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -1161.9583753881263, -4220.095227861202, 0, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0];
brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 1);
});
test("复杂极限刀半径", () =>
{
let data =
[1, "Board", 2, 1, 0, false, 7, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -604.0236327121571, -287.85437391994753, 0, 1], 0, 1, 1200, 600, 18, false, "Polyline", 2, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -929.3989071038254, 27.540983606557347, 0, 1], 0, 2, 12, [1090.0546448087434, 872.1311475409834], 0, [1057.9234972677596, 599.0163934426229], 0, [929.3989071038254, 599.016393442623], 0, [929.3989071038254, 354.03292181069946], 0, [1167.7049180327872, 368.74316939890696], 0, [1114.1530054644809, 122.40437158469933], 0, [929.3989071038254, 143.05335904853735], 0, [929.3989071038254, -27.540983606557347], 0, [1529.3989071038254, -27.540983606557404], 0, [1529.3989071038254, 1172.4590163934427], 0, [929.3989071038254, 1172.4590163934427], 0, [929.3989071038254, 872.1311475409834], 0, true, 2, 1, 62.52168749122916, 175.06051950256187, 7.5, false, "Polyline", 2, 1, 0, false, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1068.026003516091, -929.011096497888, 0, 1], 0, 2, 12, [1111.5123746027145, 991.5327839891172], 0, [1234.7237593481482, 991.5327839891172], 0, [1234.7237593481482, 985.5327839891172], 0, [1118.2025855391182, 985.5327839891172], 0, [1118.2025855391182, 961.9843523533344], 0, [1238.6263823943837, 961.9843523533344], 0, [1238.6263823943837, 953.9843523533344], 0, [1102.0345757761427, 953.9843523533344], 0, [1102.0345757761427, 938.011096497888], 0, [1243.0865230186528, 938.011096497888], 0, [1243.0865230186528, 929.011096497888], 0, [1068.026003516091, 929.011096497888], 0, true, 0, 3, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -604.0236327121571, -264.8994086552224, 940.4865063339535, 1], 1, 415.4773226587022, 501.88369069464534, 6, false, "Polyline", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1045.0710382513657, -676.4610119480917, 0, 1], 0, 2, 21, [1045.0710382513657, 988.2305644705416], 0, [1071.838538645684, 1047.9617459060103], 0, [1045.0710382513657, 1056.0304182736754], 0, [1045.0710382513662, 1091.938334606794], 0, [1237.9650273224047, 1083.1256830601092], 0, [1543.8535519125685, 1083.1256830601092], 0, [1543.8535519125685, 1077.1256830601092], 0, [1249.5168174863388, 1077.1256830601092], 0, [1249.5168174863388, 1064.203778797814], 0, [1543.9255256830606, 1064.203778797814], 0, [1543.9255256830606, 1057.203778797814], 0, [1251.5572738797819, 1057.203778797814], 0, [1251.5572738797819, 1046.7141525683055], 0, [1544.800006994536, 1046.7141525683055], 0, [1301.694202404372, 980.8365604371581], 0, [1546.954728946011, 745.6150793512566], 0, [1300.598185827323, 682.4262257591249], 0, [1180.816692501768, 676.4610119480917], 0, [1205.7267759562842, 888.1967213114754], 0, [1205.7267759562842, 888.1967213114754], 0, [1045.0710382513657, 888.1967213114754], 0, true, 0, 3, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -604.0236327121571, -287.85437391994753, 687.9364217841571, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0];
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0]);
});
test("刀切到外轮廓情况", () =>
{
let data =
[1, "Board", 2, 1, 0, false, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 5026.542613652899, -82.94991876210884, 0, 1], 0, 1, 1200, 600, 18, true, "Polyline", 2, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 1, 445.36242848150596, 294.1072640915602, 15, true, "Polyline", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -46.493939839332825, 6527.979974776644, 0, 1], 0, 2, 4, [46.493939839332825, -6527.979974776644], 0, [340.601203930893, -6527.979974776644], 0, [340.601203930893, -6082.617546295138], 0, [46.493939839332825, -6082.617546295138], 0, true, 1, 1, 232.2289768788869, 232.2289768788869, 15, false, "Circle", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 116.11448843944345, 116.11448843944345, 0, 1], 0, 1, 116.11448843944343, 0, null, null, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 4553.102309474347, 58.593075292577964, 0, 1], 3, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 4656.574348902801, 56.63432244959961, 0, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0];
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0]);
data =
[1, "Board", 2, 1, 0, false, 7, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 5057.50249574722, -1024.0000779051127, 0, 1], 0, 1, 1200, 600, 18, true, "Polyline", 2, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 1, 1200, 600, 15, false, "Polyline", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1042.216784740986, 6887.269493483857, 0, 1], 0, 2, 4, [-442.216784740986, -6287.269493483857], 0, [-742.216784740986, -5687.269493483857], 0, [-1042.216784740986, -6287.269493483857], 0, [-742.216784740986, -6887.269493483857], 0, true, 1, 1, 600, 300, 15, true, "Polyline", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 892.216784740986, 6587.269493483857, 0, 1], 0, 2, 4, [-892.216784740986, -6587.269493483857], 0, [-592.216784740986, -6587.269493483857], 0, [-592.216784740986, -5987.269493483857], 0, [-892.216784740986, -5987.269493483857], 0, true, 0, null, null, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 4757.50249574722, -874.0000779051127, 0, 1], 3, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 5057.50249574722, -1024.0000779051127, 0, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0];
brs = LoadBoardsFromFileData(data);
testPathCount(brs[0]);
});
test("复杂造型测试", () =>
{
let data =
[1, "Board", 2, 1, 0, false, 7, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -2703.8098770005176, -134.6026210568009, 1], 0, 1, 764.7430619429056, 764.7430619429056, 18, false, "Circle", 2, 1, 0, false, 7, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 382.3715309714528, 382.3715309714528, 0, 1], 0, 1, 382.3715309714528, 12, 1, 764.7430619429051, 99.0710382513663, 10, false, "Polyline", 2, 1, 0, false, 1, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, -194.21699734632773, -1224.6532653675138, 0, 1], 0, 2, 4, [-1985.6277286542445, 194.21699734632784], 0, [-1228.4218640236884, 194.21699734632784], 0.06505182506170779, [-1227.3723277647396, 293.288035597694], 0, [-1986.6772649131926, 293.288035597694], 0.06505182506170767, true, 0, 3, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -2703.809877000518, 194.21699734632773, 1], 1, 154.87462718637266, 167.51203795643926, 10, false, "Polyline", 2, 1, 0, false, 1, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 118.63191209598415, 118.63191209598415, 0, 1], 0, 2, 2, [108.09377347199688, 48.88012586045511], -0.6501592260197776, [-36.242715090388515, -112.9601530205507], -0.14475251191859181, true, 0, 3, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -3277.1303670903253, 405.2352360700726, 1], 1, 120.96920412857833, 111.85590509963981, 10, false, "Polyline", 2, 1, 0, false, 1, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 40.700595478528435, 71.15530962111143, 0, 1], 0, 2, 2, [-49.8138945074669, 50.80997934732096], -0.9109068504784374, [58.36556874536063, -40.70059547852842], -0.09345012042788828, true, 0, 3, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -3261.975298069846, -84.86332217697174, 1], 1, 114.31603289268145, 112.18898816752466, 10, false, "Polyline", 2, 1, 0, false, 1, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 43.14301434924039, 45.27005907439718, 0, 1], 0, 2, 2, [-53.9075765860091, -43.14301434924033], -0.9134441585739421, [45.27005907439718, 52.13413710723313], -0.09065675641591214, true, 0, 3, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -2776.0105169704366, -71.11952496188371, 1], 1, 205.02924225176048, 88.22935454610763, 10, false, "Polyline", 2, 1, 0, false, 2, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 110.05137985883755, 106.7018657003265, 0, 1], 0, 2, 2, [106.7018657003265, -26.944722394258406], -0.694630372644427, [-98.32737655143399, -49.427049571531825], -0.13740047935395364, true, 0, 3, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -3023.801082338442, 541.911086339997, 1], 1, 281.6616393442623, 35.91803278688525, 10, false, "Polyline", 2, 1, 0, false, 2, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, -234.8353580020655, -1465.8082380451083, 0, 1], 0, 2, 8, [-1742.842992143469, 270.75339078895075], 0, [-1465.8082380451083, 270.75339078895075], 0, [-1465.8082380451083, 264.75339078895075], 0, [-1734.1675823074033, 264.75339078895075], 0, [-1734.1675823074033, 241.83535800206553], 0, [-1465.8082380451083, 241.83535800206553], 0, [-1465.8082380451083, 234.83535800206553], 0, [-1747.4698773893706, 234.83535800206553], 0, true, 0, 3, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -2944.964849678113, 234.8353580020655, 1], 1, 165.37622624707575, 101.8932583126109, 10, false, "Polyline", 2, 1, 0, false, 3, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 102.65065833443202, 62.728362159705455, 0, 1], 0, 2, 2, [62.728362159705455, -81.25460132972853], -0.6202999489718836, [-102.6478640873703, -0.7574000218211268], -0.12204522179623141, true, 0, 3, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -2841.057208829883, 519.8385488479968, 1], 1, 76.74566571329112, 103.92576743620577, 10, false, "Polyline", 2, 1, 0, false, 3, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 73.68314754098367, 3.0625181723074775, 0, 1], 0, 2, 2, [3.062518172307499, -73.61947577910792], -0.5578203020437067, [-67.19070005156576, 30.242619895222106], -0.08254084283422802, true, 0, 3, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -2738.620128227117, 407.1076989856391, 1], 1, 31.74043278688532, 31.74043278688532, 10, false, "Circle", 2, 1, 0, false, 3, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 15.87021639344266, 15.87021639344266, 0, 1], 0, 1, 15.87021639344266, 0, 3, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -3024.399215579753, 145.70256324792763, 1], 1, 11.221937630700836, 11.221937630700836, 10, false, "Circle", 2, 1, 0, false, 3, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 5.610968815350418, 5.610968815350418, 0, 1], 0, 1, 5.610968815350429, 0, 3, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -3156.8591293873533, 159.1358541046954, 1], 1, 53.86530062736415, 53.86530062736415, 10, false, "Circle", 2, 1, 0, false, 4, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 26.932650313682075, 26.932650313682075, 0, 1], 0, 1, 26.9326503136821, 0, 3, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -3189.496183626726, 375.86741850807596, 1], 1, 51.620913101228325, 51.620913101228325, 10, false, "Circle", 2, 1, 0, false, 6, 0, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 25.810456550614163, 25.810456550614163, 0, 1], 0, 1, 25.810456550614163, 0, 3, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -919.5114893425489, -2939.8689583734013, 373.81556899246834, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0];
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0]);
data =
[1, "Board", 2, 1, 0, false, 7, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1369.5548078237812, 1023.4201319657191, -0.00000703445402905345, 1], 0, 1, 1200, 600, 18, true, "Polyline", 2, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 2, 1, 934.7697487058824, 357.1657547294119, 3, false, "Polyline", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1228.3008950063647, -128.1994955294116, 0, 1], 0, 2, 4, [1231.0912524651885, 1062.969244235294], 0, [1585.4666497357766, 1062.969244235294], 0, [1585.4666497357766, 128.1994955294116], 0, [1228.3008950063647, 128.1994955294116], 0, true, 1, 1, 161.8407326117649, 69.75893647058797, 3, true, "Polyline", 2, 1, 0, false, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1404.0934149122481, -647.2059828705881, 0, 1], 0, 2, 4, [1404.0934149122481, 647.2059828705881], 0, [1473.852351382836, 647.2059828705881], 0, [1473.852351382836, 809.046715482353], 0, [1404.0934149122481, 809.046715482353], 0, true, 0, null, null, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1369.5548078237812, 1314.961415730426, 631.1224464243693, 1], 3, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1369.5548078237812, 1139.1688958245427, 112.11595908319282, 1], 1, 227.2385978851658, 227.23859788516586, 6, false, "Circle", 2, 1, 0, false, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 113.61929894258293, 113.61929894258293, 0, 1], 0, 1, 113.61929894258292, 0, 7, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1369.5548078237812, 1201.3421167878432, 355.6624148700218, 1], null, null, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], null, "", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"knifeRad\":\"0\",\"grooveAddLength\":\"0\",\"grooveAddWidth\":\"0\",\"grooveAddDepth\":\"0\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\"}", 0];
brs = LoadBoardsFromFileData(data);
testPathCount(brs[0]);
});
test("造型的外框和内框厚度小于刀半径厚度", () =>
{
let data =
[1, "Board", 3, 2, 101, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 26851.321807232103, -1144.6658743078003, 0, 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, 1, 2, 416.58619999999996, 325.1405, 5, true, "Polyline", 3, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1187.5114150409554, -619.5823942857144, 0, 1], 2, 4, [1187.5114150409554, 619.5823942857144], 0, [1512.6519150409554, 619.5823942857144], 0, [1512.6519150409554, 1036.1685942857143], 0, [1187.5114150409554, 1036.1685942857143], 0, true, 1, 2, 408.58619999999996, 317.1405, 5, true, "Polyline", 3, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1191.5114150409554, -623.5823942857144, 0, 1], 2, 4, [1508.6519150409554, 1032.1685942857143], 0, [1191.5114150409554, 1032.1685942857143], 0, [1191.5114150409554, 623.5823942857144], 0, [1508.6519150409554, 623.5823942857144], 0, true, 0, 3, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 26864.321807232103, -1017.7520587975966, 453.37831265306136, 1], 3, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 26864.321807232103, -1021.7520587975966, 449.37831265306136, 1], 3, 0, 0, 0, 2, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -537.1188495066017, 139.8723180005327, 0, 1], 1, "左侧板", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\",\"highDrill\":[]}", 0, 0];
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 0);
});
test("造型的外框和内框厚度等于刀直径", () =>
{
let data =
[1, "Board", 3, 2, 118, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 25702.129700607577, -1144.6658743078003, 0, 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, 1, 2, 416.58619999999996, 325.1405, 5, true, "Polyline", 3, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1187.5114150409554, -619.5823942857144, 0, 1], 2, 4, [1187.5114150409554, 619.5823942857144], 0, [1512.6519150409554, 619.5823942857144], 0, [1512.6519150409554, 1036.1685942857143], 0, [1187.5114150409554, 1036.1685942857143], 0, true, 1, 2, 404.58619999999996, 313.1405, 5, true, "Polyline", 3, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1193.5114150409554, -625.5823942857144, 0, 1], 2, 4, [1506.6519150409554, 1030.1685942857143], 0, [1193.5114150409554, 1030.1685942857143], 0, [1193.5114150409554, 625.5823942857144], 0, [1506.6519150409554, 625.5823942857144], 0, true, 0, 3, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 25715.129700607577, -1015.7520587975966, 455.37831265306136, 1], 3, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 25715.129700607577, -1021.7520587975966, 449.37831265306136, 1], 3, 0, 0, 0, 2, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1686.3109561311285, 139.8723180005327, 0, 1], 1, "左侧板", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\",\"highDrill\":[\"three\",\"three\",\"three\",\"three\",\"three\",\"three\"]}", 0, 0];
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 1);
});
test("#IYX1P", () =>
{
let data =
[1, "Board", 5, 2, 101, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 25627.96702118174, -1046.5797499058865, 0, 1], 0, 0, 2, 1200, 600, 18, true, "Polyline", 5, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 2, 416.58619999999996, 325.1405, 5, true, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1187.5114150409554, -619.5823942857144, 0, 1], 0, 0, 2, 4, [1187.5114150409554, 619.5823942857144], 0, [1512.6519150409554, 619.5823942857144], 0, [1512.6519150409554, 1036.1685942857143], 0, [1187.5114150409554, 1036.1685942857143], 0, true, 1, 2, 404.58619999999996, 313.1405, 5, false, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1193.5114150409554, -625.5823942857144, 0, 1], 0, 0, 2, 4, [1444.8769130439057, 968.3935922886646], 0, [1193.5114150409554, 1030.1685942857143], 0, [1193.5114150409554, 625.5823942857144], 0, [1506.6519150409554, 625.5823942857144], 0, true, 0, 3, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 25640.96702118174, -917.6659343956826, 455.37831265306136, 1], 3, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 25640.96702118174, -923.6659343956826, 449.37831265306136, 1], 3, 0, 0, 0, 3, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1686.3109561311285, 160.2072462301978, 0, 1], 1, "左侧板", "", "", "", "", "", 0, 0, "three", 2, 0, "1", "1", "1", "1", "", "", "", 6, "three", "three", "three", "three", "three", "three", true, true, 0, 0];
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 4);
});
test("极限刀半径#I11UDE", () =>
{
let data =
[1, "Board", 5, 2, 101, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -2274.8106081003034, 1049.489754699042, 0, 1], 0, 0, 2, 1500, 996.4248716877983, 18, true, "Polyline", 5, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 396.42487168779826, 0, 0, 1], 0, 0, 2, 4, [-396.42487168779826, 0], 0, [600, 0], 0, [600, 1500], 0, [-396.42487168779826, 1500], 0, true, 1, 2, 613.5945382529881, 504.5731587306118, 12, false, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -286.0137526959925, -382.0303425189268, 0, 1], 0, 0, 2, 12, [656.1445063338533, 607.3988458450913], 0, [763.0711684959024, 607.3988458450913], 0, [763.0711684959024, 995.6248807719148], 0, [476.8367190159561, 995.6248807719148], 0, [476.8367190159561, 794.9317610216076], 0, [286.0137526959925, 794.9317610216076], 0, [286.0137526959925, 382.0303425189268], 0, [656.1445063338533, 382.0303425189268], 0, [656.1445063338533, 519.394335722528], 0, [790.5869114266043, 519.394335722528], 0, [790.5869114266043, 525.394335722528], 0, [656.1445063338533, 525.394335722528], 0, true, 1, 2, 601.5945382529881, 465.0574157999099, 12, false, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -292.0137526959925, -388.0303425189268, 0, 1], 0, 0, 2, 12, [650.1445063338533, 525.394335722528], 0, [650.1445063338533, 613.3988458450913], 0, [757.0711684959024, 613.3988458450913], 0, [757.0711684959024, 989.6248807719148], 0, [482.8367190159561, 989.6248807719148], 0, [482.8367190159561, 788.9317610216076], 0, [292.0137526959925, 788.9317610216076], 0, [292.0137526959925, 388.0303425189268], 0, [650.1445063338533, 388.0303425189268], 0, [650.1445063338533, 519.394335722528], 0, [507.05781142660453, 519.394335722528], 0, [507.05781142660453, 525.394335722528], 0, true, 0, 3, 0, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -2662.84095061923, 1341.5035073950344, 6, 1], 3, 0, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -2656.84095061923, 1335.5035073950344, 6, 1], 3, 0, 0, 0, 5, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2274.8106081003034, 1049.489754699042, 0, 1], 0, "底板", "主卧", "下柜", "", "", "", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0];
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 2);
});
test("复杂造型01", () =>
{
let data =
[1, "Board", 5, 2, 1702, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1335.7682619647353, 173.551637279597, 0, 1], 0, 0, 2, 1200, 600, 18, true, "Polyline", 5, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 2, 1036.2015113350126, 440.4613267262604, 10, false, "Polyline", 5, 2, 0, false, 0, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 361.54936893772503, 969.0075566750625, 0, 1], 0, 0, 2, 33, [0, 67.19395465995012], 0, [-310.0352644836272, 67.19395465995012], -0.5981144268442652, [-286.17264943072985, -164.2679339848869], 0.7207592200561973, [-277.08949795465924, -385.7570892090673], 0, [-237.96207621158624, -301.21391008564115], 0, [-211.41132574307244, -520.6069534307294], 0, [-274.2946821158684, -469.60156437279466], 0, [-351.85082164231676, -629.6047711435754], 0, [-232.3724445340044, -591.1760533602005], 0, [-183.46316735516308, -735.1090690579331], 0, [-155.51500896725372, -663.1425612090666], 0, [-171.58520004030163, -863.6705976423159], 0, [-257.52578708312274, -751.8779640906787], 0, [-257.52578708312274, -890.2213481108301], 0, [-310.0352644836272, -905.4214599899233], 0, [-310.0352644836272, -969.0075566750625], 0, [0, -969.0075566750625], 0, [0, -957.9240668043744], -0.9999999999999999, [0, -864.5645981830307], 0, [0, -843.3902891140606], -0.9999999999999999, [0, -700.891826754957], 0, [0, -684.906801007558], 0.9999999999999999, [0, -583.5264483627197], 0, [0, -579.9195144635983], 0.9999999999999999, [0, -422.09559888652757], 0, [0, -409.0723084849551], -0.9999999999999999, [0, -312.3785731271355], 0, [0, -301.4871765134408], 0.9999999999999999, [0, -243.13750862509778], 0, [0, -223.97984886649738], -1.2314232880459324, [0, -77.80352644836466], 0, [0, -58.23046517367129], 0.9999999999999999, [0, 58.230465173671746], 0, true, 5, 2, 20.05062061227784, 15.41391459568868, 10, false, "Polyline", 5, 2, 0, false, 0, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 207.52578708312274, 919.0075566750625, 0, 1], 0, 0, 2, 3, [-207.52578708312274, -898.9569360627846], 0, [-207.52578708312274, -919.0075566750625], 0, [-192.11187248743406, -919.0075566750625], 0, true, 0, 3, 3, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1203.380352644835, 439.26514490680165, 8, 1], 2, 114.03848323053074, 43.29850598181545, 10, false, "Polyline", 5, 2, 0, false, 0, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 125.8595682183174, 146.86649874055365, 0, 1], 0, 0, 2, 4, [-125.85956821831739, -146.86649874055365], 0, [-96.36754317036441, -146.86649874055365], -0.15820638151829505, [-82.56106223650193, -88.79778749503191], -0.13776363653390294, [-116.72059569461629, -32.828015510022965], 0, true, 0, 3, 3, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1203.380352644835, 520.931363771607, 8, 1], 2, 118.14017720514198, 67.669551962062, 10, false, "Polyline", 5, 2, 0, false, 0, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 311.54936893772503, 313.09561944640836, 0, 1], 0, 0, 2, 3, [-264.0938145218924, -209.53632699236087], 0.5176782102931564, [-298.55626262432344, -313.0956194464084], 0, [-243.879816975663, -194.95544224126644], -0.03426656432289884, true, 0, 3, 3, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 597.468415416181, 335.24156305219935, 8, 1], 2, 311.0762540509527, 138.91482988296556, 10, false, "Polyline", 5, 2, 0, false, 0, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 110.00287209443024, 360.4181251057296, 0, 1], 0, 0, 2, 10, [-110.00287209443022, -360.4181251057296], -0.19710641679675492, [-42.513452087941566, -297.8639440751849], -0.25973952118910953, [-1.4337638048816683e-14, -274.1813602015127], 0.9999999999999999, [-2.0291827599733876e-14, -272.80100755667445], -0.41421356237309503, [-50.00000000000001, -222.80100755667445], 0, [-50.00000000000001, -219.19407365755296], -0.4142135623730949, [-2.6627322557224985e-14, -169.19407365755296], 0.9999999999999999, [-8.147194749383032e-15, -111.37015808048227], -0.25068130041493886, [-41.59378759840299, -89.11825410919994], -0.1533204796260371, [-85.07341619487701, -49.3418710547769], 0, true, 0, 3, 3, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1005.5163618815475, 536.7880598954941, 8, 1], 2, 552.028541756849, 213.97641288072498, 10, false, "Polyline", 5, 2, 0, false, 0, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 205.74594770705346, 534.8345870968991, 0, 1], 0, 0, 2, 9, [-28.565797815870887, 17.193954659949895], 0, [-193.0890787464058, 17.193954659949938], -0.24599915427853017, [-205.74594770705346, -151.24849135105575], 0, [-159.32470045118714, -534.8345870968991], 0, [-97.2910102382385, -375.09783479855645], -0.3264242677950859, [-43.25358703282456, -272.40084858481384], -0.805868213007247, [-40.3917540832408, -28.76003589144016], -0.23954788447860403, [-1.5119119245645884e-15, -8.230465173671519], 0.9999999999999999, [5.039706415215297e-16, 8.230465173671519], -0.15320924855818352, true, 0, 3, 3, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 819.2073830666715, 441.0449842828709, 8, 1], 3, 0, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1253.380352644835, 285.24156305219935, 8, 1], 3, 3, 0, 0, 5, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1335.7682619647353, 173.551637279597, 0, 1], 0, "层板", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0];
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 16);
});
test("超级复杂造型01", () =>
{
let data =
[1, "Board", 5, 2, 101, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 6906.166740982095, 2795.563292573672, 0, 1], 0, 0, 2, 1200, 1415.234920292799, 18, true, "Polyline", 5, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 2, 4, [0, 0], 0, [1415.234920292799, 0], 0, [1415.234920292799, 1200], 0, [0, 1200], 0, true, 1, 2, 1009.455190928344, 1152.5635868634386, 10, false, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -110.83262952939205, -162.2690102463998, 0, 1], 0, 0, 2, 114, [546.2122521131307, 463.635306848726], 0, [510.8885899443456, 402.4529292629924], 0, [394.8984909384251, 418.3551847777409], 0, [368.1657483508966, 388.13566332941673], 0, [337.2889958595888, 453.9374157055246], 0, [325.1593353846032, 361.8952118373195], 0, [410.02735788536114, 325.2772945269972], 0, [405.12171859588466, 343.585389598916], 0, [495.81323310527205, 376.3416452754878], 0, [445.8641031858455, 289.8272144611814], 0.8761891191134519, [386.8750623164795, 230.5090013972897], 1.2783184936630585, [461.58984505327504, 196.94778827662498], 1.9747112201322605, [477.4188180206925, 263.1047438862613], 0, [521.9427821342738, 340.2225118853565], 0.3709115830376364, [584.826271877211, 306.37895589000436], -1.5491311197323596, [580.3918588974802, 262.5116966947623], 1.4651381769765968, [637.668019748239, 301.4058663297494], 0.4977401596170422, [557.7450033961791, 402.2337781347992], 0, [581.4494574241467, 443.29109687691977], 0.22428912328962228, [792.7793884980764, 443.2910968769231], 0, [828.1030506668618, 382.1087192911876], 0, [756.3362439106579, 289.60947472196443], 0, [769.1407458813505, 251.3484798041734], 0, [696.7163804644547, 257.50930394838946], 0, [770.362436997133, 200.98360790367093], 0, [844.5084948719306, 256.17251270311425], 0, [826.2003998000088, 261.07815199258437], 0, [843.1784075059345, 355.99743530368556], 0, [893.1275374253611, 269.4830044893804], 0.8761891191134511, [915.0040964111065, 188.73789001968402], 1.2783184936630585, [981.4263509238239, 236.66218334765085], 1.9747112201322605, [932.0472332125469, 283.44895385807007], 0, [887.5232690989659, 360.56672185716536], 0.3709115830376364, [948.2743932168107, 398.1036434554911], -1.5491311197323587, [984.0473475844226, 372.32969956655154], 1.4651381769765963, [979.002089046801, 441.37939471204544], 0.4977401596170419, [851.7210478370612, 422.57798810660734], 0, [828.0165938090931, 463.63530684872876], 0.22428912328962483, [933.6815593460577, 646.6523957387673], 0, [1004.3288836836272, 646.6523957387673], 0, [1048.5521759333442, 538.2508956547937], 0, [1088.089420491564, 530.2094221853259], 0, [1046.5418075659773, 470.568493953435], 0, [1132.3175245736406, 506.08500177691997], 0, [1121.5955599476806, 597.8918238866873], 0, [1108.1931041652351, 584.4893681042378], 0, [1034.4795973617747, 646.6523957387673], 0, [1134.3778572006267, 646.6523957387673], 0.8761891191134517, [1215.2434570557384, 625.2254943329636], 1.2783184936630587, [1206.95092883166, 706.7110007815955], 1.9747112201322616, [1141.7428381529649, 687.3408156823781], 0, [1052.694909925804, 687.3408156823781], 0.37091158303763616, [1050.5625443007111, 758.7212932760559], -1.5491311197323598, [1090.7699116480535, 776.8146085823593], 1.4651381769765968, [1028.448492259673, 806.970134092866], 0.4977401596170421, [981.0904674019938, 687.3408156823781], 0, [933.6815593460577, 687.3408156823781], 0.22428912328962594, [828.0165938090908, 870.3579045724159], 0, [863.3402559778768, 931.5402821581505], 0, [979.3303549837976, 915.6380266434035], 0, [1006.0630975713249, 945.8575480917245], 0, [1036.939850062633, 880.0557957156182], 0, [1049.069510537618, 972.0979995838221], 0, [964.201488036861, 1008.7159168941471], 0, [969.1071273263376, 990.4078218222276], 0, [878.4156128169501, 957.6515661456574], 0, [928.3647427363758, 1044.1659969599623], 0.8761891191134513, [987.3537836057427, 1103.4842100238538], 1.2783184936630587, [912.6390008689478, 1137.0454231445192], 1.9747112201322605, [896.8100279015285, 1070.8884675348804], 0, [852.2860637879479, 993.7706995357853], 0.37091158303763616, [789.4025740450113, 1027.6142555311392], -1.5491311197323592, [793.8369870247419, 1071.4815147263803], 1.4651381769765968, [736.5608261739834, 1032.5873450913934], 0.4977401596170421, [816.4838425260439, 931.7594332863455], 0, [792.7793884980748, 890.7021145442221], 0.22428912328962286, [581.4494574241461, 890.7021145442203], 0, [546.1257952553613, 951.884492129954], 0, [617.8926020115647, 1044.383736699179], 0, [605.0881000408726, 1082.6447316169695], 0, [677.5124654577681, 1076.4839074727543], 0, [603.8664089250899, 1133.0096035174727], 0, [529.720351050293, 1077.8206987180288], 0, [548.028446122214, 1072.9150594285593], 0, [531.0504384162878, 977.9957761174608], 0, [481.1013084968621, 1064.5102069317625], 0.8761891191134513, [459.22474951111593, 1145.2553214014604], 1.2783184936630592, [392.80249499840016, 1097.3310280734913], 1.9747112201322605, [442.18161270967636, 1050.5442575630718], 0, [486.70557682325637, 973.4264895639778], 0.3709115830376359, [425.95445270541205, 935.8895679656524], -1.5491311197323592, [390.1814983378, 961.6635118545919], 1.4651381769765972, [395.2267568754221, 892.6138167090973], 0.49774015961704204, [522.5077980851614, 911.4152233145361], 0, [546.2122521131307, 870.3579045724123], 0.22428912328962355, [440.5472865761649, 687.3408156823771], 0, [369.89996223859544, 687.3408156823771], 0, [325.6766699888783, 795.7423157663507], 0, [286.13942543065855, 803.7837892358184], 0, [327.68703835624547, 863.4247174677093], 0, [241.91132134858208, 827.9082096442244], 0, [252.6332859745421, 736.101387534457], 0, [266.03574175698736, 749.5038433169066], 0, [339.749248560448, 687.3408156823771], 0, [239.85098872159597, 687.3408156823771], 0.8761891191134517, [158.98538886648407, 708.7677170881807], 1.2783184936630587, [167.27791709056282, 627.2822106395488], 1.9747112201322616, [232.48600776925764, 646.6523957387662], 0, [321.5339359964188, 646.6523957387662], 0.37091158303763616, [323.66630162151125, 575.2719181450884], -1.5491311197323603, [283.4589342741692, 557.1786028387851], 1.4651381769765968, [345.7803536625497, 527.0230773282783], 0.4977401596170421, [393.1383785202288, 646.6523957387662], 0, [440.547286576165, 646.6523957387662], 0.224289123289626, true, 7, 2, 163.4481707425291, 106.87718750820261, 10, false, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -729.893240338891, -213.51854180465347, 0, 1], 0, 0, 2, 7, [767.5177608512217, 287.7079079401577], 0, [783.4520036364486, 240.09496808354942], 0, [729.893240338891, 244.65097793132043], 0, [770.4549903290309, 213.51854180465347], 0, [821.9664175414479, 251.8598823154323], 0, [814.7392201275863, 253.79640402601535], 0, [836.7704278470936, 376.96671254718257], 0, true, 0, 3, 3, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 6692.648199177442, 3525.4565329125626, 8, 1], 2, 76.13325827250429, 174.7079868241599, 10, false, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -336.0611832435618, -342.6429909554271, 0, 1], 0, 0, 2, 7, [398.8424442686699, 407.7209236634632], 0, [365.57555019659924, 370.11499469308256], 0, [342.7417888158825, 418.7762492279314], 0, [336.0611832435618, 368.08252525118235], 0, [395.0214717472545, 342.6429909554271], 0, [393.084950036669, 349.87018836928695], 0, [510.7691700677217, 392.37575706872775], 0, true, 0, 3, 3, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 6563.523750026668, 3131.6244758172334, 8, 1], 2, 163.44817074253433, 106.87718750820511, 10, false, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -537.4584180751272, -957.0264988739559, 0, 1], 0, 0, 2, 7, [606.7110850710009, 1046.2853034809857], 0, [590.7768422857748, 1093.8982433375932], 0, [644.3356055833323, 1089.3422334898228], 0, [603.7738555931919, 1120.4746696164902], 0, [552.2624283807759, 1082.133329105711], 0, [559.4896257946365, 1080.1968073951284], 0, [537.4584180751272, 957.0264988739559], 0, true, 0, 3, 3, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 5949.140242108138, 3333.021710648799, 8, 1], 2, 158.7162267750724, 108.39254930609923, 10, false, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1013.1156807404807, -492.8713344139586, 0, 1], 0, 0, 2, 7, [1055.7897395436635, 546.9835899872647], 0, [1104.9908764009592, 536.9765791010359], 0, [1074.265874484119, 492.8713344139586], 0, [1121.50823004658, 512.4326222640398], 0, [1114.0593687553044, 576.2134970705756], 0, [1108.768693052028, 570.9228213672977], 0, [1013.1156807404807, 651.587561189031], 0, true, 0, 3, 3, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 6413.295406568136, 3808.6789733141522, 8, 1], 2, 158.71622677507253, 108.39254930609934, 10, false, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -252.7206158756427, -682.4056502321132, 0, 1], 0, 0, 2, 7, [318.43910637855913, 787.0096214338796], 0, [269.2379695212633, 797.0166323201084], 0, [299.96297143810364, 841.1218770071857], 0, [252.7206158756427, 821.5605891571046], 0, [260.1694771669182, 757.7797143505688], 0, [265.46015287019435, 763.0703900538466], 0, [361.11316518174203, 682.4056502321132], 0, true, 0, 3, 3, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 6223.761090749982, 3048.2839084493144, 8, 1], 2, 76.13325827250571, 174.7079868241641, 10, false, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -863.4596758544952, -915.2169621932109, 0, 1], 0, 0, 2, 7, [975.386401653553, 926.272287757681], 0, [1008.6532957256223, 963.8782167280583], 0, [1031.487057106339, 915.2169621932109], 0, [1038.1676626786593, 965.9106861699595], 0, [979.2073741749676, 991.3502204657166], 0, [981.1438958855531, 984.1230230518564], 0, [863.4596758544952, 941.617454352416], 0, true, 0, 3, 3, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 5990.949778788884, 3659.022968428167, 8, 1], 2, 989.4551909283438, 1132.5635868634383, 10, false, "Polyline", 5, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -120.83262952939208, -172.26901024639977, 0, 1], 0, 0, 2, 78, [559.5663016834698, 466.76519919134637], 0, [447.74633707250223, 273.0873391845985], 1.2107755706482595, [401.06143830221106, 230.4458338517582], 1.476313731901473, [451.7497409126958, 198.72889762266607], -0.6338881701575324, [469.2210705418825, 203.41032628750173], 1.9747112201322594, [481.29856766807256, 253.88804476598756], -0.7187618369097628, [468.75856398284816, 268.10474388626136], 0, [531.9573840717943, 377.56831125871935], 0.6076270264192377, [582.2246887096073, 316.04815802383195], -1.056072725727382, [599.2028752747767, 249.91226972303474], 1.1990341256616792, [625.5901316489375, 296.4089461125296], 0.6262509181102476, [538.5891200323244, 389.05481488473947], 0, [577.4829989187975, 456.42098921954147], 0.2447235823095675, [796.745847003427, 456.4209892195423], 0, [908.5658116143933, 262.7431292127976], 1.2107755706482524, [922.1519891030973, 200.9920682381993], 1.4763137319014716, [974.9638129129447, 229.03095785904537], -0.6338881701575259, [979.6452415777857, 246.50228748823065], 1.9747112201322574, [941.9690036134315, 282.2005660528881], -0.7187618369097625, [923.3869791747024, 278.44895385807007], 0, [860.188159085755, 387.91252123053107], 0.6076270264192505, [938.5998269507871, 400.68520740920064], -1.0560727257274047, [1004.3642796037138, 382.320804134432], 1.199034125661666, [977.2906048459467, 428.4211766853746], 0.6262509181102482, [853.5564231252271, 399.3990248565476], 0, [814.6625442387541, 466.7651991913492], 0.24472358230957014, [924.2939682810685, 656.6523957387673], 0, [1147.933897503002, 656.6523957387673], 1.2107755706482537, [1208.2049737619973, 637.5428400970104], 1.4763137319014754, [1210.3284949613599, 697.298665946949], -0.6338881228918971, [1197.5385939970142, 710.0885669112987], 1.9747112201322616, [1147.7848589064697, 695.3091269974698], -0.7187618369097591, [1141.7428381529649, 677.3408156823781], 0, [1015.3451979750739, 677.3408156823781], 0.6076270264192353, [1043.4895612022924, 751.6336550959388], -1.0560727257273963, [1092.2758272900478, 799.4051401219672], 1.1990341256616788, [1038.81489615812, 799.0088362834151], 0.6262509181102486, [1002.0817260540146, 677.3408156823781], 0, [924.2939682810685, 677.3408156823781], 0.24472358230957122, [814.6625442387516, 867.2280122297954], 0, [926.4825088497191, 1060.9058722365453], 1.2107755706482608, [973.1674076200112, 1103.5473775693856], 1.476313731901471, [922.4791050095271, 1135.2643137984778], -0.633888170157537, [905.0077753803403, 1130.5828851336425], 1.9747112201322616, [892.9302782541487, 1080.105166655154], -0.7187618369097533, [905.470281939373, 1065.8884675348804], 0, [842.271461850423, 956.4249001624141], 0.6076270264193032, [792.0041572126152, 1017.9450533973115], -1.0560727257273785, [775.0259706474455, 1084.0809416981076], 1.199034125661683, [748.638714273285, 1037.5842653086133], 0.6262509181102495, [835.6397258898987, 944.9383965364054], 0, [796.7458470034247, 877.5722222016016], 0.24472358230956814, [577.4829989187964, 877.5722222015997], 0, [465.6630343078299, 1071.2500822083452], 1.2107755706482382, [452.07685681912545, 1133.0011431829453], 1.476313731901468, [399.26503300927914, 1104.962253562097], -0.6338881701575424, [394.5836043444382, 1087.4909239329115], 1.9747112201322594, [432.25984230879163, 1051.792645368254], -0.7187618369097573, [450.8418667475207, 1055.5442575630718], 0, [514.0406868364669, 946.0806901906126], 0.6076270264192496, [435.6290189714356, 933.3080040119426], -1.0560727257274019, [369.86456631850876, 951.6724072867113], 1.199034125661676, [396.9382410762763, 905.572034735768], 0.6262509181102498, [520.6724227969955, 934.594186564596], 0, [559.5663016834699, 867.2280122297917], 0.2447235823095691, [449.9348776411539, 677.3408156823771], 0, [226.2949484192206, 677.3408156823771], 1.2107755706482526, [166.02387216022493, 696.4503713241339], 1.4763137319014734, [163.90035096086265, 636.6945454741954], -0.6338881701575362, [176.6902519252084, 623.9046445098458], 1.9747112201322616, [226.44398701575287, 638.6840844236746], -0.7187618369097579, [232.48600776925764, 656.6523957387662], 0, [358.88364794715017, 656.6523957387662], 0.6076270264192456, [330.73928471993025, 582.3595563252055], -1.056072725727393, [281.9530186321748, 534.5880712991773], 1.1990341256616774, [335.41394976410254, 534.9843751377292], 0.6262509181102486, [372.14711986820805, 656.6523957387662], 0, [449.93487764115434, 656.6523957387662], 0.24472358230957142, true, 0, 3, 3, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 6733.897730735695, 2916.3959221030636, 8, 1], 3, 0, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 6743.897730735695, 2906.3959221030636, 8, 1], 3, 3, 0, 0, 5, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6906.166740982095, 2795.563292573672, 0, 1], 0, "层板", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0];
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0]);
});
test("#I1MUQD", () =>
{
let data =
{ "file": [1, "Board", 8, 2, 100, false, 1, 7, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -467.31234866828163, 18, -238.49878934602498, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -467.31234866828163, 18, -238.49878934602498, 1], 0, 3, 2430, 831, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 836, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -5680.316507397597, -177.89800995069288, 0, 1], 0, 2, 4, [-5, 0], 0, [-5, 2430], 0, [-836, 2430], 0, [-836, 0], 0, true, 1, 3, 2210, 631, 5, true, "Polyline", 8, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5780.316507397597, -297.8980099506929, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5780.316507397597, -297.8980099506929, 0, 1], 0, 2, 4, [5780.316507397597, 297.8980099506929], 0, [6411.316507397597, 297.8980099506929], 0, [6411.316507397597, 2507.898009950693], 0, [5780.316507397597, 2507.898009950693], 0, true, 3, 3, 2204, 625.0000000000009, 5, false, "Polyline", 8, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5783.316507397596, -300.8980099506929, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5783.316507397596, -300.8980099506929, 0, 1], 0, 2, 12, [5783.316507397596, 2204.5970149255954], 0, [5926.316507397597, 2204.5970149255954], 0, [5926.316507397597, 606.5970149255957], 0, [5783.316507397597, 606.5970149255954], 0, [5783.316507397597, 300.8980099506929], 0, [6408.316507397597, 300.898009950693], 0, [6408.316507397597, 606.5970149255954], 0, [6265.316507397597, 606.5970149255953], 0, [6265.316507397597, 2204.5970149255954], 0, [6408.316507397597, 2204.5970149255954], 0, [6408.316507397597, 2504.898009950693], 0, [5783.316507397597, 2504.898009950693], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -364.31234866828163, 5, -115.49878934602498, 1], 3, 1592, 140.0000000000009, 5, true, "Polyline", 8, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5783.316507397596, -609.5970149255954, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5783.316507397596, -609.5970149255954, 0, 1], 0, 2, 4, [5783.316507397596, 2201.5970149255954], 0, [5783.316507397597, 609.5970149255954], 0, [5923.316507397597, 609.5970149255957], 0, [5923.316507397597, 2201.5970149255954], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -364.31234866828163, 5, 193.20021562887757, 1], 3, 1592, 140, 5, true, "Polyline", 8, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6273.316507397597, -609.5970149255954, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -6273.316507397597, -609.5970149255954, 0, 1], 0, 2, 4, [6413.316507397597, 609.5970149255954], 0, [6413.316507397597, 2201.5970149255954], 0, [6273.316507397597, 2201.5970149255954], 0, [6273.316507397597, 609.5970149255954], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 120.68765133171837, 5, 193.20021562887757, 1], 1.5, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -367.31234866828163, 5, -118.49878934602498, 1], 3, 0, 0, 0, 0, 0, 9, 2, "背板", "", "", "18厘SL天使白", "多层", "天使白", 0, 0, "三合一", 0, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true], "basePt": { "x": -467.31234866828163, "y": 0, "z": -238.49878934602498 }, "ucs": [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 3);
});
test("日字加工", () =>
{
let data =
{ "file": [1, "Board", 8, 2, 686, false, 1, 11, 0, [-0.999997439714021, -0.0022628666339358583, 0, 0, 0, 0, 1, 0, -0.0022628666339358583, 0.999997439714021, 0, 0, 431.23731244072155, 1126.9116927510254, 0, 1], 0, 0, true, [-0.0022628666339358583, 0.999997439714021, 0, 0, -0.999997439714021, -0.0022628666339358583, 0, 0, 0, 0, 1, 0, 442.24629054531874, 1126.9366046640337, 0, 1], 0, 3, 432.00000000000006, 206.21628154156102, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -11.009006290800926, 432, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -11.009006290800926, 2.2737367544323206e-13, 0, 1], 0, 2, 4, [217.22528783236191, -432], 0, [217.22528783236191, 5.684341886080802e-14], 0, [11.009006290800892, 0], 0, [11.009006290800892, -432], 0, true, 1, 3, 21.459983999999963, 40.381175249996886, 1.8, false, "Polyline", 8, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -245.01875510359605, 301.84343598133, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -245.0187551035961, 301.84343598133, 32.40000000000006, 1], 0, 2, 44, [285.0646181035918, -284.11978848133003], 0, [282.83718672859686, -282.58693248133], 0, [280.60975535359466, -281.05407648133007], 0, [279.6756712285933, -282.27557110633006], 0, [278.7415871035919, -283.49706573132994], 0, [263.96389722859385, -283.49706573132994], 0, [249.18620735359218, -283.49706573132994], 0, [247.10248122859048, -281.94025885633005], 0, [245.01875510359605, -280.38345198133004], 0, [245.16246035358927, -283.59286923133004], 0, [245.2103621035858, -287.08969698132995], 0, [245.2103621035858, -291.28110010633], 0, [245.2103621035858, -295.47250323132994], 0, [245.138509478591, -298.13105035633], 0, [245.06665685359258, -300.78959748133], 0, [245.17443579109022, -301.57997635633], 0, [245.49777260359042, -301.84343598133], 0, [246.10851991609525, -301.69973073133], 0, [247.07853035359585, -301.26861498133], 0, [247.97668816609075, -300.53811329383], 0, [248.27607410358905, -299.59205373133005], 0, [248.27607410358905, -299.30464323133003], 0, [248.27607410358905, -299.01723273133], 0, [263.96389722859385, -299.01723273133], 0, [279.65172035359865, -299.01723273133], 0, [279.65172035359865, -299.73575898133004], 0, [279.65172035359865, -300.45428523133], 0, [279.7714747285936, -301.49614829383], 0, [280.1307378535894, -301.84343598133], 0, [280.7893869160944, -301.71170616883006], 0, [281.80729910359514, -301.31651673133], 0, [282.74138322859653, -300.63391679383005], 0, [283.05274460359215, -299.73575898133004], 0, [282.9808919785937, -298.4663626063301], 0, [282.90903935359165, -297.19696623133], 0, [282.801260416094, -295.66411023133], 0, [282.7653341035875, -294.13125423133], 0, [282.7653341035875, -290.27516335633004], 0, [282.7653341035875, -286.41907248133003], 0, [283.86707435359494, -285.70054623133], 0, [284.9688146035951, -284.98201998133004], 0, [285.29215141609166, -284.73053579383003], 0, [285.39993035359294, -284.55090423133004], 0, [285.31610229109356, -284.34732179383], 0, true, 2, 3, 5.84401349999996, 31.375646250009595, 1.8, true, "Polyline", 8, 2, 0, false, 1, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -248.27607410358905, 290.5386229813299, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -248.2760741035891, 290.5386229813299, 32.40000000000007, 1], 0, 2, 4, [279.65172035359865, -290.5386229813299], 0, [279.65172035359865, -284.69460948132996], 0, [248.27607410358905, -284.69460948132996], 0, [248.27607410358905, -290.5386229813299], 0, true, 0, 3, 0, 0, 0, 0, 0, [-0.999997439714021, -0.0022628666339358583, 0, 0, 0, 0, 1, 0, -0.0022628666339358583, 0.999997439714021, 0, 0, 346.4066151822023, 1142.9197731819293, 191.98120133753412, 1], 3, 6.083522250000101, 31.375646250009595, 1.8, true, "Polyline", 8, 2, 0, false, 1, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -248.27607410358905, 297.81968898133005, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -248.2760741035891, 297.81968898133005, 32.40000000000007, 1], 0, 2, 4, [279.65172035359865, -297.81968898133005], 0, [279.65172035359865, -291.73616673132994], 0, [248.27607410358905, -291.73616673132994], 0, [248.27607410358905, -297.81968898133005], 0, true, 0, 3, 0, 0, 0, 0, 0, [-0.999997439714021, -0.0022628666339358583, 0, 0, 0, 0, 1, 0, -0.0022628666339358583, 0.999997439714021, 0, 0, 346.4066151822023, 1142.9197731819293, 184.700135337534, 1], 1, 0, 0, 0, 0, 0, [-0.999997439714021, -0.0022628666339358583, 0, 0, 0, 0, 1, 0, -0.0022628666339358583, 0.999997439714021, 0, 0, 349.66392584252543, 1142.9271440604105, 180.67638833753404, 1], 3, 0, 0, 0, 0, 0, 9, 1, "右侧板", "主卧", "下柜", "", "", "", 0, 0, "拉米诺", 2, 0, "1", "1", "1", "1", "", "", "", 4, "拉米诺", "拉米诺", "拉米诺", "拉米诺", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true], "basePt": { "x": 224.98082727240399, "y": 1126.4450528081506, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 3);
});
test("孔轮廓比外轮廓大", () =>
{
let data =
{ "file": [1, "Board", 8, 2, 100, false, 1, 3, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -480.60225895268377, -185.23833994346205, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -480.60225895268377, -185.23833994346205, 0, 1], 0, 3, 800, 600, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 800], 0, [0, 800], 0, true, 1, 3, 680, 480, 5, false, "Polyline", 8, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -60, -60, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -60, -60, 13, 1], 0, 2, 8, [66, 60], 0, [534, 60], 0.41421356237309503, [540, 66], 0, [540, 734], 0.41421356237309503, [534, 740], 0, [66, 740], 0.41421356237309503, [60, 734], 0, [60, 66], 0.41421356237309503, true, 1, 3, 668, 468, 5, true, "Polyline", 8, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -66, -66, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -66, -66, 13, 1], 0, 2, 4, [66, 66], 0, [534, 66], 0, [534, 734], 0, [66, 734], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -414.60225895268377, -198.23833994346205, 66, 1], 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -420.60225895268377, -198.23833994346205, 60, 1], 3, 0, 0, 0, 0, 0, 9, 2, "背板", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true], "basePt": { "x": -480.60225895268377, "y": -203.23833994346205, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0]);
});
test("门字部分", () =>
{
let data =
{ "file": [1, "Board", 8, 2, 2223, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 8426.318707426251, 2299.282791618, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 8426.318707426251, 2299.282791618, 0, 1], 0, 3, 1200, 600, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 1, 3, 57.21600000000001, 31.968000000000757, 2, false, "Polyline", 8, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -209.6453198822055, 283.06701259445845, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -209.6453198822055, 283.06701259445845, 64.20000000000219, 1], 0, 2, 44, [241.0853198822042, -230.31501259445847], 0, [241.48131988220484, -229.99101259445843], 0, [241.61331988220627, -229.6910125944584], 0, [241.48131988220484, -229.36701259445846], 0, [241.0853198822042, -228.97101259445847], 0, [238.94931988220924, -227.41101259445844], 0, [236.81331988220336, -225.85101259445844], 0, [235.85331988220423, -227.24301259445846], 0, [234.89331988220147, -228.63501259445843], 0, [224.69331988220438, -228.63501259445843], 0, [214.49331988221093, -228.63501259445843], 0, [211.9613198822044, -228.57501259445843], 0, [209.6453198822055, -228.39501259445845], 0, [210.5813198822034, -229.6190125944584], 0, [211.51731988219763, -230.84301259445846], 0, [213.56931988220822, -230.3030125944585], 0, [215.9813198822012, -230.12301259445843], 0, [226.03731988220534, -230.12301259445843], 0, [236.09331988220583, -230.12301259445843], 0, [236.09331988220583, -252.68301259445846], 0, [236.09331988220583, -275.2430125944585], 0, [235.90131988219946, -276.5390125944584], 0, [235.3253198822058, -277.25901259445845], 0, [234.28131988219684, -277.54701259445847], 0, [232.6853198822064, -277.64301259445847], 0, [229.78131988220775, -277.37901259445846], 0, [224.81331988219972, -276.5870125944585], 0, [224.7893198822021, -277.09101259445845], 0, [224.7653198822045, -277.5950125944585], 0, [227.42931988220516, -278.41101259445844], 0, [229.9493198822056, -279.4190125944585], 0, [231.95331988220642, -280.7270125944585], 0, [232.97331988219958, -282.4430125944585], 0, [233.1653198822023, -282.91101259445844], 0, [233.45331988220642, -283.06701259445845], 0, [234.6653198822096, -282.76701259445844], 0, [236.3813198822063, -281.86701259445846], 0, [237.98931988220284, -280.5950125944585], 0, [238.8773198821982, -279.1790125944584], 0, [239.23731988220243, -277.3070125944585], 0, [239.3573198822014, -274.57101259445847], 0, [239.3573198822014, -253.01901259445842], 0, [239.3573198822014, -231.46701259445845], 0, [240.22131988220644, -230.89101259445843], 0, true, 0, 2, 0, 0, 0, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 7822.589893866929, 2546.062452634949, 16, 1], 3, 0, 0, 0, 0, 0, 9, 0, "层板", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true], "basePt": { "x": 7226.318707426251, "y": 2299.282791618, "z": 0 }, "ucs": [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 2);
});
test("通槽加长错误", () =>
{
let data =
{ "file": [1, "Board", 8, 2, 100, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 339.80952861870173, 249.3538870831253, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 339.80952861870173, 229.3538870831253, 0, 1], 0, 3, 918.0000000000002, 324.5928486066955, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [324.5928486066955, 0], 0, [324.5928486066955, 918.0000000000002], 0, [0, 918.0000000000002], 0, true, 1, 3, 6, 712.0896318545867, 8.99999999999909, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, true, [-0.20303412411504598, -0.9791716623988034, 0, 0, 0.9791716623988034, -0.20303412411504598, 0, 0, 0, 0, 1, 0, -150.85291425915239, 365.69871018220056, 0, 1], 0, 2, 5, [712.0896318545867, 5.999999999999886], 0, [0, 5.999999999999943], 0, [-5.684341886080802e-14, 2.921526605141594], 0, [14.089631854583672, -5.684341886080802e-14], 0, [710.8455142075273, 0], 0, true, 0, 3, 6, 0, 0, 0, 0, [-0.9791716623988034, -0.20303412411504598, 0, 0, 0.20303412411504598, -0.9791716623988034, 0, 0, 0, 0, 1, 0, 117.849312474018, 576.8074117525202, 0, 1], 3, 0, 0, 0, 0, 0, 9, 0, "层板", "5-主卧", "阳台柜", "", "E0级儿童板", "书香桐", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 8, "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true], "basePt": { "x": -578.1904713812985, "y": 249.3538870831253, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 1);
});
test("包含刀路丢失#I2CW2U", () =>
{
let data =
{ "file": [1, "Board", 8, 2, 111, false, 1, 3, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1977.7735031597751, -12.875786924939348, -18, 1], 0, 0, true, [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 1977.7735031597751, -12.875786924939348, -18, 1], 0, 3, 1200, 600, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1200, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -6740.896324111298, 43.47826086934333, 0, 1], 0, 2, 4, [600, -1200], 0, [600, 0], 0, [0, 0], 0, [0, -1200], 0, true, 1, 3, 1080.0000000000005, 480.0000000000018, 3, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 480.0000000000018, 974.0000000000001, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 12, [0, 0], 0, [-106, 0], 0, [-106, 105.99999999999989], 0, [-374, 106.00000000000034], 0, [-374, 1.1368683772161603e-13], 0, [-480.0000000000018, -1.1368683772161603e-13], 0, [-480.0000000000018, -868.0000000000001], 0, [-374.00000000000085, -868], 0, [-374.0000000000018, -974.0000000000001], 0, [-106.00000000000182, -973.9999999999999], 0, [-106.00000000000091, -867.9999999999999], 0, [-1.8189894035458565e-12, -868], 0, true, 5, 3, 100.00000000000045, 106.00000000000256, 3, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 2.2737367544323206e-13, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -262.00000000000017, -112.00000000000011, 0, 1], 0, 2, 4, [106.00000000000074, -2.2737367544323206e-13], 0, [106.00000000000256, 100], 0, [2.5579538487363607e-12, 100.00000000000023], 0, [0, 0], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2299.773503159773, 159.12421307506065, -3, 1], 3, 100.00000000000017, 106.00000000000072, 3, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 106.00000000000072, 100.00000000000009, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -112.00000000000098, -111.99999999999989, 0, 1], 0, 2, 4, [0, 0], 0, [-105.99999999999993, 8.526512829121202e-14], 0, [-106.00000000000072, -100.00000000000003], 0, [-1.7053025658242404e-12, -100.00000000000009], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2149.773503159774, 159.1242130750602, -3, 1], 3, 100.00000000000023, 106.00000000000017, 3, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 106.00000000000017, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -112.00000000000182, -868.0000000000003, 0, 1], 0, 2, 4, [0, 0], 0, [0, 100], 0, [-106.00000000000006, 100.00000000000023], 0, [-106.00000000000017, 0], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2149.773503159775, 915.1242130750607, -3, 1], 3, 1068.0000000000007, 468.0000000000018, 3, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 468.0000000000018, 962.0000000000002, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6, -5.999999999999773, 0, 1], 0, 2, 28, [-100, 0], 0, [-100, -106.00000000000023], 0, [-218, -106], 0, [-218, 6.000000000000227], 0, [-105.99999999999977, 5.999999999999886], 0, [-105.99999999999955, 106.00000000000045], 0, [-362, 106.00000000000023], 0, [-362.0000000000001, 6.000000000000227], 0, [-250, 6.000000000000455], 0, [-250, -105.99999999999977], 0, [-368, -105.99999999999977], 0, [-368.0000000000001, 5.684341886080801e-13], 0, [-468.0000000000018, 6.821210263296962e-13], 0, [-468.0000000000018, -856], 0, [-368.00000000000085, -856], 0, [-368, -749.9999999999998], 0, [-249.9999999999991, -749.9999999999997], 0, [-250.00000000000182, -861.9999999999997], 0, [-362.0000000000009, -861.9999999999998], 0, [-362.0000000000018, -962], 0, [-106.00000000000182, -962.0000000000002], 0, [-106.00000000000091, -861.9999999999999], 0, [-218.00000000000182, -861.9999999999999], 0, [-218, -749.9999999999995], 0, [-100, -749.9999999999995], 0, [-100.00000000000091, -855.9999999999998], 0, [0, -856.0000000000001], 0, [0, 0], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2043.7735031597733, 53.1242130750602, -3, 1], 3, 100.00000000000011, 106.00000000000023, 3, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 106.00000000000023, 100.00000000000011, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -262.0000000000018, -868.0000000000001, 0, 1], 0, 2, 4, [0, 0], 0, [-106.00000000000023, -2.2737367544323206e-13], 0, [-106, -100.00000000000011], 0, [-2.2737367544323206e-13, -99.99999999999989], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2299.773503159775, 915.1242130750607, -3, 1], 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2037.7735031597733, 47.12421307506065, -3, 1], 3, 0, 0, 0, 0, 0, 10, 2, "背板", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": 1977.7735031597751, "y": -12.875786924939348, "z": -18 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(data);
testPathCount(brs[0], 5);
});
test('精度不一致导致的错误', () =>
{
let d =
{ "file": [1, "Board", 8, 2, 100, false, 1, 3, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -795.8115183246075, 0, -290.5759162301445, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -795.8115183246075, 0, -290.5759162301445, 1], 0, 3, 199.99999999999977, 800, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 5.684341886080802e-16, 0, -6.462348535570537e-31, 1, 1.1368683772161617e-15, 0, -5.684341886080802e-16, -1.1368683772161617e-15, 1, 0, 800, 199.99999999999977, 6.821210263296962e-13, 1], 0, 0, true, [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -482.3134816753925, 312.70451570713885, 1348.466747787199, 1], 0, 2, 4, [0, 0], 0, [-800, 0], 0, [-800, -199.99999999999977], 0, [0, -199.99999999999977], 0, true, 3, 3, 53.83966767514586, 45.05445244072871, 8, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 6.9314542216507675, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -878.2544228988872, 217.5136994777513, 1348.4667477871988, 1], 0, 2, 7, [0, 0], -0.022692492105853872, [3.6981232565907476, -3.2749857985844812], -0.032176973138420814, [7.012052526553816, -6.9314542216507675], 0.05942060441945879, [28.691491888372184, 16.108756347375788], 0.04716003528196785, [45.05445244072871, 43.281289732863854], 0, [36.43043381611642, 46.90821345349508], -0.06239679617609496, [20.99047668619187, 21.33253990319099], -0.054830113969570216, true, 0, 1.5, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -399.87057710111276, -10, -195.38510000075695, 1], 3, 53.759069370242585, 47.55299989271955, 8, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 50.615735479028956, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -940.073322759421, 215.90173337969284, 1348.4667477871988, 1], 0, 2, 7, [0, 0], 0.09043840225369688, [16.308384278376025, -28.439103489608527], 0.06687807409924337, [40.78274228087412, -50.615735479028956], -0.011776940892498087, [43.99169743573975, -46.19911665190338], -0.030054030683468853, [47.55299989271953, -42.0723151593202], -0.07849696344596496, [23.81380163124163, -22.83928357026636], -0.09435189510711224, [8.05983049029146, 3.1433338912135866], 0, true, 0, 1.5, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -338.051677240579, -10, -193.7731339026985, 1], 3, 63.99505409291214, 88.33574217359273, 8, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 14.346498272718463, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -887.6844245725279, 266.7592637734315, 1348.4667477871988, 1], 0, 2, 22, [4.809258503853016, 2.525916328651846], -0.054442864668515466, [0, 0], 0, [4.835898294175422, -9.268805063834861], -0.008742624009235625, [9.808551289775892, -8.202088772714319], -0.01918242119310623, [14.830088102196783, -7.415044051063489], -0.005354230998340375, [44.154212832100825, -5.426705263125996], -0.0019814595070961776, [73.50565407145746, -3.868718635340201], -0.003204740604810635, [76.80636598667525, -9.084939354238372], -0.0037533214648670637, [80.03411676859287, -14.346498272718463], 0, [88.33574217359273, -8.86581353932047], 0.013630456741938843, [75.44192182707548, 9.998511429447177], 0.008074538625394045, [61.73830155563155, 28.290005020922308], 0, [54.64565072417554, 23.857098251262187], -0.0038074866383701, [61.58478101036235, 13.92322467938942], -0.0050158174483663975, [68.3473625576678, 3.86871863533878], -0.0012482251938388065, [42.80091961322705, 2.7779757460664314], -0.002010579714246132, [17.24803724922367, 1.8537610127680182], 0.016071509378744752, [32.41522477259491, 23.173964024031022], 0.014262488771146416, [46.26342701427245, 45.37684566033951], 0, [36.83342534063104, 49.64855582019368], -0.014706929240807552, [24.182952579449648, 26.956914950145148], -0.04369012422752293, [9.027010149127818, 5.964274562816854], -0.045806183378997375, true, 0, 1.5, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -390.44057542747214, -10, -244.63066429643715, 1], 3, 0, 0, 0, 0, 0, 10, 2, "背板", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": -795.8115183246075, "y": -18, "z": -290.5759162301445 }, "ucs": [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -795.8115183246075, 0, -290.5759162301445, 1] };
let brs = LoadBoardsFromFileData(d);
testPathCount(brs[0]);
});
test('重复点过多导致的布尔错误', () =>
{
let d =
{ "file": [1, "Board", 8, 2, 136, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1542.6178010471249, -3757.536467706971, 295.8115183248293, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1542.6178010471249, -3757.536467706971, 295.8115183248293, 1], 0, 3, 940.000000000005, 2350.0000000000005, 15, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, true, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 3749.7485095917887, 3196.3743455497456, -295.8115183247719, 1], 0, 2, 5, [4.547473508864641e-13, 5.002220859751105e-12], 0, [2120.0000000000005, 0], 0, [2350.0000000000005, 470], 0, [2119.999999999999, 940.0000000000018], 0, [0, 940.000000000005], 0, true, 1, 3, 860.0000238166186, 1812.0534983379844, 6, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -490.0437608700008, -39.999988091681296, 0, 1], 0, 0, true, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 3259.704748721788, 3156.3743574580644, -295.8115183247719, 1], 0, 2, 10, [490.04376087000173, 70.00000001851413], 0.41421356237309515, [520.0437608891084, 40.000000000005], 0, [2076.0437608563307, 40.00000000000682], 0.28638958411744386, [2103.043760858855, 56.8134140582747], 0, [2299.043760864549, 456.8134140698744], 0.23156094812233494, [2299.0437608753277, 483.186585909139], 0, [2103.0437608687926, 883.1865859224918], 0.2863895839754242, [2076.043760888381, 900.000000000005], 0, [520.0437608891084, 899.9999999999914], 0.41421356237309503, [490.0437608700008, 869.9999999808838], 0, true, 1, 3, 835.0035209518353, 1787.7812073629661, 6, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -502.0437608700008, -52.49823952408596, 0, 1], 0, 0, true, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 3247.704748721788, 3143.8761060256597, -295.8115183247719, 1], 0, 2, 10, [520.0437608700017, 52.500000000005], 0, [2076.043760871718, 52.500000000005], 0.2863895839882779, [2092.0437608700017, 62.30782488000614], 0, [2288.043760862396, 462.3078248655029], 0.23156094827558482, [2288.0437608700017, 477.69217512000387], 0, [2092.043760870679, 877.6921751186296], 0.28638958402109244, [2076.0437608700017, 887.500000000005], 0, [520.0437608699726, 887.5000000000032], 0.4142135620001939, [502.04376087000173, 869.9999999999468], 0, [502.0437608700008, 70.00000000003229], 0.41421356200142434, true, 0, 3, 0, 0, 0, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1490.119561523039, -3255.4927068369702, 304.8115183248293, 1], 3, 0, 0, 0, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1502.6178129554437, -3267.4927068369702, 304.8115183248293, 1], 3, 0, 0, 0, 0, 0, 10, 0, "层板", "", "", "", "", "", 1, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 5, "三合一", "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": 602.6178010471199, "y": -3757.536467706971, "z": 295.8115183248293 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1542.6178010471249, -3757.536467706971, 295.8115183248293, 1] };
let brs = LoadBoardsFromFileData(d);
testPathCount(brs[0]);
});
test('判断为不是矩形导致无法槽加宽', () =>
{
let d =
{ "file": [1, "Board", 10, 2, 87004, 0, 1, 2, 71, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -911.4661169474057, -16630.679370175498, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -911.4661169474057, -16630.679370175498, 0, 1], 0, 0, 1, 3, 2080, 329, 18, true, "Polyline", 10, 2, 0, 0, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 1, [0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1595.2199999999998, -50.82822461578962, 0, 1], 0, 0, 1, 2, 4, [0, 0], 0, [329, 0], 0, [329, 2080], 0, [0, 2080], 0, true, 1, 3, 2030.0000066750217, 9, 8, true, "Polyline", 10, 2, 0, 0, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -310, 2030.0000066750217, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -310, 2030.0000066750217, 0, 1], 0, 0, 1, 2, 4, [319, 0], 0, [310, -0.000006675021722912788], 0, [310, -2030.0000066750217], 0, [319, -2030.0000066750217], 0, true, 0, 5, 10, 1, 1, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -901.4661169474057, -16320.679370175498, 49.99999332497828, 1], 3, 0, 0, 0, 0, 0, 11, 1, "左侧板开缺", "", "14 男孩房展示柜", "万华禾香板柠檬绸", "万华禾香板", "柠檬绸", 0, 0, "**多种**", 2, 0, "1", "1", "1", "1", "", "", "", 4, "不排", "不排", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, null], "basePt": { "x": -911.4661169474057, "y": -16630.679370175498, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(d);
testPathCount(brs[0]);
});
test('板边通槽走刀错误', () =>
{
let d =
{ "file": [1, "Board", 10, 2, 101, 0, 1, 2, 71, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2457.1172425559034, 13.96935098175992, 391.2933600168908, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1132.8827574440948, 13.96935098175992, -1608.7066399831092, 1], 0, 0, 1, 3, 640, 350, 18, false, "Polyline", 10, 2, 0, 0, 0, 7, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 640, 0, 1], 0, 0, 1, [0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1553.6387434554974, -2135.7068062827225, 0, 1], 0, 0, 1, 2, 8, [350, -640], 0, [350, -288], 0, [312, -288], 0, [312, -168], 0, [350, -167.99999999999955], 0, [350, 0], 0, [0, 0], 0, [0, -640], 0, true, 1, 3, 460, 5, 5, true, "Polyline", 10, 2, 0, 0, 0, 7, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 1, 2, 4, [0, 0], 0, [5, 0], 0, [5, 460], 0, [0, 460], 0, true, 0, 2.5, 5, 0, 1, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2457.1172425559034, 320.96935098175993, 558.2933600168908, 1], 3, 0, 0, 0, 0, 0, 11, 1, "右侧板", "整墙", "展示格", "", "", "科技木-2", 0, 0, "三合一", 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, "0", "0", "0", "0", "", "", "", 8, "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, null], "basePt": { "x": 2457.1172425559034, "y": 13.96935098175992, "z": 391.2933600168908 }, "ucs": [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(d);
testPathCount(brs[0]);
});
test('板边通槽走刀错误2', () =>
{
let d =
{ "file": [1, "Board", 10, 2, 102, 0, 1, 2, 71, [1, -2.4105887386831976e-48, -1.2246467991473532e-16, 0, 1.2246467991473532e-16, 1.8367099231598242e-40, 1, 0, 0, -1, 0, 0, 1271.9939346213823, -1101.8512484286912, 4.898587350745864e-14, 1], 0, 0, 1, [1, -2.4105887386831976e-48, -1.2246467991473532e-16, 0, 0, 1, 0, 0, 1.2246467991473532e-16, 1.8367099231598242e-40, 1, 0, 1271.9939346213823, -1101.8512484286912, 4.898587350745864e-14, 1], 0, 0, 1, 3, 599.9999999343779, 400.0000125878295, 18, false, "Polyline", 10, 2, 0, 0, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 400.0000125878295, 0, 0, 1], 0, 0, 1, [1, 1.312449346675325e-8, 0, 0, 0, 0, -1, 0, -1.3124493466753246e-8, 0.9999999999999998, 0, 0, -1309.1361228011178, -2992.9802411616583, 0, 1], 0, 0, 1, 2, 7, [-400.0000005249786, 599.9999999343776], 0, [-400.0000125878295, 2.3624108456233916e-7], 0, [-18.000012062849976, 0], 0, [-18.000014048559137, 151.29796836193597], -0.19387051618840104, [-16.603531571438907, 154.76418559650477], 0, [-4.227933914080495e-8, 172.065010716585], 0, [0, 599.9999999343779], 0, true, 1, 3, 180.1187825806142, 27.000014065213747, 14.2, false, "Polyline", 10, 2, 0, 0, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 27.000014065213747, 0, 0, 1], 0, 0, 1, [1, 1.312449346675325e-8, 0, 0, -1.3124493466753246e-8, 0.9999999999999998, 0, 0, 0, 0, 1, 0, -318.99997040240686, 2.4412955498072797e-7, 0, 1], 0, 0, 1, 2, 11, [-9.977156878449023e-9, 180.0717639954068], 0, [0, 172.06501072447347], 0, [-16.603531529159568, 154.76418560439325], 0.19387051618840104, [-18.000014006279798, 151.29796836982445], 0, [-18.000013994854044, 150.42739764190978], 0, [-18.000012020570637, 7.88847041838881e-9], 0, [-27.00001205994488, 0], 0, [-27.000014065213747, 152.78829131841357], -0.20279376379021757, [-24.041006272401887, 158.5242485806384], 0, [-4.756374435948146, 179.28634117878767], -0.19816084316146357, [-1.90253541078539, 180.09270687876517], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, -2.4105887386831976e-48, -1.2246467991473532e-16, 0, 1.2246467991473532e-16, 1.8367099231598242e-40, 1, 0, 0, -1, 0, 0, 1644.9939330557827, -1101.8512484286912, -1.3913358667597267e-7, 1], 3, 0, 0, 0, 0, 0, 13, 2, "牛角拉手", "1", "标准柜", "PET神秘灰肤感", "奥松", "神秘灰肤感", 0, 0, "不排", 2, 6, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, "0.8", "0.8", "0.8", "0.8", "", "", "", 7, "不排", "不排", "不排", "不排", "不排", "不排", "不排", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, null, 0, 0], "basePt": { "x": 1271.9939346213823, "y": -1119.8512484286912, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(d);
testPathCount(brs[0]);
});
test('矩形走刀 冗余1 优化走刀', () =>
{
let d =
{ "file": [1, "Board", 10, 2, 101, 0, 1, 11, 71, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 567.3043478260869, 532.3478260869565, 0, 1], 100, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 567.3043478260869, 532.3478260869565, 0, 1], 0, 0, 1, 3, 2000, 600.0000000000002, 18, true, "Polyline", 10, 2, 0, 0, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 2000, 0, 1], 0, 0, 1, [0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1472.3478260869567, 53.91304347826099, 0, 1], 0, 0, 1, 2, 4, [0, -2000], 0, [600.0000000000002, -2000], 0, [600.0000000000002, 0], 0, [0, 0], 0, true, 1, 3, 100, 24, 5, true, "Polyline", 10, 2, 0, 0, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 100, 0, 1], 0, 0, 1, [0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1660.173913043478, -1359.1304347826085, 0, 1], 0, 0, 1, 2, 4, [0, -100], 0, [24, -100], 0, [24, 0], 0, [0, 0], 0, true, 0, 3, 0, 0, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 580.3043478260869, 720.1739130434778, 1413.0434782608695, 1], 3, 0, 0, 0, 0, 0, 13, 1, "左侧板", "主卧", "下柜", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, null, 0, 0], "basePt": { "x": 567.3043478260869, "y": 532.3478260869565, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(d);
let { modeling } = Production.GetBoardModelingData(brs[0], new Vector3, 1, []);
for (let m of modeling)
{
for (let f of m.feeding)
{
let pl = new Polyline(f.pts.map((p, i) =>
{
return { pt: p, bul: f.buls[i] };
}));
expect(pl.Length).toMatchNumberSnapshot();
}
}
});