酷家乐:修复网洞未解析

pull/787/head
ChenX 5 years ago
parent c305ad0fd1
commit ecf22033b8

@ -193,6 +193,11 @@ function ParseModel(model: KJL_ParamModel, roomName: string, gName: string, pare
return; return;
const kjlConfig = userConfig.kjlConfig; const kjlConfig = userConfig.kjlConfig;
let [pls, edgesBandings] = ParsePathOutlineAndHole(bmodel.paramPlankPath.path, edgeBandingAll, drillData); let [pls, edgesBandings] = ParsePathOutlineAndHole(bmodel.paramPlankPath.path, edgeBandingAll, drillData);
for (let p of bmodel.paramPlankPath.holes)
{
let [pls2] = ParsePathOutlineAndHole(p);
pls.push(...pls2);
}
let br = new Board(); let br = new Board();
br.Name = model.modelName; br.Name = model.modelName;
@ -434,7 +439,7 @@ function ParseDrilling(params: KJL_Parameter[]): KJL_DrillData | undefined
* Path * Path
* @param path * @param path
*/ */
function ParsePathOutlineAndHole(path: KJL_Path, edgeBandingAll: number[], drillData: KJL_DrillData): [Polyline[], number[][]] function ParsePathOutlineAndHole(path: KJL_Path, edgeBandingAll?: number[], drillData?: KJL_DrillData): [Polyline[], number[][]]
{ {
let fuzzP = new FuzzPoint(); let fuzzP = new FuzzPoint();
let ptsAll = path.resultPoints.map(p => fuzzP.GetVector(p)); let ptsAll = path.resultPoints.map(p => fuzzP.GetVector(p));
@ -474,6 +479,7 @@ function ParsePathOutlineAndHole(path: KJL_Path, edgeBandingAll: number[], drill
{ {
let jplus = j++; let jplus = j++;
ptsAll[jplus] = ptsAll[i]; ptsAll[jplus] = ptsAll[i];
radiusAll[jplus] = radiusAll[i];
if (edgeBandingAll) if (edgeBandingAll)
edgeBandingAll[jplus] = edgeBandingAll[i]; edgeBandingAll[jplus] = edgeBandingAll[i];
if (drillData?.drillSides) if (drillData?.drillSides)
@ -484,6 +490,7 @@ function ParsePathOutlineAndHole(path: KJL_Path, edgeBandingAll: number[], drill
edgeBandingAll.length = j; edgeBandingAll.length = j;
if (drillData?.drillSides) if (drillData?.drillSides)
drillData.drillSides.length = j;; drillData.drillSides.length = j;;
radiusAll.length = j;
let polylines: Polyline[] = []; let polylines: Polyline[] = [];
let edgeBandings: number[][] = []; let edgeBandings: number[][] = [];
@ -568,7 +575,7 @@ function Radius2Buls(pts: Vector2[], radiuss: number[]): number[]
buls.push(0); buls.push(0);
else else
{ {
let nextIndex = FixIndex(i + 1, radiuss.length); let nextIndex = FixIndex(i + 1, pts);
let dist = pts[i].distanceTo(pts[nextIndex]) * 0.5; let dist = pts[i].distanceTo(pts[nextIndex]) * 0.5;
let bul = Math.tan(0.5 * Math.asin(dist / Math.abs(radius))) * Math.sign(radius); let bul = Math.tan(0.5 * Math.asin(dist / Math.abs(radius))) * Math.sign(radius);
buls.push(bul); buls.push(bul);

Loading…
Cancel
Save