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__/dxf/dxf_el.test.ts

32 lines
9.4 KiB

import { DxfWriter } from "dxf-write";
import { Conver2DxfEntity } from "../../src/Add-on/ACAD/Entity2DxfEntity";
import { Ellipse } from "../../src/DatabaseServices/Entity/Ellipse";
import { LoadEntityFromFileData } from "../Utils/LoadEntity.util";
test('测试椭圆导出', () =>
{
let d =
{ "file": [1, "Ellipse", 10, 2, 100, 0, 1, 8, 0, [1, -1.224646799147353e-16, 0, 0, -1.224646799147353e-16, -1, 0, 0, 0, 0, -1, 0, 1125.3161763730257, 534.314974743387, 0, 1], 0, 0, 1, [1, -1.224646799147353e-16, 0, 0, -1.224646799147353e-16, -1, 0, 0, 0, 0, -1, 0, 697086.744540745, -757821.0258150058, 0, 1], 0, 0, 1, 1, 17.49999999993635, 14.488887394196366, 3.1415926535898886, 2.179041854509288, 7.245736003887706], "basePt": { "x": 1107.8260869565217, "y": 519.8260869565217, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let el = LoadEntityFromFileData(d.file)[0] as Ellipse;
let dxf = new DxfWriter();
let dxfel = Conver2DxfEntity(el, dxf);
expect(dxfel).toMatchSnapshot();
});
test('任意轴坐标系椭圆', () =>
{
let d =
{ "file": [25, "Ellipse", 10, 2, 100, 0, 1, 7, 71, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 337.7892030848327, 0, 558.6118251930241, 1], 0, 0, 1, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1], 0, 0, 1, 1, 180.46272493573247, 235.26781058609194, 0, 0, 6.283185307179586, "Ellipse", 10, 2, 101, 0, 1, 7, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 971.2021372138901, 9.979027876158327, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 202.24008451235454, 0, 0, 1], 0, 0, 1, 1, 276.94466629724116, 170.64007130729925, 0.08377294374376669, 0, 6.283185307179586, "Ellipse", 10, 2, 102, 0, 1, 7, 71, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 376.2787636521916, 553.5769614228184, 1], 0, 0, 1, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1], 0, 0, 1, 1, 409.9210746204874, 164.64043160986785, -1.5707963267948966, 0, 6.283185307179586, "Ellipse", 10, 2, 103, 0, 1, 7, 71, [0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, -418.67323531214146, 679.4023475206053, 1], 0, 0, 1, [0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 1], 0, 0, 1, 1, 192.24386658825847, 248.01477883417138, -1.5707963267948966, 0, 6.283185307179586, "Ellipse", 10, 2, 104, 0, 1, 7, 71, [-1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, -722.7831100972741, 34.28543499417401, 0, 1], 0, 0, 1, [-1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1], 0, 0, 1, 1, 245.33114810826905, 132.8877052253124, -1.5707963267948966, 0, 6.283185307179586, "Ellipse", 10, 2, 105, 0, 1, 7, 71, [-1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, -919.2452469445237, 0, 575.1871269736582, 1], 0, 0, 1, [-1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1], 0, 0, 1, 1, 135.55332237286532, 67.09547142355302, -0.7853981633974483, 0, 6.283185307179586, "Ellipse", 10, 2, 106, 0, 1, 7, 71, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 2881.606171887065, 0, 765.5826058907224, 1], 0, 0, 1, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1], 0, 0, 1, 1, 578.140759867666, 398.06412974495015, -1.5707963267948966, 0, 6.283185307179586, "Ellipse", 10, 2, 107, 0, 1, 7, 71, [-0.7071067811866616, 0, -0.7071067811864334, 0, 0.7071067811864334, 0, -0.7071067811866616, 0, 0, -1, 0, 0, 4383.718724957772, 0, 844.4497602985355, 1], 0, 0, 1, [-0.7071067811866616, 0, -0.7071067811864334, 0, 0.7071067811864334, 0, -0.7071067811866616, 0, 0, -1, 0, 0, 6831.623005709384, 0, 4428.665411224347, 1], 0, 0, 1, 1, 454.9304339942287, 603.0837717578362, -1.5707963267948966, 0, 6.283185307179586, "Ellipse", 10, 2, 108, 0, 1, 7, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6149.580932239946, 83.56987103451945, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 1, 1, 683.0077999476371, 318.25078437418193, -1.5707963267948966, 0, 6.283185307179586, "Ellipse", 10, 2, 109, 0, 1, 7, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7216.19585270612, -66.13046868003096, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 1, 1, 652.3273894819047, 211.70825071620195, -0.14392544938821647, 0, 6.283185307179586, "Ellipse", 10, 2, 110, 0, 1, 7, 71, [0.7071067811866076, -0.7071067811864874, 0, 0, 0.7071067811864874, 0.7071067811866076, 0, 0, 0, 0, 1, 0, 8709.485094419037, 403.402459189384, 0, 1], 0, 0, 1, [0.7071067811866076, -0.7071067811864874, 0, 0, 0.7071067811864874, 0.7071067811866076, 0, 0, 0, 0, 1, 0, 2681.09059871903, 6565.014857591026, 0, 1], 0, 0, 1, 1, 278.18194271168045, 467.8135616079704, -1.2277723863741916, 0, 6.283185307179586, "Ellipse", 10, 2, 111, 0, 1, 7, 71, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1495.2977034058104, 726.4288182666232, 1], 0, 0, 1, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1], 0, 0, 1, 1, 399.6103614450765, 217.88313940064288, -1.5707963267948966, 0, 6.283185307179586, "Ellipse", 10, 2, 112, 0, 1, 7, 71, [0, 0.7071067811866039, 0.7071067811864912, 0, 0, -0.7071067811864912, 0.7071067811866039, 0, 1, 0, 0, 0, 0, 2509.463837080227, 561.0221982778894, 1], 0, 0, 1, [0, 0.7071067811866039, 0.7071067811864912, 0, 0, -0.7071067811864912, 0.7071067811866039, 0, 1, 0, 0, 0, 0, 1301.9287441934268, -1680.6472296062252, 1], 0, 0, 1, 1, 240.72913340064906, 102.0691525618754, 0, 0, 6.283185307179586, "Ellipse", 10, 2, 113, 0, 1, 7
let els = LoadEntityFromFileData(d.file) as Ellipse[];
let dxf = new DxfWriter();
for (let el of els)
{
let dxfel = Conver2DxfEntity(el, dxf);
expect(dxfel).toMatchSnapshot();
}
});