|
|
|
@ -468,7 +468,16 @@ export namespace Production
|
|
|
|
|
let allModeling = GetModelingFromCustomDrill(br);
|
|
|
|
|
|
|
|
|
|
let modeling = getModelings([...br.BoardModeling, ...allModeling.modeling, ...curveBoardModeling]).filter(f => f.feeding.length > 0);
|
|
|
|
|
|
|
|
|
|
// 拆单值有效的板件勾选取消孔槽加工
|
|
|
|
|
const [L, W, H] = [br.BoardProcessOption.spliteHeight, br.BoardProcessOption.spliteWidth, br.BoardProcessOption.spliteThickness];
|
|
|
|
|
if ((HostApplicationServices.chaidanOption.partialSplitValueCanTakesEffect && (L || W || H)) || (L && W && H))
|
|
|
|
|
{
|
|
|
|
|
if (HostApplicationServices.chaidanOption.cancelHoleProcessing)
|
|
|
|
|
{
|
|
|
|
|
modeling.length = 0;
|
|
|
|
|
allModeling.sideModeling.length = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return { modeling, sideModeling: allModeling.sideModeling };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -598,6 +607,16 @@ export namespace Production
|
|
|
|
|
frontBackHoles: [],
|
|
|
|
|
sideHoles: []
|
|
|
|
|
};
|
|
|
|
|
const { partialSplitValueCanTakesEffect, cancelHoleProcessing } = HostApplicationServices.chaidanOption;
|
|
|
|
|
// 拆单值有效的板件勾选取消孔槽加工
|
|
|
|
|
const [L, W, H] = [br.BoardProcessOption.spliteHeight, br.BoardProcessOption.spliteWidth, br.BoardProcessOption.spliteThickness];
|
|
|
|
|
if ((partialSplitValueCanTakesEffect && (L || W || H)) || (L && W && H))
|
|
|
|
|
{
|
|
|
|
|
if (cancelHoleProcessing)
|
|
|
|
|
{
|
|
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
let brNormal = br.Normal;
|
|
|
|
|
|
|
|
|
|
// 性能优化的解析板件网洞类
|
|
|
|
@ -609,8 +628,17 @@ export namespace Production
|
|
|
|
|
offsetTanslation = ParseArcBoardHoles(br, offsetTanslation);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (let [, driss] of br.DrillList)
|
|
|
|
|
for (let [key, driss] of br.DrillList)
|
|
|
|
|
{
|
|
|
|
|
let linkBoard = key.Object as Board;
|
|
|
|
|
const [L, W, H] = [linkBoard.BoardProcessOption.spliteHeight, linkBoard.BoardProcessOption.spliteWidth, linkBoard.BoardProcessOption.spliteThickness];
|
|
|
|
|
if ((partialSplitValueCanTakesEffect && (L || W || H)) || (L && W && H))
|
|
|
|
|
{
|
|
|
|
|
if (cancelHoleProcessing)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (let dris of driss)
|
|
|
|
|
{
|
|
|
|
|
for (let dId of dris)
|
|
|
|
@ -653,6 +681,15 @@ export namespace Production
|
|
|
|
|
if (!nid || !nid.Object || nid.IsErase)
|
|
|
|
|
continue;
|
|
|
|
|
let nail = nid.Object as CylinderHole;
|
|
|
|
|
let linkBoard = nail.MId.Object as Board;
|
|
|
|
|
const [L, W, H] = [linkBoard.BoardProcessOption.spliteHeight, linkBoard.BoardProcessOption.spliteWidth, linkBoard.BoardProcessOption.spliteThickness];
|
|
|
|
|
if ((partialSplitValueCanTakesEffect && (L || W || H)) || (L && W && H))
|
|
|
|
|
{
|
|
|
|
|
if (cancelHoleProcessing)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!isParallelTo(nail.Normal, brNormal, CanDrawHoleFuzz)) continue;
|
|
|
|
|
|
|
|
|
|
let sp = nail.Position.applyMatrix4(br.OCSInv);
|
|
|
|
@ -1301,6 +1338,15 @@ export namespace Production
|
|
|
|
|
export function Get2DModeing(br: Board, offset: Vector3)
|
|
|
|
|
{
|
|
|
|
|
let res: I2DModeling[] = [];
|
|
|
|
|
// 拆单值有效的板件勾选取消孔槽加工
|
|
|
|
|
const [L, W, H] = [br.BoardProcessOption.spliteHeight, br.BoardProcessOption.spliteWidth, br.BoardProcessOption.spliteThickness];
|
|
|
|
|
if ((HostApplicationServices.chaidanOption.partialSplitValueCanTakesEffect && (L || W || H)) || (L && W && H))
|
|
|
|
|
{
|
|
|
|
|
if (HostApplicationServices.chaidanOption.cancelHoleProcessing)
|
|
|
|
|
{
|
|
|
|
|
return res;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
let tmtx = MoveMatrix(offset.clone().negate());
|
|
|
|
|
for (let m of br.Modeling2D)
|
|
|
|
|
{
|
|
|
|
@ -1317,6 +1363,15 @@ export namespace Production
|
|
|
|
|
export function Get3DModeing(br: Board, offset: Vector3)
|
|
|
|
|
{
|
|
|
|
|
let res: I3DModeling[] = [];
|
|
|
|
|
// 拆单值有效的板件勾选取消孔槽加工
|
|
|
|
|
const [L, W, H] = [br.BoardProcessOption.spliteHeight, br.BoardProcessOption.spliteWidth, br.BoardProcessOption.spliteThickness];
|
|
|
|
|
if ((HostApplicationServices.chaidanOption.partialSplitValueCanTakesEffect && (L || W || H)) || (L && W && H))
|
|
|
|
|
{
|
|
|
|
|
if (HostApplicationServices.chaidanOption.cancelHoleProcessing)
|
|
|
|
|
{
|
|
|
|
|
return res;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (let m of br.Modeling3D)
|
|
|
|
|
{
|
|
|
|
|
let d: I3DModeling = {
|
|
|
|
|