mirror of https://gitee.com/cf-fz/WebCAD.git
parent
7793c60ed9
commit
e4d565dda2
@ -0,0 +1,47 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`异形优化测试 1`] = `
|
||||||
|
Array [
|
||||||
|
1,
|
||||||
|
1.959058347014103,
|
||||||
|
2,
|
||||||
|
-1,
|
||||||
|
0,
|
||||||
|
undefined,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
Object {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
},
|
||||||
|
Array [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
],
|
||||||
|
Array [
|
||||||
|
94,
|
||||||
|
94,
|
||||||
|
],
|
||||||
|
-1,
|
||||||
|
0,
|
||||||
|
undefined,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
Object {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
},
|
||||||
|
Array [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
],
|
||||||
|
Array [
|
||||||
|
1194,
|
||||||
|
2394,
|
||||||
|
],
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
]
|
||||||
|
`;
|
@ -0,0 +1,99 @@
|
|||||||
|
import { Circle } from "../../src/DatabaseServices/Entity/Circle";
|
||||||
|
import { Polyline } from "../../src/DatabaseServices/Entity/Polyline";
|
||||||
|
import { InitClipperCpp } from "../../src/Nest/Common/ClipperCpp";
|
||||||
|
import { NestFiler } from "../../src/Nest/Common/Filer";
|
||||||
|
import { CurveWrap } from "../../src/Nest/Converter/CurveWrap";
|
||||||
|
import { Circle2Points } from "../../src/Nest/Converter/Curves2Points";
|
||||||
|
import { DefaultBin } from "../../src/Nest/Core/DefaultBin";
|
||||||
|
import { Individual } from "../../src/Nest/Core/Individual";
|
||||||
|
import { NestCache } from "../../src/Nest/Core/NestCache";
|
||||||
|
import { DefaultComparePointKeys, NestDatabase } from "../../src/Nest/Core/NestDatabase";
|
||||||
|
import { OptimizeMachine } from "../../src/Nest/Core/OptimizeMachine";
|
||||||
|
import { Part } from "../../src/Nest/Core/Part";
|
||||||
|
import { Path } from "../../src/Nest/Core/Path";
|
||||||
|
import { PathGeneratorSingle } from "../../src/Nest/Core/PathGenerator";
|
||||||
|
|
||||||
|
//@ts-ignore
|
||||||
|
globalThis.document = {};
|
||||||
|
|
||||||
|
export function Curve2Path(curve: Circle | Polyline, outside = false): Path
|
||||||
|
{
|
||||||
|
if (curve.IsClockWise)
|
||||||
|
curve.Reverse();
|
||||||
|
if (curve instanceof Circle)
|
||||||
|
{
|
||||||
|
return new Path(Circle2Points(curve, 0, 10, outside), 3);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
let w = new CurveWrap(curve, 3, outside);
|
||||||
|
return new Path(outside ? w.GetOutsidePoints() : w.GetInsidePoints());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
test('异形优化测试', async () =>
|
||||||
|
{
|
||||||
|
await InitClipperCpp();
|
||||||
|
|
||||||
|
PathGeneratorSingle.Clear();
|
||||||
|
NestCache.Clear();
|
||||||
|
DefaultBin.InsideNFPCache = {};
|
||||||
|
|
||||||
|
let binPath = DefaultBin;
|
||||||
|
binPath.Id = undefined;
|
||||||
|
PathGeneratorSingle.RegisterId(binPath);
|
||||||
|
|
||||||
|
let path = Curve2Path(new Polyline().Rectangle(100, 100));
|
||||||
|
let part1 = new Part().Init(path, binPath);
|
||||||
|
|
||||||
|
let path2 = Curve2Path(new Polyline().Rectangle(1200, 2400));
|
||||||
|
let part2 = new Part().Init(path2, binPath);
|
||||||
|
|
||||||
|
part1.IsPrePlace = true;
|
||||||
|
part2.IsPrePlace = false;
|
||||||
|
|
||||||
|
let parts = [part1, part2];
|
||||||
|
|
||||||
|
parts.forEach((p, i) => p.Id = i);
|
||||||
|
|
||||||
|
let db = new NestDatabase();
|
||||||
|
db.Paths = PathGeneratorSingle.paths;
|
||||||
|
db.Parts = parts;
|
||||||
|
db.Bin = DefaultBin;
|
||||||
|
db.OddmentsBins = [];
|
||||||
|
db.ComparePointKeys = DefaultComparePointKeys;
|
||||||
|
|
||||||
|
let f = new NestFiler();
|
||||||
|
db.WriteFile(f);
|
||||||
|
|
||||||
|
db = new NestDatabase;
|
||||||
|
db.ReadFile(f);
|
||||||
|
|
||||||
|
let m = new OptimizeMachine;
|
||||||
|
m.Bin = db.Bin;
|
||||||
|
m.OddmentsBins = db.OddmentsBins;
|
||||||
|
|
||||||
|
|
||||||
|
m.PutParts(db.Parts);
|
||||||
|
|
||||||
|
let promise = new Promise<void>((res, rej) =>
|
||||||
|
{
|
||||||
|
m.callBack = async (inv) =>
|
||||||
|
{
|
||||||
|
m.Suspend();
|
||||||
|
|
||||||
|
let f = new NestFiler;
|
||||||
|
inv.WriteFile(f);
|
||||||
|
expect(f._datas).toMatchSnapshot();
|
||||||
|
|
||||||
|
let inv2 = new Individual(db.Parts);
|
||||||
|
inv2.ReadFile(f);
|
||||||
|
|
||||||
|
res();
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
m.Start();
|
||||||
|
|
||||||
|
await promise;
|
||||||
|
});
|
Loading…
Reference in new issue