示例#1
0
        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);
        }
示例#2
0
        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");

            }
        }
示例#3
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();
         }
     }
 }
示例#4
0
        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();
            }
        }