public void SetStirrupZoneIO(IXEP_StirrupZoneIO zoneIO, bool insertShapeInAfterAndBefore) { if (m_zone4Work == null) { throw new InvalidOperationException("Zone4Work was not created, please call 'PrepareZones' "); } m_zone4Work.CreateFrom(zoneIO, m_sectionPos, m_baseMat, m_zoneBeg, m_zoneEnd, m_zone4Work.ZoneID); XEP_BaseEmdFile.RemoveElements(m_reinf4Stirrups, XEP_EmdNames.s_KeyStirrupZone); if (zoneIO.IsValid()) { foreach (var zone in m_zonesBefore) { m_reinf4Stirrups.Elements.Add(zone); } m_reinf4Stirrups.Elements.Add(m_zone4Work.CreateEmdElement()); foreach (var zone in m_zonesAfter) { m_reinf4Stirrups.Elements.Add(zone); } if (insertShapeInAfterAndBefore) { foreach (var zone in m_zonesBefore) { XEP_BaseEmdFile.RemoveElements(zone, XEP_EmdNames.s_KeyStirrupZoneShape); zone.Elements.Add(m_zone4Work.ZoneShape.CreateEmdElement()); } foreach (var zone in m_zonesAfter) { XEP_BaseEmdFile.RemoveElements(zone, XEP_EmdNames.s_KeyStirrupZoneShape); zone.Elements.Add(m_zone4Work.ZoneShape.CreateEmdElement()); } } } }
private void CreateStirrupsFromEnd(IXEP_StirrupZoneIO zoneInput) { double halfSpacing = zoneInput.Spacing / 2; double actStirrupDx = ZoneEnd - halfSpacing; while (actStirrupDx > ZoneBeg) { DoOneStep(actStirrupDx, halfSpacing, zoneInput.StirrupDiameter); actStirrupDx -= zoneInput.Spacing; } }
public void CreateFrom(IXEP_StirrupZoneIO zoneInput, double sectionPos, string matName, double zoneBeg, double zoneEnd, int zoneID) { ZoneID = zoneID; Material = matName; ZoneBeg = zoneBeg; ZoneEnd = zoneEnd; IsAutoCutsCalc = 1; NumCutUser = zoneInput.NumCut; Position = XEP_EmdNames.s_Value_ZonePosCurrent; Coeff = 4.0; ZoneShape.CreateFrom(zoneInput.Shapes); CreateStirrups(zoneInput, sectionPos); }
private void CreateStirrups(IXEP_StirrupZoneIO zoneInput, double sectionPos) { Stirrups = new List <IXEP_EmdStirrupData>(); if (zoneInput.Spacing <= 0.0) { return; } double memberLenght = Math.Abs(ZoneBeg - ZoneEnd); if ((sectionPos) < (ZoneBeg + memberLenght / 2)) { CreateStirrupsFromBegin(zoneInput); } else { CreateStirrupsFromEnd(zoneInput); } }
public IXEP_StirrupZoneIO Create(double sectionPos) { IXEP_StirrupZoneIO zoneInput = XEP_EmdFactrory.CreateStirrupZoneIO(); zoneInput.Shapes = ZoneShape.Create(); zoneInput.NumCut = NumCutUser; IXEP_EmdStirrupData nearestStirrup = FindNearestStirrup(sectionPos); if (nearestStirrup == null) { zoneInput.Spacing = 0.0; zoneInput.StirrupDiameter = 0.0; } else { zoneInput.Spacing = nearestStirrup.Dss; zoneInput.StirrupDiameter = nearestStirrup.D; } return(zoneInput); }
public void SetStirrupZoneIO(IXEP_StirrupZoneIO zoneIO, bool insertShapeInAfterAndBefore) { m_zonePreparator.SetStirrupZoneIO(zoneIO, insertShapeInAfterAndBefore); }