SectionTemlate was added

This commit is contained in:
Evgeny Redikultsev
2022-12-20 21:37:38 +05:00
parent d240968f29
commit 487cc66c39
36 changed files with 631 additions and 44 deletions

View File

@@ -13,6 +13,7 @@ using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Input;
namespace StructureHelper.Windows.ViewModels.Calculations.Calculators
@@ -47,6 +48,7 @@ namespace StructureHelper.Windows.ViewModels.Calculations.Calculators
public bool LongTerm { get; set; }
public ISourceToTargetViewModel<IForceCombinationList> CombinationViewModel { get; }
//public ISourceToTargetViewModel<PrimitiveBase> PrimitivesViewModel { get; }
public PrimitiveBase SelectedAllowedPrimitive { get; set; }
public PrimitiveBase SelectedPrimitive { get; set; }
@@ -148,6 +150,13 @@ namespace StructureHelper.Windows.ViewModels.Calculations.Calculators
CombinationViewModel.SetTargetItems(forcesCalculator.ForceCombinationLists);
CombinationViewModel.SetSourceItems(allowedForceCombinations);
//PrimitivesViewModel = new SourceToTargetViewModel<PrimitiveBase>();
//var targetItems = forcesCalculator.NdmPrimitives;
//var viewPrimitives = ConvertNdmPrimitivesToPrimitiveBase(targetItems);
//PrimitivesViewModel.SetTargetItems(viewPrimitives);
//var sourceViewPrimitives = ConvertNdmPrimitivesToPrimitiveBase(allowedPrimitives) ;
//PrimitivesViewModel.SetSourceItems(sourceViewPrimitives);
InputRefresh();
}
@@ -187,6 +196,11 @@ namespace StructureHelper.Windows.ViewModels.Calculations.Calculators
{
forcesCalculator.ForceCombinationLists.Add(item);
}
//forcesCalculator.NdmPrimitives.Clear();
//foreach (var item in PrimitivesViewModel.GetTargetItems())
//{
// forcesCalculator.NdmPrimitives.Add(item.GetNdmPrimitive());
//}
forcesCalculator.LimitStatesList.Clear();
if (ULS == true) { forcesCalculator.LimitStatesList.Add(LimitStates.ULS); }
if (SLS == true) { forcesCalculator.LimitStatesList.Add(LimitStates.SLS); }

View File

@@ -0,0 +1,74 @@
using FieldVisualizer.Infrastructure.Commands;
using FieldVisualizer.ViewModels;
using LoaderCalculator.Data.Matrix;
using LoaderCalculator.Data.Ndms;
using StructureHelper.Infrastructure.UI.DataContexts;
using StructureHelper.Services.Reports;
using StructureHelper.Services.Reports.CalculationReports;
using StructureHelper.Services.ResultViewers;
using StructureHelperLogics.NdmCalculations.Analyses.ByForces;
using StructureHelperLogics.NdmCalculations.Primitives;
using StructureHelperLogics.Services.NdmPrimitives;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace StructureHelper.Windows.ViewModels.Calculations.Calculators
{
public class ForcesResultsViewModel : ViewModelBase
{
private IForceCalculator forceCalculator;
private IForcesResults forcesResults;
private IEnumerable<INdmPrimitive> ndmPrimitives;
private IEnumerable<INdm> ndms;
private IReport isoFieldReport;
public ForcesResult SelectedResult { get; set; }
private ICommand showIsoFieldCommand;
public IForcesResults ForcesResults
{
get => forcesResults;
}
public ICommand ShowIsoFieldCommand
{
get
{
return showIsoFieldCommand ??
(
showIsoFieldCommand = new RelayCommand(o =>
{
GetNdms();
ShowIsoField();
}, o => (SelectedResult != null) && SelectedResult.IsValid));
}
}
public ForcesResultsViewModel(IForceCalculator forceCalculator)
{
this.forceCalculator = forceCalculator;
this.forcesResults = this.forceCalculator.Result as IForcesResults;
ndmPrimitives = this.forceCalculator.NdmPrimitives;
}
private void ShowIsoField()
{
IStrainMatrix strainMatrix = SelectedResult.LoaderResults.ForceStrainPair.StrainMatrix;
var primitiveSets = ShowIsoFieldResult.GetPrimitiveSets(strainMatrix, ndms, ResultFuncFactory.GetResultFuncs());
isoFieldReport = new IsoFieldReport(primitiveSets);
isoFieldReport.Show();
}
private void GetNdms()
{
var limitState = SelectedResult.DesignForceTuple.LimitState;
var calcTerm = SelectedResult.DesignForceTuple.CalcTerm;
ndms = NdmPrimitivesService.GetNdms(ndmPrimitives, limitState, calcTerm);
}
}
}