!589 优化酷家乐导入常规板封边数据

pull/589/MERGE
ZoeLeeFZ 5 years ago committed by ChenX
parent f7169fb406
commit 0c4b99653b

@ -10,11 +10,11 @@ import { Polyline, PolylineProps } from "../DatabaseServices/Entity/Polyline";
import { TemplateRecord } from "../DatabaseServices/Template/TemplateRecord";
import { Command, CommandWrap } from "../Editor/CommandMachine";
import { Vec2 } from "../Geometry/CheckIntersect";
import { AsVector2, equaln, equalv2 } from "../Geometry/GeUtils";
import { AsVector2, equaln, equalv2, isParallelTo, XAxis } from "../Geometry/GeUtils";
import { Vec3 } from "../Geometry/IVec3";
import { HotCMD } from "../Hot/HotCommand";
import { FaceDirection, LinesType, IHighSealedItem } from "../UI/Store/BoardInterface";
import { ParagraphSealinglist } from "../GraphicsSystem/CalcEdgeSealing";
import { ParagraphSealinglist, HandleRectBoardSealingData } from "../GraphicsSystem/CalcEdgeSealing";
import { arrayLast } from "../Common/ArrayExt";
/** 模型类型 */
@ -192,7 +192,6 @@ function ParseModel(model: KJL_ParamModel, roomName: string, gName: string, pare
br.BoardProcessOption[EBoardKeyList.CabinetName] = gName;
br.Thickness = bmodel.thickness;
br.ContourCurve = pls[0];
if (edgesBandings.length > 0 && edgesBandings[0].length > 0)
{
let sealeds: IHighSealedItem[] = edgesBandings[0].map(v =>
@ -205,6 +204,7 @@ function ParseModel(model: KJL_ParamModel, roomName: string, gName: string, pare
sealeds.push(last);
let edges = ParagraphSealinglist(sealeds, cus);
br.BoardProcessOption.highSealed = edges;
HandleRectBoardSealingData(br, edges);
}
for (let i = 1; i < pls.length; i++)
@ -362,7 +362,7 @@ function ParsePathOutlineAndHole(path: KJL_Path, edgeBandingAll?: number[]): [Po
{
if (d.type === KJL_LineType.Line)
return 0;
else
else
{
let radius = d.radius;
if (d.clockwise)

@ -6,7 +6,7 @@ import { Circle } from "../DatabaseServices/Entity/Circle";
import { Curve } from "../DatabaseServices/Entity/Curve";
import { Line } from "../DatabaseServices/Entity/Line";
import { Polyline, TempPolyline } from "../DatabaseServices/Entity/Polyline";
import { angle, equaln, equalv3, isParallelTo, SelectNearP } from "../Geometry/GeUtils";
import { angle, equaln, equalv3, isParallelTo, SelectNearP, XAxis } from "../Geometry/GeUtils";
import { IntersectOption } from "./IntersectWith";
import { IHighSealedItem } from "../UI/Store/BoardInterface";
@ -316,3 +316,32 @@ export function ParagraphSealinglist(hightSeal: IHighSealedItem[], cus: Curve[])
return newHighSeal;
}
/**处理常规板件封边数据和上下左右封边值 */
export function HandleRectBoardSealingData(br: Board, edges: IHighSealedItem[])
{
let dir = Math.sign(br.ContourCurve.Area2);
let cus = br.ContourCurve.Explode() as Curve[];
if (!br.IsSpecialShape && cus.length == 4)
{
for (let i = 0; i < 4; i++)
{
let derv = cus[i].GetFistDeriv(0);
if (isParallelTo(derv, XAxis))
{
if (derv.x * dir > 0)
br.BoardProcessOption[EBoardKeyList.DownSealed] = edges[0].size.toString();
else
br.BoardProcessOption[EBoardKeyList.UpSealed] = edges[2].size.toString();
}
else
{
if (derv.y * dir > 0)
br.BoardProcessOption[EBoardKeyList.RightSealed] = edges[1].size.toString();
else
br.BoardProcessOption[EBoardKeyList.LeftSealed] = edges[3].size.toString();
}
}
}
}

@ -5,7 +5,7 @@ import { EBoardKeyList } from "../../../Common/BoardKeyList";
import { safeEval } from "../../../Common/eval";
import { Board } from "../../../DatabaseServices/Entity/Board";
import { commandMachine } from "../../../Editor/CommandMachine";
import { GetBoardSealingCurves } from "../../../GraphicsSystem/CalcEdgeSealing";
import { GetBoardSealingCurves, HandleRectBoardSealingData } from "../../../GraphicsSystem/CalcEdgeSealing";
import { AppToaster } from "../../Components/Toaster";
import { IHighSealedItem } from "../BoardInterface";
import { BoardEdgesEditor } from "./BoardEdgesEditor";
@ -89,13 +89,7 @@ export class SealingStore extends BoardEdgesEditor
{
let data = this._dataMap.get(b);
b.BoardProcessOption.highSealed = data;
if (!b.IsSpecialShape)
{
b.BoardProcessOption[EBoardKeyList.DownSealed] = data[0].size.toString();
b.BoardProcessOption[EBoardKeyList.RightSealed] = data[1].size.toString();
b.BoardProcessOption[EBoardKeyList.UpSealed] = data[2].size.toString();
b.BoardProcessOption[EBoardKeyList.LeftSealed] = data[3].size.toString();
}
HandleRectBoardSealingData(b, data);
}
this._dataMap.clear();
commandMachine.CommandEnd();

Loading…
Cancel
Save