功能:模块树支持直接输入D代替_DIV

pull/1974/head
ChenX 2 years ago
parent 1ff72267a2
commit edaf000fce

@ -105,10 +105,9 @@ export class Command_Break implements Command
let cus = cu.GetSplitCurves(params); let cus = cu.GetSplitCurves(params);
if (cus.length > 0) if (cus.length > 0)
cu.Erase(); cu.Erase();
cus.forEach(c =>
{ for (let c of cus)
app.Database.ModelSpace.Append(c); Draw(c);
});
} }
} }
} }

@ -554,21 +554,22 @@ export class TemplateRecord extends SymbolTableRecord
//计算DIV(给子空间使用) //计算DIV(给子空间使用)
if (template.Children.length > 0 && template.SplitType !== TemplateSplitType.None) if (template.Children.length > 0 && template.SplitType !== TemplateSplitType.None)
{ {
let vardefines = (<TemplateRecord>template.Children[0].Object).GetParameterDefinition(false); let sum = 0;//除去div时,总共占用的空间
vardefines._DIV = 0;
let sum = 0;
for (let c of template.Children) for (let c of template.Children)
{ {
let ctemplate = c.Object as TemplateRecord; let ctemplate = c.Object as TemplateRecord;
let vardefines = ctemplate.GetParameterDefinition(false);
vardefines._DIV = 0;
let param = ctemplate.Params[template.SplitType]; let param = ctemplate.Params[template.SplitType];
sum += param.EvalUpdate(vardefines, new Map(), new Set(), false); sum += param.EvalUpdate(vardefines, new Map(), new Set(), false);
} }
let sumDiv = 0; let sumDiv = 0;//div=1时占用的空间
vardefines._DIV = 1;
for (let c of template.Children) for (let c of template.Children)
{ {
let ctemplate = c.Object as TemplateRecord; let ctemplate = c.Object as TemplateRecord;
let vardefines = ctemplate.GetParameterDefinition(false);
vardefines._DIV = 1;
let param = ctemplate.Params[template.SplitType]; let param = ctemplate.Params[template.SplitType];
sumDiv += param.EvalUpdate(vardefines, new Map(), new Set(), false); sumDiv += param.EvalUpdate(vardefines, new Map(), new Set(), false);
} }

@ -486,7 +486,12 @@ export class TemplateParamDetail extends React.Component<{}> {
return true; return true;
else else
{ {
let result = CheckExpr(par.expr as string, this.store.GetCurrentTemplate().GetParameterDefinition()); let paramDefine = this.store.GetCurrentTemplate().GetParameterDefinition();
if ((par.expr as string).trim() === "D" && !("D" in paramDefine))
par.expr = "_DIV";
let result = CheckExpr(par.expr as string, paramDefine);
if (result.error !== undefined)//执行出错 反馈error if (result.error !== undefined)//执行出错 反馈error
{ {
app.Editor.Prompt("表达式求值失败:" + result.error); app.Editor.Prompt("表达式求值失败:" + result.error);

Loading…
Cancel
Save