PrimitiveProps editing via context menu was added
This commit is contained in:
@@ -12,12 +12,12 @@ namespace StructureHelperLogics.Models.Templates.CrossSections.RCs
|
||||
{
|
||||
public class CircleGeometryLogic : IRCGeometryLogic
|
||||
{
|
||||
ICircleBeamTemplate template;
|
||||
ICircleTemplate template;
|
||||
|
||||
|
||||
public IEnumerable<IHeadMaterial> HeadMaterials { get; set; }
|
||||
|
||||
public CircleGeometryLogic(ICircleBeamTemplate template)
|
||||
public CircleGeometryLogic(ICircleTemplate template)
|
||||
{
|
||||
this.template = template;
|
||||
}
|
||||
@@ -32,7 +32,7 @@ namespace StructureHelperLogics.Models.Templates.CrossSections.RCs
|
||||
|
||||
private IEnumerable<INdmPrimitive> GetConcretePrimitives()
|
||||
{
|
||||
var diameter = template.SectionDiameter;
|
||||
var diameter = template.Shape.Diameter;
|
||||
var concreteMaterial = HeadMaterials.ToList()[0];
|
||||
var primitives = new List<INdmPrimitive>();
|
||||
var rectangle = new CirclePrimitive() { Diameter = diameter, Name = "Concrete block", HeadMaterial = concreteMaterial };
|
||||
@@ -43,11 +43,11 @@ namespace StructureHelperLogics.Models.Templates.CrossSections.RCs
|
||||
private IEnumerable<INdmPrimitive> GetReinfrocementPrimitives()
|
||||
{
|
||||
var reinforcementMaterial = HeadMaterials.ToList()[1];
|
||||
var radius = template.SectionDiameter / 2 - template.CoverGap;
|
||||
var dAngle = 2d * Math.PI / template.BarQuantity;
|
||||
var radius = template.Shape.Diameter / 2 - template.CoverGap;
|
||||
var dAngle = 2d * Math.PI / template.BarCount;
|
||||
var barArea = Math.PI* template.BarDiameter* template.BarDiameter / 4d;
|
||||
var primitives = new List<INdmPrimitive>();
|
||||
for (int i = 0; i < template.BarQuantity; i++)
|
||||
for (int i = 0; i < template.BarCount; i++)
|
||||
{
|
||||
var angle = i * dAngle;
|
||||
var x = radius * Math.Sin(angle);
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
using StructureHelperCommon.Models.Shapes;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperLogics.Models.Templates.CrossSections.RCs
|
||||
{
|
||||
public class CircleTemplate : ICircleTemplate
|
||||
{
|
||||
public ICircleShape Shape { get; }
|
||||
public double CoverGap { get; set; }
|
||||
public int BarCount { get; set; }
|
||||
public double BarDiameter { get; set; }
|
||||
public CircleTemplate()
|
||||
{
|
||||
Shape = new CircleShape();
|
||||
Shape.Diameter = 0.5d;
|
||||
CoverGap = 0.05d;
|
||||
BarCount = 8;
|
||||
BarDiameter = 0.025d;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,14 +7,11 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperLogics.Models.Templates.CrossSections.RCs
|
||||
{
|
||||
public interface ICircleBeamTemplate
|
||||
public interface ICircleTemplate : IRCSectionTemplate
|
||||
{
|
||||
ICircleShape Circle { get; }
|
||||
ICircleShape Shape { get; }
|
||||
double CoverGap { get; set; }
|
||||
double SectionDiameter { get; set; }
|
||||
int BarQuantity { get; set; }
|
||||
int BarCount { get; set; }
|
||||
double BarDiameter { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperLogics.Models.Templates.CrossSections.RCs
|
||||
{
|
||||
public interface IRCSectionTemplate
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using StructureHelperCommon.Models.Shapes;
|
||||
using StructureHelperLogics.Models.Templates.CrossSections.RCs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -7,7 +8,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperLogics.Models.Templates.RCs
|
||||
{
|
||||
public interface IRectangleBeamTemplate
|
||||
public interface IRectangleBeamTemplate : IRCSectionTemplate
|
||||
{
|
||||
IShape Shape { get; }
|
||||
double CoverGap { get; set; }
|
||||
|
||||
@@ -7,6 +7,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace StructureHelperLogics.Models.Templates.CrossSections.RCs
|
||||
{
|
||||
@@ -17,9 +18,11 @@ namespace StructureHelperLogics.Models.Templates.CrossSections.RCs
|
||||
var result = new List<IHeadMaterial>();
|
||||
var concrete = HeadMaterialFactory.GetHeadMaterial(HeadmaterialType.Concrete40, ProgramSetting.CodeType);
|
||||
concrete.Name = "Concrete";
|
||||
concrete.Color = (Color)ColorConverter.ConvertFromString("AliceBlue");
|
||||
result.Add(concrete);
|
||||
var reinforcement = HeadMaterialFactory.GetHeadMaterial(HeadmaterialType.Reinforecement400, ProgramSetting.CodeType);
|
||||
reinforcement.Name = "Reinforcement";
|
||||
reinforcement.Color = (Color)ColorConverter.ConvertFromString("Red");
|
||||
result.Add(reinforcement);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace StructureHelperLogics.Models.Templates.CrossSections.RCs
|
||||
{
|
||||
public class RectGeometryLogic : IRCGeometryLogic
|
||||
{
|
||||
RectangleBeamTemplate template;
|
||||
IRectangleBeamTemplate template;
|
||||
IHeadMaterial concrete => HeadMaterials.ToList()[0];
|
||||
IHeadMaterial reinforcement => HeadMaterials.ToList()[1];
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace StructureHelperLogics.Models.Templates.CrossSections.RCs
|
||||
|
||||
public IEnumerable<IHeadMaterial> HeadMaterials { get; set; }
|
||||
|
||||
public RectGeometryLogic(RectangleBeamTemplate template)
|
||||
public RectGeometryLogic(IRectangleBeamTemplate template)
|
||||
{
|
||||
this.template = template;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user