public void Draw_Floor_Layout(double flr_lvl) { MemberIncidenceCollection beams = new MemberIncidenceCollection(); for (int i = 0; i < AST_DOC.Members.Count; i++) { var item = AST_DOC.Members[i]; if (item.EndNode.Y == flr_lvl) { if (item.StartNode.Y == item.EndNode.Y) { beams.Add(item); } } } VDoc.ShowUCSAxis = false; VDoc.ActiveLayOut.Entities.RemoveAll(); double max_z = AST_DOC.Joints.Max_Z_Positive; vdLine ln = new vdLine(); foreach (var item in beams) { ln = new vdLine(); ln.SetUnRegisterDocument(VDoc); ln.setDocumentDefaults(); ln.StartPoint.x = item.StartNode.X; ln.StartPoint.y = max_z - item.StartNode.Z; ln.EndPoint.x = item.EndNode.X; ln.EndPoint.y = max_z - item.EndNode.Z; ln.ToolTip = "Member No : " + item.MemberNo; VDoc.ActiveLayOut.Entities.Add(ln); } //Get_Slabs(mic); Fill_All_Slab(); Load_Slab_Data(); VDoc.Palette.Background = Color.White; VDoc.Redraw(true); VectorDraw.Professional.ActionUtilities.vdCommandAction.View3D_VTop(VDoc); }
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); }
public void Add_Structure_Joint_Load() { MemberIncidenceCollection all_beams = new MemberIncidenceCollection(); List <double> floors = new List <double>(); if (iACad.AstraDocument.Members.Count > 0) { foreach (var item in iACad.AstraDocument.Members) { if (item.StartNode.Y == item.EndNode.Y) { all_beams.Add(item); if (!floors.Contains(item.EndNode.Y)) { floors.Add(item.EndNode.Y); } } } } List <JointWeight> JointWeights = new List <JointWeight>(); List <int> joints = new List <int>(); floors.Sort(); double wght = 0.0; int indx = 0; double factor = MyStrings.StringToDouble(txt_factor.Text, 0.8); double unit_wt_wall = MyStrings.StringToDouble(txt_wall_uwgt.Text, 0.8); foreach (var item in all_beams) { JointWeight jw = new JointWeight(); jw.JointNo = item.StartNode.NodeNo; indx = floors.IndexOf(item.StartNode.Y); wght = 0.0; //double unit_wt_wall = 19.2; if (indx != -1) { if (indx + 1 < floors.Count) { if (item.Property == null) { MessageBox.Show("Member Property is not defined for Member No " + item.MemberNo, "ASTRA", MessageBoxButtons.OK); return; } else { wght = item.Property.YD * item.Length * (floors[indx + 1] - floors[indx]) * unit_wt_wall; } } //wght = item.Property.ZD * item.Length * (floors[indx + 1] - floors[indx]) * 24.0; } if (wght != 0.0) { wght = wght * factor; jw = new JointWeight(); jw.JointNo = item.StartNode.NodeNo; jw.Weight = wght / 2; JointWeights.Add(jw); if (!joints.Contains(jw.JointNo)) { joints.Add(jw.JointNo); } jw = new JointWeight(); jw.JointNo = item.EndNode.NodeNo; jw.Weight = wght / 2; JointWeights.Add(jw); if (!joints.Contains(jw.JointNo)) { joints.Add(jw.JointNo); } } } //List<JointWeight> FinalWeights = new List<JointWeight>(); JointWeight jwt = null; jwt = null; dgv_str_jnt_wgt.Rows.Clear(); for (int j = 0; j < joints.Count; j++) { jwt = new JointWeight(joints[j], 0.0); //FinalWeights.Add(jwt); for (int i = 0; i < JointWeights.Count; i++) { if (jwt.JointNo == JointWeights[i].JointNo) { jwt.Weight += JointWeights[i].Weight; } } dgv_str_jnt_wgt.Rows.Add(jwt.JointNo, jwt.Weight.ToString("f3")); //Node.Nodes.Add(jwt.ToString()); ASTRA_Data.Add(jwt.ToString()); } txt_joint_number.Text = ""; //FinalWeights.Add(jwt); //Node.Nodes.Add(jwt.ToString()); }
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(); }
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); }
private void Get_Beams() { double d = MyStrings.StringToDouble(cmb_flr_lvl.Text, 0.0); VDoc.ActiveLayOut.Entities.RemoveAll(); panel1.Visible = true; MemberIncidenceCollection mic = new MemberIncidenceCollection(); JointCoordinateCollection jcc = new JointCoordinateCollection(); MemberIncidence mi; foreach (var item in AST_DOC.Members) { if (item.StartNode.Y == d && item.EndNode.Y == d) { //mi = new MemberIncidence(); //mi.StartNode = new JointCoordinate(item.StartNode); //mi.EndNode = new JointCoordinate(item.EndNode); //mi.MemberNo = item.MemberNo; //mi.StartNode.Y = mi.StartNode.Z; //mi.EndNode.Y = mi.EndNode.Z; AST_DOC.Members.DrawMember(item, VDoc, TXT_SIZE); //AST_DOC.Members.DrawMember(mi, VDoc, TXT_SIZE); mic.Add(item); if (!jcc.Contains(item.StartNode)) { jcc.Add(item.StartNode); } if (!jcc.Contains(item.EndNode)) { jcc.Add(item.EndNode); } } } jcc.DrawJointsText(VDoc, TXT_SIZE); VDoc.Layers.FindName("Members").Lock = true; VDoc.Layers.FindName("Nodes").Lock = true; //VectorDraw.Professional.ActionUtilities.vdCommandAction.View3D_VTop(VDoc); Set_TextSize(); //Get_Slabs(mic); Fill_All_Slab(); Load_Slab_Data(); VectorDraw.Professional.ActionUtilities.vdCommandAction.View3D_VBack(VDoc); VectorDraw.Professional.ActionUtilities.vdCommandAction.View3D_Vrot(VDoc); }
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); }