|
|
|
@ -55,6 +55,8 @@ test('IKKGK圆与直线补圆弧', () =>
|
|
|
|
|
cus = pl.GetOffsetCurves(-1.926388985025112);
|
|
|
|
|
EntityToMatchSnapshot(cus);
|
|
|
|
|
});
|
|
|
|
|
describe("闭合多段线", () =>
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
test('闭合多段线偏移测试1', () =>
|
|
|
|
|
{
|
|
|
|
@ -268,10 +270,17 @@ test('闭合多段线偏移测试9', () =>
|
|
|
|
|
[1, ["Polyline", 1, 1, 12283, false, 2, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2494.1602062139054, -154.37421492307953, 0, 1], 2, 4, [-835.9056689963722, -81.71614968554674], -1.404257507243489, [-2.5205246091134654, -224.3682931983378], -0.7704346688180675, [-677.9527382520764, -55.635630094036955], 0, [-835.9056689963722, -81.71614968554674], 0, false]];
|
|
|
|
|
let cus = loadFile(data);
|
|
|
|
|
//外偏移 -
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//内偏移+
|
|
|
|
|
|
|
|
|
|
for (let i = -350; i <= 350; i += 50)
|
|
|
|
|
{
|
|
|
|
|
if (i === 0) continue;
|
|
|
|
|
expect(cus[0].GetOffsetCurves(i).length).toBe(1);
|
|
|
|
|
}
|
|
|
|
|
expect(cus[0].GetOffsetCurves(360).length).toBe(0);
|
|
|
|
|
for (let i = 360; i <= 460; i += 50)
|
|
|
|
|
{
|
|
|
|
|
expect(cus[0].GetOffsetCurves(i).length).toBe(0);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
test('闭合多段线偏移测试10', () =>
|
|
|
|
|
{
|
|
|
|
@ -371,27 +380,70 @@ test('闭合多段线偏移测试14', () =>
|
|
|
|
|
[1, ["Polyline", 1, 1, 1625, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 2, 14, [340.820007357324, -3.870032999900914], 0, [431.6163856609081, 116.2815653567217], 0, [485.54806901416487, 54.84040710617603], 0, [533.3356365423672, 67.81131829240235], 0, [624.1320148459513, 40.504136847715344], 0, [656.9006325795757, 23.43714844478601], -0.783383849320176, [633.0068488154745, -74.86870475608706], 0.4462700081240285, [605.0169878346704, -106.27196341747704], -0.8416099256631104, [529.9222388617812, -128.11770857322662], 0, [510.1245323143834, -22.98506001118185], 0, [430.251026588674, -129.48306764546098], 0, [430.251026588674, -65.99387078656383], 0, [351.74287993519897, -145.86737651227318], 0, [303.2726328708796, -87.83961594231337], 0, true]];
|
|
|
|
|
let cus = loadFile(data);
|
|
|
|
|
//外偏移 -
|
|
|
|
|
for (let i = 0.5; i <= 2; i += 0.5)
|
|
|
|
|
for (let i = 10; i <= 90; i += 10)
|
|
|
|
|
{
|
|
|
|
|
// expect(cus[0].GetOffsetCurves(-i).length).toBe(1);
|
|
|
|
|
expect(cus[0].GetOffsetCurves(-i).length).toBe(1);
|
|
|
|
|
}
|
|
|
|
|
//内偏移+
|
|
|
|
|
// expect(cus[0].GetOffsetCurves(1).length).toBe(1);
|
|
|
|
|
// expect(cus[0].GetOffsetCurves(1.2).length).toBe(3);
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
test('提前丢失所有的线段', () =>
|
|
|
|
|
for (let i = 5; i <= 25; i += 10)
|
|
|
|
|
{
|
|
|
|
|
let f = new CADFile();
|
|
|
|
|
|
|
|
|
|
f.Data =
|
|
|
|
|
[1, ["Polyline", 1, 1, 12, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -17.386067452264705, 17.11283965241085, 0, 1], 2, 3, [108.37693694676932, 28.257776463252547], 0.4472440944881872, [108.37693694676932, 17.68555707305448], 3.5940684866260213, [111.70676982557188, 14.089337563947739], 0.5086040192926764, false]];
|
|
|
|
|
|
|
|
|
|
f.Read();
|
|
|
|
|
|
|
|
|
|
let pl = f.ReadObject() as Polyline;
|
|
|
|
|
expect(cus[0].GetOffsetCurves(i).length).toBe(1);
|
|
|
|
|
}
|
|
|
|
|
expect(cus[0].GetOffsetCurves(26.5).length).toBe(2);
|
|
|
|
|
expect(cus[0].GetOffsetCurves(36).length).toBe(2);
|
|
|
|
|
expect(cus[0].GetOffsetCurves(36.1).length).toBe(3);
|
|
|
|
|
expect(cus[0].GetOffsetCurves(45).length).toBe(2);
|
|
|
|
|
expect(cus[0].GetOffsetCurves(60).length).toBe(1);
|
|
|
|
|
for (let i = 71; i <= 101; i += 10)
|
|
|
|
|
{
|
|
|
|
|
expect(cus[0].GetOffsetCurves(i).length).toBe(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let cus = pl.GetOffsetCurves(-7.155086190577401);
|
|
|
|
|
})
|
|
|
|
|
test('闭合多段线偏移测试15', () =>
|
|
|
|
|
{
|
|
|
|
|
let data =
|
|
|
|
|
[1, ["Polyline", 1, 1, 394, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 2, 8, [-3.096429035694039, 1.977370035127478], 0, [2.646251476487261, 5.186031066288948], -0.5113280232193118, [8.158566581303122, 2.619102241359773], 0.23700604598013766, [11.103952861189804, -1.2148363240793185], -1.4842976346055852, [7.994019861756378, -4.028585228328609], 0.5402454464135219, [3.1398916351274853, -2.8932128634560885], -1.0879771453350477, [1.4615150957507161, -0.803469525212464], -0.082022192610066, [-3.096429035694039, 1.977370035127478], 0, true]];
|
|
|
|
|
let cus = loadFile(data);
|
|
|
|
|
//外偏移 -
|
|
|
|
|
for (let i = 0.5; i <= 5.5; i += 1)
|
|
|
|
|
{
|
|
|
|
|
expect(cus[0].GetOffsetCurves(-i).length).toBe(1);
|
|
|
|
|
}
|
|
|
|
|
//内偏移+
|
|
|
|
|
for (let i = 0.1; i <= 1.8; i += 0.3)
|
|
|
|
|
{
|
|
|
|
|
expect(cus[0].GetOffsetCurves(i).length).toBe(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
expect(cus.length).toBe(0);
|
|
|
|
|
});
|
|
|
|
|
for (let i = 1.9; i <= 2.2; i += 0.05)
|
|
|
|
|
{
|
|
|
|
|
expect(cus[0].GetOffsetCurves(i).length).toBe(2);
|
|
|
|
|
}
|
|
|
|
|
for (let i = 2.3; i <= 3.7; i += 0.2)
|
|
|
|
|
{
|
|
|
|
|
expect(cus[0].GetOffsetCurves(i).length).toBe(1);
|
|
|
|
|
}
|
|
|
|
|
for (let i = 3.9; i <= 6.9; i += 0.5)
|
|
|
|
|
{
|
|
|
|
|
expect(cus[0].GetOffsetCurves(i).length).toBe(0);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
test('闭合多段线偏移测试16', () =>
|
|
|
|
|
{
|
|
|
|
|
let data =
|
|
|
|
|
[1, ["Polyline", 1, 1, 4, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 2, 5, [-6.203966005665723, -0.056657223796033884], 0, [-1.8834846458923415, -0.923353563739375], -1.4125691360015384, [-1.9069913201133035, -1.5932937790368253], 0, [-6.189801699716714, -2.2096317280453257], -2.3881275241710798, [-6.203966005665723, -0.056657223796033884], 0, true]];
|
|
|
|
|
let cus = loadFile(data);
|
|
|
|
|
//外偏移 -
|
|
|
|
|
//内偏移+
|
|
|
|
|
for (let i = -1.5; i <= 1.5; i += 0.2)
|
|
|
|
|
{
|
|
|
|
|
expect(cus[0].GetOffsetCurves(i).length).toBe(1);
|
|
|
|
|
}
|
|
|
|
|
expect(cus[0].GetOffsetCurves(1.6).length).toBe(0);
|
|
|
|
|
for (let i = 1.6; i <= 4.6; i++)
|
|
|
|
|
{
|
|
|
|
|
expect(cus[0].GetOffsetCurves(i).length).toBe(0);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|