!1445 优化:添加拆单孔位容差

pull/1445/MERGE
ZoeLeeFZ 4 years ago committed by ChenX
parent fb038c340a
commit b19f5ca43b

@ -1,16 +1,21 @@
import { Box3, Matrix4, Vector2, Vector3 } from "three";
import { SCALAR } from "../Add-on/DrawDrilling/HoleUtils";
import { lookOverBoardInfosTool } from "../Add-on/LookOverBoardInfos/LookOverBoardInfosTool";
import { arrayLast } from "../Common/ArrayExt";
import { EBoardKeyList } from "../Common/BoardKeyList";
import { MergeCurvelist } from "../Common/CurveUtils";
import { IsDev } from "../Common/Deving";
import { ParseExpr, safeEval } from "../Common/eval";
import { Vector2ApplyMatrix4 } from "../Common/Matrix4Utils";
import { SendReport } from "../Common/Report";
import { ShowSelectObjects } from "../Common/ShowSelectObjects";
import { Intent, Toaster } from "../Common/Toaster";
import { FixedNotZero, LINK_FUZZ } from "../Common/Utils";
import { CylinderHole, GangDrillType } from "../DatabaseServices/3DSolid/CylinderHole";
import { ExtrudeHole } from "../DatabaseServices/3DSolid/ExtrudeHole";
import { Hole } from "../DatabaseServices/3DSolid/Hole";
import { Arc } from "../DatabaseServices/Entity/Arc";
import { Board, IModeling, I2DModeingItem, IKnifeInfo } from "../DatabaseServices/Entity/Board";
import { Board, I2DModeingItem, IKnifeInfo, IModeling } from "../DatabaseServices/Entity/Board";
import { Circle } from "../DatabaseServices/Entity/Circle";
import { Curve } from "../DatabaseServices/Entity/Curve";
import { ExtureContourCurve } from "../DatabaseServices/Entity/Extrude";
@ -20,19 +25,14 @@ import { HardwareCompositeEntity } from "../DatabaseServices/Hardware/HardwareCo
import { HardwareTopline } from "../DatabaseServices/Hardware/HardwareTopline";
import { userConfig } from "../Editor/UserConfig";
import { Vec2 } from "../Geometry/CheckIntersect";
import { angleTo, AsVector2, equaln, equalv3, isParallelTo, MoveMatrix, XAxis, equalv2, IsBetweenA2B, isIntersect2 } from "../Geometry/GeUtils";
import { CanDrawHoleFuzz } from "../Geometry/DrillParse/BoardGetFace";
import { angleTo, AsVector2, equaln, equalv2, equalv3, IsBetweenA2B, isIntersect2, isParallelTo, MoveMatrix, XAxis } from "../Geometry/GeUtils";
import { GetBoardHighSeal, GetBoardSealingCurves, GetSealedBoardContour as GetSealedBoardContour } from "../GraphicsSystem/CalcEdgeSealing";
import { FeedingToolPath, GetModelingFromCustomDrill } from "../GraphicsSystem/ToolPath/FeedingToolPath";
import { EMetalsType, IHardwareOption, IToplineOption } from "../UI/Components/RightPanel/RightPanelInterface";
import { BoardOpenDir, FaceDirection, IHighSealedItem } from "../UI/Store/BoardInterface";
import { Entity } from './../DatabaseServices/Entity/Entity';
import { ICompHardwareOption } from './../UI/Components/RightPanel/RightPanelInterface';
import { CanDrawHoleFuzz } from "../Geometry/DrillParse/BoardGetFace";
import { Intent, Toaster } from "../Common/Toaster";
import { SendReport } from "../Common/Report";
import { ShowSelectObjects } from "../Common/ShowSelectObjects";
import { IsDev } from "../Common/Deving";
import { SCALAR } from "../Add-on/DrawDrilling/HoleUtils";
/**轮廓数据 */
@ -763,7 +763,9 @@ export namespace Production
{
let z = position.z;
if (!IsBetweenA2B(z, -d.Radius, br.Thickness + d.Radius, 1e-6)) return;
let line = new Line(position.clone().setZ(0), position.clone().setZ(0).add(d.Normal.multiplyScalar(d.Height).applyMatrix4(roMat)));
let sp = position.clone().setZ(0).add(d.Normal.multiplyScalar(- CanDrawHoleFuzz).applyMatrix4(roMat));//加长线(以便加大容差)
let ep = position.clone().setZ(0).add(d.Normal.multiplyScalar(d.Height + CanDrawHoleFuzz).applyMatrix4(roMat));//加长线
let line = new Line(sp, ep);
let pt = outline.IntersectWith(line, 0)[0];
if (!pt) return;
position = pt.clone().setZ(z);

Loading…
Cancel
Save