public void CreateFromEmdElement(IXEP_EmdElement elem) { XEP_BaseEmdFile.CheckName(elem.Name, XEP_EmdNames.s_KeyStirrupZone); Clear(); foreach (var item in elem.Elements) { if (item.Name == XEP_EmdNames.s_KeyStirrup) { IXEP_EmdStirrupData stirrupData = XEP_EmdFactrory.CreateEmdStirrupData(); stirrupData.CreateFromEmdElement(item); Stirrups.Add(stirrupData); } else if (item.Name == XEP_EmdNames.s_KeyStirrupZoneShape) { ZoneShape.CreateFromEmdElement(item); } else { throw new InvalidOperationException("Invalid element in stirrup zone, element name: " + item.Name); } } ZoneID = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneID).GetIntValue(); Material = elem.GetAttribute(XEP_EmdFileConstants.s_RefAttributEmdTag + XEP_EmdNames.s_KeyStirrupZoneMaterial).Value; ZoneBeg = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneZoneBeg).GetDoubleValue(); ZoneEnd = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneZoneEnd).GetDoubleValue(); IsAutoCutsCalc = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneIsAutoCutsCalc).GetIntValue(); NumCutUser = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneNumCutUser).GetIntValue(); Position = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZonePosition).Value; Coeff = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneCoef).GetDoubleValue(); }
private void DoOneStep(double actStirrupDx, double halfSpacing, double diam) { IXEP_EmdStirrupData stirrupFirst = XEP_EmdFactrory.CreateEmdStirrupData(); stirrupFirst.DsL = actStirrupDx - halfSpacing; if (stirrupFirst.DsL < ZoneBeg) { stirrupFirst.DsL = ZoneBeg; } stirrupFirst.DsR = actStirrupDx + halfSpacing; if (stirrupFirst.DsR > ZoneEnd) { stirrupFirst.DsR = ZoneEnd; } stirrupFirst.Dss = (stirrupFirst.DsR - stirrupFirst.DsL); stirrupFirst.DX = actStirrupDx; stirrupFirst.D = diam; stirrupFirst.Multiply = 1; Stirrups.Add(stirrupFirst); }