コード例 #1
0
        public static SurveyData Parse(string line)
        {
            string     kStr  = MyStrings.RemoveAllSpaces(line.Replace(",", " "));
            MyStrings  mlist = new MyStrings(kStr, ' ');
            SurveyData sdata = new SurveyData();

            if (mlist.Count == 5)
            {
                sdata.SerialNo    = mlist.GetInt(0);
                sdata.X           = mlist.GetDouble(1);
                sdata.Y           = mlist.GetDouble(2);
                sdata.Z           = mlist.GetDouble(3);
                sdata.FeatureCode = mlist.StringList[4];
            }
            else if (mlist.Count == 4)
            {
                sdata.SerialNo    = mlist.GetInt(0);
                sdata.X           = mlist.GetDouble(1);
                sdata.Y           = mlist.GetDouble(2);
                sdata.Z           = mlist.GetDouble(3);
                sdata.FeatureCode = "OGL";
            }
            else if (mlist.Count == 3)
            {
                //sdata.SerialNo = mlist.GetInt(0);
                sdata.X           = mlist.GetDouble(0);
                sdata.Y           = mlist.GetDouble(1);
                sdata.Z           = mlist.GetDouble(2);
                sdata.FeatureCode = "P0";
            }
            return(sdata);
        }
コード例 #2
0
        public void SetPostProcessForMovingLoad()
        {
            string memberForceFile = Path.GetDirectoryName(astDoc.FileName);

            memberForceFile = Path.Combine(memberForceFile, "Memberforce.FIL");

            if (!File.Exists(memberForceFile))
            {
                return;
            }

            List <string> lstStr = new List <string>(File.ReadAllLines(memberForceFile));


            // MemberForce.FIL
            // 0    1       2       3       4       5       6       7       8
            //MNO  LDCS     Node    R1      R2      R3      M1      M2      M3
            //  1   1        1       0.000   0.000   1.016   -0.157  -0.025  0.000
            //               2       0.000   0.000  -1.016    0.157  -1.029  0.000

            MyStrings       mList = null;
            BeamForceMoment bfm   = null;

            for (int i = 0; i < lstStr.Count; i++)
            {
                mList = new MyStrings(MyStrings.RemoveAllSpaces(lstStr[i]), ' ');
                if (mList.Count == 9)
                {
                    bfm = new BeamForceMoment();
                    bfm.Member.MemberNo     = mList.GetInt(0);
                    bfm.LoadCase            = mList.GetInt(1);
                    bfm.StartForceMoment.R1 = mList.GetDouble(3);
                    bfm.StartForceMoment.R2 = mList.GetDouble(4);
                    bfm.StartForceMoment.R3 = mList.GetDouble(5);
                    bfm.StartForceMoment.M1 = mList.GetDouble(6);
                    bfm.StartForceMoment.M2 = mList.GetDouble(7);
                    bfm.StartForceMoment.M3 = mList.GetDouble(8);
                }
                else if (mList.Count == 7)
                {
                    //bfm = new BeamForceMoment();
                    //bfm.Member.MemberNo = mList.GetInt(0);
                    //bfm.LoadCase = mList.GetInt(1);
                    bfm.EndForceMoment.R1 = mList.GetDouble(1);
                    bfm.EndForceMoment.R2 = mList.GetDouble(2);
                    bfm.EndForceMoment.R3 = mList.GetDouble(3);
                    bfm.EndForceMoment.M1 = mList.GetDouble(4);
                    bfm.EndForceMoment.M2 = mList.GetDouble(5);
                    bfm.EndForceMoment.M3 = mList.GetDouble(6);
                    beamMomentCol.Add(bfm);
                }
            }
        }
コード例 #3
0
        public void SetProcessNode(string op, string text)
        {
            //16       1  -0.64289E-02  -0.88362E-02   0.64941E-02   0.10075E-03  -0.16080E-03   0.75179E-02
            string temp = text.ToUpper().Trim().TrimEnd().TrimStart().Replace('\t', ' ');
            int    indx = -1;

            while (temp.IndexOf("  ") != -1)
            {
                temp = temp.Replace("  ", " ");
            }
            MyStrings mList = new MyStrings(temp, ' ');

            double dx = 0.0d, dy = 0.0d, dz = 0.0d;

            try
            {
                // 0       1        2            3              4               5           6           7
                //16       1  -0.64289E-02  -0.88362E-02   0.64941E-02   0.10075E-03  -0.16080E-03   0.75179E-02
                ndisp = new NodeDisplacement();

                int index = 0;

                if (mList.StringList.Count == 8)
                {
                    nodeNo            = mList.GetInt(index); index++;
                    ndisp.Node.NodeNo = nodeNo;
                    ndisp.LoadCase    = mList.GetInt(index); index++;
                    ndisp.Tx          = mList.GetDouble(index); index++;
                    ndisp.Ty          = mList.GetDouble(index); index++;
                    ndisp.Tz          = mList.GetDouble(index); index++;
                    ndisp.Rx          = mList.GetDouble(index); index++;
                    ndisp.Ry          = mList.GetDouble(index); index++;
                    ndisp.Rz          = mList.GetDouble(index); index++;
                    nDispCol.Add(ndisp);
                }
                else if (mList.StringList.Count == 7)
                {
                    ndisp.Node.NodeNo = nodeNo;
                    ndisp.LoadCase    = mList.GetInt(index); index++;
                    ndisp.Tx          = mList.GetDouble(index); index++;
                    ndisp.Ty          = mList.GetDouble(index); index++;
                    ndisp.Tz          = mList.GetDouble(index); index++;
                    ndisp.Rx          = mList.GetDouble(index); index++;
                    ndisp.Ry          = mList.GetDouble(index); index++;
                    ndisp.Rz          = mList.GetDouble(index); index++;
                    nDispCol.Add(ndisp);
                }
            }
            catch (Exception exx) { }
        }
コード例 #4
0
        void SetGrid()
        {
            kStr = iACad.GetSelectedJointsInText();

            if (kStr == "")
            {
                kStr = "ALL";
            }
            MyStrings mList = null;

            if (kStr == "ALL")
            {
                for (int i = 0; i < iACad.AstraDocument.Joints.Count; i++)
                {
                    dgvNodeGrid.Rows.Add(iACad.AstraDocument.Joints[i].NodeNo,
                                         iACad.AstraDocument.Joints[i].Point.x,
                                         iACad.AstraDocument.Joints[i].Point.y,
                                         iACad.AstraDocument.Joints[i].Point.z, "");
                }
            }
            else if (kStr.Contains("TO"))
            {
                mList = new MyStrings(MyStrings.RemoveAllSpaces(kStr), ' ');
                int indx = -1;
                for (int i = mList.GetInt(0); i <= mList.GetInt(2); i++)
                {
                    indx = iACad.AstraDocument.Joints.IndexOf(i);

                    dgvNodeGrid.Rows.Add(iACad.AstraDocument.Joints[indx].NodeNo,
                                         iACad.AstraDocument.Joints[indx].Point.x,
                                         iACad.AstraDocument.Joints[indx].Point.y,
                                         iACad.AstraDocument.Joints[indx].Point.z, "");
                }
            }
            else
            {
                //kStr =
                mList = new MyStrings(MyStrings.RemoveAllSpaces(kStr), ',');
                int indx = -1;
                for (int i = 0; i < mList.Count; i++)
                {
                    indx = iACad.AstraDocument.Joints.IndexOf(mList.GetInt(i));
                    dgvNodeGrid.Rows.Add(iACad.AstraDocument.Joints[indx].NodeNo,
                                         iACad.AstraDocument.Joints[indx].Point.x,
                                         iACad.AstraDocument.Joints[indx].Point.y,
                                         iACad.AstraDocument.Joints[indx].Point.z, "");
                }
            }
        }
コード例 #5
0
        public void SetProcessBeam(string op, string text)
        {
            // ANALYSIS_REP.TXT
            // 1   1  1.598E+02   1.178E+01  -6.206E-01  -4.740E-02  -4.551E+00   1.693E+01
            //       -1.598E+02  -1.178E+01   6.206E-01   4.740E-02   7.033E+00   3.017E+01


            string temp = text.ToUpper().Trim().TrimEnd().TrimStart().Replace('\t', ' ');

            while (temp.IndexOf("  ") != -1)
            {
                temp = temp.Replace("  ", " ");
            }
            MyStrings mList = new MyStrings(temp, ' ');


            try
            {
                if (mList.StringList.Count == 8)
                {
                    // 1   1  1.598E+02   1.178E+01  -6.206E-01  -4.740E-02  -4.551E+00   1.693E+01

                    beamMoment = new BeamForceMoment();

                    beamMoment.Member.MemberNo     = mList.GetInt(0);
                    beamMoment.LoadCase            = mList.GetInt(1);
                    beamMoment.StartForceMoment.R1 = mList.GetDouble(2);
                    beamMoment.StartForceMoment.R2 = mList.GetDouble(3);
                    beamMoment.StartForceMoment.R3 = mList.GetDouble(4);
                    beamMoment.StartForceMoment.M1 = mList.GetDouble(5);
                    beamMoment.StartForceMoment.M2 = mList.GetDouble(6);
                    beamMoment.StartForceMoment.M3 = mList.GetDouble(7);
                }
                if (mList.StringList.Count == 6)
                {
                    //       -1.598E+02  -1.178E+01   6.206E-01   4.740E-02   7.033E+00   3.017E+01

                    beamMoment.EndForceMoment.R1 = mList.GetDouble(0);
                    beamMoment.EndForceMoment.R2 = mList.GetDouble(1);
                    beamMoment.EndForceMoment.R3 = mList.GetDouble(2);
                    beamMoment.EndForceMoment.M1 = mList.GetDouble(3);
                    beamMoment.EndForceMoment.M2 = mList.GetDouble(4);
                    beamMoment.EndForceMoment.M3 = mList.GetDouble(5);

                    beamMomentCol.Add(beamMoment);
                }
            }
            catch (Exception exx) { }
        }
コード例 #6
0
        public static LoadData Parse(string txt)
        {
            //TYPE 2 -48.750 0 0.500 XINC 0.2

            txt = txt.ToUpper().Replace("TYPE", "");
            txt = txt.Replace(",", " ");
            txt = MyStrings.RemoveAllSpaces(txt);
            MyStrings mlist = new MyStrings(txt, ' ');
            LoadData  ld    = new LoadData();

            ld.TypeNo = "TYPE " + mlist.GetInt(0);
            ld.X      = mlist.GetDouble(1);
            ld.Y      = mlist.GetDouble(2);
            ld.Z      = mlist.GetDouble(3);

            if (mlist.StringList[4] == "XINC")
            {
                ld.XINC = mlist.GetDouble(5);
            }
            if (mlist.StringList[4] == "YINC")
            {
                ld.YINC = mlist.GetDouble(5);
            }
            if (mlist.StringList[4] == "ZINC")
            {
                ld.ZINC = mlist.GetDouble(5);
            }

            return(ld);
        }
コード例 #7
0
        public void Select_TreeView()
        {
            int last_step = 0;

            TreeNode tn = null;

            for (int i = 0; i < lsv_steps.Items.Count; i++)
            {
                var item = lsv_steps.Items[i];
                if (
                    //item.Text.Contains("STEP") ||
                    item.Text.StartsWith("FOUNDATION") ||
                    item.Text.StartsWith("BEAM_DESIGN") ||
                    item.Text.StartsWith("COLUMN") ||
                    item.Text.StartsWith("PILE") ||
                    item.Text.StartsWith("STAIRCASE") ||
                    item.Text.StartsWith("SLAB"))
                {
                    MyStrings ms = new MyStrings(item.Text, ':');
                    ms = new MyStrings(ms.StringList[0], ' ');

                    //if( item.Text.Contains("DESIGN"))
                    //    ms = new MyStrings(ms.StringList[2], '.');
                    //else
                    ms = new MyStrings(ms.StringList[1], '.');

                    int s = ms.GetInt(0);



                    if (last_step != s)
                    {
                        trv_steps.Nodes.Add(item.Text);
                        tn        = trv_steps.Nodes[trv_steps.Nodes.Count - 1];
                        last_step = s;
                    }
                    else
                    {
                        tn.Nodes.Add(item.Text);
                    }
                }
                //if (item.Text.StartsWith("TABLE"))
                //{
                //    trv_steps.Nodes.Add(item.Text);
                //}
            }

            splitContainer1.Panel1Collapsed = true;

            if (trv_steps.Nodes.Count <= 1)
            {
                splitContainer1.Panel2Collapsed = true;
            }
        }
コード例 #8
0
        void HighLight_Member(int BeamNo)
        {
            MyStrings ml   = null;
            string    kStr = "";

            foreach (vdFigure fig in VDoc.ActiveLayOut.Entities)
            {
                try
                {
                    ml = new MyStrings(fig.ToolTip.ToUpper(), ' ');
                    if (ml.StringList[0].StartsWith("MEMBER"))
                    {
                        if (BeamNo == ml.GetInt(3))
                        {
                            fig.LineWeight = VectorDraw.Professional.Constants.VdConstLineWeight.LW_158;
                            fig.Update();
                        }
                    }
                }
                catch (Exception exx) { }
            }
        }
コード例 #9
0
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            string kStr = "";



            TreeNode tn = tv_loads.SelectedNode;

            bool IsJointLoad = false;


            if (tn.Nodes.Count == 0)
            {
                IsJointLoad = (tn.Parent.Text.StartsWith("JOINT"));
                kStr        = tn.Text;
            }



            astDoc.JointLoads.Delete_ASTRAArrowLine(Maindoc);
            astDoc.MemberLoads.Delete_ASTRAMemberLoad(Maindoc);

            if (tn.Parent != null)
            {
                tn = tn.Parent;
                if (tv_loads.SelectedNode.Text.StartsWith("JOINT"))
                {
                    astDoc.JointLoads.DrawJointLoads(Maindoc, tn.Index + 1); goto _100;
                    cmbLoadCase.SelectedIndex = tn.Index;
                }
                else if (tv_loads.SelectedNode.Text.StartsWith("MEMBER"))
                {
                    astDoc.MemberLoads.DrawMemberLoad(Maindoc, tn.Index + 1); goto _100;
                    cmbLoadCase.SelectedIndex = tn.Index;
                }
                if (tn.Text.StartsWith("COMB"))
                {
                    MyStrings mlist = new MyStrings(kStr, ' ');
                    astDoc.MemberLoads.DrawMemberLoad(Maindoc, mlist.GetInt(3));
                    astDoc.JointLoads.DrawJointLoads(Maindoc, mlist.GetInt(3)); goto _100;
                    //astDoc.MemberLoads.DrawC(Maindoc, tn.Index + 1); goto _100;
                    cmbLoadCase.SelectedIndex = tn.Index;
                }
            }
            else
            {
                astDoc.JointLoads.DrawJointLoads(Maindoc, tn.Index + 1);
                astDoc.MemberLoads.DrawMemberLoad(Maindoc, tn.Index + 1);
                goto _100;
            }

            if (tn.Parent != null)
            {
                tn = tn.Parent;
            }
            if (tn.Parent != null)
            {
                tn = tn.Parent;
            }
            if (tn.Parent != null)
            {
                tn = tn.Parent;
            }
            if (tn.Parent != null)
            {
                tn = tn.Parent;
            }



            int MemNo = MemberNo;
            int mIndx = astDoc.Members.IndexOf(MemNo);


            astDoc.Supports.DrawSupport(Maindoc);
            if (IsJointLoad)
            {
                astDoc.JointLoads.DrawJointLoads(Maindoc, tn.Index + 1, kStr);
            }
            else
            {
                astDoc.MemberLoads.DrawMemberLoad(Maindoc, tn.Index + 1, kStr);
            }

_100:
            if (tn.Index < cmbLoadCase.Items.Count)
            {
                cmbLoadCase.SelectedIndex = tn.Index;
            }
            Maindoc.Redraw(true);
        }
コード例 #10
0
        private void btn_insert_Click(object sender, EventArgs e)
        {
            Button btn = sender as Button;

            MyStrings mlist = null;

            List <int> indices = new List <int>();
            List <int> loadNo  = new List <int>();

            if (btn.Name == btn_insert.Name)
            {
                #region Chiranjit [2015 05 14]
                //Due to Load combination more than 3 is not acceptable
                if (dgv_combinations.RowCount > 0)
                {
                    MessageBox.Show(this, "More than one Load Definition is not acceptable.", "ASTRA");
                    return;
                }
                #endregion Chiranjit [2015 05 14]

                for (int i = 0; i < lst_loadcases.SelectedIndices.Count; i++)
                {
                    indices.Add(lst_loadcases.SelectedIndices[i]);
                    mlist = new MyStrings(lst_loadcases.Items[lst_loadcases.SelectedIndices[i]].ToString(), ':');

                    loadNo.Add(mlist.GetInt(0));
                }

                indices.Sort();
                indices.Reverse();

                for (int i = 0; i < indices.Count; i++)
                {
                    lst_loadcases.Items.RemoveAt(indices[i]);
                }


                for (int i = 0; i < ALL_Loads.Count; i++)
                {
                    if (loadNo.Contains(ALL_Loads[i].LoadNo))
                    {
                        dgv_combinations.Rows.Add("Load Case " + ALL_Loads[i].LoadNo, "1.0");
                    }
                }
            }
            else if (btn.Name == btn_insert_all.Name)
            {
                #region Chiranjit [2015 05 14]
                //Due to Load combination more than 3 is not acceptable
                if (dgv_combinations.RowCount > 0)
                {
                    MessageBox.Show(this, "More than one Load Definition is not acceptable.", "ASTRA");
                    return;
                }
                #endregion Chiranjit [2015 05 14]

                for (int i = 0; i < lst_loadcases.Items.Count; i++)
                {
                    indices.Add(i);
                    mlist = new MyStrings(lst_loadcases.Items[i].ToString(), ':');

                    loadNo.Add(mlist.GetInt(0));
                }

                indices.Sort();
                indices.Reverse();
                for (int i = 0; i < indices.Count; i++)
                {
                    lst_loadcases.Items.RemoveAt(indices[i]);
                }

                for (int i = 0; i < ALL_Loads.Count; i++)
                {
                    if (loadNo.Contains(ALL_Loads[i].LoadNo))
                    {
                        dgv_combinations.Rows.Add("Load Case " + ALL_Loads[i].LoadNo, "1.0");
                    }
                }
            }
            else if (btn.Name == btn_remove.Name)
            {
                int r = -1;
                for (int i = 0; i < dgv_combinations.SelectedCells.Count; i++)
                {
                    r = dgv_combinations.SelectedCells[i].RowIndex;
                    indices.Add(r);
                    mlist = new MyStrings(dgv_combinations[0, r].Value.ToString().ToUpper().Replace("LOAD CASE ", ""), ' ');
                    loadNo.Add(mlist.GetInt(0));
                }
                for (int i = 0; i < indices.Count; i++)
                {
                    dgv_combinations.Rows.RemoveAt(indices[i]);
                }


                for (int i = 0; i < ALL_Loads.Count; i++)
                {
                    if (loadNo.Contains(ALL_Loads[i].LoadNo))
                    {
                        lst_loadcases.Items.Add(ALL_Loads[i].ToString());
                    }
                }
            }
            else if (btn.Name == btn_remove_all.Name)
            {
                int r = -1;
                for (int i = 0; i < dgv_combinations.RowCount; i++)
                {
                    r = i;
                    indices.Add(r);
                    mlist = new MyStrings(dgv_combinations[0, r].Value.ToString().ToUpper().Replace("LOAD CASE ", ""), ' ');
                    loadNo.Add(mlist.GetInt(0));
                }
                dgv_combinations.Rows.Clear();



                for (int i = 0; i < ALL_Loads.Count; i++)
                {
                    if (loadNo.Contains(ALL_Loads[i].LoadNo))
                    {
                        lst_loadcases.Items.Add(ALL_Loads[i].ToString());
                    }
                }
            }
        }
コード例 #11
0
        private void btn_insert_Click(object sender, EventArgs e)
        {
            Button btn = sender as Button;

            MyStrings mlist = null;

            List <int> indices = new List <int>();
            List <int> loadNo  = new List <int>();

            if (btn.Name == btn_insert.Name)
            {
                for (int i = 0; i < lst_loadcases.SelectedIndices.Count; i++)
                {
                    indices.Add(lst_loadcases.SelectedIndices[i]);
                    mlist = new MyStrings(lst_loadcases.Items[lst_loadcases.SelectedIndices[i]].ToString(), ':');

                    loadNo.Add(mlist.GetInt(0));
                }

                indices.Sort();
                indices.Reverse();

                for (int i = 0; i < indices.Count; i++)
                {
                    lst_loadcases.Items.RemoveAt(indices[i]);
                }


                for (int i = 0; i < ALL_Loads.Count; i++)
                {
                    if (loadNo.Contains(ALL_Loads[i].LoadNo))
                    {
                        dgv_combinations.Rows.Add("Load Case " + ALL_Loads[i].LoadNo, "1.0");
                    }
                }
            }
            else if (btn.Name == btn_insert_all.Name)
            {
                for (int i = 0; i < lst_loadcases.Items.Count; i++)
                {
                    indices.Add(i);
                    mlist = new MyStrings(lst_loadcases.Items[i].ToString(), ':');

                    loadNo.Add(mlist.GetInt(0));
                }

                indices.Sort();
                indices.Reverse();
                for (int i = 0; i < indices.Count; i++)
                {
                    lst_loadcases.Items.RemoveAt(indices[i]);
                }


                for (int i = 0; i < ALL_Loads.Count; i++)
                {
                    if (loadNo.Contains(ALL_Loads[i].LoadNo))
                    {
                        dgv_combinations.Rows.Add("Load Case " + ALL_Loads[i].LoadNo, "1.0");
                    }
                }
            }
            else if (btn.Name == btn_remove.Name)
            {
                int r = -1;
                for (int i = 0; i < dgv_combinations.SelectedCells.Count; i++)
                {
                    r = dgv_combinations.SelectedCells[i].RowIndex;
                    indices.Add(r);
                    mlist = new MyStrings(dgv_combinations[0, r].Value.ToString().ToUpper().Replace("LOAD CASE ", ""), ' ');
                    loadNo.Add(mlist.GetInt(0));
                }
                for (int i = 0; i < indices.Count; i++)
                {
                    dgv_combinations.Rows.RemoveAt(indices[i]);
                }


                for (int i = 0; i < ALL_Loads.Count; i++)
                {
                    if (loadNo.Contains(ALL_Loads[i].LoadNo))
                    {
                        lst_loadcases.Items.Add(ALL_Loads[i].ToString());
                    }
                }
            }
            else if (btn.Name == btn_remove_all.Name)
            {
                int r = -1;
                for (int i = 0; i < dgv_combinations.RowCount; i++)
                {
                    r = i;
                    indices.Add(r);
                    mlist = new MyStrings(dgv_combinations[0, r].Value.ToString().ToUpper().Replace("LOAD CASE ", ""), ' ');
                    loadNo.Add(mlist.GetInt(0));
                }
                dgv_combinations.Rows.Clear();



                for (int i = 0; i < ALL_Loads.Count; i++)
                {
                    if (loadNo.Contains(ALL_Loads[i].LoadNo))
                    {
                        lst_loadcases.Items.Add(ALL_Loads[i].ToString());
                    }
                }
            }
        }
コード例 #12
0
        void SetGrid()
        {
            kStr = iACad.GetSelectedMembersInText();

            if (kStr == "")
            {
                kStr = "ALL";
            }
            MyStrings mList = null;

            if (kStr == "ALL")
            {
                for (int i = 0; i < iACad.AstraDocument.Members.Count; i++)
                {
                    dgvMemberGrid.Rows.Add(iACad.AstraDocument.Members[i].MemberNo,
                                           "BEAM",
                                           iACad.AstraDocument.Members[i].StartNode.NodeNo,
                                           iACad.AstraDocument.Members[i].EndNode.NodeNo,
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "");
                }
            }
            else if (kStr.Contains("TO"))
            {
                mList = new MyStrings(MyStrings.RemoveAllSpaces(kStr), ' ');
                int indx = -1;

                for (int i = mList.GetInt(0); i <= mList.GetInt(2); i++)
                {
                    indx = iACad.AstraDocument.Members.IndexOf(i);
                    dgvMemberGrid.Rows.Add(iACad.AstraDocument.Members[indx].MemberNo,
                                           "BEAM",
                                           iACad.AstraDocument.Members[indx].StartNode.NodeNo,
                                           iACad.AstraDocument.Members[indx].EndNode.NodeNo,
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "");
                }
            }
            else
            {
                kStr = kStr.Replace(',', ' ');

                mList = new MyStrings(MyStrings.RemoveAllSpaces(kStr), ' ');
                int indx = -1;

                for (int i = 0; i < mList.Count; i++)
                {
                    indx = iACad.AstraDocument.Members.IndexOf(mList.GetInt(i));

                    dgvMemberGrid.Rows.Add(iACad.AstraDocument.Members[indx].MemberNo,
                                           "BEAM",
                                           iACad.AstraDocument.Members[indx].StartNode.NodeNo,
                                           iACad.AstraDocument.Members[indx].EndNode.NodeNo,
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "",
                                           "");
                }
            }
        }
コード例 #13
0
        private void btn_OK_Click(object sender, EventArgs e)
        {
            MyStrings ml = new MyStrings(txt_beam_nos.Text.Trim(), ',');

            if (ml.Count > 0)
            {
                Slab_des.Beam_Nos = ml.StringList[0].Trim();
            }
            else
            {
                MessageBox.Show("Slab Members is not defined.", "ASTRA", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            //Slab_des.Beam_Nos = txt_beam_nos.Text;
            Slab_des.case_index = cmb_slab_type.SelectedIndex;

            Slab_des.D     = MyStrings.StringToDouble(txt_slab_D.Text, 0.0);
            Slab_des.fck   = MyStrings.StringToDouble(cmb_slab_fck.Text.Replace("M", ""), 0.0);
            Slab_des.gamma = MyStrings.StringToDouble(txt_slab_gamma.Text, 0.0);
            Slab_des.fy    = MyStrings.StringToDouble(cmb_slab_fy.Text.Replace("Fe", ""), 0.0);
            Slab_des.wll   = MyStrings.StringToDouble(txt_slab_wll.Text, 0.0);
            Slab_des.d1    = MyStrings.StringToDouble(txt_slab_d1.Text, 0.0);
            Slab_des.s1    = MyStrings.StringToDouble(txt_slab_s1.Text, 0.0);
            Slab_des.d2    = MyStrings.StringToDouble(txt_slab_d2.Text, 0.0);
            Slab_des.s2    = MyStrings.StringToDouble(txt_slab_s2.Text, 0.0);
            Slab_des.d3    = MyStrings.StringToDouble(txt_slab_d3.Text, 0.0);
            Slab_des.s3    = MyStrings.StringToDouble(txt_slab_s3.Text, 0.0);
            Slab_des.d4    = MyStrings.StringToDouble(txt_slab_d4.Text, 0.0);
            Slab_des.s4    = MyStrings.StringToDouble(txt_slab_s4.Text, 0.0);
            Slab_des.cover = MyStrings.StringToDouble(txt_slab_c.Text, 0.0);
            Slab_des.dlf   = MyStrings.StringToDouble(txt_slab_DLF.Text, 0.0);
            Slab_des.llf   = MyStrings.StringToDouble(txt_slab_LLF.Text, 0.0);

            Slab_des.dgv_dls = dgv_dls;
            #region Check Beam Members


            MyStrings mlist = new MyStrings(txt_beam_nos.Text.Trim(), ' ');

            MemberIncidenceCollection mic = new MemberIncidenceCollection();

            for (int i = 0; i < mlist.Count; i++)
            {
                mic.Add(AST_DOC.Members.Get_Member(mlist.GetInt(i)));
            }


            JointCoordinateCollection jntc = new JointCoordinateCollection();

            for (int i = 1; i < mic.Count; i++)
            {
                if (mic[i - 1].StartNode == mic[i].StartNode)
                {
                    if (!jntc.Contains(mic[i].StartNode))
                    {
                        jntc.Add(mic[i].StartNode);
                    }
                }
                else if (mic[i - 1].EndNode == mic[i].StartNode)
                {
                    if (!jntc.Contains(mic[i].StartNode))
                    {
                        jntc.Add(mic[i].StartNode);
                    }
                }
                else if (mic[i - 1].StartNode == mic[i].EndNode)
                {
                    if (!jntc.Contains(mic[i].EndNode))
                    {
                        jntc.Add(mic[i].EndNode);
                    }
                }
                else if (mic[i - 1].EndNode == mic[i].EndNode)
                {
                    if (!jntc.Contains(mic[i].EndNode))
                    {
                        jntc.Add(mic[i].EndNode);
                    }
                }
                else
                {
                    //string ss = Slab_Data[beam_nos] as string;
                    //if (ss != null)
                    //    Slab_Data.Remove(beam_nos);
                    //Save_Data();
                    MessageBox.Show("Beam " + mic[i].MemberNo + " and Beam " + mic[i - 1].MemberNo + " Joints are mismatch..", "ASTRA", MessageBoxButtons.OK);
                    return;
                }
            }

            #endregion  Check Beam Members
            //Chiranjit [2015 04 26]
            //Slab_des.Calculate_Program();
            Slab_des.Design_Program();


            List <string> Design_Summary = new List <string>();

            Design_Summary.Add(string.Format("-------------------------------------"));
            Design_Summary.Add(string.Format("SLAB MEMBERS = {0}", Slab_des.Beam_Nos));
            Design_Summary.Add(string.Format("SLAB FLOOR LEVEL = {0} M", cmb_flr_lvl.Text));
            Design_Summary.AddRange(Slab_des.Design_Summary.ToArray());
            Design_Summary.Add(string.Format("-------------------------------------"));


            string fnm = Slab_des.Get_Design_Summary_File(Slab_des.Beam_Nos, cmb_flr_lvl.Text);
            //fnm = Path.Combine(Path.GetDirectoryName(fnm), "SLAB_DESIGN_SUMMARY.TXT");

            //if (File.Exists(fnm))
            //    Design_Summary.AddRange(File.ReadAllLines(fnm));

            File.WriteAllLines(fnm, Design_Summary.ToArray());

            Save_Data();
            //Fill_Slab(txt_beam_nos.Text, Slab_des.IS_DESIGN_OK);
            Fill_All_Slab();

            Add_Slab_Boq(Slab_des.BOQ);



            GetGripSelection(false).RemoveAll();

            if (File.Exists(Slab_des.Report_File))
            {
                MessageBox.Show(this, "Report file created in file " + Slab_des.Report_File, "ASTRA", MessageBoxButtons.OK);
                frmASTRAReport.OpenReport(Slab_des.Report_File, this, false);
            }
            VDoc.Redraw(true);

            //this.DialogResult = DialogResult.OK;
            //this.Close();
        }
コード例 #14
0
        public void Get_Selected_Beams()
        {
            foreach (vdFigure fig in VDoc.ActiveLayOut.Entities)
            {
                fig.LineWeight = VectorDraw.Professional.Constants.VdConstLineWeight.LW_BYLAYER;
                fig.Update();
            }

            vdSelection gripset = GetGripSelection(false);

            if (gripset == null)
            {
                return;
            }

            vdDocument VD = VDoc;

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

            string kStr = "";


            foreach (vdFigure fig in gripset)
            {
                if (fig is vdPolyline)
                {
                    //if (gripset.Count > 1)
                    //    gripset.RemoveAt(0);
                    fig.LineWeight = VectorDraw.Professional.Constants.VdConstLineWeight.LW_158;
                    MyStrings ml = new MyStrings(fig.ToolTip.ToUpper(), ' ');
                    if (ml.StringList[0].StartsWith("MEMBER"))
                    {
                        if (kStr == "")
                        {
                            kStr = ml.GetString(3);
                        }
                        else
                        {
                            kStr += " , " + ml.GetString(3);
                        }

                        Fill_Slab(ml.GetString(3));
                        //gripset.RemoveItem(fig);
                    }
                    fig.Update();
                }
                else
                {
                    fig.LineWeight = VectorDraw.Professional.Constants.VdConstLineWeight.LW_158;
                    MyStrings ml = new MyStrings(fig.ToolTip.ToUpper(), ' ');
                    if (ml.StringList[0].StartsWith("MEMBER"))
                    {
                        kStr += ml.GetInt(3) + " ";
                        //if (!members.Contains(ml.GetInt(3)))
                        //    members.Add(ml.GetInt(3));
                    }
                    fig.Update();
                }
            }

            txt_beam_nos.Text = kStr;

            Show_Data();

            VDoc.Redraw(true);
        }
コード例 #15
0
        private void Fill_Slab(string beam_nos, bool isOk)
        {
            MyStrings mlist = new MyStrings(beam_nos.Trim(), ' ');

            MemberIncidenceCollection mic = new MemberIncidenceCollection();


            for (int i = 0; i < mlist.Count; i++)
            {
                mic.Add(AST_DOC.Members.Get_Member(mlist.GetInt(i)));
            }



            JointCoordinateCollection jntc = new JointCoordinateCollection();

            vdPolyline vdpl = new vdPolyline();

            vdpl.SetUnRegisterDocument(VDoc);
            vdpl.setDocumentDefaults();

            for (int i = 1; i < mic.Count; i++)
            {
                if (mic[i - 1].StartNode == mic[i].StartNode)
                {
                    if (!jntc.Contains(mic[i].StartNode))
                    {
                        jntc.Add(mic[i].StartNode);
                    }
                }
                else if (mic[i - 1].EndNode == mic[i].StartNode)
                {
                    if (!jntc.Contains(mic[i].StartNode))
                    {
                        jntc.Add(mic[i].StartNode);
                    }
                }
                else if (mic[i - 1].StartNode == mic[i].EndNode)
                {
                    if (!jntc.Contains(mic[i].EndNode))
                    {
                        jntc.Add(mic[i].EndNode);
                    }
                }
                else if (mic[i - 1].EndNode == mic[i].EndNode)
                {
                    if (!jntc.Contains(mic[i].EndNode))
                    {
                        jntc.Add(mic[i].EndNode);
                    }
                }
                else
                {
                    //string ss = Slab_Data[beam_nos] as string;
                    //if (ss != null)
                    //    Slab_Data.Remove(beam_nos);

                    //Save_Data();
                    MessageBox.Show("Beam " + mic[i].MemberNo + " and Beam " + mic[i - 1].MemberNo + " Joints are mismatch..", "ASTRA", MessageBoxButtons.OK);
                    return;
                }
            }

            if (!jntc.Contains(mic[0].StartNode))
            {
                jntc.Add(mic[0].StartNode);
            }
            if (!jntc.Contains(mic[0].EndNode))
            {
                jntc.Add(mic[0].EndNode);
            }

            jntc.Add(jntc[0]);
            double max_z = AST_DOC.Joints.Max_Z_Positive;

            foreach (var item in jntc)
            {
                //vdpl.VertexList.Add(item.Point);
                vdpl.VertexList.Add(new gPoint(item.X, max_z - item.Z));
            }


            //if (File.Exists(Slab_des.Get_Report_File(beam_nos, cmb_flr_lvl.Text)))
            //{
            //    vdpl.ToolTip = File.ReadAllText(Slab_des.Get_Report_File(beam_nos, cmb_flr_lvl.Text));
            //    vdpl.ToolTip = "



            //}

            vdpl.ToolTip = "Member surrounded : " + beam_nos;

            vdLayer vlay = VDoc.Layers.FindName("slab");


            if (vlay == null)
            {
                vlay = new vdLayer(VDoc, "slab");
                vlay.SetUnRegisterDocument(VDoc);
                vlay.setDocumentDefaults();


                VDoc.Layers.Add(vlay);
            }

            //vlay.Frozen = false;
            //vlay.Lock = true;
            vdpl.Layer = vlay;


            //vdpl.PenColor = new vdColor(Color.DarkGray);
            if (isOk)
            {
                vdpl.PenColor = new vdColor(Color.Green);
            }
            else
            {
                vdpl.PenColor = new vdColor(Color.Red);
            }
            vdpl.HatchProperties = new vdHatchProperties(VectorDraw.Professional.Constants.VdConstFill.VdFillModeHatchFDiagonal);


            //vdpl.ExtrusionVector = new Vector(0.0, 1.0, 0.0);


            VDoc.ActiveLayOut.Entities.Add(vdpl);

            VDoc.ActiveLayOut.Entities.ChangeOrder(vdpl, true);

            VDoc.Redraw(true);
        }