修复:绘制切线时因为拾取范围不一致导致的错误

pull/2870/head
ChenX 3 months ago
parent 6732363aa6
commit c6f276f2dd

@ -85,7 +85,7 @@ export class DrawLine implements Command
UCSUtils.SetUCSFromPointRes(ptRes); UCSUtils.SetUCSFromPointRes(ptRes);
let ptLast = ptRes.Point; let ptLast = ptRes.Point;
let firstSnapModeIsTan = ptRes.SnaoMode === ObjectSnapMode.Tan; let firstSnapModeIsTan = ptRes.SnapMode === ObjectSnapMode.Tan;
let secondSnapModelIsTan = false; let secondSnapModelIsTan = false;
let firstTangeCircle: Circle | Arc; let firstTangeCircle: Circle | Arc;
@ -158,9 +158,9 @@ export class DrawLine implements Command
if (ptRes.Status === PromptStatus.OK) if (ptRes.Status === PromptStatus.OK)
{ {
//第一个是切点 第二个也是选切点 //第一个是切点 第二个也是选切点
if (ptRes.SnaoMode === ObjectSnapMode.Tan && firstTangeCircle && pts.length === 1) if (ptRes.SnapMode === ObjectSnapMode.Tan && firstTangeCircle && pts.length === 1)
{ {
let pick = new SelectPick(app.Viewer, app.Viewer.WorldToScreen(ptRes.Point)); let pick = new SelectPick(app.Viewer, app.Viewer.WorldToScreen(ptRes.Point), app.Editor.GetPointServices.snapServices.SnapSize);
pick.Select(app.Viewer.VisibleObjects, { filterTypes: [Circle, Arc] }); pick.Select(app.Viewer.VisibleObjects, { filterTypes: [Circle, Arc] });
let secondTangeCircle: Circle = (pick.SelectEntityList as Circle[]).find(c => c.PtInCurve(ptRes.Point)); let secondTangeCircle: Circle = (pick.SelectEntityList as Circle[]).find(c => c.PtInCurve(ptRes.Point));

@ -400,6 +400,8 @@ export function CircleInternalTangentLines(cir0: Circle, cir1: Circle): Line[]
} }
} }
//ref https://github1s.com/ArashPartow/wykobi/blob/master/wykobi.inl#L6575-L6576
//获取2个圆的外切线
export function CircleOuterTangentLines(circle0: Circle, circle1: Circle): Line[] export function CircleOuterTangentLines(circle0: Circle, circle1: Circle): Line[]
{ {
let c0 = circle0.Center; let c0 = circle0.Center;

@ -499,7 +499,7 @@ export class GetPointServices implements EditorService
retValue.Point = p; retValue.Point = p;
retValue.intersection = this.intersection; retValue.intersection = this.intersection;
retValue.SnaoMode = snapMode; retValue.SnapMode = snapMode;
this.lastPoint = p; this.lastPoint = p;

@ -40,7 +40,8 @@ export class PromptResult
export class PromptPointResult extends PromptResult export class PromptPointResult extends PromptResult
{ {
SnaoMode: ObjectSnapMode; SnapMode: ObjectSnapMode;
// SnapEntity: Entity; TODO:
intersection: Intersection; intersection: Intersection;
private _point: Vector3; private _point: Vector3;
/** /**

Loading…
Cancel
Save