!2836 新增:拆单数据增加造型类型和拆单名字段

Merge pull request !2836 from 林三/chaidan_prop
pull/2837/MERGE
林三 3 months ago
parent 73cd9bdd8e
commit b98352c97b

@ -869,8 +869,19 @@ export class DrawDrillingTool extends Singleton
let g = new GroupRecord();
g.Name = this.m_Option.name;
app.Database.GroupTable.Append(g);
// 记录排钻的拆单组
let onlyRecordNameGroup = new GroupRecord();
onlyRecordNameGroup.Name = this.m_Option.name;
app.Database.GroupTable.Append(onlyRecordNameGroup);
for (let id of ids)
{
//后添加到 g组,防止Entity.GroupId使用onlyRecordNameGroup
onlyRecordNameGroup.Entitys.push(id);
g.Entitys.push(id);
(id.Object as Hole).DrillGroupId = onlyRecordNameGroup.Id;
}
}
//分析结束,排钻存入板件或者原始板件

@ -1,4 +1,4 @@
import { IOriginModelingData } from '../../../Production/Product';
import { IOriginModelingData, ModelType } from '../../../Production/Product';
import { GetArray, GetOrgModelingArray } from './ArrayHelper';
export abstract class BaseModel
@ -68,18 +68,23 @@ export class CadBlockModel extends BaseModel
PointList: CadBlockModelPoint[];
OffSetList: ModelOffSetData[];
OriginModeling: IOriginModelingData;
ModelType: ModelType;
ChaiDanName: string;
protected get props()
{
return ['ModelID', 'LineID', 'Face', 'KnifeName', 'KnifeRadius', 'Depth'];
return ['ModelID', 'LineID', 'Face', 'KnifeName', 'KnifeRadius', 'Depth', 'ModelType', 'ChaiDanName'];
}
ToArray()
{
return [this.ModelID, this.LineID, this.Face, this.KnifeName, this.KnifeRadius, this.Depth,
GetArray(CadBlockModelPoint, this.PointList),
GetArray(ModelOffSetData, this.OffSetList),
GetOrgModelingArray(this.OriginModeling)];
GetOrgModelingArray(this.OriginModeling),
this.ModelType, this.ChaiDanName];
}
}
export class ModelOffSetData extends BaseModel
{
Name: string;

@ -13,7 +13,7 @@ import { TemplateRecord } from "../../DatabaseServices/Template/TemplateRecord";
import { CoordinateSystem } from "../../Geometry/CoordinateSystem";
import { GetBoxArr, IdentityMtx4, equalv2 } from "../../Geometry/GeUtils";
import { IContourData } from "../../Production/Convert2PtsBul";
import { I2DModeling, I3DContourData, I3DModeling, IDrillingOption, IHardwareType, IModelingData, IOriginModelingData, ISpliteHardwareData, ISpliteOrderData, Production } from '../../Production/Product';
import { I2DModeling, I3DContourData, I3DModeling, IDrillingOption, IHardwareType, IModelingData, IOriginSideModelingData, ISpliteHardwareData, ISpliteOrderData, ModelType, Production } from '../../Production/Product';
import { EMetalsType } from "../../UI/Components/RightPanel/RightPanelInterface";
import { ISealingData } from "../../UI/Store/OptionInterface/IHighSealedItem";
import { FaceDirection } from "../DrawDrilling/DrillType";
@ -420,6 +420,7 @@ export class ErpParseData
newModel.Depth = depth;
newModel.PointList = this.GetModelPointDetail(f, modelID, depth);
newModel.OriginModeling = DataArray[i].origin;
newModel.ModelType = ModelType.frontBackModel;
modelList.push(newModel);
lineID++;
}
@ -430,7 +431,7 @@ export class ErpParseData
}
//获取侧面造型数据
GetSideModelDetail(DataArray: IOriginModelingData[]): CadBlockModel[]
GetSideModelDetail(DataArray: IOriginSideModelingData[]): CadBlockModel[]
{
if (DataArray == null) return [];
let sideModelList: CadBlockModel[] = [];
@ -444,8 +445,10 @@ export class ErpParseData
newModel.LineID = 1;
newModel.Face = DataArray[i].dir;
newModel.KnifeName = "";
newModel.ChaiDanName = DataArray[i].chaiDanName;
newModel.KnifeRadius = DataArray[i].knifeRadius;
newModel.Depth = DataArray[i].thickness;
newModel.ModelType = DataArray[i].modelType;
newModel.OriginModeling = DataArray[i];
sideModelList.push(newModel);

@ -14,6 +14,8 @@ export abstract class Hole extends Entity
@AutoRecord OtherHalfTongKong: ObjectId;
protected allowHoleAtBoardEdge: boolean = false; //允许大孔面在板边缘
protected type: GangDrillType = GangDrillType.Pxl;
@AutoRecord DrillGroupId: ObjectId; //用于获取拆单名 区别GroupId 因为解组后GroupId会丢失
get Height()
{
return this._Height;
@ -87,15 +89,20 @@ export abstract class Hole extends Entity
{
this.allowHoleAtBoardEdge = false;
}
if (ver > 7)
this.DrillGroupId = file.ReadObjectId();
}
WriteFile(file: CADFiler)
{
super.WriteFile(file);
file.Write(7);//ver
file.Write(8);//ver
file.Write(this._Height);
file.WriteSoftObjectId(this.FId);
file.WriteSoftObjectId(this.MId);
file.WriteSoftObjectId(this.OtherHalfTongKong);
file.WriteBool(this.allowHoleAtBoardEdge);
file.WriteObjectId(this.DrillGroupId);
}
}

@ -285,7 +285,7 @@ export class ContourTreeNode
}
}
static ParseContourTree(contourNodes: ContourTreeNode[], ignoreInCurve = false): void
static ParseContourTree(contourNodes: ContourTreeNode[], ignoreInCurve = false, checkIntersect = false): void
{
if (contourNodes.length < 2) return;
@ -312,6 +312,10 @@ export class ContourTreeNode
let node2 = contourNodes[id];
if (node2.parent === node1 || node2.area < node1.area) continue;//避免自己的儿子成为自己的父亲
//检查是否有交集
if (checkIntersect && node1.contour.Curve.IntersectWith(node2.contour.Curve, IntersectOption.ExtendNone))
continue;
if (node2.contour.Curve.PtInCurve(p) || ignoreInCurve)
{
node1.SetParent(node2);

@ -14,6 +14,7 @@ import { Curve } from "../../DatabaseServices/Entity/Curve";
import { ExtrudeContourCurve, ExtrudeSolid } from "../../DatabaseServices/Entity/Extrude";
import { Line } from "../../DatabaseServices/Entity/Line";
import { Polyline } from "../../DatabaseServices/Entity/Polyline";
import { GroupRecord } from "../../DatabaseServices/GroupTableRecord";
import { Shape } from "../../DatabaseServices/Shape";
import { ShapeManager } from "../../DatabaseServices/ShapeManager";
import { GetSideCuFaceMtx } from "../../Geometry/Board2DModelCSG/BoardSideModelCSGBuilder";
@ -823,6 +824,8 @@ export function GetModelingFromCustomDrill(br: Board)
shape.ApplyMatrix(new Matrix4().getInverse(GetSideCuFaceMtx(cu)));
}
let chaiDanName = (hole.DrillGroupId?.Object as GroupRecord)?.Name ?? "";
sideModeling.push({
outline: ConverToPtsBul(shape.Outline.Curve, false),
holes: shape.Holes.map((cu) => ConverToPtsBul(cu.Curve, false)),
@ -832,6 +835,7 @@ export function GetModelingFromCustomDrill(br: Board)
addLen: 0,
addDepth: 0,
addWidth: 0,
chaiDanName,
modelType: ModelType.drill
});
}

@ -154,7 +154,7 @@ export interface IOriginModelingData
export interface IOriginSideModelingData extends IOriginModelingData
{
chaiDanName?: string;
chaiDanName: string;
modelType: ModelType;
}
@ -530,7 +530,8 @@ export namespace Production
addLen: solid.GroovesAddLength,
addWidth: solid.GroovesAddWidth,
addDepth: solid.GroovesAddDepth,
modelType
chaiDanName: "",
modelType,
});
}
else if (toaster)

@ -295,7 +295,7 @@ export class SideModelingEditor
//分析包含关系
let contourNodes = contours.map(contour => new ContourTreeNode(contour));
ContourTreeNode.ParseContourTree(contourNodes);
ContourTreeNode.ParseContourTree(contourNodes, false, true);
for (let contourNode of contourNodes)
{

Loading…
Cancel
Save