private void readAnalysisCase(XmlNode node) { string name = readAttribute(node, "Case", "").Trim(); name = (name.Length > 0) ? name : Culture.Get("Case"); string type = readAttribute(node, "Type", "LinStatic"); string modal = readAttribute(node, "ModalCase", " "); bool active = readAttribute(node, "RunCase", "Yes").Equals("Yes"); AnalysisCaseProps props; switch (type) { case "LinRespSpec": props = new ResponseSpectrumCaseProps(); AnalysisCase modalCase; foreach (AbstractCase ac in model.AbstractCases) if (ac.Name.Equals(modal)) { ((ResponseSpectrumCaseProps)props).ModalAnalysisCase = (AnalysisCase)ac; break; } break; case "LinModal": props = new ModalCaseProps(); break; case "NonStatic": props = new PDeltaCaseProps(); ((PDeltaCaseProps)props).Loads = new List<StaticCaseFactor>(); break; default: props = new StaticCaseProps(); break; } AnalysisCase aCase = new AnalysisCase(name, props); aCase.IsActive = active; model.AbstractCases.Add(aCase); }
private void readResponseSpectrumLoadCase(XmlNode node) { string name = readAttribute(node, "Case", "").Trim(); name = (name.Length > 0) ? name : Culture.Get("Case"); AnalysisCase aCase = null; foreach (AnalysisCase ac in model.AbstractCases) if (name.Equals(ac.Name)) { aCase = ac; break; } if (aCase != null) { ResponseSpectrumCaseProps rsp = aCase.Properties as ResponseSpectrumCaseProps; if (rsp == null) { rsp = new ResponseSpectrumCaseProps(); aCase.Properties = rsp; } List<ResponseSpectrumCaseFactor> list = rsp.Loads; //readAttribute(node, "LoadType", "Acceleration"); AccelLoad load = new AccelLoad(decodeAccel(readAttribute(node, "LoadName", "Accel U1"))); bool contains = false; foreach (ResponseSpectrumCaseFactor rscf in list) if (rscf.Accel.Equals(load)) contains = true; if (!contains) { list.Add(new ResponseSpectrumCaseFactor(load)); rsp.Loads = list; } //readAttribute(node, "CoordSys", "GLOBAL"); float factor = float.Parse(readAttribute(node, "TransAccSF", "1")); string spectrum = readAttribute(node, "Function", rsp.ResponseSpectrumFunction.ToString()); foreach (ResponseSpectrum rs in model.ResponseSpectra) if (spectrum.Equals(rs.ToString())) { rsp.ResponseSpectrumFunction = rs; rsp.ScaleFactor = factor; break; } //readAttribute(node, "Angle", "0"); } }
private void store(OleDbConnection cn, string analysisCase, ResponseSpectrumCaseProps props) { string sql = "INSERT INTO [Case - Response Spectrum 1 - General] " + "([Case],ModalCombo,DirCombo,DampingType,ConstDamp,EccenRatio,NumOverride) VALUES " + "(\"" + analysisCase + "\",\"" + props.ModalCombination + "\",\"" + props.DirectionalCombination + "\"," + "\"Constant\"," + props.ModalDamping + ",0,0);"; new OleDbCommand(sql, cn).ExecuteNonQuery(); List<ResponseSpectrumCaseFactor> list = props.Loads; foreach (ResponseSpectrumCaseFactor f in list) { if (f == null) continue; AccelLoad load = f.Accel as AccelLoad; sql = ""; if (load != null) { sql = "INSERT INTO [Case - Response Spectrum 2 - Load Assignments] " + "([Case],LoadType,LoadName,CoordSys,Function,Angle,TransAccSF) VALUES " + "(\"" + analysisCase + "\",\"Acceleration\",\"" + encode(load.Value) + "\"," + "\"GLOBAL\",\"" + props.ResponseSpectrumFunction + "\",0,1);"; new OleDbCommand(sql, cn).ExecuteNonQuery(); } } }
private void readResponseSpectrumGeneralCase(XmlNode node) { string name = readAttribute(node, "Case", ""); AnalysisCase aCase = null; foreach (AnalysisCase ac in model.AbstractCases) if (name.Equals(ac.Name)) { aCase = ac; break; } if (aCase != null) { ResponseSpectrumCaseProps rsp = aCase.Properties as ResponseSpectrumCaseProps; if (rsp == null) { rsp = new ResponseSpectrumCaseProps(); aCase.Properties = rsp; } string modalCombo = readAttribute(node, "ModalCombo", rsp.ModalCombination.ToString()); modalCombo = (modalCombo.Length > 0) ? modalCombo : Culture.Get("Case"); string dirCombo = readAttribute(node, "DirCombo", rsp.DirectionalCombination.ToString()); dirCombo = (dirCombo.Length > 0) ? dirCombo : Culture.Get("Case"); rsp.ModalDamping = float.Parse(readAttribute(node, "ConstDamp", rsp.ModalDamping.ToString())); rsp.ModalCombination = (ResponseSpectrumCaseProps.ModalCombinationType)Enum.Parse( typeof(ResponseSpectrumCaseProps.ModalCombinationType), modalCombo); rsp.DirectionalCombination = (ResponseSpectrumCaseProps.DirectionalCombinationType)Enum.Parse( typeof(ResponseSpectrumCaseProps.DirectionalCombinationType), dirCombo); } }
private void responseSpectrumCheckBox_CheckedChanged(object sender, EventArgs e) { if (!updatingDialog) { if (responseCases.Count == 0 && responseSpectrumCheckBox.Checked && services.Model.ResponseSpectra.Count > 0) { if (modalCase == null) { modalCase = new AnalysisCase(Culture.Get("defaultModalCase"), new ModalCaseProps()); services.Model.AbstractCases.Add(modalCase); } ResponseSpectrumCaseProps props = new ResponseSpectrumCaseProps(AccelLoad.AccelLoadValues.UX); props.ModalAnalysisCase = modalCase; responseCases.Add(new AnalysisCase(Culture.Get("defaultResponseCase") + " X", props)); responseCases[0].IsActive = false; services.Model.AbstractCases.Add(responseCases[0]); props = new ResponseSpectrumCaseProps(AccelLoad.AccelLoadValues.UY); props.ModalAnalysisCase = modalCase; responseCases.Add(new AnalysisCase(Culture.Get("defaultResponseCase") + " Y", props)); services.Model.AbstractCases.Add(responseCases[1]); props = new ResponseSpectrumCaseProps(AccelLoad.AccelLoadValues.UZ); props.ModalAnalysisCase = modalCase; responseCases.Add(new AnalysisCase(Culture.Get("defaultResponseCase") + " Z", props)); services.Model.AbstractCases.Add(responseCases[2]); } foreach (AbstractCase responseCase in responseCases) { responseCase.IsActive = responseSpectrumCheckBox.Checked; Canguro.Model.Model.Instance.RepairAbstractCases(responseCase); } UpdateDialog(); } }