Example #1
0
 private void Read_Analysis_Result(string AnalysisFile)
 {
     try
     {
         BridgeDesign = new BridgeMemberAnalysis(iApp, AnalysisFile);
     }
     catch (Exception ex) { }
 }
Example #2
0
        public bool OpenAnalysisFile(string file_name)
        {
            string analysis_file = file_name;

            if (File.Exists(analysis_file))
            {
                btn_view_structure.Enabled = true;

                Input_File = (file_name);
                string rep_file = Path.Combine(user_path, "ANALYSIS_REP.TXT");
                //if (File.Exists(rep_file))
                //{
                //    Truss_Analysis = new SteelTrussMemberAnalysis(rep_file);
                //}
                //else
                this.Refresh();
                iApp.ShowPleaseWait("Reading Result please wait.....");
                Truss_Analysis = new BridgeMemberAnalysis(iApp, analysis_file);


                txt_length.Text           = Truss_Analysis.Analysis.Length.ToString();
                txt_X.Text                = "-" + txt_length.Text;
                txt_width.Text            = Truss_Analysis.Analysis.Width.ToString();
                txt_gd_np.Text            = (Truss_Analysis.Analysis.NoOfPanels - 1).ToString("0");
                txt_analysis_file.Visible = true;
                txt_analysis_file.Text    = analysis_file;

                //if (File.Exists(kFile))
                //{
                //    //Read_DL_SIDL();
                //    //Read_Live_Load();
                //}

                iApp.ClosePleaseWait();
                this.Refresh();
                MessageBox.Show(this, "File opened successfully.");
            }


            string ll_txt = Path.Combine(user_path, "LL.txt");

            Live_Load_List = LoadData.GetLiveLoads(ll_txt);

            if (Live_Load_List == null)
            {
                return(true);
            }

            cmb_load_type.Items.Clear();

            return(true);
        }
Example #3
0
        private void btn_create_data_Click(object sender, EventArgs e)
        {
            using (SaveFileDialog ofd = new SaveFileDialog())
            {
                ofd.Filter     = "All Text Files(*.txt)|*.txt";
                ofd.DefaultExt = ".txt";
                if (ofd.ShowDialog() != DialogResult.Cancel)
                {
                    Input_File = ofd.FileName;
                    CreateData();
                    WriteData(Input_File);
                    Write_Load_Data();
                    Truss_Analysis = new BridgeMemberAnalysis(iApp, Input_File);

                    string ll_txt = Path.Combine(working_folder, "LL.txt");

                    Live_Load_List = LoadData.GetLiveLoads(ll_txt);

                    if (Live_Load_List == null)
                    {
                        return;
                    }

                    cmb_load_type.Items.Clear();
                    for (int i = 0; i < Live_Load_List.Count; i++)
                    {
                        cmb_load_type.Items.Add(Live_Load_List[i].TypeNo + " : " + Live_Load_List[i].Code);
                    }
                    if (cmb_load_type.Items.Count > 0)
                    {
                        cmb_load_type.SelectedIndex = cmb_load_type.Items.Count - 1;
                        //if (dgv_live_load.RowCount == 0)
                        //Add_LiveLoad();
                    }
                }
            }
            Button_Enable_Disable();
        }
Example #4
0
        public void Analysis_Abutment()
        {
            string ana_file = Path.Combine(Get_Project_Folder(), "Abutment_Analysis_Input.txt");

            string        kStr = "";
            List <string> list = new List <string>();
            int           i    = 0;


            list.Add("ASTRA FLOOR RCC T GIRDER BRIDGE DECK ANALYSIS");
            list.Add("UNIT METER MTON");
            list.Add("JOINT COORDINATES");

            List <JointNode> Joints   = new List <JointNode>();
            List <Member>    MemColls = new List <Member>();

            double L   = MyList.StringToDouble(txt_Ana_L.Text, 0.0);
            double og  = MyList.StringToDouble(txt_Ana_og.Text, 0.0);
            double inc = (L - og * 2) / 4.0;

            double ws = 2.0 - og;



            JointNode jn = new JointNode();

            jn.NodeNo = 1;
            jn.X      = 0.0;

            Joints.Add(jn);

            jn = new JointNode();

            jn.NodeNo = 2;
            jn.X      = og + og;

            Joints.Add(jn);

            jn        = new JointNode();
            jn.NodeNo = 3;
            jn.X      = og + ws;

            Joints.Add(jn);

            jn        = new JointNode();
            jn.NodeNo = 4;
            jn.X      = og + inc;

            Joints.Add(jn);

            jn        = new JointNode();
            jn.NodeNo = 5;
            jn.X      = og + 2 * inc;

            Joints.Add(jn);


            jn        = new JointNode();
            jn.NodeNo = 6;
            jn.X      = og + 3 * inc;

            Joints.Add(jn);


            jn        = new JointNode();
            jn.NodeNo = 7;
            jn.X      = L - (og + ws);

            Joints.Add(jn);

            jn        = new JointNode();
            jn.NodeNo = 8;
            jn.X      = og + 4 * inc;

            Joints.Add(jn);

            jn        = new JointNode();
            jn.NodeNo = 9;
            jn.X      = L;

            Joints.Add(jn);



            Member mbr = new Member();

            mbr.MemberNo  = 1;
            mbr.StartNode = Joints[0];
            mbr.EndNode   = Joints[1];

            MemColls.Add(mbr);
            for (i = 2; i < Joints.Count; i++)
            {
                mbr           = new Member();
                mbr.MemberNo  = i;
                mbr.StartNode = Joints[i - 1];
                mbr.EndNode   = Joints[i];
                MemColls.Add(mbr);
            }



            for (i = 0; i < Joints.Count; i++)
            {
                list.Add(Joints[i].ToString());
            }
            list.Add("MEMBER INCIDENCES");
            for (i = 0; i < MemColls.Count; i++)
            {
                list.Add(MemColls[i].ToString());
            }
            list.Add("SECTION PROPERTIES");

            ////list.Add("1 2 5 6 AX");
            ////list.Add(string.Format("1 2 6 7 PRIS AX 0.036212 IX 0.00001 IY 0.000697 IZ 0.001",
            //list.Add(string.Format("1 2 7 8 PRIS AX {0} IX 0.00001 IY {1} IZ 0.001",
            //    txt_smp_i_a_sup.Text,
            //    txt_smp_i_Ix_sup.Text
            //    ));

            //list.Add(string.Format("3 TO 6 PRIS AX {0} IX 0.00001 IY {1} IZ 0.001",
            //     txt_smp_i_a_mid.Text,
            //     txt_smp_i_ix_mid.Text
            //     ));


            list.Add(string.Format("MATERIAL CONSTANT"));
            list.Add(string.Format("E 2.85E6 ALL"));
            list.Add(string.Format("DENSITY CONCRETE ALL"));
            list.Add(string.Format("POISSON CONCRETE ALL"));
            list.Add(string.Format("SUPPORT"));
            //list.Add(string.Format("2 6   PINNED"));
            list.Add(string.Format("2 8 FIXED BUT FX MZ"));
            //list.Add(string.Format("99 100 101 102   FIXED BUT FX MZ"));



            //list.Add(string.Format("LOAD 1 DEAD LOAD"));
            //list.Add(string.Format("MEMBER LOAD"));
            //list.Add(string.Format("1 2 7 8 UNI GY -{0:f4}", MyList.StringToDouble(txt_Ana_DL_supp.Text, 0.0)/10.0));
            //list.Add(string.Format("3 TO 6 UNI GY -{0}", MyList.StringToDouble(txt_Ana_DL_mid.Text, 0.0)/10.0));

            //list.Add(string.Format("LOAD 2 SIDL"));
            //list.Add(string.Format("MEMBER LOAD"));
            //list.Add(string.Format("1 TO 8 UNI GY -{0}", MyList.StringToDouble(txt_Ana_SIDL.Text, 0.0) / 10.0));

            //list.Add(string.Format("LOAD 3 FPLL"));
            //list.Add(string.Format("MEMBER LOAD"));
            //list.Add(string.Format("1 TO 8 UNI GY -{0}", MyList.StringToDouble(txt_Ana_FPLL.Text, 0.0)/10.0));

            //list.Add(string.Format("PRINT SUPPORT REACTIONS"));
            //list.Add(string.Format("PERFORM ANALYSIS"));
            //list.Add(string.Format("FINISH"));


            File.WriteAllLines(ana_file, list.ToArray());

            MessageBox.Show("Input Data Created as " + ana_file, "ASTRA");

            #region Process
            try
            {
                #region Process
                //int i = 0;


                ProcessCollection pcol = new ProcessCollection();

                ProcessData pd = new ProcessData();

                string flPath = ana_file;
                iapp.Progress_Works.Clear();

                if (File.Exists(flPath))
                {
                    pd = new ProcessData();
                    pd.Process_File_Name = flPath;
                    pd.Process_Text      = "PROCESS ANALYSIS FOR " + Path.GetFileNameWithoutExtension(flPath).ToUpper();
                    pcol.Add(pd);
                    iapp.Progress_Works.Add("Reading Analysis Data from " + Path.GetFileNameWithoutExtension(flPath).ToUpper() + " (ANALYSIS_REP.TXT)");
                }


                i++;
                string ana_rep_file = Path.Combine(Path.GetDirectoryName(flPath), "ANALYSIS_REP");
                if (iapp.Show_and_Run_Process_List(pcol))
                {
                    BridgeMemberAnalysis DeadLoad_Analysis = new BridgeMemberAnalysis(iapp, ana_rep_file);
                }

                #endregion Process
            }
            catch (Exception ex) { }
            #endregion Process
        }
        public void Read_Cable_Member()
        {
            //Input_Data

            if (CS_Analysis == null)
            {
                return;
            }
            //Results.Clear();
            List <BridgeMemberAnalysis> lst_ana = new List <BridgeMemberAnalysis>();

            if (CS_Analysis.DeadLoad_Analysis != null)
            {
                lst_ana.Add(CS_Analysis.DeadLoad_Analysis);
            }

            if (CS_Analysis.All_LL_Analysis != null)
            {
                lst_ana.AddRange(CS_Analysis.All_LL_Analysis);
            }

            //if (CS_Analysis.TotalLoad_Analysis != null) lst_ana.Add(CS_Analysis.TotalLoad_Analysis);



            if (CS_Analysis.TotalLoad_Analysis == null)
            {
                CS_Analysis.TotalLoad_Analysis = lst_ana[0];
            }
            Bridge_Analysis = CS_Analysis.TotalLoad_Analysis;


            if (Bridge_Analysis.MemberAnalysis == null)
            {
                MessageBox.Show("Analysis not done.", "ASTRA", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            List <int> list_mem = null;

            string     kStr          = MyList.RemoveAllSpaces(txt_cbl_des_mem_nos.Text.Trim().ToUpper());
            List <int> non_cable_mem = new List <int>();

            if (kStr == "ALL")
            {
                kStr = "1 TO " + Bridge_Analysis.Analysis.Members.Count;
            }
            list_mem = MyList.Get_Array_Intiger(kStr);

            CableMember cbl = new CableMember(); dgv_cable_design.Rows.Clear();

            Cable_Members.Clear();
            foreach (var item in list_mem)
            {
                cbl = new CableMember();
                cbl.User_MemberNo = item;

                AnalysisData ana = (AnalysisData)Bridge_Analysis.MemberAnalysis[item];
                if (ana != null)
                {
                    cbl.ASTRA_MemberNo = ana.AstraMemberNo;
                }

                cbl.MemberDetails = Bridge_Analysis.Analysis.Members.GetMember(item);

                List <int> l_int = new List <int>();

                l_int.Add(cbl.StartJointNo);
                l_int.Add(cbl.EndJointNo);


                CMember mem = new CMember();

                mem.Group.MemberNos.Add(item);

                mem.Result = Bridge_Analysis.GetForce(ref mem);
                if (mem.MaxTensionForce != null)
                {
                    cbl.AnalysisForce = (mem.MaxTensionForce.Force == 0.0) ? mem.MaxCompForce : mem.MaxTensionForce;
                }
                if (mem.MaxStress != null)
                {
                    cbl.AnalysisStress = mem.MaxStress;
                }
                if (cbl.MemberDetails != null)
                {
                    if (cbl.InclinationAngle > 0 && cbl.InclinationAngle < 90)
                    {
                        Cable_Members.Add(cbl);
                        dgv_cable_design.Rows.Add(cbl.ToArray_Extradosed());
                    }
                    else
                    {
                        non_cable_mem.Add(item);
                    }
                }
            }
            if (kStr == "")
            {
                MessageBox.Show(this, "Please put member nos.", "ASTRA", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                txt_cbl_des_mem_nos.Focus();
            }
            else if (non_cable_mem.Count != 0)
            {
                kStr = MyList.Get_Array_Text(non_cable_mem);


                //kStr = kStr.Replace(" ", ", ");
                MessageBox.Show(this, "Member No(s) : " + kStr + " are not Cable Member", "ASTRA", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else if (dgv_cable_design.RowCount == 0)
            {
                MessageBox.Show(this, "Member No(s) : " + kStr + " are not Cable Member", "ASTRA", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            grb_members.Text = "Total " + dgv_cable_design.RowCount + " Members in the List.";
        }