开发更新

This commit is contained in:
ChenX
2024-03-26 10:01:15 +08:00
parent ed08696189
commit 070821c353
498 changed files with 5192 additions and 10640 deletions

View File

@@ -1,13 +0,0 @@
import { Vector3 } from 'three';
import { Circle } from '../DatabaseServices/Entity/Circle';
import { Curve } from '../DatabaseServices/Entity/Curve';
import { Ellipse } from '../DatabaseServices/Entity/Ellipse';
import { Polyline } from '../DatabaseServices/Entity/Polyline';
export declare enum BoolOpeartionType {
Intersection = 0,
Union = 1,
Subtract = 2
}
export declare function isTargetCurInOrOnSourceCur(bigCurve: Polyline | Circle | Ellipse, smallCurve: Curve): boolean;
export declare function IsPtsAllOutOrOnReg(sourceReg: Polyline | Circle, pts: Vector3[]): boolean;
//# sourceMappingURL=BoolOperateUtils.d.ts.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"BoolOperateUtils.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/BoolOperateUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAG/D,oBAAY,iBAAiB;IAEzB,YAAY,IAAI;IAChB,KAAK,IAAI;IACT,QAAQ,IAAI;CACf;AAMD,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,EAAE,UAAU,EAAE,KAAK,WAmBlG;AA+BD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAO9E"}

View File

@@ -1,55 +0,0 @@
import { Board } from "../DatabaseServices/Entity/Board";
import { Curve } from "../DatabaseServices/Entity/Curve";
import { ExtrudeContourCurve } from "../DatabaseServices/Entity/Extrude";
import { IHighSealedItem } from "../UI/Store/OptionInterface/IHighSealedItem";
type CurveGroups = (Curve[])[];
/**
* 将曲线分段(根据高级封边的特性 (因为圆弧无法单独使用封边,所以和圆弧在一起的曲线必须和圆弧一样的封边,否则偏移失败))
* @l-arc-l,l-arc-arc-l,l-arc-l-arc-l....
* @param in_out_curves 曲线组( 函数结束后 这个数组被改变 )
* @returns 返回编组 curveGroups
*/
export declare function SubsectionCurvesOfHightSeal(in_out_curves: Curve[]): CurveGroups;
export declare function GetBoardHighSeal(br: Board, sealcus: Curve[]): IHighSealedItem[];
/**偏移前后曲线起点没改变 */
export declare function OffsetOutlineSpNotChange(oldcu: Curve, newCu: Curve): boolean;
/**
* 获取板件的轮廓曲线数组(合并共线了 已经对封边进行合并了 尊重原始时针)
* GetBrContourCurvesBySealGrouped
* @param offsetInside 向内偏移1(为了编辑封边)
* */
export declare function GetBoardSealingCurves(br: Board, offsetInside?: boolean): Curve[];
export interface BrSealedData {
brContour: ExtrudeContourCurve;
sealedContour: ExtrudeContourCurve;
brCurves: Curve[];
highSeals: IHighSealedItem[];
}
/**
* 获取板件的轮廓(没有扣封边)(拆单时表现)
* 在拆单的时候 我们用这个轮廓(为了数据对应准确性)
* 修改时 请注意函数 GetSealedBoardContour
*/
export declare function GetBoardContour(br: Board): ExtrudeContourCurve | undefined;
/**
* 获取板件(扣封边后的)轮廓(拆单时)
* 修改时 请注意函数 GetBoardContour
*/
export declare function GetSealedBoardContour(br: Board): BrSealedData | undefined;
/**
* 将11对应的封边数值改成WebCAD的高级封边
* @param seals 每段曲线的封边
* @param curves 曲线表
* @returns 转换成高级封边后的封边值 (圆弧会编组)
*/
export declare function ConverEachSeal2HightSealData(seals: IHighSealedItem[], curves: Curve[]): IHighSealedItem[];
/**
* 设置板的上下左右封边(解析来自高级封边)
* @param br
* @param sealDatas 封边数据
* @param [sealCurves] 封边的曲线
* @param [brContourCurve] 传递封边的曲线轮廓
*/
export declare function SetBoardTopDownLeftRightSealData(br: Board, sealDatas: IHighSealedItem[], sealCurves?: Curve[], brContourCurve?: ExtrudeContourCurve): void;
export {};
//# sourceMappingURL=CalcEdgeSealing.d.ts.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"CalcEdgeSealing.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/CalcEdgeSealing.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAOzE,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAI9E,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;AAE/B;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,WAAW,CAkH/E;AAID,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAoD/E;AAED,iBAAiB;AACjB,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,WASlE;AAED;;;;KAIK;AACL,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,UAAQ,GAAG,KAAK,EAAE,CA6B9E;AAGD,MAAM,WAAW,YAAY;IAEzB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,aAAa,EAAE,mBAAmB,CAAC;IAEnC,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,SAAS,EAAE,eAAe,EAAE,CAAC;CAChC;AA2BD;;;;EAIE;AACF,wBAAgB,eAAe,CAAC,EAAE,EAAE,KAAK,GAAG,mBAAmB,GAAG,SAAS,CAkB1E;AAGD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,KAAK,GAAG,YAAY,GAAG,SAAS,CA8JzE;AAGD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAgBzG;AAGD;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,CAAC,EAAE,mBAAmB,QAyCnJ"}

View File

@@ -1,72 +0,0 @@
import { Box3, OrthographicCamera, PerspectiveCamera, Vector3 } from 'three';
import { CADFiler } from '../DatabaseServices/CADFiler';
import { Orbit } from '../Geometry/Orbit';
export declare const ViewNearMinSize = 0.01;
export declare enum CameraType {
OrthographicCamera = 1,
PerspectiveCamera = 2
}
type Camera = OrthographicCamera | PerspectiveCamera;
/**
*
* 相机的控制.
* ->切换相机
* ->设置视口大小
* ->旋转和移动相机.
*/
export declare class CameraUpdate {
private _CurCamera;
private _CameraArray;
private _Width;
private _Height;
private _ViewHeight;
private _Target;
private _Direction;
private _Orbit;
private _Near;
DisableRotate: boolean;
constructor();
get Orbit(): Orbit;
get Aspect(): number;
get Target(): Vector3;
get Camera(): Camera;
get ViewHeight(): number;
set ViewHeight(height: number);
get Direction(): Vector3;
SetSize(width: number, height: number): void;
get Width(): number;
get Height(): number;
get Fov(): number;
set Fov(fov: number);
get Near(): number;
set Near(value: number);
/**
* 平移相机.
* @param {Vector3} mouseMove
*/
Pan(mouseMove: Vector3): void;
Rotate(mouseMove: Vector3, target: Vector3): void;
UpdateCameraMatrix(): void;
Zoom(scale: number, scaleCenter?: Vector3): void;
ZoomExtentsBox3(box3: Box3): void;
/**
* 设置相机的观察向量.
* @param {Vector3} dir 方向向量,这个向量传入后会被更改为单位向量
*/
LookAt(dir: Vector3): void;
LookAtEvent(dir: Vector3): void;
UpdateUp(): void;
/**
* 根据视口大小,设置相机视口范围.
*/
Update(): void;
ZoomEvent(): void;
set CameraType(type: CameraType);
get CameraType(): CameraType;
SwitchCamera(): void;
ReadFile(file: CADFiler): void;
WriteFile(file: CADFiler): void;
CopyFrom(camer: CameraUpdate): void;
}
export {};
//# sourceMappingURL=CameraUpdate.d.ts.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"CameraUpdate.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/CameraUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAa,kBAAkB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAExF,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,eAAO,MAAM,eAAe,OAAO,CAAC;AAUpC,oBAAY,UAAU;IAElB,kBAAkB,IAAI;IACtB,iBAAiB,IAAI;CACxB;AAED,KAAK,MAAM,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;AAErD;;;;;;GAMG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAA4C;IAGhE,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,WAAW,CAAgB;IAGnC,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,UAAU,CAAkC;IAEpD,OAAO,CAAC,MAAM,CAAsB;IAGpC,OAAO,CAAC,KAAK,CAA2B;IAExC,aAAa,UAAS;;IAkBtB,IAAI,KAAK,UAA0B;IAEnC,IAAI,MAAM,IAAI,MAAM,CAGnB;IAED,IAAI,MAAM,YAA2B;IAErC,IAAI,MAAM,IAAI,MAAM,CAGnB;IACD,IAAI,UAAU,WAGb;IACD,IAAI,UAAU,CAAC,MAAM,QAAA,EAIpB;IAED,IAAI,SAAS,YAGZ;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAKrC,IAAI,KAAK,WAGR;IACD,IAAI,MAAM,WAGT;IAED,IAAI,GAAG,IAKM,MAAM,CAFlB;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAKlB;IAED,IAAW,IAAI,IAAI,MAAM,CAGxB;IACD,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,EAM5B;IAED;;;OAGG;IACH,GAAG,CAAC,SAAS,EAAE,OAAO;IAStB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IA4C1C,kBAAkB;IAWlB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO;IAoBzC,eAAe,CAAC,IAAI,EAAE,IAAI;IA0B1B;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,OAAO;IAQnB,WAAW,CAAC,GAAG,EAAE,OAAO;IAExB,QAAQ;IAIR;;OAEG;IACH,MAAM;IAyBN,SAAS;IAIT,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,EAI9B;IACD,IAAI,UAAU,IALO,UAAU,CAW9B;IAED,YAAY;IAaZ,QAAQ,CAAC,IAAI,EAAE,QAAQ;IA8BvB,SAAS,CAAC,IAAI,EAAE,QAAQ;IAYxB,QAAQ,CAAC,KAAK,EAAE,YAAY;CAS/B"}

View File

@@ -1,12 +0,0 @@
import { BufferGeometry, Object3D, Points, PointsMaterial } from 'three';
export declare class GripScene extends Object3D {
_GripMaterial: PointsMaterial;
_GripMap: Map<Object3D, Points<import("three").Geometry | BufferGeometry, import("three").Material | import("three").Material[]>>;
constructor();
Append(obj: Object3D): void;
Remove(obj: Object3D): void;
Clear(): void;
Update(entity: Object3D): void;
UpdateAll(): void;
}
//# sourceMappingURL=GripScene.d.ts.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"GripScene.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/GripScene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAKzE,qBAAa,SAAU,SAAQ,QAAQ;IAGnC,aAAa,EAAE,cAAc,CAAC;IAE9B,QAAQ,0HAA+B;;IAWvC,MAAM,CAAC,GAAG,EAAE,QAAQ;IAiBpB,MAAM,CAAC,GAAG,EAAE,QAAQ;IAYpB,KAAK;IASL,MAAM,CAAC,MAAM,EAAE,QAAQ;IAKvB,SAAS;CAqBZ"}

View File

@@ -1,8 +0,0 @@
import { Camera, Scene } from "three";
export interface IViewer {
Camera: Camera;
Width: number;
Height: number;
Scene: Scene;
}
//# sourceMappingURL=IView.d.ts.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"IView.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/IView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,WAAW,OAAO;IAEpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CAChB"}

View File

@@ -1,74 +0,0 @@
import { Vector3 } from 'three';
import { Arc } from '../DatabaseServices/Entity/Arc';
import { Circle } from '../DatabaseServices/Entity/Circle';
import { Curve } from '../DatabaseServices/Entity/Curve';
import { Ellipse } from '../DatabaseServices/Entity/Ellipse';
import { Line } from '../DatabaseServices/Entity/Line';
import { Polyline } from '../DatabaseServices/Entity/Polyline';
/**
* 相交延伸选项.
*
* @export
* @enum {number}
*/
export declare enum IntersectOption {
/**
* 两者都不延伸
*/
ExtendNone = 0,
/**
* 延伸自身
*/
ExtendThis = 1,
/**
* 延伸参数
*/
ExtendArg = 2,
/**
* 延伸两者
*/
ExtendBoth = 3
}
export interface IntersectResult {
pt: Vector3;
thisParam: number;
argParam: number;
}
export declare function reverseIntersectOption(intType: IntersectOption): IntersectOption;
export declare function IntersectCircleAndCircle(cu1: Circle | Arc, cu2: Circle | Arc, tolerance?: number): IntersectResult[];
/**
* 计算圆与圆弧的交点.
*
* @export
* @param {Circle} circle 圆
* @param {Arc} arc 圆弧
* @param {IntersectOption} extType 延伸选项
* @returns 交点集合
*/
export declare function IntersectCircleAndArc(circle: Circle, arc: Arc, extType: IntersectOption, tolerance?: number): IntersectResult[];
/**
* 计算圆弧与圆弧的交点
*
* @export
* @param {Arc} arc1 圆弧
* @param {Arc} arc2 圆弧
* @param {IntersectOption} extType 延伸选项
* @returns 交点集合
*/
export declare function IntersectArcAndArc(arc1: Arc, arc2: Arc, extType: IntersectOption, tolerance?: number): IntersectResult[];
export declare function IntersectEllipseAndLine(l: Line, el: Ellipse, extType: IntersectOption, tolerance?: number): IntersectResult[];
export declare function IntersectLineAndCircle(line: Line, circle: Circle, extType: IntersectOption, tolerance?: number): IntersectResult[];
export declare function IntersectLineAndArc(line: Line, arc: Arc, extType: IntersectOption, tolerance?: number): IntersectResult[];
export declare function IntersectLAndLFor2D(p1: Vector3, p2: Vector3, p3: Vector3, p4: Vector3): Vector3;
export declare function IntersectLAndLFor2D2(p1: Vector3, p2: Vector3, p3: Vector3, p4: Vector3): Vector3[];
export declare function IntersectLine3AndLine3(p1: Vector3, p2: Vector3, p3: Vector3, p4: Vector3, epsilon?: number): Vector3;
export declare function IntersectLineAndLine(l1: Line, l2: Line, extType: IntersectOption, fuzz?: number): IntersectResult[];
export declare function IntersectPolylineAndCurve(pl: Polyline, cu: Curve, extType: IntersectOption, tolerance?: number): IntersectResult[];
export declare function IntersectLineAndEllipseFor2D(l: Line, el: Ellipse): {
pt: Vector3;
thisParam: number;
argParam: number;
}[];
export declare function IntersectEllipseAndCircleOrArc(el: Ellipse, cir: Circle | Arc, type: IntersectOption): IntersectResult[];
export declare function IntersectEllipse(el1: Ellipse, el2: Ellipse, type: IntersectOption): IntersectResult[];
//# sourceMappingURL=IntersectWith.d.ts.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"IntersectWith.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/IntersectWith.ts"],"names":[],"mappings":"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"}

View File

@@ -1,91 +0,0 @@
import { Box3, Matrix4, Vector3 } from "three";
import { Contour } from "../DatabaseServices/Contour";
import { Arc } from "../DatabaseServices/Entity/Arc";
import { Circle } from "../DatabaseServices/Entity/Circle";
import { Curve } from "../DatabaseServices/Entity/Curve";
import { Line } from "../DatabaseServices/Entity/Line";
import { Polyline } from "../DatabaseServices/Entity/Polyline";
interface IOffsetResult {
index: number;
curve: Curve;
/**偏移距离(仅在局部偏移时提供) */
dist?: number;
sp?: Vector3;
ep?: Vector3;
preCurve?: Curve;
nextCurve?: Curve;
paddingCurve?: Curve[];
}
export declare class CurveTreeNode {
curve: Curve;
children: this[];
box: Box3;
used: boolean;
Create(curve: Curve, box?: Box3): this;
constructor(curve: Curve, box?: Box3);
TrimBy(contour: Contour, box: Box3): void;
get Nodes(): this[];
}
export declare enum PolylineJoinType {
Square = 0,
Round = 1
}
export declare class OffsetPolyline {
_Polyline: Polyline;
_OffsetDist: number;
_ToolPath: boolean;
private _OffsetDistSq;
private _JoinType;
_CacheOCS: Matrix4;
_Vertexs: Vector3[];
_SubCurves: Curve[];
_Circles: Circle[];
_SubOffsetedCurves: IOffsetResult[];
_CurveTreeNodes: CurveTreeNode[];
_CurveTrimedTreeNodes: CurveTreeNode[];
_TrimPolylineContours: Contour[];
_TrimCircleContours: Circle[];
_TrimArcContours: Contour[];
_RetCurves: Polyline[];
_IsClose: boolean;
_OffsetDistSign: number;
_IsTopoOffset: boolean;
/**
*
* @param _Polyline
* @param _OffsetDist
* @param [_ToolPath=false] 走刀模式(在这个模式下,我们会进行圆弧过渡(或者直线过渡)避免尖角过大)
* @param [_OffsetDistSq=(_OffsetDist ** 2) * 2.1] 允许的最大尖角长度 默认值差不多是矩形的尖角大一点
* @param [_JoinType=PolylineJoinType.Round] 尖角的处理方式,默认是圆弧过渡,可以切换成直线过渡
*/
constructor(_Polyline: Polyline, _OffsetDist: number, _ToolPath?: boolean, _OffsetDistSq?: number, //对直角走刀不进行圆弧过度
_JoinType?: PolylineJoinType);
Do(): Polyline[];
InitSubCurves(): this;
protected GeneralCirclesAndVertexs(): void;
protected OffsetSubCurves(): void;
LinkSubCurves(): void;
/**
* 判断两曲线是否尖角化
* 在
* 1.直线和圆弧,圆弧和圆弧
* 2.有交点,无真交点时
* 必须在正确的方向做出延伸动作,所以必须在尖角的情况下延伸,偏移的结果就像一个谷字去掉一个口的结果,上面的人就是偏移后的结果.
* 如果是谷,则允许连接 #I7WKKG
*/
private IsSharpCorner;
protected GeneralTrimContours(): void;
protected TrimByContours(): void;
private FilterInvalidCurve;
private JoinCollinear;
private LinkResultPolyline;
private RepairResultPolylineClosemark;
CheckPointDir(pt: Vector3): boolean;
GetPointAtCurveDir(pt: Vector3): number;
protected CreateArc(center: Vector3, startP: Vector3, endP?: Vector3): Arc;
protected CreateSquare(center: Vector3, curveNow: IOffsetResult, curveNext: IOffsetResult, entTypeCode: number): Line;
}
export declare function EntityEncode2(c1: Curve, c2: Curve): number;
export declare function CurveIsFine(curve: Curve): boolean;
export {};
//# sourceMappingURL=OffsetPolyline.d.ts.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"OffsetPolyline.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/OffsetPolyline.ts"],"names":[],"mappings":"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"}

View File

@@ -1,7 +0,0 @@
import { Curve } from "../DatabaseServices/Entity/Curve";
/**
* 分析曲线的上下左右位置的线
* @param curves
*/
export declare function ParseEdgeSealDir(curves: Curve[]): [number, number, number, number];
//# sourceMappingURL=ParseEdgeSealDir.d.ts.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"ParseEdgeSealDir.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/ParseEdgeSealDir.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAGzD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAiDlF"}

View File

@@ -1,47 +0,0 @@
/**
* 场景的渲染类型.
*/
export declare enum RenderType {
/**
* 线框模式
*/
Wireframe = 1,
/**
* 概念
*/
Conceptual = 2,
/**
* 物理着色PBR
*/
Physical = 3,
Jig = 4,
Print = 5,
/**物理带线框 */
Physical2 = 6,
Edge = 7,
PlaceFace = 8,
BigHoleFace = 81,
CustomNumber = 9,
ModelGroove = 10,
/******************************************** 在视口时的渲染模式 */
/**
* 线框模式
*/
WireframePrint = 101,
/**
* 概念
*/
ConceptualPrint = 102,
/**
* 物理着色PBR
*/
PhysicalPrint = 103,
JigPrint = 104,
PrintPrint = 105,
/**真实带线框 */
Physical2Print = 106,
CustomNumberPrint = 109,
ConceptualTransparent = 182
}
export declare function IsPhysical(renderType: RenderType): boolean;
//# sourceMappingURL=RenderType.d.ts.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"RenderType.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/RenderType.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,oBAAY,UAAU;IAElB;;OAEG;IACH,SAAS,IAAI;IAEb;;OAEG;IACH,UAAU,IAAI;IAGd;;OAEG;IACH,QAAQ,IAAI;IAEZ,GAAG,IAAI;IACP,KAAK,IAAI;IACT,WAAW;IACX,SAAS,IAAI;IACb,IAAI,IAAI;IACR,SAAS,IAAI;IACb,WAAW,KAAK;IAChB,YAAY,IAAI;IAChB,WAAW,KAAK;IAEhB,0DAA0D;IAC1D;;MAEE;IACF,cAAc,MAAM;IAEpB;;OAEG;IACH,eAAe,MAAM;IAGrB;;OAEG;IACH,aAAa,MAAM;IAEnB,QAAQ,MAAM;IACd,UAAU,MAAM;IAChB,WAAW;IACX,cAAc,MAAM;IACpB,iBAAiB,MAAM;IAEvB,qBAAqB,MAAM;CAC9B;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,WAGhD"}

View File

@@ -1,48 +0,0 @@
import { Singleton } from "../../Common/Singleton";
import { ExtrudeHole } from "../../DatabaseServices/3DSolid/ExtrudeHole";
import { Board, IModeling } from "../../DatabaseServices/Entity/Board";
import { Curve } from "../../DatabaseServices/Entity/Curve";
import { ExtrudeContourCurve } from "../../DatabaseServices/Entity/Extrude";
import { Shape } from "../../DatabaseServices/Shape";
/**
*计算走刀工具类
*/
export declare class FeedingToolPath extends Singleton {
/**
* 处理形状,内偏移
* @param shape 造型Shape
* @param knifRadius 刀半径/偏移距离
* @param [isOut=true] 是否是最外轮廓,如果是,洞需要外偏移一个刀半径,多段线偏移保留不闭合轮廓
*/
private HandleShape;
/**用于测试走刀路径 */
TestCalcPath(br: Board, isCd?: boolean, rk?: number): Curve[];
/**
* 计算走刀路径
*/
CalcPath(modelings: IModeling[], br: Board, rk?: number): Curve[];
GetModelFeedPath(br: {
Thickness: number;
ContourCurve: ExtrudeContourCurve;
}, modeling: IModeling, redundancyKnif?: number): Curve[];
private GrooveAddSize;
/**
* 获取所有的轮廓
* @param cus
* @param retCus 不能组成轮廓的线被添加到这里
* @returns
*/
private GetContours;
CheckModeling(br: Board): number[];
CheckCustomHole(br: Board): ExtrudeHole[];
HandleThoughGroove(brCon: ExtrudeContourCurve, shape: Shape, knifeRadius: number): void;
}
export declare function GetModelingFromCustomDrill(br: Board): {
modeling: (IModeling & {
originEn: ExtrudeHole;
})[];
sideModeling: (IModeling & {
originEn: ExtrudeHole;
})[];
};
//# sourceMappingURL=FeedingToolPath.d.ts.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"FeedingToolPath.d.ts","sourceRoot":"","sources":["../../../../src/GraphicsSystem/ToolPath/FeedingToolPath.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAEzE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAG5E,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAYrD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAE1C;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IA+JnB,cAAc;IACd,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,UAAQ,EAAE,EAAE,SAAI;IAmB5C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,SAAI,GAAG,KAAK,EAAE;IAW5D,gBAAgB,CAAC,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,mBAAmB,CAAC;KAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,SAAI,GAAG,KAAK,EAAE;IA8CjI,OAAO,CAAC,aAAa;IA2BrB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAuCnB,aAAa,CAAC,EAAE,EAAE,KAAK;IAkBvB,eAAe,CAAC,EAAE,EAAE,KAAK;IAsBzB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM;CAsInF;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,KAAK;;kBAKT,WAAW;;;kBACP,WAAW;;EAyGzD"}

View File

@@ -1,19 +0,0 @@
import { IRectInfo } from "../../Common/CurveUtils";
import { Curve } from "../../DatabaseServices/Entity/Curve";
import { Polyline } from "../../DatabaseServices/Entity/Polyline";
import { Shape } from "../../DatabaseServices/Shape";
/**
* 优化走刀路径,连接偏移后的曲线数组
* @param offsetCus 偏移后的曲线组
* @param originShape 原始走刀形状
* @param rad 刀半径
* @returns tool path
*/
export declare function OptimizeToolPath(offsetCus: Curve[], originShape: Shape, rad: number): Curve[];
/**获取内偏移的轮廓 */
export declare function GetOffsetCurves(cu: Curve, dist: number, rectInfo?: IRectInfo): Curve[];
/** 获得曲线内偏移方向*/
export declare function GetCurveToInDir(cu: Curve): number;
/**矩形偏移,正为内偏移 */
export declare function RectOffset(rect: Polyline, rectInfo: IRectInfo, dist: number): Polyline;
//# sourceMappingURL=OptimizeToolPath.d.ts.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"OptimizeToolPath.d.ts","sourceRoot":"","sources":["../../../../src/GraphicsSystem/ToolPath/OptimizeToolPath.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsD,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGxG,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAGrD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAqH7F;AAiHD,cAAc;AACd,wBAAgB,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,CAatF;AAED,eAAe;AACf,wBAAgB,eAAe,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM,CAGjD;AAED,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,YA+B3E"}

View File

@@ -1,18 +0,0 @@
import { Curve } from "../../DatabaseServices/Entity/Curve";
import { Polyline } from "../../DatabaseServices/Entity/Polyline";
import { Vec3 } from "../../Geometry/IVec3";
/**
* V型刀走刀数据,第一刀直接扎进去,最后一刀提刀
* @param polyline
* @param feedingDepth 走刀深度
* @param knifAngle 通常为60度.按弧度表示
*/
export declare function VKnifToolPath(polyline: Polyline, feedingDepth: number, knifAngle: number): {
pt: Vec3;
bul: number;
}[];
export declare function VData2Curve(data: {
pt: Vec3;
bul: number;
}[]): Curve[];
//# sourceMappingURL=VKnifToolPath.d.ts.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"VKnifToolPath.d.ts","sourceRoot":"","sources":["../../../../src/GraphicsSystem/ToolPath/VKnifToolPath.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAElE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG5C;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE,EAAE,CAmEvH;AAGD,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE,EAAE,WAiB7D"}