コード例 #1
0
        private void Select_Members()
        {
            dgv_columns.Rows.Clear();

            chk_sele_all.Checked = true;

            List <MemberIncidence> list_mem   = new List <MemberIncidence>();
            List <int>             list_mem1  = new List <int>();
            List <List <int> >     list_conts = new List <List <int> >();

            for (int i = 0; i < AST_DOC.Members.Count; i++)
            {
                var item = AST_DOC.Members[i];

                if (item.EndNode.X == item.StartNode.X &&
                    item.EndNode.Y != item.StartNode.Y &&
                    item.EndNode.Z == item.StartNode.Z)
                {
                    list_mem.Add(item);
                }
            }

            bool flag = false;


            List <int>         lst_jnt = new List <int>();
            List <List <int> > all_jnt = new List <List <int> >();

            MovingLoadAnalysis.frm_ProgressBar.ON("Reading Members......");
            for (int i = 0; i < list_mem.Count; i++)
            {
                MovingLoadAnalysis.frm_ProgressBar.SetValue(i, list_mem.Count);
                flag = false;
                foreach (var item in list_conts)
                {
                    if (item.Contains(list_mem[i].MemberNo))
                    {
                        flag = true;
                        break;
                    }
                }
                if (!flag)
                {
                    JointCoordinateCollection cont_jcc = new JointCoordinateCollection();


                    list_mem1 = Get_Continuous_Members(list_mem[i], ref cont_jcc);
                    list_conts.Add(list_mem1);

                    lst_jnt = new List <int>();
                    foreach (var item in cont_jcc)
                    {
                        lst_jnt.Add(item.NodeNo);
                    }
                    all_jnt.Add(lst_jnt);
                }
            }
            MovingLoadAnalysis.frm_ProgressBar.OFF();


            MemberIncidence mi = null;


            double Pu  = 0.0;
            double Mux = 0.0;
            double Muy = 0.0;

            for (int i = 0; i < list_conts.Count; i++)
            {
                var item = list_conts[i];
                mi = AST_DOC.Members.Get_Member(item[0]);

                //Pu = StructureAnalysis.GetJoint_R1_Axial(all_jnt[i]);
                //Mux = StructureAnalysis.GetJoint_M2_Bending(all_jnt[i]);
                //Muy = StructureAnalysis.GetJoint_M3_Bending(all_jnt[i]);


                Pu = StructureAnalysis.GetJoint_R1_Axial(all_jnt[i]);
                //Mux = StructureAnalysis.GetJoint_M2_Bending(all_jnt[i]);
                Mux = StructureAnalysis.GetJoint_ShearForce(all_jnt[i]);
                Muy = StructureAnalysis.GetJoint_M3_Bending(all_jnt[i]);


                dgv_columns.Rows.Add(true, "C" + (i + 1), MyStrings.Get_Array_Text(item), col_design.Section_Name, col_design.h, Main_Bar_Dia, col_design.bar_nos, Tie_Bar_Dia, Pu, Mux, Muy, "");
            }
        }
コード例 #2
0
        private void Select_Members()
        {
            double d = MyStrings.StringToDouble(cmb_flr_lvl.Text, 0.0);

            dgv_beams.Rows.Clear();
            cmb_sele_all.Checked = true;

            //for (int i = 0; i < AST_DOC.Members.Count; i++)
            //{
            //    var item = AST_DOC.Members[i];

            //    if (item.EndNode.Y == d && item.StartNode.Y == d)
            //    {
            //        dgv_beams.Rows.Add(true, item.MemberNo, "", item.Property.YD, item.Property.ZD);
            //    }
            //}

            List <MemberIncidence> list_mem   = new List <MemberIncidence>();
            List <int>             list_mem1  = new List <int>();
            List <List <int> >     list_conts = new List <List <int> >();

            for (int c = 0; c < cmb_flr_lvl.Items.Count; c++)
            {
                d = MyStrings.StringToDouble(cmb_flr_lvl.Items[c].ToString(), 0.0);

                for (int i = 0; i < AST_DOC.Members.Count; i++)
                {
                    var item = AST_DOC.Members[i];

                    if (item.EndNode.Y == d && item.StartNode.Y == d)
                    //if (item.EndNode.Y == item.StartNode.Y)
                    {
                        list_mem.Add(item);
                    }
                }
            }
            bool flag = false;

            MovingLoadAnalysis.frm_ProgressBar.On = false;
            MovingLoadAnalysis.frm_ProgressBar.ON("Reading continuous Beam Nos........");


            MemberIncidence mi     = null;
            int             count  = 1;
            double          last_Y = 0.0;

            double am1, am2, am3, am4, av1, av2, av3;

            am1 = am2 = am3 = am4 = av1 = av2 = av3 = 0.0;

            JointCoordinateCollection cont_jcc = new JointCoordinateCollection();
            int cnt = 1;

            for (int i = 0; i < list_mem.Count; i++)
            {
                MovingLoadAnalysis.frm_ProgressBar.SetValue(i, list_mem.Count);
                flag = false;
                foreach (var item in list_conts)
                {
                    if (item.Contains(list_mem[i].MemberNo))
                    {
                        flag = true;
                        break;
                    }
                }
                if (!flag)
                {
                    cont_jcc  = new JointCoordinateCollection();
                    list_mem1 = Get_Continuous_Beams(list_mem[i], ref cont_jcc);
                    list_conts.Add(list_mem1);


                    #region

                    var item = list_mem1;

                    mi = AST_DOC.Members.Get_Member(item[0]);
                    if (last_Y != mi.EndNode.Y)
                    {
                        count = 1;
                    }

                    beamDes.Get_All_Forces(cont_jcc, ref am1, ref am2, ref am3, ref am4, ref av1, ref av2, ref av3);

                    dgv_beams.Rows.Add(cnt++, true, mi.EndNode.Y.ToString("f4"), "B" + (count++),
                                       MyStrings.Get_Array_Text(item),
                                       mi.Property.YD, mi.Property.ZD,
                                       d1, d2, d3, d4,
                                       //d5, d6,
                                       beamDes.Shear_Bar_dia,
                                       am1.ToString("f3"),
                                       am2.ToString("f3"),
                                       am3.ToString("f3"),
                                       am4.ToString("f3"),
                                       av1.ToString("f3"),
                                       av2.ToString("f3"),
                                       av3.ToString("f3"),
                                       "");
                    last_Y = mi.EndNode.Y;
                    #endregion
                }
            }
            MovingLoadAnalysis.frm_ProgressBar.OFF();


            //MemberIncidence mi = null;
            //int count = 1;
            //double last_Y = 0.0;

            //double am1, am2, am3, am4, av1, av2, av3;

            //am1 = am2 = am3 = am4 = av1 = av2 = av3 = 0.0;


            //for (int i = 0; i < list_conts.Count; i++)
            //{
            //    var item = list_conts[i];

            //    mi = AST_DOC.Members.Get_Member(item[0]);
            //    if (last_Y != mi.EndNode.Y)
            //    {
            //        count = 1;
            //    }


            //    dgv_beams.Rows.Add(i+1, true, mi.EndNode.Y.ToString("f3"), "B" + (count++),
            //        MyStrings.Get_Array_Text(item),
            //        mi.Property.YD, mi.Property.ZD,
            //        d1, d2, d3, d4, d5, d6,
            //        beamDes.Shear_Bar_dia,
            //        am1.ToString("f3"),
            //        am2.ToString("f3"),
            //        am3.ToString("f3"),
            //        am4.ToString("f3"),
            //        av1.ToString("f3"),
            //        av2.ToString("f3"),
            //        av3.ToString("f3"),
            //         "");
            //    last_Y = mi.EndNode.Y;
            //}
        }
コード例 #3
0
        public List <int> Get_Continuous_Members(MemberIncidence b1, ref JointCoordinateCollection cont_jcc)
        {
            //JointCoordinateCollection cont_jcc = new JointCoordinateCollection();
            MemberIncidenceCollection mbr_coll = new MemberIncidenceCollection();

            if (b1 == null)
            {
                return(new List <int>());
            }

            List <MemberIncidence> list = new List <MemberIncidence>();


            JointCoordinateCollection jcc = new JointCoordinateCollection();


            jcc.Add(b1.StartNode);
            jcc.Add(b1.EndNode);


            MemberIncidenceCollection mic1 = new MemberIncidenceCollection();
            MemberIncidenceCollection mic2 = new MemberIncidenceCollection();
            //MemberIncidenceCollection mic3 = new MemberIncidenceCollection();
            MemberIncidenceCollection mic4 = new MemberIncidenceCollection();


            foreach (var item in AST_DOC.Members)
            {
                if (item.EndNode.NodeNo == jcc[0].NodeNo || item.StartNode.NodeNo == jcc[0].NodeNo)
                {
                    mic1.Add(item);
                }
                if (item.EndNode.NodeNo == jcc[1].NodeNo || item.StartNode.NodeNo == jcc[1].NodeNo)
                {
                    mic2.Add(item);
                }
            }



            //if (jcc[0].NodeNo < jcc[1].NodeNo)
            //{
            //    if (!cont_jcc.Contains(jcc[1]))
            //    {
            //        cont_jcc.Add(jcc[1]);
            //    }
            //}
            cont_jcc.Add(jcc[0]);
            cont_jcc.Add(jcc[1]);

            int flag = 0;



            mbr_coll.Add(b1);
            while (flag <= 1)
            {
                for (int i = 0; i < AST_DOC.Members.Count; i++)
                {
                    foreach (var item in AST_DOC.Members)
                    {
                        if (b1.Direction == item.Direction)
                        {
                            if (item.StartNode.NodeNo == cont_jcc[cont_jcc.Count - 1].NodeNo)
                            {
                                if (!cont_jcc.Contains(item.EndNode))
                                {
                                    mbr_coll.Add(item);
                                    cont_jcc.Add(item.EndNode);
                                    i = 0; break;
                                }
                            }
                            if (item.EndNode.NodeNo == cont_jcc[cont_jcc.Count - 1].NodeNo)
                            {
                                if (!cont_jcc.Contains(item.StartNode))
                                {
                                    mbr_coll.Add(item);
                                    cont_jcc.Add(item.StartNode);
                                    i = 0; break;
                                }
                            }
                        }
                    }
                }

                if (mbr_coll.Count == 1)
                {
                    cont_jcc.Clear();
                    cont_jcc.Add(jcc[1]);
                    cont_jcc.Add(jcc[0]);
                }
                else
                {
                    break;
                }
                flag++;
            }



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

            foreach (var item in mbr_coll)
            {
                mls.Add(item.MemberNo);
            }

            return(mls);
        }
コード例 #4
0
        private void Select_Members()
        {
            double min_y = 999;

            for (int i = 0; i < AST_DOC.Members.Count; i++)
            {
                var item = AST_DOC.Members[i];

                if (item.StartNode.Y < min_y)
                {
                    min_y = item.StartNode.Y;
                }
                if (item.EndNode.Y < min_y)
                {
                    min_y = item.EndNode.Y;
                }
            }

            dgv_columns.Rows.Clear();

            chk_sele_all.Checked = true;

            List <MemberIncidence> list_mem   = new List <MemberIncidence>();
            List <int>             list_mem1  = new List <int>();
            List <List <int> >     list_conts = new List <List <int> >();

            for (int i = 0; i < AST_DOC.Members.Count; i++)
            {
                var item = AST_DOC.Members[i];

                if (item.EndNode.X == item.StartNode.X &&
                    item.EndNode.Y != item.StartNode.Y &&
                    item.EndNode.Z == item.StartNode.Z)
                {
                    if (item.EndNode.Y == min_y ||
                        item.StartNode.Y == min_y)
                    {
                        list_mem.Add(item);
                    }
                }
            }

            bool flag = false;


            MemberIncidence mi = null;

            double P  = 0.0;
            double Mx = 0.0;

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

            for (int i = 0; i < list_mem.Count; i++)
            {
                var item = list_mem[i];

                all_jnt.Clear();
                //if (item.StartNode.Y < item.EndNode.Y)
                //    all_jnt.Add(item.StartNode.NodeNo);
                //else
                //    all_jnt.Add(item.EndNode.NodeNo);
                all_jnt.Add(item.EndNode.NodeNo);
                all_jnt.Add(item.StartNode.NodeNo);

                P  = StructureAnalysis.GetJoint_R1_Axial(all_jnt);
                Mx = StructureAnalysis.GetJoint_MomentForce(all_jnt);
                mi = item;
                dgv_columns.Rows.Add((i + 1), true, "P" + (i + 1), item.MemberNo, Pile_Design.D.ToString("f3"), Pile_Design.LPC, Pile_Design.BPC, Pile_Design.DPC, Pile_Design.d1, Pile_Design.d2, Pile_Design.d3, (P / 10).ToString("f4"), (Mx / 10).ToString("f4"), "");
            }
        }
コード例 #5
0
        public void Load_Floor_Levels()
        {
            if (DGV_Joints == null)
            {
                return;
            }

            BeamTable        = new Hashtable();
            AllColumn        = new List <int>();
            selected_beams   = new List <int>();
            selected_columns = new List <int>();


            List <double> flvls = new List <double>();

            double d = 0.0;
            //JointCoordinateCollection
            //MemberIncidenceCollection
            MemberIncidence mi = new MemberIncidence();
            //MemberIncidenceCollection mic = new MemberIncidenceCollection();
            JointCoordinate jc = new JointCoordinate();
            //JointCoordinateCollection jcc = new JointCoordinateCollection();


            List <int> selected_mems = MyStrings.Get_Array_Intiger(kStr);

            for (int i = 0; i < DGV_Joints.RowCount; i++)
            {
                jc = new JointCoordinate();

                jc.NodeNo = MyStrings.StringToInt(DGV_Joints[0, i].Value.ToString(), 0);
                jc.X      = MyStrings.StringToDouble(DGV_Joints[1, i].Value.ToString(), 0.0);
                jc.Y      = MyStrings.StringToDouble(DGV_Joints[2, i].Value.ToString(), 0.0);
                jc.Z      = MyStrings.StringToDouble(DGV_Joints[3, i].Value.ToString(), 0.0);
                jcc.Add(jc);
            }

            for (int i = 0; i < DGV_Members.RowCount; i++)
            {
                mi = new MemberIncidence();

                mi.MemberNo = MyStrings.StringToInt(DGV_Members[0, i].Value.ToString(), 0);
                //jc.X = MyStrings.StringToDouble(DGV_Members[1, i].Value.ToString(), 0.0);
                mi.StartNode.NodeNo = MyStrings.StringToInt(DGV_Members[2, i].Value.ToString(), 0);
                mi.EndNode.NodeNo   = MyStrings.StringToInt(DGV_Members[3, i].Value.ToString(), 0);
                mic.Add(mi);
            }

            mic.CopyJointCoordinates(jcc);
            foreach (var item in mic)
            {
                if (item.StartNode.Y == item.EndNode.Y)
                {
                    if (selected_mems.Contains(item.MemberNo))
                    {
                        selected_beams.Add(item.MemberNo);
                    }

                    d = item.StartNode.Y;
                    if (!flvls.Contains(d))
                    {
                        flvls.Add(d);
                        //cmb_floor_levels.Items.Add(d.ToString("f3"));
                    }
                }
                else if (item.StartNode.X == item.EndNode.X &&
                         item.StartNode.Z == item.EndNode.Z)
                {
                    if (selected_mems.Contains(item.MemberNo))
                    {
                        selected_columns.Add(item.MemberNo);
                    }

                    AllColumn.Add(item.MemberNo);
                }
            }


            flvls.Sort();
            List <int> mems      = new List <int>();
            List <int> all_beams = new List <int>();

            foreach (var lvl in flvls)
            {
                cmb_floor_levels.Items.Add(lvl.ToString("f3"));
                mems = new List <int>();
                foreach (var item in mic)
                {
                    if (item.StartNode.Y == item.EndNode.Y)
                    {
                        d = item.StartNode.Y;
                        if (lvl == d)
                        {
                            mems.Add(item.MemberNo);
                        }
                    }
                }
                BeamTable.Add(lvl.ToString("f3"), mems);

                all_beams.AddRange(mems.ToArray());
            }
            BeamTable.Add("all", all_beams);
        }
コード例 #6
0
        private void Select_Members()
        {
            double min_y = 999;

            for (int i = 0; i < AST_DOC.Members.Count; i++)
            {
                var item = AST_DOC.Members[i];

                if (item.StartNode.Y < min_y)
                {
                    min_y = item.StartNode.Y;
                }
                if (item.EndNode.Y < min_y)
                {
                    min_y = item.EndNode.Y;
                }
            }

            dgv_columns.Rows.Clear();

            chk_sele_all.Checked = true;

            List <MemberIncidence> list_mem   = new List <MemberIncidence>();
            List <int>             list_mem1  = new List <int>();
            List <List <int> >     list_conts = new List <List <int> >();

            for (int i = 0; i < AST_DOC.Members.Count; i++)
            {
                var item = AST_DOC.Members[i];

                if (item.EndNode.X == item.StartNode.X &&
                    item.EndNode.Y != item.StartNode.Y &&
                    item.EndNode.Z == item.StartNode.Z)
                {
                    if (item.EndNode.Y == min_y ||
                        item.StartNode.Y == min_y)
                    {
                        list_mem.Add(item);
                    }
                }
            }

            bool flag = false;


            MemberIncidence mi = null;

            double P  = 0.0;
            double Mx = 0.0;

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

            for (int i = 0; i < list_mem.Count; i++)
            {
                var item = list_mem[i];

                all_jnt.Clear();
                all_jnt.Add(item.StartNode.NodeNo);
                all_jnt.Add(item.EndNode.NodeNo);

                P = StructureAnalysis.GetJoint_R1_Axial(all_jnt);
                //Mx = StructureAnalysis.GetJoint_M1_Torsion(all_jnt);
                Mx = StructureAnalysis.GetJoint_MomentForce(all_jnt);
                mi = item;
                dgv_columns.Rows.Add((i + 1), true, "F" + (i + 1), item.MemberNo,
                                     mi.Property.YD,
                                     mi.Property.ZD,
                                     Foot_Des.l,
                                     Foot_Des.b,
                                     Foot_Des.P1,
                                     Foot_Des.P2,
                                     Foot_Des.ph,
                                     Foot_Des.bar_dia,
                                     P, Mx, "");
            }
        }
コード例 #7
0
        public void Draw_Members()
        {
            //Clear_All();
            ASTRADoc astdoc;

            //astdoc = new ASTRADoc(ACad.AstraDocument);
            astdoc = (iACad.AstraDocument);


            astdoc.Members.Clear();

            for (int i = 0; i < DGV.Rows.Count; i++)
            {
                MemberIncidence mbr = new MemberIncidence();

                DGV[0, i].Value = i + 1;

                mbr.MemberNo = MyStrings.StringToInt(DGV[0, i].Value.ToString(), 0);

                if (DGV[1, i].Value.ToString().StartsWith("C"))
                {
                    mbr.MemberType = MembType.CABLE;
                }
                else if (DGV[1, i].Value.ToString().StartsWith("T"))
                {
                    mbr.MemberType = MembType.TRUSS;
                }
                else
                {
                    mbr.MemberType = MembType.BEAM;
                }

                mbr.StartNode.NodeNo = MyStrings.StringToInt(DGV[2, i].Value.ToString(), 0);



                mbr.EndNode.NodeNo = MyStrings.StringToInt(DGV[3, i].Value.ToString(), 0);


                astdoc.Members.Add(mbr);
            }


            foreach (var item in iACad.Document.ActionLayout.Entities)
            {
                if (item is vdFigure)
                {
                    vdFigure vf = item as vdFigure;
                    if (vf.Layer.Name == "Members")
                    {
                        vf.Deleted = true;
                    }
                }
            }


            iACad.Document.Redraw(true);

            astdoc.Members.CopyJointCoordinates(astdoc.Joints);

            astdoc.MemberProperties.CopyMemberIncidence(astdoc.Members);

            astdoc.Members.DrawMember(iACad.Document, 0.3);
        }
コード例 #8
0
        void Get_Slabs(MemberIncidenceCollection mic)
        {
            List <int> slab_mbrs = new List <int>();


            MemberIncidence mi = mic[0];
            JointCoordinate jc1, jc2;


            jc1 = mi.StartNode;
            jc2 = mi.EndNode;

            MemberIncidenceCollection mc2 = new MemberIncidenceCollection();

            for (int i = 1; i < mic.Count; i++)
            {
                var item = mic[i];

                if (item.StartNode == jc1 || item.EndNode == jc1)
                {
                    mc2.Add(item);
                }
                if (item.StartNode == jc2 || item.EndNode == jc2)
                {
                    mc2.Add(item);
                }
            }

            for (int i = 0; i < mc2.Count; i++)
            {
                var item = mc2[i];
                if (item.Direction == mi.Direction)
                {
                    mc2.RemoveAt(i); i = 0;
                }
            }

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

            for (int i = 0; i < mc2.Count; i++)
            {
                var item = mc2[i];

                if (!jnts.Contains(item.StartNode.NodeNo))
                {
                    jnts.Add(item.StartNode.NodeNo);
                }
                if (!jnts.Contains(item.EndNode.NodeNo))
                {
                    jnts.Add(item.EndNode.NodeNo);
                }
            }

            jnts.Remove(jc1.NodeNo);
            jnts.Remove(jc2.NodeNo);

            MemberIncidence mc4 = new MemberIncidence();

            for (int i = 1; i < mic.Count; i++)
            {
                var item = mic[i];

                if (item.StartNode.NodeNo == jnts[0] &&
                    item.EndNode.NodeNo == jnts[1])
                {
                    mc4 = item; break;
                }
                else if (item.EndNode.NodeNo == jnts[0] &&
                         item.StartNode.NodeNo == jnts[1])
                {
                    mc4 = item;
                    break;
                }
            }

            jnts.Remove(jc1.NodeNo);
            jnts.Remove(jc2.NodeNo);
        }