|
|
|
@ -206,12 +206,9 @@ function ParseModel(model: KJL_ParamModel, roomName: string, gName: string, pare
|
|
|
|
|
br.testData = {
|
|
|
|
|
edgeBandingAll, drillData, model
|
|
|
|
|
};
|
|
|
|
|
const isInv = pls[0].Area2 < 0;
|
|
|
|
|
br.ContourCurve = pls[0];
|
|
|
|
|
if (edgesBandings.length > 0 && edgesBandings[0].length > 0)
|
|
|
|
|
{
|
|
|
|
|
if (isInv)
|
|
|
|
|
edgesBandings[0].reverse();
|
|
|
|
|
let sealeds: IHighSealedItem[] = edgesBandings[0].map(v =>
|
|
|
|
|
{
|
|
|
|
|
return { size: v };
|
|
|
|
@ -238,8 +235,6 @@ function ParseModel(model: KJL_ParamModel, roomName: string, gName: string, pare
|
|
|
|
|
//设置排钻边
|
|
|
|
|
if (drillData?.drillSides.length > 0)
|
|
|
|
|
{
|
|
|
|
|
if (isInv)
|
|
|
|
|
drillData.drillSides.reverse();
|
|
|
|
|
let curvesNum = br.ContourCurve.CurveCount;
|
|
|
|
|
let types = ["不排", ...userConfig.DrillConfigs.keys()];
|
|
|
|
|
let last = types[arrayLast(drillData.drillSides)];
|
|
|
|
@ -327,7 +322,7 @@ function ParseModel(model: KJL_ParamModel, roomName: string, gName: string, pare
|
|
|
|
|
let templates: TemplateRecord[] = [];
|
|
|
|
|
for (let m of model.subModels)
|
|
|
|
|
{
|
|
|
|
|
let edgeBandings = ParseEdgeBanding(model.parameters) || ParseEdgeBanding(model.ignoreParameters) || ParseEdgeBanding(model.constParameters);
|
|
|
|
|
let edgeBandings = ParseEdgeBanding(model);
|
|
|
|
|
let drillData = ParseDrilling(model.parameters) || ParseDrilling(model.ignoreParameters) || ParseDrilling(model.constParameters);
|
|
|
|
|
let obj = ParseModel(m, roomName, gName, mtx, edgeBandings, drillData);
|
|
|
|
|
if (obj)
|
|
|
|
@ -364,34 +359,41 @@ function ParseModel(model: KJL_ParamModel, roomName: string, gName: string, pare
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ParseEdgeBanding(params: KJL_Parameter[]): number[] | undefined
|
|
|
|
|
function ParseEdgeBanding(model: KJL_ParamModel): number[] | undefined
|
|
|
|
|
{
|
|
|
|
|
if (!params) return;
|
|
|
|
|
|
|
|
|
|
let etIndex = params.findIndex(p => p.name === "ET");
|
|
|
|
|
if (etIndex !== -1)
|
|
|
|
|
let edgeBandings: number[] = [];
|
|
|
|
|
let maxIndex = 0;
|
|
|
|
|
const Parse = (params: KJL_Parameter[]) =>
|
|
|
|
|
{
|
|
|
|
|
let p = params[etIndex];
|
|
|
|
|
return [parseFloat(p.value)];
|
|
|
|
|
}
|
|
|
|
|
if (!params) return;
|
|
|
|
|
console.table(params.map(p =>
|
|
|
|
|
{
|
|
|
|
|
return { name: p.name, value: p.value };
|
|
|
|
|
}));
|
|
|
|
|
for (let param of params)
|
|
|
|
|
{
|
|
|
|
|
if (param.name.startsWith("ET"))
|
|
|
|
|
{
|
|
|
|
|
let index = parseInt(param.name.substring(2)) - 1;
|
|
|
|
|
edgeBandings[index] = parseFloat(param.value);
|
|
|
|
|
maxIndex = Math.max(index, maxIndex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
let index = params.findIndex(p => p.name === "ET1");
|
|
|
|
|
if (index !== -1)
|
|
|
|
|
Parse(model.constParameters);
|
|
|
|
|
Parse(model.ignoreParameters);
|
|
|
|
|
Parse(model.parameters);
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < maxIndex; i++)
|
|
|
|
|
{
|
|
|
|
|
let edgeBandings: number[] = [];
|
|
|
|
|
for (let i = index; i < params.length; i++)
|
|
|
|
|
{
|
|
|
|
|
let p = params[i];
|
|
|
|
|
if (!p.name.startsWith("ET"))
|
|
|
|
|
break;
|
|
|
|
|
if (edgeBandings[i] === undefined)
|
|
|
|
|
edgeBandings[i] = edgeBandings[maxIndex];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//0 无 1 薄 2 厚
|
|
|
|
|
edgeBandings.push(parseFloat(p.value));
|
|
|
|
|
}
|
|
|
|
|
//@ts-ignore
|
|
|
|
|
edgeBandings._test = params;
|
|
|
|
|
console.log('edgeBandings: ', edgeBandings);
|
|
|
|
|
if (edgeBandings.length > 0)
|
|
|
|
|
return edgeBandings;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ParseDrilling(params: KJL_Parameter[]): KJL_DrillData | undefined
|
|
|
|
|