实现板件倒角

This commit is contained in:
ChenX
2023-07-06 10:23:55 +08:00
parent bf1b1186c1
commit 48e15326a5
261 changed files with 7365 additions and 7161 deletions

View File

@@ -1,9 +1,7 @@
import { Board } from "../DatabaseServices/Entity/Board";
import { Circle } from "../DatabaseServices/Entity/Circle";
import { Curve } from "../DatabaseServices/Entity/Curve";
import { ExtrudeContourCurve } from "../DatabaseServices/Entity/Extrude";
import { Polyline } from "../DatabaseServices/Entity/Polyline";
import { IHighSealedItem, ISealingData } from "../UI/Store/BoardInterface";
import { IHighSealedItem } from "../UI/Store/BoardInterface";
type CurveGroups = (Curve[])[];
/**
* 将曲线分段(根据高级封边的特性 (因为圆弧无法单独使用封边,所以和圆弧在一起的曲线必须和圆弧一样的封边,否则偏移失败))
@@ -12,29 +10,25 @@ type CurveGroups = (Curve[])[];
* @returns 返回编组 curveGroups
*/
export declare function SubsectionCurvesOfHightSeal(in_out_curves: Curve[]): CurveGroups;
/**
* 计算封边(删除无效线,连接尖角)
*/
export declare function CalcEdgeSealing(cus: Curve[], highSeals?: IHighSealedItem[]): boolean;
export declare function GetBoardHighSeal(br: Board, sealcus: Curve[]): IHighSealedItem[];
/**偏移前后曲线起点没改变 */
export declare function OffsetOutlineSpNotChange(oldcu: Curve, newCu: Curve): boolean;
/**
* 获取板件封边轮廓线段数组
* 消除共线的数据,不改变轮廓方向
* isOffset-是否偏移轮廓用于查看
* 获取板件的轮廓曲线数组(合并共线了 已经对封边进行合并了 尊重原始时针)
* GetBrContourCurvesBySealGrouped
* @param offsetInside 向内偏移1(为了编辑封边)
* */
export declare function GetBoardSealingCurves(br: Board, isOffset?: boolean): Curve[];
export declare function GetBoardSealingCurves(br: Board, offsetInside?: boolean): Curve[];
export interface BrSealedData {
brContour: ExtrudeContourCurve;
sealedContour: ExtrudeContourCurve;
brCurves: Curve[];
highSeals: IHighSealedItem[];
}
/**
* 获取板件轮廓
* 结果轮廓拆单用,统一逆时针数据
* hasSealing 轮廓是否包含封边
* 用户计算拆单侧孔面id
*
* //返回的曲线中 如果 hasSealing isParseSeal 那么将可以取出封边信息
* 计算封边轮廓
*/
export declare function GetSealedBoardContour(br: Board, hasSealing: boolean, isParseSeal?: boolean): Polyline | Circle | undefined;
export declare function GetBoardSealingData(curve: Polyline | Circle): ISealingData[];
export declare function GetSealedBoardContour(br: Board): BrSealedData | undefined;
/**
* 将11对应的封边数值改成WebCAD的高级封边
* @param seals 每段曲线的封边