功能:走刀偏移直线连接
This commit is contained in:
parent
0e7a71f44d
commit
a6c14af39c
65
api.cjs.js
65
api.cjs.js
@ -6715,13 +6715,28 @@ class CurveTreeNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var PolylineJoinType;
|
||||||
|
(function (PolylineJoinType) {
|
||||||
|
PolylineJoinType[PolylineJoinType["Square"] = 0] = "Square";
|
||||||
|
PolylineJoinType[PolylineJoinType["Round"] = 1] = "Round";
|
||||||
|
})(PolylineJoinType || (PolylineJoinType = {}));
|
||||||
class OffsetPolyline {
|
class OffsetPolyline {
|
||||||
constructor(_Polyline, _OffsetDist, _ToolPath = false, _OffsetDistSq = (_OffsetDist ** 2) * 2.1 //对直角走刀不进行圆弧过度
|
/**
|
||||||
|
*
|
||||||
|
* @param _Polyline
|
||||||
|
* @param _OffsetDist
|
||||||
|
* @param [_ToolPath=false] 走刀模式(在这个模式下,我们会进行圆弧过渡(或者直线过渡)避免尖角过大)
|
||||||
|
* @param [_OffsetDistSq=(_OffsetDist ** 2) * 2.1] 允许的最大尖角长度 默认值差不多是矩形的尖角大一点
|
||||||
|
* @param [JoinType=PolylineJoinType.Round] 尖角的处理方式,默认是圆弧过渡,可以切换成直线过渡
|
||||||
|
*/
|
||||||
|
constructor(_Polyline, _OffsetDist, _ToolPath = false, _OffsetDistSq = (_OffsetDist ** 2) * 2.1, //对直角走刀不进行圆弧过度
|
||||||
|
JoinType = PolylineJoinType.Round //仅在走刀路径时生效
|
||||||
) {
|
) {
|
||||||
this._Polyline = _Polyline;
|
this._Polyline = _Polyline;
|
||||||
this._OffsetDist = _OffsetDist;
|
this._OffsetDist = _OffsetDist;
|
||||||
this._ToolPath = _ToolPath;
|
this._ToolPath = _ToolPath;
|
||||||
this._OffsetDistSq = _OffsetDistSq;
|
this._OffsetDistSq = _OffsetDistSq;
|
||||||
|
this.JoinType = JoinType;
|
||||||
this._IsTopoOffset = false; //局部偏移,允许特殊延伸,参考测试用例
|
this._IsTopoOffset = false; //局部偏移,允许特殊延伸,参考测试用例
|
||||||
}
|
}
|
||||||
Do() {
|
Do() {
|
||||||
@ -6823,7 +6838,10 @@ class OffsetPolyline {
|
|||||||
let refP = this._Vertexs[curveResNext.index];
|
let refP = this._Vertexs[curveResNext.index];
|
||||||
let distSq = iPts[0].distanceToSquared(refP);
|
let distSq = iPts[0].distanceToSquared(refP);
|
||||||
if (this._ToolPath && distSq > this._OffsetDistSq) {
|
if (this._ToolPath && distSq > this._OffsetDistSq) {
|
||||||
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)];
|
if (this.JoinType === PolylineJoinType.Round)
|
||||||
|
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)];
|
||||||
|
else
|
||||||
|
curveResNow.paddingCurve = [this.CreateSquare(refP, curveResNow, curveResNext, code)]; //补直线
|
||||||
this._TrimCircleContours.push(this._Circles[curveResNext.index]);
|
this._TrimCircleContours.push(this._Circles[curveResNext.index]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -6833,7 +6851,8 @@ class OffsetPolyline {
|
|||||||
// curveResNow.paddingCurve = [new Line(sp, ep)];
|
// curveResNow.paddingCurve = [new Line(sp, ep)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else //直线和圆弧 圆弧和圆弧
|
||||||
|
{
|
||||||
let refP = this._Vertexs[curveResNext.index];
|
let refP = this._Vertexs[curveResNext.index];
|
||||||
//在局部偏移中,当偏移距离不一致时,我们总是倾向于直接连接
|
//在局部偏移中,当偏移距离不一致时,我们总是倾向于直接连接
|
||||||
if (this._IsTopoOffset && tPts.length === 0 && curveResNow.dist !== curveResNext.dist) {
|
if (this._IsTopoOffset && tPts.length === 0 && curveResNow.dist !== curveResNext.dist) {
|
||||||
@ -6901,8 +6920,13 @@ class OffsetPolyline {
|
|||||||
else
|
else
|
||||||
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
if (this.JoinType === PolylineJoinType.Round)
|
||||||
|
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
||||||
|
else {
|
||||||
|
curveResNow.paddingCurve = [this.CreateSquare(refP, curveResNow, curveResNext, code)]; //补直线
|
||||||
|
}
|
||||||
|
}
|
||||||
let circle = this._Circles[curveResNext.index];
|
let circle = this._Circles[curveResNext.index];
|
||||||
if (circle)
|
if (circle)
|
||||||
this._TrimCircleContours.push(circle); //因为局部偏移可能未提供圆
|
this._TrimCircleContours.push(circle); //因为局部偏移可能未提供圆
|
||||||
@ -7333,6 +7357,24 @@ class OffsetPolyline {
|
|||||||
let arc = new exports.Arc(center, Math.abs(this._OffsetDist), sa, ea, this._OffsetDist < 0);
|
let arc = new exports.Arc(center, Math.abs(this._OffsetDist), sa, ea, this._OffsetDist < 0);
|
||||||
return arc;
|
return arc;
|
||||||
}
|
}
|
||||||
|
CreateSquare(center, curveNow, curveNext, entTypeCode) {
|
||||||
|
const arc = this.CreateArc(center, curveNow.curve.EndPoint, curveNext.curve.StartPoint);
|
||||||
|
const centerPoint = arc.GetPointAtParam(0.5);
|
||||||
|
const tangentLine = new exports.Line(centerPoint, arc.GetFirstDeriv(0.5).add(centerPoint)); //切线
|
||||||
|
let ep, sp;
|
||||||
|
if (entTypeCode === 1) {
|
||||||
|
ep = tangentLine.IntersectWith(curveNow.curve, IntersectOption.ExtendBoth)[0]; //第一条线新的终点坐标
|
||||||
|
sp = centerPoint.multiplyScalar(2).sub(ep);
|
||||||
|
}
|
||||||
|
else // if (entTypeCode === 0)//全圆弧 直线和圆弧
|
||||||
|
{
|
||||||
|
ep = SelectNearP(tangentLine.IntersectWith(curveNow.curve, IntersectOption.ExtendBoth), center); //第一条线新的终点坐标
|
||||||
|
sp = SelectNearP(tangentLine.IntersectWith(curveNext.curve, IntersectOption.ExtendBoth), center);
|
||||||
|
}
|
||||||
|
curveNow.ep = ep;
|
||||||
|
curveNext.sp = sp;
|
||||||
|
return new exports.Line(ep, sp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function EntityEncode(c) {
|
function EntityEncode(c) {
|
||||||
if (c instanceof exports.Line)
|
if (c instanceof exports.Line)
|
||||||
@ -7909,10 +7951,13 @@ exports.Polyline = Polyline_1 = class Polyline extends Curve {
|
|||||||
GetParamAtDist(dist) {
|
GetParamAtDist(dist) {
|
||||||
if (equaln$1(dist, 0))
|
if (equaln$1(dist, 0))
|
||||||
return 0;
|
return 0;
|
||||||
let cus = this.Explode();
|
let cus = [];
|
||||||
for (let i = 0; i < cus.length; i++) {
|
for (let i = 0; i < this.EndParam; i++) {
|
||||||
let cu = cus[i];
|
let cu = this.GetCurveAtIndex(i);
|
||||||
let len = cu.Length;
|
let len = cu.Length;
|
||||||
|
if (len < 1e-6)
|
||||||
|
continue;
|
||||||
|
cus.push(cu);
|
||||||
if (dist <= len)
|
if (dist <= len)
|
||||||
return i + cu.GetParamAtDist(dist);
|
return i + cu.GetParamAtDist(dist);
|
||||||
else if (equaln$1(dist, len, 1e-8))
|
else if (equaln$1(dist, len, 1e-8))
|
||||||
@ -8408,10 +8453,10 @@ exports.Polyline = Polyline_1 = class Polyline extends Curve {
|
|||||||
cu.ColorIndex = this.ColorIndex;
|
cu.ColorIndex = this.ColorIndex;
|
||||||
return curves;
|
return curves;
|
||||||
}
|
}
|
||||||
GetFeedingToolPath(offsetDist, offsetDistSq = (offsetDist ** 2) * 2.1) {
|
GetFeedingToolPath(offsetDist, offsetDistSq = (offsetDist ** 2) * 2.1, joinType = PolylineJoinType.Round) {
|
||||||
if (equaln$1(offsetDist, 0))
|
if (equaln$1(offsetDist, 0))
|
||||||
return [];
|
return [];
|
||||||
let polyOffestUtil = new OffsetPolyline(this, offsetDist, true, offsetDistSq);
|
let polyOffestUtil = new OffsetPolyline(this, offsetDist, true, offsetDistSq, joinType);
|
||||||
return polyOffestUtil.Do();
|
return polyOffestUtil.Do();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
File diff suppressed because one or more lines are too long
65
api.esm.js
65
api.esm.js
@ -6706,13 +6706,28 @@ class CurveTreeNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var PolylineJoinType;
|
||||||
|
(function (PolylineJoinType) {
|
||||||
|
PolylineJoinType[PolylineJoinType["Square"] = 0] = "Square";
|
||||||
|
PolylineJoinType[PolylineJoinType["Round"] = 1] = "Round";
|
||||||
|
})(PolylineJoinType || (PolylineJoinType = {}));
|
||||||
class OffsetPolyline {
|
class OffsetPolyline {
|
||||||
constructor(_Polyline, _OffsetDist, _ToolPath = false, _OffsetDistSq = (_OffsetDist ** 2) * 2.1 //对直角走刀不进行圆弧过度
|
/**
|
||||||
|
*
|
||||||
|
* @param _Polyline
|
||||||
|
* @param _OffsetDist
|
||||||
|
* @param [_ToolPath=false] 走刀模式(在这个模式下,我们会进行圆弧过渡(或者直线过渡)避免尖角过大)
|
||||||
|
* @param [_OffsetDistSq=(_OffsetDist ** 2) * 2.1] 允许的最大尖角长度 默认值差不多是矩形的尖角大一点
|
||||||
|
* @param [JoinType=PolylineJoinType.Round] 尖角的处理方式,默认是圆弧过渡,可以切换成直线过渡
|
||||||
|
*/
|
||||||
|
constructor(_Polyline, _OffsetDist, _ToolPath = false, _OffsetDistSq = (_OffsetDist ** 2) * 2.1, //对直角走刀不进行圆弧过度
|
||||||
|
JoinType = PolylineJoinType.Round //仅在走刀路径时生效
|
||||||
) {
|
) {
|
||||||
this._Polyline = _Polyline;
|
this._Polyline = _Polyline;
|
||||||
this._OffsetDist = _OffsetDist;
|
this._OffsetDist = _OffsetDist;
|
||||||
this._ToolPath = _ToolPath;
|
this._ToolPath = _ToolPath;
|
||||||
this._OffsetDistSq = _OffsetDistSq;
|
this._OffsetDistSq = _OffsetDistSq;
|
||||||
|
this.JoinType = JoinType;
|
||||||
this._IsTopoOffset = false; //局部偏移,允许特殊延伸,参考测试用例
|
this._IsTopoOffset = false; //局部偏移,允许特殊延伸,参考测试用例
|
||||||
}
|
}
|
||||||
Do() {
|
Do() {
|
||||||
@ -6814,7 +6829,10 @@ class OffsetPolyline {
|
|||||||
let refP = this._Vertexs[curveResNext.index];
|
let refP = this._Vertexs[curveResNext.index];
|
||||||
let distSq = iPts[0].distanceToSquared(refP);
|
let distSq = iPts[0].distanceToSquared(refP);
|
||||||
if (this._ToolPath && distSq > this._OffsetDistSq) {
|
if (this._ToolPath && distSq > this._OffsetDistSq) {
|
||||||
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)];
|
if (this.JoinType === PolylineJoinType.Round)
|
||||||
|
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)];
|
||||||
|
else
|
||||||
|
curveResNow.paddingCurve = [this.CreateSquare(refP, curveResNow, curveResNext, code)]; //补直线
|
||||||
this._TrimCircleContours.push(this._Circles[curveResNext.index]);
|
this._TrimCircleContours.push(this._Circles[curveResNext.index]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -6824,7 +6842,8 @@ class OffsetPolyline {
|
|||||||
// curveResNow.paddingCurve = [new Line(sp, ep)];
|
// curveResNow.paddingCurve = [new Line(sp, ep)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else //直线和圆弧 圆弧和圆弧
|
||||||
|
{
|
||||||
let refP = this._Vertexs[curveResNext.index];
|
let refP = this._Vertexs[curveResNext.index];
|
||||||
//在局部偏移中,当偏移距离不一致时,我们总是倾向于直接连接
|
//在局部偏移中,当偏移距离不一致时,我们总是倾向于直接连接
|
||||||
if (this._IsTopoOffset && tPts.length === 0 && curveResNow.dist !== curveResNext.dist) {
|
if (this._IsTopoOffset && tPts.length === 0 && curveResNow.dist !== curveResNext.dist) {
|
||||||
@ -6892,8 +6911,13 @@ class OffsetPolyline {
|
|||||||
else
|
else
|
||||||
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
if (this.JoinType === PolylineJoinType.Round)
|
||||||
|
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
||||||
|
else {
|
||||||
|
curveResNow.paddingCurve = [this.CreateSquare(refP, curveResNow, curveResNext, code)]; //补直线
|
||||||
|
}
|
||||||
|
}
|
||||||
let circle = this._Circles[curveResNext.index];
|
let circle = this._Circles[curveResNext.index];
|
||||||
if (circle)
|
if (circle)
|
||||||
this._TrimCircleContours.push(circle); //因为局部偏移可能未提供圆
|
this._TrimCircleContours.push(circle); //因为局部偏移可能未提供圆
|
||||||
@ -7324,6 +7348,24 @@ class OffsetPolyline {
|
|||||||
let arc = new Arc(center, Math.abs(this._OffsetDist), sa, ea, this._OffsetDist < 0);
|
let arc = new Arc(center, Math.abs(this._OffsetDist), sa, ea, this._OffsetDist < 0);
|
||||||
return arc;
|
return arc;
|
||||||
}
|
}
|
||||||
|
CreateSquare(center, curveNow, curveNext, entTypeCode) {
|
||||||
|
const arc = this.CreateArc(center, curveNow.curve.EndPoint, curveNext.curve.StartPoint);
|
||||||
|
const centerPoint = arc.GetPointAtParam(0.5);
|
||||||
|
const tangentLine = new Line(centerPoint, arc.GetFirstDeriv(0.5).add(centerPoint)); //切线
|
||||||
|
let ep, sp;
|
||||||
|
if (entTypeCode === 1) {
|
||||||
|
ep = tangentLine.IntersectWith(curveNow.curve, IntersectOption.ExtendBoth)[0]; //第一条线新的终点坐标
|
||||||
|
sp = centerPoint.multiplyScalar(2).sub(ep);
|
||||||
|
}
|
||||||
|
else // if (entTypeCode === 0)//全圆弧 直线和圆弧
|
||||||
|
{
|
||||||
|
ep = SelectNearP(tangentLine.IntersectWith(curveNow.curve, IntersectOption.ExtendBoth), center); //第一条线新的终点坐标
|
||||||
|
sp = SelectNearP(tangentLine.IntersectWith(curveNext.curve, IntersectOption.ExtendBoth), center);
|
||||||
|
}
|
||||||
|
curveNow.ep = ep;
|
||||||
|
curveNext.sp = sp;
|
||||||
|
return new Line(ep, sp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function EntityEncode(c) {
|
function EntityEncode(c) {
|
||||||
if (c instanceof Line)
|
if (c instanceof Line)
|
||||||
@ -7900,10 +7942,13 @@ let Polyline = Polyline_1 = class Polyline extends Curve {
|
|||||||
GetParamAtDist(dist) {
|
GetParamAtDist(dist) {
|
||||||
if (equaln$1(dist, 0))
|
if (equaln$1(dist, 0))
|
||||||
return 0;
|
return 0;
|
||||||
let cus = this.Explode();
|
let cus = [];
|
||||||
for (let i = 0; i < cus.length; i++) {
|
for (let i = 0; i < this.EndParam; i++) {
|
||||||
let cu = cus[i];
|
let cu = this.GetCurveAtIndex(i);
|
||||||
let len = cu.Length;
|
let len = cu.Length;
|
||||||
|
if (len < 1e-6)
|
||||||
|
continue;
|
||||||
|
cus.push(cu);
|
||||||
if (dist <= len)
|
if (dist <= len)
|
||||||
return i + cu.GetParamAtDist(dist);
|
return i + cu.GetParamAtDist(dist);
|
||||||
else if (equaln$1(dist, len, 1e-8))
|
else if (equaln$1(dist, len, 1e-8))
|
||||||
@ -8399,10 +8444,10 @@ let Polyline = Polyline_1 = class Polyline extends Curve {
|
|||||||
cu.ColorIndex = this.ColorIndex;
|
cu.ColorIndex = this.ColorIndex;
|
||||||
return curves;
|
return curves;
|
||||||
}
|
}
|
||||||
GetFeedingToolPath(offsetDist, offsetDistSq = (offsetDist ** 2) * 2.1) {
|
GetFeedingToolPath(offsetDist, offsetDistSq = (offsetDist ** 2) * 2.1, joinType = PolylineJoinType.Round) {
|
||||||
if (equaln$1(offsetDist, 0))
|
if (equaln$1(offsetDist, 0))
|
||||||
return [];
|
return [];
|
||||||
let polyOffestUtil = new OffsetPolyline(this, offsetDist, true, offsetDistSq);
|
let polyOffestUtil = new OffsetPolyline(this, offsetDist, true, offsetDistSq, joinType);
|
||||||
return polyOffestUtil.Do();
|
return polyOffestUtil.Do();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
File diff suppressed because one or more lines are too long
@ -4,9 +4,9 @@ import { Box2, Vector2 } from "three";
|
|||||||
* @param rects
|
* @param rects
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
declare function GetMaxAreaFn(rects: [number, number, number][]): number;
|
declare function GetMaxAreaFn(rects: [number, number, number, number, number][]): number;
|
||||||
declare function GetMaxWidthFn(rects: [number, number, number][]): number;
|
declare function GetMaxWidthFn(rects: [number, number, number, number, number][]): number;
|
||||||
declare function GetMaxHeightFn(rects: [number, number, number][]): number;
|
declare function GetMaxHeightFn(rects: [number, number, number, number, number][]): number;
|
||||||
/**
|
/**
|
||||||
* @example
|
* @example
|
||||||
*
|
*
|
||||||
@ -18,7 +18,7 @@ declare function GetMaxHeightFn(rects: [number, number, number][]): number;
|
|||||||
*
|
*
|
||||||
* //除了变量 也可以设置过滤函数
|
* //除了变量 也可以设置过滤函数
|
||||||
* //例如:
|
* //例如:
|
||||||
* lir.FilterRectFn = !(w,h)=> (w>500 || h>500) //这样将对长或者宽不足500的矩形板过滤(舍弃)
|
* lir.FilterRectFn = (w,h)=> !(w>500 || h>500) //这样将对长或者宽不足500的矩形板过滤(舍弃)
|
||||||
*
|
*
|
||||||
* //2. 可以设置优先模式,默认提供了面积优先,你也可以使用宽度优先或者高度优先,或许默认规则可能不好用,可以自定义传入自定义函数.
|
* //2. 可以设置优先模式,默认提供了面积优先,你也可以使用宽度优先或者高度优先,或许默认规则可能不好用,可以自定义传入自定义函数.
|
||||||
* lir.GetMaxRectIndexFn = LargestInteriorRectangle.GetMaxAreaFn; //或者 LargestInteriorRectangle.GetMaxWidthFn / LargestInteriorRectangle.GetMaxHeightFn
|
* lir.GetMaxRectIndexFn = LargestInteriorRectangle.GetMaxAreaFn; //或者 LargestInteriorRectangle.GetMaxWidthFn / LargestInteriorRectangle.GetMaxHeightFn
|
||||||
@ -33,7 +33,7 @@ export declare class LargestInteriorRectangle {
|
|||||||
MinArea: number;
|
MinArea: number;
|
||||||
/** 可以自定义过滤函数,以便过滤掉某些不需要的矩形,当返回true时,我们会过滤它 */
|
/** 可以自定义过滤函数,以便过滤掉某些不需要的矩形,当返回true时,我们会过滤它 */
|
||||||
FilterRectFn: (width: number, height: number) => boolean;
|
FilterRectFn: (width: number, height: number) => boolean;
|
||||||
GetMaxRectIndexFn: (rects: [number, number, number][]) => number;
|
GetMaxRectIndexFn: (rects: [number, number, number, number, number][]) => number;
|
||||||
static GetMaxAreaFn: typeof GetMaxAreaFn;
|
static GetMaxAreaFn: typeof GetMaxAreaFn;
|
||||||
static GetMaxWidthFn: typeof GetMaxWidthFn;
|
static GetMaxWidthFn: typeof GetMaxWidthFn;
|
||||||
static GetMaxHeightFn: typeof GetMaxHeightFn;
|
static GetMaxHeightFn: typeof GetMaxHeightFn;
|
||||||
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"LargestInteriorRectangle.d.ts","sourceRoot":"","sources":["../../../../src/Add-on/testEntity/LargestInteriorRectangle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAW,MAAM,OAAO,CAAC;AAW/C;;;;GAIG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAG/D;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAGhE;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAGjE;AAuBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,wBAAwB;IAEjC,QAAQ,SAAO;IACf,SAAS,SAAO;IAChB,OAAO,SAAa;IAEpB,8CAA8C;IAC9C,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAEzD,iBAAiB,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,MAAM,CAAgB;IAGhF,MAAM,CAAC,YAAY,sBAAgB;IACnC,MAAM,CAAC,aAAa,uBAAiB;IACrC,MAAM,CAAC,cAAc,wBAAkB;;IAMvC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE;CAqS1C"}
|
{"version":3,"file":"LargestInteriorRectangle.d.ts","sourceRoot":"","sources":["../../../../src/Add-on/testEntity/LargestInteriorRectangle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAW,MAAM,OAAO,CAAC;AAW/C;;;;GAIG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAG/E;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAGhF;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAGjF;AAuBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,wBAAwB;IAEjC,QAAQ,SAAO;IACf,SAAS,SAAO;IAChB,OAAO,SAAa;IAEpB,8CAA8C;IAC9C,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAEzD,iBAAiB,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,MAAM,CAAgB;IAGhG,MAAM,CAAC,YAAY,sBAAgB;IACnC,MAAM,CAAC,aAAa,uBAAiB;IACrC,MAAM,CAAC,cAAc,wBAAkB;;IAMvC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE;CAqS1C"}
|
3
types/DatabaseServices/Entity/Board.d.ts
vendored
3
types/DatabaseServices/Entity/Board.d.ts
vendored
@ -1,3 +1,4 @@
|
|||||||
|
import Geom3 from '@jscad/modeling/src/geometries/geom3/type';
|
||||||
import { Frustum, Geometry, Matrix3, Matrix4, Object3D, UVGenerator, Vector3 } from 'three';
|
import { Frustum, Geometry, Matrix3, Matrix4, Object3D, UVGenerator, Vector3 } from 'three';
|
||||||
import { FaceDirection } from "../../Add-on/DrawDrilling/DrillType";
|
import { FaceDirection } from "../../Add-on/DrawDrilling/DrillType";
|
||||||
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
|
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
|
||||||
@ -162,7 +163,7 @@ export declare class Board extends ExtrudeSolid {
|
|||||||
/**
|
/**
|
||||||
* 这个函数生成了二维刀路的csg数组,并且同时生成了_2DPathDrawObject(二维刀路提刀线框显示对象)
|
* 这个函数生成了二维刀路的csg数组,并且同时生成了_2DPathDrawObject(二维刀路提刀线框显示对象)
|
||||||
*/
|
*/
|
||||||
private Get2DPathCsgs;
|
Get2DPathCsgs(): Geom3[];
|
||||||
protected get Has2DPath(): boolean;
|
protected get Has2DPath(): boolean;
|
||||||
private _workerCalcedGeom;
|
private _workerCalcedGeom;
|
||||||
private _async2DPathIng;
|
private _async2DPathIng;
|
||||||
|
File diff suppressed because one or more lines are too long
3
types/DatabaseServices/Entity/Polyline.d.ts
vendored
3
types/DatabaseServices/Entity/Polyline.d.ts
vendored
@ -3,6 +3,7 @@ import { Status } from '../../Common/Status';
|
|||||||
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
|
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
|
||||||
import { Box3Ext } from '../../Geometry/Box';
|
import { Box3Ext } from '../../Geometry/Box';
|
||||||
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
|
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
|
||||||
|
import { PolylineJoinType } from '../../GraphicsSystem/OffsetPolyline';
|
||||||
import { CADFiler } from '../CADFiler';
|
import { CADFiler } from '../CADFiler';
|
||||||
import { Shape2 } from '../Shape2';
|
import { Shape2 } from '../Shape2';
|
||||||
import { Arc } from './Arc';
|
import { Arc } from './Arc';
|
||||||
@ -136,7 +137,7 @@ export declare class Polyline extends Curve {
|
|||||||
GetClosestPointTo(pt: Vector3, extend: boolean): Vector3;
|
GetClosestPointTo(pt: Vector3, extend: boolean): Vector3;
|
||||||
GetClosestPointTo2(pt: Vector3, extType: ExtendType): Vector3;
|
GetClosestPointTo2(pt: Vector3, extType: ExtendType): Vector3;
|
||||||
GetOffsetCurves(offsetDist: number): Polyline[];
|
GetOffsetCurves(offsetDist: number): Polyline[];
|
||||||
GetFeedingToolPath(offsetDist: number, offsetDistSq?: number): Polyline[];
|
GetFeedingToolPath(offsetDist: number, offsetDistSq?: number, joinType?: PolylineJoinType): Polyline[];
|
||||||
/**
|
/**
|
||||||
* 分解
|
* 分解
|
||||||
*/
|
*/
|
||||||
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"Polyline.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/Polyline.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"Polyline.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/Polyline.ts"],"names":[],"mappings":"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"}
|
18
types/GraphicsSystem/OffsetPolyline.d.ts
vendored
18
types/GraphicsSystem/OffsetPolyline.d.ts
vendored
@ -3,6 +3,7 @@ import { Contour } from "../DatabaseServices/Contour";
|
|||||||
import { Arc } from "../DatabaseServices/Entity/Arc";
|
import { Arc } from "../DatabaseServices/Entity/Arc";
|
||||||
import { Circle } from "../DatabaseServices/Entity/Circle";
|
import { Circle } from "../DatabaseServices/Entity/Circle";
|
||||||
import { Curve } from "../DatabaseServices/Entity/Curve";
|
import { Curve } from "../DatabaseServices/Entity/Curve";
|
||||||
|
import { Line } from "../DatabaseServices/Entity/Line";
|
||||||
import { Polyline } from "../DatabaseServices/Entity/Polyline";
|
import { Polyline } from "../DatabaseServices/Entity/Polyline";
|
||||||
interface IOffsetResult {
|
interface IOffsetResult {
|
||||||
index: number;
|
index: number;
|
||||||
@ -25,11 +26,16 @@ export declare class CurveTreeNode {
|
|||||||
TrimBy(contour: Contour, box: Box3): void;
|
TrimBy(contour: Contour, box: Box3): void;
|
||||||
get Nodes(): this[];
|
get Nodes(): this[];
|
||||||
}
|
}
|
||||||
|
export declare enum PolylineJoinType {
|
||||||
|
Square = 0,
|
||||||
|
Round = 1
|
||||||
|
}
|
||||||
export declare class OffsetPolyline {
|
export declare class OffsetPolyline {
|
||||||
_Polyline: Polyline;
|
_Polyline: Polyline;
|
||||||
_OffsetDist: number;
|
_OffsetDist: number;
|
||||||
_ToolPath: boolean;
|
_ToolPath: boolean;
|
||||||
private _OffsetDistSq;
|
private _OffsetDistSq;
|
||||||
|
private JoinType;
|
||||||
_CacheOCS: Matrix4;
|
_CacheOCS: Matrix4;
|
||||||
_Vertexs: Vector3[];
|
_Vertexs: Vector3[];
|
||||||
_SubCurves: Curve[];
|
_SubCurves: Curve[];
|
||||||
@ -44,7 +50,16 @@ export declare class OffsetPolyline {
|
|||||||
_IsClose: boolean;
|
_IsClose: boolean;
|
||||||
_OffsetDistSign: number;
|
_OffsetDistSign: number;
|
||||||
_IsTopoOffset: boolean;
|
_IsTopoOffset: boolean;
|
||||||
constructor(_Polyline: Polyline, _OffsetDist: number, _ToolPath?: boolean, _OffsetDistSq?: number);
|
/**
|
||||||
|
*
|
||||||
|
* @param _Polyline
|
||||||
|
* @param _OffsetDist
|
||||||
|
* @param [_ToolPath=false] 走刀模式(在这个模式下,我们会进行圆弧过渡(或者直线过渡)避免尖角过大)
|
||||||
|
* @param [_OffsetDistSq=(_OffsetDist ** 2) * 2.1] 允许的最大尖角长度 默认值差不多是矩形的尖角大一点
|
||||||
|
* @param [JoinType=PolylineJoinType.Round] 尖角的处理方式,默认是圆弧过渡,可以切换成直线过渡
|
||||||
|
*/
|
||||||
|
constructor(_Polyline: Polyline, _OffsetDist: number, _ToolPath?: boolean, _OffsetDistSq?: number, //对直角走刀不进行圆弧过度
|
||||||
|
JoinType?: PolylineJoinType);
|
||||||
Do(): Polyline[];
|
Do(): Polyline[];
|
||||||
InitSubCurves(): this;
|
InitSubCurves(): this;
|
||||||
protected GeneralCirclesAndVertexs(): void;
|
protected GeneralCirclesAndVertexs(): void;
|
||||||
@ -68,6 +83,7 @@ export declare class OffsetPolyline {
|
|||||||
CheckPointDir(pt: Vector3): boolean;
|
CheckPointDir(pt: Vector3): boolean;
|
||||||
GetPointAtCurveDir(pt: Vector3): number;
|
GetPointAtCurveDir(pt: Vector3): number;
|
||||||
protected CreateArc(center: Vector3, startP: Vector3, endP?: Vector3): Arc;
|
protected CreateArc(center: Vector3, startP: Vector3, endP?: Vector3): Arc;
|
||||||
|
protected CreateSquare(center: Vector3, curveNow: IOffsetResult, curveNext: IOffsetResult, entTypeCode: number): Line;
|
||||||
}
|
}
|
||||||
export declare function EntityEncode2(c1: Curve, c2: Curve): number;
|
export declare function EntityEncode2(c1: Curve, c2: Curve): number;
|
||||||
export declare function CurveIsFine(curve: Curve): boolean;
|
export declare function CurveIsFine(curve: Curve): boolean;
|
||||||
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"OffsetPolyline.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/OffsetPolyline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAK/C,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAM/D,UAAU,aAAa;IAEnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;CAC1B;AAED,qBAAa,aAAa;IAQH,KAAK,EAAE,KAAK;IAN/B,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,GAAG,EAAE,IAAI,CAAC;IACV,IAAI,EAAE,OAAO,CAAC;IAEd,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI;gBAEnB,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI;IAK3C,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI;IA6ElC,IAAI,KAAK,WAUR;CACJ;AAED,qBAAa,cAAc;IA4BJ,SAAS,EAAE,QAAQ;IAAS,WAAW,EAAE,MAAM;IAAS,SAAS;IAChF,OAAO,CAAC,aAAa;IA1BzB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAGnB,kBAAkB,EAAE,aAAa,EAAE,CAAC;IAEpC,eAAe,EAAE,aAAa,EAAE,CAAC;IAEjC,qBAAqB,EAAE,aAAa,EAAE,CAAC;IAGvC,qBAAqB,EAAE,OAAO,EAAE,CAAC;IACjC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAG5B,UAAU,EAAE,QAAQ,EAAE,CAAC;IAEvB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IAExB,aAAa,UAAS;gBAEH,SAAS,EAAE,QAAQ,EAAS,WAAW,EAAE,MAAM,EAAS,SAAS,UAAQ,EAChF,aAAa,SAA2B;IAKpD,EAAE,IAAI,QAAQ,EAAE;IAkDhB,aAAa;IAUb,SAAS,CAAC,wBAAwB;IAWlC,SAAS,CAAC,eAAe;IAkBzB,aAAa;IA+Kb;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAQrB,SAAS,CAAC,mBAAmB;IAoK7B,SAAS,CAAC,cAAc;IAqBxB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,kBAAkB;IAoH1B,OAAO,CAAC,6BAA6B;IAwCrC,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO;IAKnC,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM;IA0FvC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO;CAOvE;AAOD,wBAAgB,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,UAGjD;AAMD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,WAIvC"}
|
{"version":3,"file":"OffsetPolyline.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/OffsetPolyline.ts"],"names":[],"mappings":"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"}
|
Loading…
Reference in New Issue
Block a user