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__/Interfere/interfere.test.ts

138 lines
76 KiB

import { CheckInterfereTool, Solid3D } from "../../src/Common/InterfereUtil";
import { ObjectId } from "../../src/DatabaseServices/ObjectId";
import { LoadEntityFromFileData } from "../Utils/LoadEntity.util";
async function Check(data: any, count: number)
{
let boards = LoadEntityFromFileData(data) as Solid3D[];
for (let i = 0; i < boards.length; i++)
boards[i].objectId = new ObjectId(i) as any;
await CheckInterfereTool.GetInstance().Check(boards as any[]);
expect(CheckInterfereTool.GetInstance().objMap.length).toBe(count);
}
describe("干涉测试", () =>
{
test("切割板件", async () =>
{
let data =
[2, "Board", 8, 2, 100, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -2231.9185171823483, -4422.281844206504, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2231.9185171823483, -4422.281844206504, 0, 1], 0, 3, 2000, 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, 2000], 0, [0, 2000], 0, true, 4, 3, 18, 600, 9, 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, 18], 0, [0, 18], 0, true, 0, 3, 0, 0, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -2222.9185171823483, -4422.281844206504, 486.5, 1], 3, 18, 600, 6, 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, 18], 0, [0, 18], 0, true, 0, 3, 0, 0, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -2219.9185171823483, -4422.281844206504, 991, 1], 3, 1780.0698549677409, 18.000000000000455, 10, true, "Polyline", 8, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -500.6580645161275, -219.93014503225913, 0, 1], 0, 0, true, [-1.8369701987210297e-16, -1, 0, 0, 1, -1.8369701987210297e-16, 0, 0, 0, 0, 1, 0, 2789.204261929938, 4347.811790451612, 0, 1], 0, 2, 4, [500.658064516128, 2000], 0, [500.6580645161275, 219.93014503225913], 0, [518.6580645161275, 219.93014503225913], 0, [518.658064516128, 2000], 0, true, 0, 3, 0, 0, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -2223.9185171823483, -3921.623779690376, 219.93014503225913, 1], 3, 18, 600, 9, 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, 18], 0, [0, 18], 0, true, 0, 3, 0, 0, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -2222.9185171823483, -4422.281844206504, 50, 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, "Board", 8, 2, 103, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -1049.9185171823483, -4422.281844206504, 486.5, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1049.9185171823483, -4422.281844206504, 486.5, 1], 0, 3, 1173, 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, 1173], 0, [0, 1173], 0, true, 0, 3, 0, 0, 0, 0, 0, 9, 0, "层板", "主卧", "下柜", "", "", "", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 1, 101, 2, 3, 112, 113, 114, 3, 115, 116, 117, 0, 0, 0, 0, 0, 0, true];
await Check(data, 0);
data = [2, "Board", 8, 2, 101, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1049.9185171823483, -4422.281844206504, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1049.9185171823483, -4422.281844206504, 0, 1], 0, 3, 2000, 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, 2000], 0, [0, 2000], 0, true, 1, 3, 1780.0698549677409, 18.000000000000455, 10, true, "Polyline", 8, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -500.6580645161275, -219.93014503225913, 0, 1], 0, 0, true, [-1.8369701987210297e-16, -1, 0, 0, 1, -1.8369701987210297e-16, 0, 0, 0, 0, 1, 0, 2789.2042619299355, 4347.811790451612, 0, 1], 0, 2, 4, [500.658064516128, 2000], 0, [500.6580645161275, 219.93014503225913], 0, [518.6580645161275, 219.93014503225913], 0, [518.658064516128, 2000], 0, true, 0, 3, 0, 0, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1041.9185171823483, -3921.623779690376, 219.93014503225913, 1], 3, 0, 0, 0, 0, 0, 9, 1, "右侧板", "主卧", "下柜", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 2, 102, 2, 3, 104, 105, 106, 3, 107, 108, 109, 103, 2, 3, 112, 113, 114, 3, 115, 116, 117, 0, 0, 0, 0, 0, 0, true, "Board", 8, 2, 103, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -606.3306739002, -4422.281844206504, 486.5, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1049.9185171823483, -4422.281844206504, 486.5, 1], 0, 3, 1616.5878432821482, 600, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 443.58784328214824, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 443.58784328214824, 0, 1], 0, 2, 4, [0, -443.58784328214824], 0, [600, -443.58784328214824], 0, [600, 1173], 0, [0, 1173], 0, true, 0, 3, 0, 0, 0, 0, 0, 9, 0, "层板", "主卧", "下柜", "", "", "", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 1, 101, 2, 3, 112, 113, 114, 3, 115, 116, 117, 0, 0, 0, 0, 0, 0, true];
await Check(data, 1);
data = [2, "Board", 8, 2, 15731, false, 1, 12, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -17103.964135848066, 173.0236442641158, 3142.826736584199, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -17103.964135848066, -20, 3142.826736584199, 1], 0, 3, 1182, 136.9763557358842, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -193.0236442641158, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -193.0236442641158, 0, 0, 1], 0, 2, 4, [193.0236442641158, 0], 0, [330, 0], 0, [330, 1182], 0, [193.0236442641158, 1182], 0, true, 0, 3, 0, 0, 0, 0, 0, 9, 1, "右侧板", "鞋柜", "鞋柜左柜", "", "", "", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, "Board", 8, 2, 15732, false, 1, 5, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -17256.775064763995, 283, 3142.119629803012, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -18267.25702906688, 274.6553453088989, 3142.119629803012, 1], 0, 3, 59.99999365700023, 153.5180356971141, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1010.4819643028859, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1010.4819643028859, 0, 0, 1], 0, 2, 4, [1010.4819643028859, 0], 0, [1164, 0], 0, [1164, 59.99999365700023], 0, [1010.4819643028859, 59.99999365700023], 0, true, 0, 3, 0, 0, 0, 0, 0, 9, 2, "地脚线", "鞋柜", "鞋柜左柜", "", "", "", 1, 0, "地脚线三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "地脚线三合一", "地脚线三合一", "地脚线三合一", "地脚线三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true];
await Check(data, 1);//上一个变更,我们对1mm以下的深度碰撞进行忽略不计 Extrude.ts Func:ConverToLocalGroove if (!(ibox.getSize(size).toArray().every(x => x > 1))) return []; //2021-07-09现在又开启了这个特性
data = [2, "Board", 8, 2, 107, false, 1, 12, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -790.2005878370492, 9217.434542891759, 0.7071067811871217, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -790.2005878370492, 9024.410898627642, 0.7071067811871217, 1], 0, 3, 1182, 136.9763557358842, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -193.0236442641158, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -193.0236442641158, 0, 0, 1], 0, 2, 4, [193.0236442641158, 0], 0, [330, 0], 0, [330, 1182], 0, [193.0236442641158, 1182], 0, true, 0, 3, 0, 0, 0, 0, 0, 10, 1, "右侧板", "鞋柜", "鞋柜左柜", "", "", "", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 108, false, 1, 5, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -934.0558157408685, 9327.410898627642, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1944.5377800437545, 9319.06624393654, 0, 1], 0, 3, 59.99999365700023, 153.5180356971141, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1010.4819643028859, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1010.4819643028859, 0, 0, 1], 0, 2, 4, [1010.4819643028859, 0], 0, [1164, 0], 0, [1164, 59.99999365700023], 0, [1010.4819643028859, 59.99999365700023], 0, true, 0, 3, 0, 0, 0, 0, 0, 10, 2, "地脚线", "鞋柜", "鞋柜左柜", "", "", "", 1, 0, "地脚线三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "地脚线三合一", "地脚线三合一", "地脚线三合一", "地脚线三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0];
await Check(data, 1);
});
test("五金孔", async () =>
{
let data = { "file": [2, "Board", 8, 2, 9087, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 36291.119983889046, -362.1228211863199, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 36291.119983889046, -362.1228211863199, 0, 1], 0, 3, 1148, 450, 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, [450, 0], 0, [450, 1148], 0, [0, 1148], 0, true, 4, 3, 20, 20, 8.80000000000291, false, "Circle", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10, 10, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 324.2271826086958, -614.5869582319652, 0, 1], 0, 1, 10, 0, 4, 0, 0, 0, 0, 0, [0, -1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 36300.31998388904, -282.1228211863199, 167.6515268497169, 1], 3, 20, 20, 8.80000000000291, false, "Circle", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10, 10, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 324.2271826086958, -614.5869582319652, 0, 1], 0, 1, 10, 0, 4, 0, 0, 0, 0, 0, [0, -1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 36300.31998388904, -212.12282118631998, 167.6515268497169, 1], 3, 20, 20, 8.80000000000291, false, "Circle", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10, 10, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 324.2271826086958, -614.5869582319652, 0, 1], 0, 1, 10, 0, 4, 0, 0, 0, 0, 0, [0, -1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 36300.31998388904, -142.12282118631992, 167.6515268497169, 1], 3, 20, 20, 8.80000000000291, false, "Circle", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10, 10, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 324.2271826086958, -614.5869582319652, 0, 1], 0, 1, 10, 0, 3, 0, 0, 0, 0, 0, [0, -1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 36300.31998388904, -72.12282118631992, 167.6515268497169, 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, "HardwareCompositeEntity", 1, 8, 2, 9088, false, 1, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 34201.81915615466, -362.1228211863199, -606.142083904032, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 36309.119983889046, -362.1228211863199, 117.6515268497169, 1], 0, 5, "ExtrudeHole", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 2107.3008277343833, 350, 743.7936107537489, 1], 0, 0, true, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 2102.3008277343833, 450, 743.7936107537489, 1], 0, 5, 350, 0, 0, 2, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1783.8728901982536, -737.2996364928794, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1783.8728901982536, -737.2996364928794, 0, 1], 0, 2, 4, [1783.8728901982536, 737.2996364928794], 0, [1803.8728901982536, 737.2996364928794], 0, [1803.8728901982536, 817.2996364928794], 0, [1783.8728901982536, 817.2996364928794], 0, true, 3, true, "ExtrudeHole", 8, 2, 0, false, 0, 7, 0, [0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 2107.500827734383, 290, 773.7936107537489, 1], 0, 0, true, [0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 2107.500827734383, 290, 773.7936107537489, 1], 0, 5, 9, 0, 0, 2, "Circle", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10, 10, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 324.2271826086958, -614.5869582319652, 0, 1], 0, 1, 10, 3, true, "ExtrudeHole", 8, 2, 0, false, 0, 7, 0, [0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 2107.500827734383, 220, 773.7936107537489, 1], 0, 0, true, [0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 2107.500827734383, 220, 773.7936107537489, 1], 0, 5, 9, 0, 0, 2, "Circle", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10, 10, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 324.2271826086958, -614.5869582319652, 0, 1], 0, 1, 10, 4, true, "ExtrudeHole", 8, 2, 0, false, 0, 7, 0, [0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 2107.500827734383, 149.99999999999994, 773.7936107537489, 1], 0, 0, true, [0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 2107.500827734383, 149.99999999999994, 773.7936107537489, 1], 0, 5, 9, 0, 0, 2, "Circle", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10, 10, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 324.2271826086958, -614.5869582319652, 0, 1], 0, 1, 10, 4, true, "ExtrudeHole", 8, 2, 0, false, 0, 7, 0, [0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 2107.500827734383, 80, 773.7936107537489, 1], 0, 0, true, [0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 2107.500827734383, 80, 773.7936107537489, 1], 0, 5, 9, 0, 0, 2, "Circle", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10, 10, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 324.2271826086958, -614.5869582319652, 0, 1], 0, 1, 10, 4, true, 3, "无类型", false, false, "", "", "铰链", "主卧", "下柜", "L*W*H*100", "W*0.001*15", "X-1", "晨丰", "晨丰", "{W}*{L}", "{W*0.001}", "", "米", 0, true, 1, 0], "basePt": { "x": 36291.119983889046, "y": -362.1228211863199, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
await Check(data, 0);//理论上4个干涉看起来不大友好,但是因为判断差集是否成功的时候不大准确,导致了这个错误. (设置一样的曲线分段后,这个结果是0)
});
test("斜板件", async () =>
{
let data = { "file": [2, "Board", 8, 2, 141, false, 1, 2, 0, [0, 1, 0, 0, -0.7071067811865476, 0, -0.7071067811865475, 0, -0.7071067811865475, 0, 0.7071067811865476, 0, 1457.168983625335, 0, 819.3295198795947, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1457.168983625335, 0, 819.3295198795947, 1], 0, 3, 761.1436553548998, 600, 17.999999999999993, 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, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 24, [0, 0], 0, [600, 0], 0, [600, 761.1436553548998], 0, [0, 761.1436553548998], 0, [0, 636.3863794624164], 0, [303, 636.3863794624164], 0, [303, 620.1863794624165], 0, [0, 620.1863794624165], 0, [0, 512.5291035699332], 0, [303, 512.5291035699332], 0, [303, 496.3291035699331], 0, [0, 496.3291035699331], 0, [0, 388.67182767745004], 0, [303, 388.67182767745004], 0, [303, 372.4718276774499], 0, [0, 372.4718276774499], 0, [0, 264.8145517849668], 0, [303, 264.8145517849668], 0, [303, 248.61455178496684], 0, [0, 248.61455178496684], 0, [0, 140.9572758924837], 0, [303, 140.9572758924837], 0, [303, 124.75727589248348], 0, [0, 124.75727589248348], 0, true, 0, 3, 0, 0, 0, 0, 0, 9, 0, "右板15", "", "", "", "", "", 0, 0, "不排", 2, 24, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, "1", "1", "1", "1", "", "", "", 24, "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, -0.7853981633974483, 0, 0, 0, true, "Board", 8, 2, 142, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1439.168983625335, 0, 281.11967972102866, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1439.168983625335, 0, 281.11967972102866, 1], 0, 3, 593.2911126104882, 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, 593.2911126104882], 0, [0, 593.2911126104882], 0, true, 0, 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": 906.231221405411, "y": 0, "z": 281.11967972102866 }, "ucs": [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1] };
await Check(data, 1);
});
test("鹿角干涉", async () =>
{
let data = { "file": [2, "Board", 8, 2, 100, false, 1, 1, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 18772.744294221397, 75.30508230915177, 213.02254539250862, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 18772.744294221397, 75.30508230915177, 213.02254539250862, 1], 0, 3, 426.1862999999999, 512.2803050119994, 18, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -11287.040410179, 7.105427357601002e-14, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -11287.040410179, 7.105427357601002e-14, 0, 1], 0, 2, 135, [11575.177889619, 183.9111], -0.254612865, [11519.549149821, 180.0828], -0.254612865, [11486.149016414, 224.733], 0.049131544, [11481.750650228, 236.3367], 0.031145283, [11479.277954769, 240.2842], 0.053715145, [11477.466271849, 226.3247], -0.006397846, [11477.461810351, 214.9593], -0.297918804, [11470.568787514, 201.8175], -0.180078198, [11411.024025155, 243.6921], 0, [11403.562761857, 234.5964], 0, [11393.787959259, 250.9923], 0, [11401.249222556, 260.0879], 0.014430924, [11396.835052412, 292.4591], -0.04253151, [11397.925134219, 355.943], 0.004683701, [11403.360754974, 426.1145], 0.240296591, [11391.815439486, 410.3221], 0.023565487, [11385.352522926, 381.8093], -0.364482816, [11378.084548262, 381.9742], -0.09837455, [11367.021626556, 391.159], 0.071116764, [11362.519097998, 395.0163], 1.02815249, [11361.370679631, 395.0163], 0.052151674, [11368.7771923, 373.0268], -0.04297448, [11381.128178264, 338.3146], -0.158396361, [11380.309935386, 317.5927], -0.132109045, [11377.959294551, 313.3645], -0.275983075, [11357.512291734, 327.2632], -0.067114461, [11343.341893042, 364.7725], 0.029838949, [11328.316966659, 413.214], 0.073072941, [11322.966435497, 421.4163], 0.135789841, [11321.766728399, 421.4163], 0.028827145, [11322.7214116, 408.9037], 0.024405929, [11327.800553142, 383.1967], -0.015601406, [11335.090914834, 349.9768], -0.061798133, [11335.786914938, 334.9212], -0.138782737, [11332.578297984, 326.6398], -0.069487037, [11306.428730945, 328.5789], 0.031600673, [11287.040410179, 331.3179], -0.144553022, [11290.424199241, 326.8061], -0.009458704, [11326.919408534, 315.4381], -0.091477617, [11367.966734075, 293.438], -0.277997279, [11382.956035178, 249.8128], -0.344624021, [11351.907237585, 261.8741], -0.015987502, [11333.313730763, 283.9223], 0.052407896, [11322.953392024, 294.2163], -0.061710025, [11321.775018611, 294.3001], 0.076426257, [11328.466369157, 272.3322], 0.106068382, [11347.011107859, 248.3883], 0.061972259, [11401.60771331, 216.2024], -0.053746633, [11445.339857422, 190.9484], -0.253436665, [11431.529139506, 186.9512], -0.035461175, [11413.310889227, 186.8128], 0.024362283, [11391.366582053, 184.9014], 0.420111382, [11393.247576808, 181.2685], 0.012212189, [11434.512618522, 176.3274], -0.062775564, [11470.7012434, 169.0987], -0.430891816, [11487.195471731, 140.6975], -0.046259578, [11479.04336139, 115.0782], 0.128917906, [11475.733345427, 75.1079], 0.068188271, [11487.362628345, 36.9554], 0, [11487.362628345, 78.8163], 0, [11505.362628345, 78.8163], 0, [11505.362628345, 14.6299], -0.014550612, [11521.804708805, 5.4898], 0.057423089, [11534.066582053, 0.1705], 0, [11534.066582053, 75.8632], 0, [11552.166582053, 75.8632], 0, [11552.166582053, 0], 0.096578936, [11581.576353606, 15.5105], 0, [11581.576353606, 80.0159], 0, [11599.576353606, 80.0159], 0, [11599.576353606, 38.2867], 0.065688118, [11610.599818679, 75.1079], 0.128917906, [11607.289802717, 115.0782], -0.047156952, [11601.02806164, 140.6975], -0.274535317, [11606.260736742, 159.8827], -0.089605693, [11652.588230602, 172.9365], 0.030873658, [11688.991201222, 180.7212], 0.050381766, [11694.916107746, 185.0219], 0.031449162, [11670.4825118, 184.6727], -0.10399231, [11640.966582053, 187.4348], -0.336449094, [11640.966582054, 191.0032], -0.036722822, [11680.533084623, 214.3934], 0.054192788, [11726.213254997, 241.6738], 0.076337606, [11753.770938476, 272.623], 0.049489895, [11762.656825324, 285.98], 0.138087058, [11763.356033891, 294.2058], 0.000047238, [11761.10014684, 291.9499], 0.09861929, [11741.409068782, 271.9504], -0.062439784, [11729.665613854, 258.0381], -0.103116929, [11717.375226864, 249.9555], -0.121468386, [11704.561895684, 248.6304], -0.204317631, [11703.883885051, 265.1182], -0.09587023, [11719.497523575, 291.9725], -0.042673687, [11735.762793765, 309.283], -0.148349705, [11755.152813317, 318.6094], -0.012586025, [11778.962002245, 321.3235], 0.108425739, [11793.825468391, 326.4298], 0.042924224, [11799.320715191, 331.3627], 0.041662745, [11783.783757311, 328.7079], -0.038357208, [11768.815814086, 326.1597], -0.095757819, [11754.317867672, 327.6662], -0.383733711, [11750.208924425, 332.3593], -0.054739054, [11754.267214374, 352.8037], 0.000010299, [11762.660701672, 379.3031], 0.072062048, [11766.60001328, 404.4508], 0.071821088, [11764.350969936, 418.5301], 0.043651943, [11763.319701333, 421.3929], 0.198002445, [11760.015414422, 416.1008], -0.018076552, [11748.95933259, 374.3494], -0.049532619, [11732.343387357, 333.9769], -0.081841348, [11717.821958357, 315.1439], -0.032240782, [11714.246462485, 312.2818], -0.189036719, [11705.507337448, 318.3212], -0.104987178, [11711.766367896, 352.0737], 0.034028207, [11723.837727469, 386.0765], 0.104457129, [11723.731209826, 394.9926], 0.035418053, [11712.759629038, 384.8008], -0.153616808, [11702.165117566, 380.6207], -0.003135161, [11698.291881798, 391.6015], 0.005848381, [11693.803721704, 412.0875], 0.170274322, [11685.922346843, 424.7653], 0.019247846, [11682.966582053, 426.1863], 0.00064047, [11682.966582053, 420.3159], -0.043610118, [11686.317807607, 405.3389], -0.042417751, [11690.375772192, 384.0725], -0.081620938, [11690.955334096, 354.9771], -0.075258115, [11688.304049254, 289.073], -0.039033673, [11680.996648028, 260.0879], 0, [11688.457911326, 250.9923], 0, [11678.683108728, 234.5964], 0, [11671.22184543, 243.6921], -0.209738748, [11629.823294946, 205.3048], -0.221064567, [11608.566582053, 205.4163], 0.003714071, [11608.844070958, 222.4945], 0.077128321, [11604.865848968, 249.0654], -0.258382325, true, 0, 3, 0, 0, 0, 0, 0, 10, 2, "背板", "", "", "", "", "", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 135, "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 101, false, 1, 5, 0, [0.054881614980321014, 0.9974775965875263, -0.04501613758558334, 0, -0.7712262475747155, 0.07098199987301262, 0.6325912035002161, 0, 0.6341908887621895, -2.0509456545654932e-16, 0.7731765106436074, 0, 19151.417707883873, 0, 461.7794450518195, 1], 0, 0, true, [0.054881614980321014, 0.9974775965875263, -0.04501613758558334, 0, -0.6341908887621895, 2.0509456545654932e-16, -0.7731765106436074, 0, -0.7712262475747155, 0.07098199987301262, 0.6325912035002161, 0, 19151.417707883873, 0, 461.7794450518195, 1], 0, 3, 106.64990000000067, 126.12181744802166, 18, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -12025.442541058, 2.8421709430404007e-13, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -12025.442541058, 2.8421709430404007e-13, 0, 1], 0, 2, 19, [12059.982595379, 13.1415], -0.078990603, [12036.619149227, 30.1953], -0.108446637, [12025.442541058, 49.0499], 0.027641349, [12041.585102303, 37.9538], 0.0535103, [12075.00533063, 21.9583], 0.175280861, [12119.647035707, 19.8245], 0.181980507, [12139.442541058, 38.2499], 0.229616437, [12128.400475628, 60.738], 0, [12109.442541058, 79.0499], 0, [12133.442541058, 64.6499], 0.142440241, [12135.877984698, 71.7828], 0.094561328, [12134.275621159, 83.2365], 0.023401055, [12125.042541058, 106.6499], -0.161182868, [12148.989820487, 65.8239], -0.302830535, [12135.842541058, 15.4499], 0, [12100.854405824, 1.2359], 0, [12100.035375317, 10.2453], 0, [12081.961148198, 10.2453], 0, [12082.892535429, 0], 0.01566032, true, 0, 3, 0, 0, 0, 0, 0, 10, 2, "地脚线", "", "", "", "", "", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 19, "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": 18772.744294221397, "y": -3.6917021782178875e-15, "z": 213.02254539250862 }, "ucs": [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1] };
await Check(data, 0);
});
test("干涉检查错误", async () =>
{
let data = { "file": [2, "Board", 8, 2, 102, false, 1, 11, 0, [-0.06975647374412529, -0.9975640502598242, 0, 0, 0, 0, 1, 0, -0.9975640502598242, 0.06975647374412529, 0, 0, 19556.454728975208, 767.9363869300789, 242.84526779845544, 1], 0, 0, true, [-0.9975640502598242, 0.06975647374412529, 0, 0, -0.06975647374412529, -0.9975640502598242, 0, 0, 0, 0, 1, 0, 19556.454728975208, 767.9363869300789, 242.84526779845544, 1], 0, 3, 1135, 600.0000000000027, 18, false, "Polyline", 8, 2, 0, false, 0, 1, 0, [1.0000000000000004, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1.0000000000000004, 0, 5632.016584763501, 2521.7574867597896, 0, 1], 0, 0, true, [-0.0697564737441253, 0, -0.9975640502598244, 0, -0.9975640502598244, 0, 0.0697564737441253, 0, 0, 1, 0, 0, 5632.016584763501, 2521.7574867597896, -7.275957614183426e-12, 1], 0, 2, 6, [-5382.016584763494, -1386.7574867597896], 0, [-5632.016584763498, -1386.7574867597896], 0, [-5632.016584763496, -2521.7574867597896], 0, [-5032.016584763496, -2521.7574867597896], 0, [-5032.016584763497, -1686.7574867597896], 0, [-5382.016584763495, -1686.7574867597896], 0, true, 6, 3, 409, 5.030673312097093, 5.0418581680963825, 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, [5.030673312097093, 0], 0, [5.030673312097093, 409], 0, [0, 409], 0, true, 0, 3, 0, 0, 0, 0, 0, [-0.06975647374412529, -0.9975640502598242, 0, 0, 0, 0, 1, 0, -0.9975640502598242, 0.06975647374412529, 0, 0, 19542.489716748765, 753.9899777379917, 255.8452677984559, 1], 3, 293, 5.030673312097093, 5.0418581680963825, 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, [5.030673312097093, 0], 0, [5.030673312097093, 293], 0, [0, 293], 0, true, 0, 3, 0, 0, 0, 0, 0, [-0.06975647374412529, -0.9975640502598242, 0, 0, 0, 0, 1, 0, -0.9975640502598242, 0.06975647374412529, 0, 0, 19542.489716748765, 753.9899777379917, 1072.8488815631117, 1], 3, 293, 5.038666380177347, 4.945957896650957, 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, [5.038666380177347, 0], 0, [5.038666380177347, 293], 0, [0, 293], 0, true, 0, 3, 0, 0, 0, 0, 0, [-0.06975647374412529, -0.9975640502598242, 0, 0, 0, 0, 1, 0, -0.9975640502598242, 0.06975647374412529, 0, 0, 19555.412614810877, 753.0334600645194, 1072.8491295150625, 1], 3, 409, 5.038666380177347, 4.945957896650957, 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, [5.038666380177347, 0], 0, [5.038666380177347, 409], 0, [0, 409], 0, true, 0, 3, 0, 0, 0, 0, 0, [-0.06975647374412529, -0.9975640502598242, 0, 0, 0, 0, 1, 0, -0.9975640502598242, 0.06975647374412529, 0, 0, 19555.412614810877, 753.0334600645194, 255.8452677984559, 1], 3, 394, 5.0386663801773475, 4.945957896650957, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1.0000000000000002, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1.0000000000000002, 0, 0, 0, 0, 1], 0, 0, true, [1.0000000000000002, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1.0000000000000002, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [5.038666380177347, 0], 0, [5.038666380177347, 394], 0, [0, 394], 0, true, 0, 3, 0, 0, 0, 0, 0, [-0.06975647374412529, -0.9975640502598242, 0, 0, 0, 0, 1, 0, -0.9975640502598242, 0.06975647374412529, 0, 0, 19555.412614810877, 753.0334600645194, 670.8452677984554, 1], 3, 394, 5.030673312097093, 5.0418581680963825, 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, [5.030673312097093, 0], 0, [5.030673312097093, 394], 0, [0, 394], 0, true, 0, 3, 0, 0, 0, 0, 0, [-0.06975647374412529, -0.9975640502598242, 0, 0, 0, 0, 1, 0, -0.9975640502598242, 0.06975647374412529, 0, 0, 19542.489716748765, 753.9899777379917, 670.8406241929855, 1], 3, 0, 0, 0, 0, 0, 10, 1, "侧板", "", "", "", "", "", 0, 0, "三合一", 2, 6, 1, 1, 1, 1, 1, 1, "1", "1", "1", "1", "", "", "", 6, "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 103, false, 1, 2, 0, [1, -1.8369701987210297e-16, 0, 0, 1.8369701987210297e-16, 1, 0, 0, 0, 0, 1, 0, 19522.53385766159, 2.2637008605855804e-13, 658.8452677984554, 1], 0, 0, true, [-1.8369701987210297e-16, -1, 0, 0, 1, -1.8369701987210297e-16, 0, 0, 0, 0, 1, 0, 17112.285147039474, -4.243356993307089, 658.8452677984554, 1], 0, 3, 767.6683077388061, 1232.301352608582, 18, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 171.87521704525898, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.684341886080801e-13, -4.14632742068261, 0, 1], 0, 2, 4, [1232.3013526085815, 412.1381720169775], 0.037666321518033015, [41.661911410171, 595.7930906935471], 0, [0, 0], -0.038046266446744866, [1095.4297814411107, -171.87521704525898], 0, true, 2, 3, 188.35578830063844, 1188.6022768256926, 6, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, -1.8369701987210297e-16, 0, 0, 1.8369701987210297e-16, 1, 0, 0, 0, 0, 1, 0, -40.2818226064704, -392.6890905964028, 0, 1], 0, 0, true, [1, -1.8369701987210297e-16, 0, 0, 1.8369701987210297e-16, 1, 0, 0, 0, 0, 1, 0, -40.2818226064704, -392.6890905964028, 0, 1], 0, 2, 4, [40.63061597737366, 581.0448788970413], 0, [40.281822606470314, 576.056901307199], -0.03766601885434294, [1227.7431928443466, 392.68909059640384], 0, [1228.8840994321629, 397.5571922574811], 0.037667551759022824, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 19562.81568026806, 564.564307641662, 670.8452677984554, 1], 3, 188.35578830063844, 1188.6022768256926, 6, false, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, -1.8369701987210297e-16, 0, 0, 1.8369701987210297e-16, 1, 0, 0, 0, 0, 1, 0, -40.2818226064704, -392.6890905964028, 0, 1], 0, 0, true, [1, -1.8369701987210297e-16, 0, 0, 1.8369701987210297e-16, 1, 0, 0, 0, 0, 1, 0, -40.2818226064704, -392.6890905964028, 0, 1], 0, 2, 4, [40.63061597737366, 581.0448788970413], 0, [40.281822606470314, 576.056901307199], -0.03766601885434294, [1227.7431928443466, 392.68909059640384], 0, [1228.8840994321629, 397.5571922574811], 0.037667551759022824, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 19562.81568026806, 564.564307641662, 658.8452677984554, 1], 3, 0, 0, 0, 0, 0, 10, 0, "底板", "", "", "", "", "", 1, 1, "三合一", 2, 4, 1, 1, 1, 1, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": 19496.644691824054, "y": 0, "z": 242.84526779845544 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
await Check(data, 0);
});
test("3干涉背板", async () =>
{
let data = { "file": [3, "Board", 8, 2, 100, false, 1, 3, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -351.8109794803895, -112.36982647504192, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -346.8109794803895, -594.3698264750419, 5, 1], 0, 3, 949.9999999999998, 942, 6, 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, [942, 0], 0, [942, 949.9999999999998], 0, [-1.468822192785737e-15, 949.9999999999995], 0, [0, 0], 0, true, 0, 3, 6, 0, 1, 0, 0, 10, 2, "薄背板", "麓府2-202", "2.次卧1衣柜", "", "多层板", "TYH-8076", 1, 1, "三合一", 2, 4, 0, 0, 0, 0, "0", "0", "0", "0", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", false, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 101, false, 1, 5, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -346.8109794803895, -106.36982647504192, 944.9999999999991, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -346.8109794803895, -594.3698264750419, 5, 1], 0, 3, 120, 932, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5, 0, 0, 1], 0, 2, 4, [937, 2.2737367544323206e-13], 0, [937, 120], 0, [5, 120], 0, [5, 0], 0, true, 0, 3, 6, 0, 1, 0, 0, 10, 2, "背拉条", "麓府2-202", "2.次卧1衣柜", "", "多层板", "TYH-8076", 1, 1, "三合一", 2, 4, 0.6, 0.6, 0.6, 0.6, "0.6", "0.6", "0.6", "0.6", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", false, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 102, false, 1, 3, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -351.8109794803895, -112.36982647504192, 1059.999999999999, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -346.8109794803895, -594.3698264750419, 5, 1], 0, 3, 942.0000000000005, 942, 6, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 140, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 140, 0, 1], 0, 2, 4, [942, -140], 0, [942, 802.0000000000005], 0, [0, 802.0000000000005], 0, [0, -140], 0, true, 0, 3, 6, 0, 1, 0, 0, 10, 2, "薄背板", "麓府2-202", "2.次卧1衣柜", "", "多层板", "TYH-8076", 1, 1, "三合一", 2, 4, 0, 0, 0, 0, "0", "0", "0", "0", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", false, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": -351.8109794803895, "y": -124.36982647504192, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
await Check(data, 2);
});
test("重叠板件", async () =>
{
let data = { "file": [2, "Board", 8, 2, 103, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 3099.0177832142217, -138.39374678209424, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3099.0177832142217, -138.39374678209424, 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, 0, 3, 0, 0, 0, 0, 0, 10, 0, "层板", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 104, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 3099.0177832142217, -138.39374678209424, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3099.0177832142217, -138.39374678209424, 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, 0, 3, 0, 0, 0, 0, 0, 10, 0, "层板", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": 1899.0177832142217, "y": -138.39374678209424, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
await Check(data, 1);
});
test("板件倾斜", async () =>
{
let data = { "file": [4, "Board", 8, 2, 100, false, 1, 2, 0, [0, 0.9831300494835278, 0.18290791618329785, 0, -1, 0, 0, 0, 0, -0.18290791618329785, 0.9831300494835278, 0, 1108.4743411927875, 128.72923569518287, 1025.1786752030148, 1], 0, 0, true, [1, 0, 0, 0, 0, 0.9831300494835278, 0.18290791618329785, 0, 0, -0.18290791618329785, 0.9831300494835278, 0, 1108.6443411927876, 126.76297559621582, 1024.8128593706488, 1], 0, 3, 750, 430.6086591386313, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2, -0.17000000000007276, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2, -0.17000000000007276, 0, 1], 0, 2, 4, [2, 0.17000000000007276], 0, [432.6086591386313, 0.17000000000007276], 0, [432.6086591386313, 750.1700000000001], 0, [2, 750.1700000000001], 0, true, 0, 3, 0, 0, 0, 0, 0, 10, 0, "顶板", "", "讲桌", "18颗粒蓝色", "颗粒板", "蓝色", 0, 1, "**多种**", 2, 0, "1.5", "1.5", "1.5", "1.5", "", "", "", 4, "三合一", "不排", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 101, false, 1, 3, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 483.4743411927875, 559.6438564782645, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 483.4743411927875, 559.6438564782645, 0, 1], 0, 3, 1160, 500, 18, 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, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 6, [0, 0], 0, [500, 0], 0, [500, 1130], 0.41421356237309503, [470, 1160], 0, [30, 1160], 0.41421356237309503, [0, 1130], 0, true, 0, 3, 0, 0, 0, 0, 0, 10, 2, "封板", "", "讲桌", "18颗粒蓝色", "颗粒板", "蓝色", 0, 1, "不排", 2, 0, "0.6", "0.6", "0.6", "0.6", "", "", "", 6, "不排", "不排", "不排", "不排", "不排", "不排", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 113, false, 1, 2, 0, [0, 0.9831300494835278, 0.18290791618329785, 0, -1, 0, 0, 0, 0, -0.18290791618329785, 0.9831300494835278, 0, 1108.4743411927875, 637.6961828178574, 1044.0516874415487, 1], 0, 0, true, [1, 0, 0, 0, 0, 0.9831300494835278, 0.18290791618329785, 0, 0, -0.18290791618329785, 0.9831300494835278, 0, 1108.6443411927876, 635.7299227188904, 1043.6858716091826, 1], 0, 3, 750, 430.6086591386313, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2, -0.17000000000007276, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2, -0.17000000000007276, 0, 1], 0, 2, 4, [2, 0.17000000000007276], 0, [432.6086591386313, 0.17000000000007276], 0, [432.6086591386313, 750.1700000000001], 0, [2, 750.1700000000001], 0, true, 0, 3, 0, 0, 0, 0, 0, 10, 0, "顶板", "", "讲桌", "18颗粒蓝色", "颗粒板", "蓝色", 0, 1, "**多种**", 2, 0, "1.5", "1.5", "1.5", "1.5", "", "", "", 4, "三合一", "不排", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 114, false, 1, 3, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 483.4743411927875, 1075.7481526935562, 18.873012238533875, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 483.4743411927875, 1075.7481526935562, 18.873012238533875, 1], 0, 3, 1160, 500, 18, 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, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 6, [0, 0], 0, [500, 0], 0, [500, 1130], 0.41421356237309503, [470, 1160], 0, [30, 1160], 0.41421356237309503, [0, 1130], 0, true, 0, 3, 0, 0, 0, 0, 0, 10, 2, "封板", "", "讲桌", "18颗粒蓝色", "颗粒板", "蓝色", 0, 1, "不排", 2, 0, "0.6", "0.6", "0.6", "0.6", "", "", "", 6, "不排", "不排", "不排", "不排", "不排", "不排", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": 358.4743411927875, "y": 125.4368932038835, "z": 0 }, "ucs": [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1] };
await Check(data, 2);
});
test('精度问题导致的干涉检查错误', async () =>
{
let d = { "file": [2, "Board", 8, 2, 104, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -762.4275697786074, 100, 2800.6163080949336, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -762.4275697786074, 100, 2800.6163080949336, 1], 0, 3, 172, 300, 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, [300, 0], 0, [300, 172], 0, [0, 172], 0, true, 1, 3, 159, 9, 4.996599999996761, 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, [9, 0], 0, [9, 159], 0, [0, 159], 0, true, 0, 3, 0, 0, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -762.4275697786074, 371, 2813.6163080949336, 1], 3, 0, 0, 0, 0, 0, 10, 1, "立板", "", "1", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 3, 103, 2, 3, 148, 149, 150, 3, 151, 152, 153, 105, 2, 3, 156, 157, 158, 3, 159, 160, 161, 107, 2, 3, 164, 165, 166, 3, 167, 168, 169, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 193, false, 1, 3, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -1301.7609697786106, 380, 2813.6163080949336, 1], 192, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1301.7609697786106, 380, 2813.6163080949336, 1], 0, 3, 164, 544.3299999999999, 9, 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, [544.3299999999999, 0], 0, [544.3299999999999, 164], 0, [0, 164], 0, true, 0, 3, 0, 0, 0, 0, 0, 10, 2, "背板", "", "1", "", "", "", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", false, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": -1301.7609697786106, "y": 100, "z": 2800.6163080949336 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
await Check(d, 0);
});
test('精度问题导致的干涉检查错误2', async () =>
{
let d = { "file": [6, "Board", 8, 2, 102, false, 1, 2, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2122.090449307405, 53.524216164179364, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2122.090449307405, 53.524216164179364, 0, 1], 0, 3, 1166.67, 480, 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, [480, 0], 0, [480, 1166.67], 0, [0, 1166.67], 0, true, 2, 3, 1166.67, 9, 5.00333333399783, 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, [9, 0], 0, [9, 1166.67], 0, [0, 1166.67], 0, true, 0, 5, 6, 1, 1, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2122.090449307405, 506.5242161641794, 0, 1], 3, 1166.67, 9, 5, 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, [9, 0], 0, [9, 1166.67], 0, [0, 1166.67], 0, true, 0, 5, 6, 1, 1, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2135.090449307405, 506.5242161641794, 0, 1], 3, 0, 0, 0, 0, 0, 10, 1, "右侧板", "次卧2", "衣柜", "科技原木", "多层板", "科技原木", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 103, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 2608.423782641403, 53.524216164179364, 1166.6671609740006, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2608.423782641403, 53.524216164179364, 1166.6671609740006, 1], 0, 3, 1432, 480, 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, [480, 0], 0, [480, 1432], 0, [0, 1432], 0, true, 2, 3, 950.67, 9, 5.002839025999492, 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, [9, 0], 0, [9, 950.67], 0, [0, 950.67], 0, true, 0, 5, 6, 1, 1, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 2127.093782641401, 506.5242161641794, 1166.6671609740006, 1], 3, 473.33333333399787, 9, 5.002839025999492, 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, [9, 0], 0, [9, 473.33333333399787], 0, [0, 473.33333333399787], 0, true, 0, 5, 6, 1, 1, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 2608.423782641403, 506.5242161641794, 1166.6671609740006, 1], 3, 0, 0, 0, 0, 0, 10, 0, "顶板", "次卧2", "衣柜", "科技原木", "多层板", "科技原木", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 104, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 5745.042300967834, 108.6197325287223, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5745.042300967834, 108.6197325287223, 0, 1], 0, 3, 782.33, 430, 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, [430, 0], 0, [430, 782.33], 0, [0, 782.33], 0, true, 1, 3, 769.3300000000017, 9, 5, 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, [9, 0], 0, [9, 769.3300000000017], 0, [0, 769.3300000000017], 0, true, 0, 5, 6, 1, 1, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 5745.042300967834, 511.6197325287223, 13, 1], 3, 0, 0, 0, 0, 0, 10, 0, "底板", "电视柜", "电视柜", "科技原木", "多层板", "科技原木", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 105, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 4962.715634300825, 108.6197325287223, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4962.715634300825, 108.6197325287223, 0, 1], 0, 3, 1602.67, 430, 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, [430, 0], 0, [430, 1602.67], 0, [0, 1602.67], 0, true, 2, 3, 803.33, 9, 5, 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, [9, 0], 0, [9, 803.33], 0, [0, 803.33], 0, true, 0, 5, 6, 1, 1, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 4949.7089676348405, 511.6197325287223, 13, 1], 3, 778.3300000000019, 9, 5, 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, [9, 0], 0, [9, 778.3300000000019], 0, [0, 778.3300000000019], 0, true, 0, 5, 6, 1, 1, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 4138.375634300828, 511.6197325287223, 13, 1], 3, 0, 0, 0, 0, 0, 10, 0, "底板", "电视柜", "电视柜", "科技原木", "多层板", "科技原木", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 106, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 5413.910262958045, 1277.6057484616758, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5413.910262958045, 1277.6057484616758, 0, 1], 0, 3, 1602.67, 430, 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, [430, 0], 0, [430, 1602.67], 0, [0, 1602.67], 0, true, 2, 3, 803.33, 9, 5, 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, [9, 0], 0, [9, 803.33], 0, [0, 803.33], 0, true, 0, 5, 6, 1, 1, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 5400.903596292061, 1680.6057484616758, 13, 1], 3, 778.3300000000019, 9, 5, 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, [9, 0], 0, [9, 778.3300000000019], 0, [0, 778.3300000000019], 0, true, 0, 5, 6, 1, 1, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 4589.570262958048, 1680.6057484616758, 13, 1], 3, 0, 0, 0, 0, 0, 10, 0, "底板", "电视柜", "电视柜", "科技原木", "多层板", "科技原木", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 107, false, 1, 2, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 6196.2369296250545, 1277.6057484616758, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6196.2369296250545, 1277.6057484616758, 0, 1], 0, 3, 782.33, 430, 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, [430, 0], 0, [430, 782.33], 0, [0, 782.33], 0, true, 1, 3, 769.3300000000017, 9, 5, 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, [9, 0], 0, [9, 769.3300000000017], 0, [0, 769.3300000000017], 0, true, 0, 5, 6, 1, 1, 0, 0, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 6196.2369296250545, 1680.6057484616758, 13, 1], 3, 0, 0, 0, 0, 0, 10, 0, "底板", "电视柜", "电视柜", "科技原木", "多层板", "科技原木", 0, 1, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": 1176.4237826414028, "y": 53.524216164179364, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
await Check(d, 0);
});
test('精度问题导致的干涉错误3', async () =>
{
let d =
{ "file": [2, "Board", 8, 2, 100, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 279.67078189300446, 184.15912208504804, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 279.67078189300446, 184.15912208504804, 0, 1], 0, 3, 2349, 330, 17, 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, [330, 0], 0, [330, 2349], 0, [0, 2349], 0, true, 1, 3, 976.6666666666679, 6, 5, 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, [6, 0], 0, [6, 976.6666666666679], 0, [0, 976.6666666666679], 0, true, 0, 2.5, 6, 0, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 291.67078189300446, 490.159122085048, 1360.3333333333321, 1], 3, 0, 0, 0, 0, 0, 10, 1, "左侧板", "客厅", "鞋柜", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 8, 2, 101, false, 1, 3, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 291.67078189300446, 496.159122085048, 1360.3333333333321, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 296.67078189300446, 184.15912208504804, 1365.3333333333321, 1], 0, 3, 976.6666666666679, 768, 6, 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, [768, 0], 0, [768, 976.6666666666679], 0, [0, 976.6666666666679], 0, true, 0, 2.5, 6, 0, 0, 0, 0, 10, 2, "薄背板", "客厅", "鞋柜", "", "", "", 0, 1, "不排", 2, 0, "0", "0", "0", "0", "", "", "", 4, "不排", "不排", "不排", "不排", false, false, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": 279.67078189300446, "y": 184.15912208504804, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1] };
await Check(d, 0);
});
test('精度问题导致的干涉错误4', async () =>
{
let d =
{ "file": [2, "Board", 10, 2, 102, 0, 1, 11, 71, [0, 1, 0, 0, 0, 0, 0.9999999999999997, 0, 0.9999999999999997, 0, 0, 0, 0, -1762.4672160804016, 80.46022110552803, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -13, -1257.9182774864782, 285.0116202989057, 1], 0, 0, 1, 3, 641.7206298171777, 904.5489385939234, 18, true, "Polyline", 10, 2, 0, 0, 0, 7, 71, [1, 0, 0, 0, 0, 1.0000000000000002, 0, 0, 0, 0, 1.0000000000000002, 0, 504.54893859392337, 349.5513991933778, 0, 1], 0, 0, 1, [0, 0, 1.0000000000000002, 0, 1, 0, 0, 0, 0, 1.0000000000000002, 0, 0, -820.6061283078504, 258.1687625374293, 0, 1], 0, 0, 1, 2, 4, [400, -349.55139919337773], 0, [400, 292.16923062379993], 0, [-504.54893859392337, 292.16923062379993], 0, [-504.54893859392337, -349.55139919337773], 0, true, 1, 3, 205.84311938160272, 205.84311938160272, 1.9999999999999996, false, "Circle", 10, 2, 0, 0, 0, 1, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 102.92155969080136, 102.92155969080136, 0, 1], 0, 0, 1, [-1, 0, 0, 0, 0, 0.9999999999999998, 0, 0, 0, 0, 0.9999999999999998, 0, -297.0784403091985, -562.1026533844808, 385.627660497046, 1], 0, 0, 1, 1, 102.92155969080136, 0, 3, 0, 0, 0, 0, 0, [0, 1, 0, 0, 0, 0, 0.9999999999999997, 0, 0.9999999999999997, 0, 0, 0, 2.2737367544323206e-13, -1334.8398371772796, 227.09006060810373, 1], 3, 0, 0, 0, 0, 0, 10, 1, "抽侧", "aaa", "标准柜", "", "", "", 1, 1, "抽屉", 2, 0, "1", "1", "1", "1", "", "", "", 4, "抽屉", "抽屉", "抽屉", "抽屉", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 10, 2, 103, 0, 1, 3, 71, [0, 0, 0.9999999999999997, 0, 0, 1, 0, 0, -0.9999999999999997, 0, 0, 0, 2.000000000000284, -1334.8398371772796, 227.0900606081037, 1], 0, 0, 1, [0, -1, 0, 0, 0, 0, 0.9999999999999997, 0, -0.9999999999999997, 0, 0, 0, 2.000000000000284, -1234.4182774864782, 327.51162029890503, 1], 0, 0, 1, 3, 205.84311938160272, 205.84311938160272, 1.9999999999999996, false, "Circle", 10, 2, 0, 0, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 102.92155969080136, 102.92155969080136, 0, 1], 0, 0, 1, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, -562.1026533844812, -297.07844030919864, 385.6276604970461, 1], 0, 0, 1, 1, 102.92155969080136, 0, 3, 0, 0, 0, 0, 0, 10, 0, "", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 1, "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, false, 0, 0], "basePt": { "x": 0, "y": -1762.4672160804016, "z": 80.46022110552803 }, "ucs": [0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 1] };
await Check(d, 0);
});
test('精度问题导致的干涉错误5', async () =>
{
let d =
{ "file": [2, "Board", 10, 2, 100, 0, 1, 11, 71, [0, 1, 0, 0, 0, 0, 0.9999999999999997, 0, 0.9999999999999997, 0, 0, 0, 503.3870967741933, -714.2456942353324, 229.26222543948407, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 490.3870967741933, -714.2456942353324, 204.26222543948407, 1], 0, 0, 1, 3, 120.00000000000003, 400, 18, true, "Polyline", 10, 2, 0, 0, 0, 7, 71, [1, 0, 0, 0, 0, 1.0000000000000002, 0, 0, 0, 0, 1.0000000000000002, 0, 400, 120, 0, 1], 0, 0, 1, [0, 0, 1.0000000000000002, 0, 1, 0, 0, 0, 0, 1.0000000000000002, 0, 0, -993.3222694741212, -336.0771704180065, -503.3870967741824, 1], 0, 0, 1, 2, 4, [-400, -120], 0, [0, -120], 0, [0, 0], 0, [-400, 0], 0, true, 2, 3, 5, 5, 1.9999999999999996, false, "Circle", 10, 2, 0, 0, 0, 1, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 2.5, 0, 1], 0, 0, 1, [-1, 0, 0, 0, 0, 0.9999999999999996, 0, 0, 0, 0, 0.9999999999999996, 0, -397.4999999999998, -662.524213075282, 385.627660497046, 1], 0, 0, 1, 1, 2.5, 0, 3, 0, 0, 0, 0, 0, [0, 1, 0, 0, 0, 0, 0.9999999999999997, 0, 0.9999999999999997, 0, 0, 0, 503.3870967741934, -690.7456942353324, 246.76222543948333, 1], 3, 5, 5, 5, false, "Circle", 10, 2, 0, 0, 0, 2, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 2.5, 0, 1], 0, 0, 1, [-1, 0, 0, 0, 0, 0.9999999999999996, 0, 0, 0, 0, 0.9999999999999996, 0, -397.4999999999998, -662.524213075282, 385.627660497046, 1], 0, 0, 1, 1, 2.5, 0, 3, 0, 0, 0, 0, 0, [0, 1, 0, 0, 0, 0, 0.9999999999999997, 0, 0.9999999999999997, 0, 0, 0, 516.3870967741934, -643.1985796372617, 248.82949129157336, 1], 3, 0, 0, 0, 0, 0, 10, 1, "抽侧", "aaa", "标准柜", "", "", "", 1, 1, "抽屉", 2, 0, "1", "1", "1", "1", "", "", "", 4, "抽屉", "抽屉", "抽屉", "抽屉", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 10, 2, 101, 0, 1, 3, 71, [0, 0, 0.9999999999999997, 0, 0, 1, 0, 0, -0.9999999999999997, 0, 0, 0, 505.3870967741936, -690.7456942353324, 246.7622254394834, 1], 0, 0, 1, [0, -1, 0, 0, 0, 0, 0.9999999999999997, 0, -0.9999999999999997, 0, 0, 0, 505.3870967741936, -690.7456942353324, 246.7622254394834, 1], 0, 0, 1, 3, 5, 5, 1.9999999999999996, false, "Circle", 10, 2, 0, 0, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 2.5, 0, 1], 0, 0, 1, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, -662.5242130752825, -397.5, 385.6276604970461, 1], 0, 0, 1, 1, 2.5, 0, 3, 0, 0, 0, 0, 0, 10, 0, "", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 1, "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, false, 0, 0], "basePt": { "x": 503.3870967741933, "y": -714.2456942353324, "z": 229.26222543948407 }, "ucs": [0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 1] };
await Check(d, 0);
});
test('干涉检查错误(retessellate后正常)', async () =>
{
let d =
{ "file": [2, "Board", 10, 2, 278, 0, 1, 4, 71, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2245.0804020100513, 20, 335.6783919596659, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2245.0804020100513, 20, 335.6783919596659, 1], 0, 0, 1, 3, 875, 420, 18, false, "Polyline", 10, 2, 0, 0, 0, 7, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 634.0000000009315, 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, 10, [420, -634.0000000009315], 0, [420, 240.99999999906845], 0, [0, 240.99999999906845], 0, [0, 75.99999999999977], 0, [18, 75.99999999999977], 0, [18, 75.99999999999977], 0, [36, 75.99999999999977], 0, [36.00000000000002, 2.9999999999997726], 0, [1.8947806286936004e-14, 3], 0, [0, -634.0000000009315], 0, true, 1, 3, 805, 9, 10, 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, [9, 0], 0, [9, 805], 0, [0, 805], 0, true, 0, 3, 6, 1.5, 1, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2245.0804020100513, 413, 395.6783919596659, 1], 3, 0, 0, 0, 0, 0, 10, 1, "@右侧板切角处封边", "餐边柜", "10", "福人-L3002", "颗粒板", "福人L3002", 2, 1, "三合一", 2, 10, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, "0.5", "0.5", "0.5", "0.5", "", "", "", 10, "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", "三合一", true, true, 0, 6, 261, 2, 3, 650, 651, 652, 3, 653, 654, 655, 279, 2, 3, 666, 667, 668, 3, 669, 670, 671, 298, 2, 3, 674, 675, 676, 3, 677, 678, 679, 307, 2, 3, 682, 683, 684, 3, 685, 686, 687, 342, 2, 3, 690, 691, 692, 3, 693, 694, 695, 344, 4, 3, 698, 699, 700, 3, 701, 702, 703, 1, 704, 1, 705, 0, 0, 0, 0, 0, 0, true, 0, 0, "Board", 10, 2, 633, 0, 1, 4, 71, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 1760.0804020100513, 422, 395.6783919596659, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1760.0804020100513, 422, 395.6783919596659, 1], 0, 0, 1, 3, 805, 495, 9, 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, [495, 0], 0, [495, 805], 0, [0, 805], 0, [0, 0], 0, true, 0, 3, 6, 1.5, 1, 0, 0, 10, 2, "薄背板", "餐边柜", "10", "福人-L3002", "颗粒板", "福人L3002", 2, 0, "不排", 2, 0, "0.5", "0.5", "0.5", "0.5", "", "", "", 4, "不排", "不排", "不排", "不排", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0], "basePt": { "x": 1760.0804020100513, "y": 20, "z": 335.6783919596659 }, "ucs": [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1] };
await Check(d, 0);
});
test('圆弧板干涉检查1', async () =>
{
let d =
{ "file": [2, "Board", 10, 2, 179, 0, 1, 1, 71, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 2421.597549375847, 1015.8006398516147, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2421.597549375847, 1015.8006398516147, 0, 1], 0, 0, 1, 3, 473.04302442919106, 92.81484890811642, 18, false, "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, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, -158.94697836655112, 4599.433812615176, 0, 1], 0, 0, 1, 2, 5, [0, 441.04302442919106], 0, [0, 0], 0, [92.8148489081164, 0], 0, [92.8148489081164, 473.04302442919106], 0, [32, 473.04302442919106], 0.41421356237309503, true, 0, 3, 0, 0, 0, 0, 0, 19, 0, "层板", "", "", "", "", "", 0, 0, "三合一", 2, 3, 1, 1, 1, "1", "1", "1", "1", "", "", "", 5, "三合一", "三合一", "三合一", "三合一", "三合一", true, true, 0, 1, 102, 4, 4, 180, 181, 182, 183, 4, 184, 185, 186, 187, 3, 190, 191, 192, 3, 193, 194, 195, 0, 0, 0, 0, 0, 0, true, 0, 0, null, 0, 0, "", "", "", "", 3, { "description": "" }, { "description": "" }, { "description": "" }, false, 0, "", "Board", 10, 2, 102, 0, 1, 2, 71, [0.8887586237162988, -0.4583755106568311, 0, 0, 0, 0, 1, 0, -0.4583755106568311, -0.8887586237162988, 0, 0, 1948.554524377891, 1259.771648513914, 0, 1], 0, 0, 1, [0.8887586237162988, -0.4583755106568311, 0, 0, 0, 0, 1, 0, -0.4583755106568311, -0.8887586237162988, 0, 0, 1948.554524377891, 1259.771648513914, 0, 1], 0, 0, 1, 3, 1200, 731.55385, 18, 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, [731.55385, 0], 0, [731.55385, 1200], 0, [0, 1200], 0, true, 0, 3, 0, 0, 0, 0, 0, 19, 0, "圆弧板", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 1, 179, 4, 4, 180, 181, 182, 183, 4, 184, 185, 186, 187, 3, 190, 191, 192, 3, 193, 194, 195, 0, 0, 0, 0, 0, 0, true, 0, 0, null, 0, 0, "", "", "", "", 0, false, 0, "Polyline", 10, 2, 0, 0, 0, 8, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 1, [0.8887586237162985, -0.45837551065683096, 0, 0, -0.45837551065683096, -0.8887586237162985, 0, 0, 0, 0, -0.9999999999999998, 0, 0, 0, 0, 1], 0, 0, 1, 2, 4, [0, 0], 0, [97.16231934002498, 188.3910619264607], -0.41421356237309476, [140.27061163996515, 202.16332154436375], 0, [532.2514030313268, 0], 0, false, 0, 0, true, 2, -1, 0, 6, 6, 2, 0, 0, 0, 3, 0, 1, 78.53982, 6, 6, 2, 0, 0, 0, 3, 0], "basePt": { "x": 1831.7874698204685, "y": 813.1832386224994, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
await Check(d, 0);
});
test('圆弧板干涉检查2', async () =>
{
let d =
{ "file": [2, "Board", 10, 2, 102, 0, 1, 2, 71, [0.8887586237162988, -0.4583755106568311, 0, 0, 0, 0, 1, 0, -0.4583755106568311, -0.8887586237162988, 0, 0, 1948.554524377891, 1259.771648513914, 0, 1], 0, 0, 1, [0.8887586237162988, -0.4583755106568311, 0, 0, 0, 0, 1, 0, -0.4583755106568311, -0.8887586237162988, 0, 0, 1948.554524377891, 1259.771648513914, 0, 1], 0, 0, 1, 3, 1200, 731.55385, 18, 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, [731.55385, 0], 0, [731.55385, 1200], 0, [0, 1200], 0, true, 0, 3, 0, 0, 0, 0, 0, 19, 0, "圆弧板", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 1, 179, 2, 4, 358, 359, 360, 361, 4, 362, 363, 364, 365, 0, 0, 0, 0, 0, 0, true, 0, 0, null, 0, 0, "", "", "", "", 0, false, 0, "Polyline", 10, 2, 0, 0, 0, 8, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 1, [0.8887586237162985, -0.45837551065683096, 0, 0, -0.45837551065683096, -0.8887586237162985, 0, 0, 0, 0, -0.9999999999999998, 0, 0, 0, 0, 1], 0, 0, 1, 2, 4, [0, 0], 0, [97.16231934002498, 188.3910619264607], -0.41421356237309476, [140.27061163996515, 202.16332154436375], 0, [532.2514030313268, 0], 0, false, 0, 0, true, 2, -1, 0, 6, 6, 2, 0, 0, 0, 3, 0, 1, 78.53982, 6, 6, 2, 0, 0, 0, 3, 0, "Board", 10, 2, 179, 0, 1, 1, 71, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 2418.63837864963, 1015.8006398516147, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2418.63837864963, 1015.8006398516147, 0, 1], 0, 0, 1, 3, 473.04302442919106, 92.81484890811642, 18, false, "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, [0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, -158.94697836655112, 4599.433812615176, 0, 1], 0, 0, 1, 2, 5, [0, 441.04302442919106], 0, [0, 0], 0, [92.8148489081164, 0], 0, [92.8148489081164, 473.04302442919106], 0, [32, 473.04302442919106], 0.41421356237309503, true, 0, 3, 0, 0, 0, 0, 0, 19, 0, "层板", "", "", "", "", "", 0, 0, "三合一", 2, 3, 1, 1, 1, "1", "1", "1", "1", "", "", "", 5, "三合一", "三合一", "三合一", "三合一", "三合一", true, true, 0, 1, 102, 2, 4, 358, 359, 360, 361, 4, 362, 363, 364, 365, 0, 0, 0, 0, 0, 0, true, 0, 0, null, 0, 0, "", "", "", "", 3, { "description": "" }, { "description": "" }, { "description": "" }, false, 0, ""], "basePt": { "x": 1831.7874698204685, "y": 813.1832386224994, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
await Check(d, 1);
});
test('圆弧板干涉检查3', async () =>
{
let d =
{ "file": [3, "Board", 10, 2, 358, 0, 1, 2, 71, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 3730.7096330325576, 2724.3225088479735, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3730.7096330325576, 2724.3225088479735, 0, 1], 0, 0, 1, 3, 800, 500, 18, false, "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, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 1, 2, 5, [0, 0], 0, [292.0662700106652, 0], 0.41421356237309503, [500, 207.93372998933478], 0, [500, 800], 0, [0, 800], 0, true, 0, 3, 0, 0, 0, 0, 0, 19, 0, "层板", "", "", "", "", "", 0, 0, "三合一", 2, 3, 0, 0, 0, "0", "0", "0", "0", "", "", "", 5, "三合一", "三合一", "三合一", "三合一", "三合一", true, true, 1, "1", "1", 2, 359, 5, 4, 361, 362, 363, 364, 4, 365, 366, 367, 368, 3, 371, 372, 373, 3, 374, 375, 376, 3, 377, 378, 379, 360, 4, 3, 383, 384, 385, 3, 386, 387, 388, 4, 391, 392, 393, 394, 4, 395, 396, 397, 398, 0, 0, 0, 0, 0, 0, true, 0, 0, null, 0, 0, "", "", "", "", 3, { "description": "" }, { "description": "" }, { "description": "" }, false, 0, "", "Board", 10, 2, 359, 0, 1, 2, 71, [0.8479983040050879, -0.52999894000318, 0, 0, 0, 0, 1, 0, -0.52999894000318, -0.8479983040050879, 0, 0, 2930.7096330325576, 3224.3225088479735, 3.0809133022557944e-11, 1], 0, 0, 1, [0.8479983040050879, -0.52999894000318, 0, 0, 0, 0, 1, 0, -0.52999894000318, -0.8479983040050879, 0, 0, 2930.7096330325576, 3224.3225088479735, 3.0809133022557944e-11, 1], 0, 0, 1, 3, 1200, 1336, 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, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 1, 2, 4, [0, 0], 0, [1336, 0], 0, [1336, 1200], 0, [0, 1200], 0, true, 0, 3, 0, 0, 0, 0, 0, 19, 0, "圆弧板", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 1, 358, 5, 4, 361, 362, 363, 364, 4, 365, 366, 367, 368, 3, 371, 372, 373, 3, 374, 375, 376, 3, 377, 378, 379, 0, 0, 0, 0, 0, 0, true, 0, 0, null, 0, 0, "", "", "", "", 0, false, 0, "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.8479983040050879, -0.52999894000318, 0, 0, -0.52999894000318, -0.8479983040050879, 0, 0, 0, 0, -1, 0, -1443.3438319990282, 583.0261051057685, 781.3702416451415, 1], 0, 0, 1, 2, 3, [0, -5.684341886080802e-14], 0, [264.9994700015901, 423.9991520025436], 0, [943.3981132056601, 0], 0, false, 0, 0, true, 1, -1, 0, 6, 6, 2, 0, 0, 0, 3, 0, "Board", 10, 2, 360, 0, 1, 2, 71, [-0.8479983040050879, 0.5299989400031802, 0, 0, 0, 0, 1, 0, 0.5299989400031802, 0.8479983040050879, 0, 0, 3730.7096298449096, 2724.3225088479735, 3.0809133022557944e-11, 1], 0, 0, 1, [-0.8479983040050879, 0.5299989400031802, 0, 0, 0, 0, 1, 0, 0.5299989400031802, 0.8479983040050879, 0, 0, 3730.7096298449096, 2724.3225088479735, 3.0809133022557944e-11, 1], 0, 0, 1, 3, 1200, 1239.02841, 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, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 1, 2, 4, [0, 0], 0, [1239.02841, 0], 0, [1239.02841, 1200], 0, [0, 1200], 0, true, 0, 3, 0, 0, 0, 0, 0, 19, 0, "圆弧板", "", "", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 1, 358, 4, 3, 383, 384, 385, 3, 386, 387, 388, 4, 391, 392, 393, 394, 4, 395, 396, 397, 398, 0, 0, 0, 0, 0, 0, true, 0, 0, null, 0, 0, "", "", "", "", 0, false, 0, "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.8479983040050879, 0.5299989400031802, 0, 0, 0.5299989400031802, 0.8479983040050879, 0, 0, 0, 0, -1, 0, 1913.9665411401543, -1266.7111130584567, 781.3702416451415, 1], 0, 0, 1, 2, 4, [0, 0], 0, [154.7948135163351, 247.6717016261362], -0.41421356237309503, [441.32692037799757, 313.79449551728925], 0, [943.3981132056606, -5.684341886080802e-14], 0, false, 0, 0, true, 2, -1, 0, 6, 6, 2, 0, 0, 0, 3, 0, 1, 354.89587, 6, 6, 2, 0, 0, 0, 3, 0], "basePt": { "x": 2679.9006452701487, "y": 2338.682052343912, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
await Check(d, 0);
});
test('圆弧板干涉检查#I2DXNO', async () =>
{
let d =
{ "file": [2, "Board", 10, 2, 236, 0, 1, 2, 71, [0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 3582, 402, 2101.3333333333335, 1], 234, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1254, 380, 1417.9999999999998, 1], 0, 0, 1, 3, 1903.5460465116278, 306, 18, false, "Polyline", 10, 2, 0, 0, 0, 7, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 2328, 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, 12, [0, -2328], 0, [306, -2328], 0, [306, -1560.6666666666665], 0, [143, -1560.6666666666665], 0, [143, -1542.6666666666665], 0, [306, -1542.6666666666665], 0, [306, -785.3333333333335], 0, [143, -785.3333333333335], 0, [143, -767.3333333333335], 0, [306, -767.3333333333337], 0, [306, -424.45395348837224], 0, [0, -424.45395348837224], 0, true, 1, 3, 12, 1903.5460465116275, 12, true, "Polyline", 10, 2, 0, 0, 0, 7, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1201.8223828368555, -394.6622800510993, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1201.8223828368555, -394.6622800510993, 0, 1], 0, 0, 1, 2, 4, [1201.8223828368555, 394.6622800510993], 0, [3105.368429348483, 394.6622800510993], 0, [3105.368429348483, 406.6622800510993], 0, [1201.8223828368555, 406.6622800510993], 0, true, 0, 4.5, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1678.4539534883725, 549.75, 2101.3333333333335, 1], 3, 0, 0, 0, 0, 0, 19, 0, "层板", "餐边柜", "餐边柜", "", "", "", 0, 1, "**多种**", 2, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, "1", "1", "1", "1", "", "", "", 12, "木得易", "木得易", "不排", "不排", "不排", "木得易", "不排", "不排", "不排", "木得易", "木得易", "木得易", true, true, 0, 0, 0, 0, 0, 0, 2, 5241, 5683, 0, true, 0, 0, null, 0, 0, "", "", "", "", 12, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, false, 0, "", "Board", 10, 2, 5725, 0, 1, 11, 71, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2021.3333333333335, 402, 1882.665121365555, 1], 287, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2021.3333333333335, 402, 1417.9999999999998, 1], 0, 0, 1, 3, 569.334878634445, 306, 18, false, "Polyline", 10, 2, 0, 0, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -464.66512136555525, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -464.66512136555525, 0, 1], 0, 0, 1, 2, 8, [0, 464.66512136555525], 0, [306, 464.66512136555525], 0, [306, 1034.0000000000002], 0, [0, 1034.0000000000002], 0, [0, 701.3333333333335], 0, [153, 701.3333333333335], 0, [153, 683.3333333333335], 0, [0, 683.3333333333335], 0, true, 0, 3, 0, 0, 0, 0, 0, 19, 1, "立板", "餐边柜", "餐边柜", "", "", "", 0, 0, "**多种**", 2, 8, 1, 1, 1, 1, 1, 1, 1, 1, "1", "1", "1", "1", "", "", "", 8, "木得易", "木得易", "不排", "木得易", "木得易", "不排", "木得易", "木得易", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, null, 0, 0, "", "", "", "", 8, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, { "description": "" }, false, 0, ""], "basePt": { "x": 1678.4539534883722, "y": 402, "z": 1882.665121365555 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
await Check(d, 0);
});
});