CrackedCalculator and TriangulationLogic were changed
This commit is contained in:
@@ -22,6 +22,8 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews
|
||||
internal class CrackDiagramLogic : ILongProcessLogic
|
||||
{
|
||||
static readonly CrackForceCalculator calculator = new();
|
||||
private ITriangulatePrimitiveLogic triangulateLogic;
|
||||
|
||||
private List<IForcesTupleResult> ValidTupleList { get; set; }
|
||||
ArrayParameter<double> arrayParameter;
|
||||
private IEnumerable<IForcesTupleResult> TupleList { get; set; }
|
||||
@@ -102,7 +104,14 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews
|
||||
calculator.EndTuple = validTupleList[i].DesignForceTuple.ForceTuple;
|
||||
var limitState = validTupleList[i].DesignForceTuple.LimitState;
|
||||
var calcTerm = validTupleList[i].DesignForceTuple.CalcTerm;
|
||||
var ndms = NdmPrimitivesService.GetNdms(ndmPrimitives, limitState, calcTerm);
|
||||
triangulateLogic = new TriangulatePrimitiveLogic()
|
||||
{
|
||||
Primitives = ndmPrimitives,
|
||||
LimitState = limitState,
|
||||
CalcTerm = calcTerm,
|
||||
TraceLogger = TraceLogger
|
||||
};
|
||||
var ndms = triangulateLogic.GetNdms();
|
||||
calculator.NdmCollection = ndms;
|
||||
calculator.Run();
|
||||
var result = (CrackForceResult)calculator.Result;
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews.ForceCalcu
|
||||
internal class ShowCrackResultLogic
|
||||
{
|
||||
private CrackForceCalculator calculator;
|
||||
private ITriangulatePrimitiveLogic triangulateLogic;
|
||||
|
||||
public static GeometryNames GeometryNames => ProgramSetting.GeometryNames;
|
||||
public LimitStates LimitState { get; set; }
|
||||
@@ -42,7 +43,13 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews.ForceCalcu
|
||||
calculator.TraceLogger = new ShiftTraceLogger();
|
||||
calculator.StartTuple = startDesignTuple;
|
||||
calculator.EndTuple = finishDesignTuple;
|
||||
calculator.NdmCollection = NdmPrimitivesService.GetNdms(ndmPrimitives, LimitState, CalcTerm);
|
||||
triangulateLogic = new TriangulatePrimitiveLogic()
|
||||
{
|
||||
Primitives = ndmPrimitives,
|
||||
LimitState = LimitState,
|
||||
CalcTerm = CalcTerm
|
||||
};
|
||||
calculator.NdmCollection = triangulateLogic.GetNdms();
|
||||
calculator.Run();
|
||||
var result = (CrackForceResult)calculator.Result;
|
||||
if (result.IsValid)
|
||||
|
||||
@@ -19,14 +19,14 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews.ForceCalcu
|
||||
|
||||
internal void Show()
|
||||
{
|
||||
var inputData = new CrackWidthCalculatorInputData()
|
||||
var inputData = new TupleCrackInputData()
|
||||
{
|
||||
//LimitState = LimitState,
|
||||
//CalcTerm = CalcTerm,
|
||||
LongTermTuple = ForceTuple,
|
||||
NdmPrimitives = ndmPrimitives
|
||||
};
|
||||
var calculator = new CrackWidthCalculator() { InputData = inputData };
|
||||
var calculator = new TupleCrackCalculator() { InputData = inputData };
|
||||
calculator.Run();
|
||||
var result = calculator.Result;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using LoaderCalculator;
|
||||
using LoaderCalculator.Data.Materials.MaterialBuilders;
|
||||
using LoaderCalculator.Data.Matrix;
|
||||
using LoaderCalculator.Data.Ndms;
|
||||
using LoaderCalculator.Data.ResultData;
|
||||
@@ -9,6 +10,7 @@ using StructureHelper.Services.Primitives;
|
||||
using StructureHelper.UnitSystem;
|
||||
using StructureHelper.UnitSystem.Systems;
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using StructureHelperCommon.Models;
|
||||
using StructureHelperCommon.Services.Units;
|
||||
using StructureHelperLogics.Models.Calculations.CalculationProperties;
|
||||
using StructureHelperLogics.Models.CrossSections;
|
||||
@@ -26,6 +28,8 @@ namespace StructureHelper.Windows.MainWindow
|
||||
{
|
||||
public class CrossSectionModel
|
||||
{
|
||||
private ITriangulatePrimitiveLogic triangulateLogic;
|
||||
|
||||
public ICrossSection Section { get; private set; }
|
||||
private IPrimitiveRepository primitiveRepository;
|
||||
public IHeadMaterialRepository HeadMaterialRepository { get; }
|
||||
@@ -52,7 +56,13 @@ namespace StructureHelper.Windows.MainWindow
|
||||
public IEnumerable<INdm> GetNdms(ICalculationProperty calculationProperty)
|
||||
{
|
||||
var ndmPrimitives = Section.SectionRepository.Primitives;
|
||||
return NdmPrimitivesService.GetNdms(ndmPrimitives, calculationProperty.LimitState, calculationProperty.CalcTerm);
|
||||
triangulateLogic = new TriangulatePrimitiveLogic()
|
||||
{
|
||||
Primitives = ndmPrimitives,
|
||||
LimitState = calculationProperty.LimitState,
|
||||
CalcTerm = calculationProperty.CalcTerm
|
||||
};
|
||||
return triangulateLogic.GetNdms();
|
||||
////Настройки триангуляции, пока опции могут быть только такие
|
||||
//ITriangulationOptions options = new TriangulationOptions { LimiteState = calculationProperty.LimitState, CalcTerm = calculationProperty.CalcTerm };
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
<ContentControl ContentTemplate="{DynamicResource DiagramCalculator}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<Button Visibility="Hidden" Style="{DynamicResource ToolButton}" Command="{Binding Add}" CommandParameter="{x:Static enums:CalculatorTypes.CrackCalculator}" ToolTip="Add Interaction Diagram Calculator">
|
||||
<Button Style="{DynamicResource ToolButton}" Command="{Binding Add}" CommandParameter="{x:Static enums:CalculatorTypes.CrackCalculator}" ToolTip="Add Crack Calculator">
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{DynamicResource CrackCalculator}"/>
|
||||
</Viewbox>
|
||||
@@ -357,7 +357,7 @@
|
||||
</Viewbox>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Visibility="Hidden" Header="Add Crack Calculator" Command="{Binding Add}" CommandParameter="{x:Static enums:CalculatorTypes.CrackCalculator}">
|
||||
<MenuItem Header="Add Crack Calculator" Command="{Binding Add}" CommandParameter="{x:Static enums:CalculatorTypes.CrackCalculator}">
|
||||
<MenuItem.Icon>
|
||||
<Viewbox Width="16" Height="16">
|
||||
<ContentControl ContentTemplate="{DynamicResource CrackCalculator}"/>
|
||||
|
||||
@@ -29,6 +29,8 @@ namespace StructureHelper.Windows.MainWindow
|
||||
{
|
||||
private ICrossSection section;
|
||||
private ICrossSectionRepository repository => section.SectionRepository;
|
||||
private ITriangulatePrimitiveLogic triangulateLogic;
|
||||
|
||||
|
||||
public CrossSectionVisualPropertyVM VisualProperty { get; private set; }
|
||||
|
||||
@@ -172,7 +174,13 @@ namespace StructureHelper.Windows.MainWindow
|
||||
MovePrimitiveToGravityCenterCommand = new RelayCommand(o =>
|
||||
{
|
||||
if (CheckMaterials() == false) { return;}
|
||||
var ndms = NdmPrimitivesService.GetNdms(repository.Primitives, LimitStates.SLS, CalcTerms.ShortTerm);
|
||||
triangulateLogic = new TriangulatePrimitiveLogic()
|
||||
{
|
||||
Primitives = repository.Primitives,
|
||||
LimitState = LimitStates.SLS,
|
||||
CalcTerm = CalcTerms.ShortTerm
|
||||
};
|
||||
var ndms = triangulateLogic.GetNdms();
|
||||
var center = GeometryOperations.GetGravityCenter(ndms);
|
||||
foreach (var item in PrimitiveLogic.Items)
|
||||
{
|
||||
|
||||
@@ -11,6 +11,7 @@ using StructureHelperCommon.Models.Calculators;
|
||||
using StructureHelperLogics.Models.CrossSections;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.ByForces;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.Logics;
|
||||
using StructureHelperLogics.NdmCalculations.Cracking;
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Forms;
|
||||
@@ -56,7 +57,13 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
|
||||
|
||||
private void AddCrackCalculator()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
var inputData = new CrackInputData();
|
||||
var calculator = new CrackCalculator(inputData)
|
||||
{
|
||||
Name = "New crack calculator",
|
||||
TraceLogger = new ShiftTraceLogger(),
|
||||
};
|
||||
NewItem = calculator;
|
||||
}
|
||||
|
||||
private void AddLimitCurveCalculator()
|
||||
@@ -102,20 +109,15 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
|
||||
|
||||
private void EditCalculator()
|
||||
{
|
||||
if (SelectedItem is ForceCalculator)
|
||||
{
|
||||
var calculator = SelectedItem as ForceCalculator;
|
||||
EditForceCalculator(calculator);
|
||||
}
|
||||
else if (SelectedItem is LimitCurvesCalculator)
|
||||
{
|
||||
var calculator = SelectedItem as LimitCurvesCalculator;
|
||||
EditLimitCurveCalculator(calculator);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(SelectedItem));
|
||||
}
|
||||
if (SelectedItem is ForceCalculator forceCalculator) { EditForceCalculator(forceCalculator);}
|
||||
else if (SelectedItem is LimitCurvesCalculator limitCurvesCalculator) { EditLimitCurveCalculator(limitCurvesCalculator); }
|
||||
else if (SelectedItem is CrackCalculator crackCalculator) { EditCrackCalculator(crackCalculator);}
|
||||
else { throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(SelectedItem));}
|
||||
}
|
||||
|
||||
private void EditCrackCalculator(CrackCalculator crackCalculator)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
private void EditLimitCurveCalculator(LimitCurvesCalculator calculator)
|
||||
@@ -193,6 +195,7 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
|
||||
ProcessResult();
|
||||
}
|
||||
}
|
||||
|
||||
if (SelectedItem.TraceLogger is not null)
|
||||
{
|
||||
var wnd = new TraceDocumentView(SelectedItem.TraceLogger.TraceLoggerEntries);
|
||||
@@ -214,12 +217,15 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
|
||||
|
||||
private void ProcessResult()
|
||||
{
|
||||
if (SelectedItem is IForceCalculator)
|
||||
if (SelectedItem is ForceCalculator forceCalculator)
|
||||
{
|
||||
var calculator = SelectedItem as ForceCalculator;
|
||||
var vm = new ForcesResultsViewModel(calculator);
|
||||
var vm = new ForcesResultsViewModel(forceCalculator);
|
||||
var wnd = new ForceResultsView(vm);
|
||||
wnd.ShowDialog();
|
||||
}
|
||||
else if (SelectedItem is CrackCalculator crackCalculator)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user