/// <summary> /// Asettaa ryhmälle alku- ja loppupisteet suunnan ja kentän mittojen perusteella /// </summary> /// <param name="kentta">Kenttä, jonka mittojen mukaan pisteet asetetaan</param> /// <param name="suunta">Mihin suuntaan tuki osoittaa kenttään nähden</param> /// <param name="ryhma">Harjateräsryhmä, johon suuntapisteet asetetaan</param> private void AsetaHarjaterasryhmalleAlkuJaLoppupiste(Kentta kentta, string suunta, HarjaterasRyhma ryhma) { switch (suunta) { case "vasen": ryhma.SijaintiAlku = kentta.VasenAlanurkka; ryhma.SijaintiLoppu = new System.Drawing.Point(kentta.VasenAlanurkka.X, kentta.VasenAlanurkka.Y + (int)(kentta.Korkeus * 1000)); break; case "ylos": ryhma.SijaintiAlku = new System.Drawing.Point(kentta.VasenAlanurkka.X, kentta.VasenAlanurkka.Y + (int)(kentta.Korkeus * 1000)); ryhma.SijaintiLoppu = new System.Drawing.Point(kentta.VasenAlanurkka.X + (int)(kentta.Leveys * 1000), kentta.VasenAlanurkka.Y + (int)(kentta.Korkeus * 1000)); break; case "oikea": ryhma.SijaintiAlku = new System.Drawing.Point(kentta.VasenAlanurkka.X + (int)(kentta.Leveys * 1000), kentta.VasenAlanurkka.Y + (int)(kentta.Korkeus * 1000)); ryhma.SijaintiLoppu = new System.Drawing.Point(kentta.VasenAlanurkka.X + (int)(kentta.Leveys * 1000), kentta.VasenAlanurkka.Y); break; case "alas": ryhma.SijaintiLoppu = new System.Drawing.Point(kentta.VasenAlanurkka.X + (int)(kentta.Leveys * 1000), kentta.VasenAlanurkka.Y); ryhma.SijaintiAlku = kentta.VasenAlanurkka; break; } }
public Verkko LaskeNurkkaRaudoitus(Kentta kentta, double kuorma) { double momentti = (kuorma * Math.Min(kentta.Leveys, kentta.Korkeus) * Math.Max(kentta.Leveys, kentta.Korkeus)) / 40; System.Windows.Forms.MessageBox.Show("Momentti: " + momentti.ToString() + " kNm"); int vaadittuRaudoitus = LaskeVaadittuRaudoitusPintaAla(momentti); return(LaskeSopivinVerkko(vaadittuRaudoitus, false)); }
private void RaudoitaKeskelle(Verkko verkko, ModelObject father, Point[] p, Kentta kentta) { if (verkko.Tyyppi == "Ei verkkoa") { return; } double kenttaX = Math.Min(kentta.Leveys, kentta.Korkeus); double kenttaNeljasosa = kenttaX / 4 * 1000; Polygon polygon = new Polygon(); Point p1 = new Point(p[0].X + kenttaNeljasosa + 10, p[0].Y + kenttaNeljasosa, 3000); Point p2 = new Point(p[1].X + kenttaNeljasosa + 10, p[1].Y - kenttaNeljasosa, 3000); Point p3 = new Point(p[2].X - kenttaNeljasosa + 10, p[2].Y - kenttaNeljasosa, 3000); Point p4 = new Point(p[3].X - kenttaNeljasosa + 10, p[3].Y + kenttaNeljasosa, 3000); polygon.Points.Add(p1); polygon.Points.Add(p2); polygon.Points.Add(p3); polygon.Points.Add(p4); RebarMesh rMesh = new RebarMesh(); rMesh.StartPoint = p1; rMesh.EndPoint = p2; rMesh.CatalogName = "Lisäverkko"; rMesh.LongitudinalSize = verkko.RaudanKoko.ToString(); rMesh.CrossSize = verkko.RaudanKoko.ToString(); rMesh.LeftOverhangCross = 100.0; rMesh.LeftOverhangLongitudinal = 100.0; rMesh.RightOverhangCross = 100.0; rMesh.RightOverhangLongitudinal = 100.0; rMesh.LongitudinalSpacingMethod = RebarMesh.RebarMeshSpacingMethodEnum.SPACING_TYPE_SAME_DISTANCE; rMesh.LongitudinalDistances.Add(verkko.SilmaKokoVaaka); rMesh.CrossDistances.Add(verkko.SilmaKokoPysty); rMesh.Class = 7; rMesh.NumberingSeries.StartNumber = 0; rMesh.NumberingSeries.Prefix = "Mesh"; rMesh.Grade = verkko.Tyyppi; rMesh.OnPlaneOffsets.Add(verkko.SuojaBetoni); rMesh.FromPlaneOffset = -verkko.SuojaBetoni; rMesh.StartPointOffsetType = Reinforcement.RebarOffsetTypeEnum.OFFSET_TYPE_COVER_THICKNESS; rMesh.StartPointOffsetValue = verkko.SuojaBetoni; rMesh.StartFromPlaneOffset = verkko.SuojaBetoni; rMesh.Name = "Kentta " + kentta.Numero + " lisäraudoitus"; rMesh.MeshType = RebarMesh.RebarMeshTypeEnum.POLYGON_MESH; rMesh.Polygon = polygon; rMesh.CrossBarLocation = RebarMesh.RebarMeshCrossBarLocationEnum.LOCATION_TYPE_ABOVE; rMesh.EndFromPlaneOffset = verkko.SuojaBetoni; rMesh.CutByFatherPartCuts = true; rMesh.Father = father; rMesh.Insert(); malli.CommitChanges(); }
/// <summary> /// Skipataan tietyt kentät /// </summary> /// <param name="kentta"></param> /// <param name="suunta"></param> /// <returns></returns> private bool Skippaa(Kentta kentta, string suunta) { if (kentta.Numero == 2 || kentta.Numero == 4 || kentta.Numero == 6) { return(true); } if (kentta.Numero == 5 && suunta == "alas") { return(true); } return(false); }
public Laskija(Kentta kentta, double kuormat) { InitializeComponent(); lKentta.Text = "Kenttä " + kentta.Numero; this.kentta = kentta; this.kuormat = kuormat * Math.Pow(Math.Min(kentta.Leveys, kentta.Korkeus), 2); b_arvot = new double[4]; AlustaMomenttiTaulukko(); AlustaJaykistysTaulukko(); AlustaMomenttikertoimet(); AlustaKenttamomenttienKertoimet(); }
/// <summary> /// Laskee tukiraudoitukset tietylle kentälle kaikkiin suuntiin /// </summary> /// <param name="kentta">Kenttä, jolle tukiraudoitukset lasketaan</param> public void LaskeTukiraudoituksetKentalle(Kentta kentta) { #region Virheenkorjaus string[] vaaditutRaudoitukset = new string[8]; int i = 0; #endregion foreach (string suunta in kentta.HaeTasatutTukimomentit().Keys) { double momentti = kentta.HaeTasattuTukimomentti(suunta); int vaadittuRaudoitus = LaskeVaadittuRaudoitusPintaAla(momentti * 1000); HarjaterasRyhma sopivaRyhma = LaskeSopivinHarjaterasryhma(vaadittuRaudoitus); AsetaHarjaterasryhmalleAlkuJaLoppupiste(kentta, suunta, sopivaRyhma); sopivaRyhma.TankojenPituus = 1000; sopivaRyhma.Tyyppi = "A500HW"; if (kentta.Tukiraudat.ContainsKey(suunta)) { kentta.Tukiraudat[suunta] = sopivaRyhma; } else { kentta.Tukiraudat.Add(suunta, sopivaRyhma); } #region Virheenkorjaus vaaditutRaudoitukset[i] = vaadittuRaudoitus.ToString(); i++; #endregion } #region Virheenkorjaus if (VirheenkorjausTukiraudat) { StringBuilder debug = new StringBuilder(); i = 0; foreach (string suunta in kentta.Tukiraudat.Keys) { debug.Append("Suunta: " + suunta + "\n"); debug.Append("Koko: " + kentta.HaeTukiraudat(suunta).Koko + "\n"); debug.Append("Jako: " + kentta.HaeTukiraudat(suunta).Jako + "\n"); debug.Append("Raudoituksen pinta-ala metrille: " + (int)kentta.HaeTukiraudat(suunta).PintaAlaMetrille + "\n"); debug.Append("Vaadittu pinta-ala: " + vaaditutRaudoitukset[i] + "\n\n"); i++; } System.Windows.Forms.MessageBox.Show(debug.ToString(), "Kenttä " + kentta.Numero); } #endregion }
private Polygon HaeTukiraudoituksenPolygon(Kentta kentta, string suunta, RebarGroup rGroup) { Polygon polygon = new Polygon(); switch (suunta) { case "vasen": rGroup.StartPoint = new Point(kentta.Tukiraudat[suunta].SijaintiAlku.X, kentta.Tukiraudat[suunta].SijaintiAlku.Y, 3000); rGroup.EndPoint = new Point(kentta.Tukiraudat[suunta].SijaintiLoppu.X, kentta.Tukiraudat[suunta].SijaintiLoppu.Y, 3000); polygon.Points.Add(new Point(kentta.VasenAlanurkka.X - 100, kentta.VasenAlanurkka.Y, 3000)); polygon.Points.Add(new Point(kentta.VasenAlanurkka.X + 100, kentta.VasenAlanurkka.Y, 3000)); break; case "ylos": rGroup.StartPoint = new Point(kentta.Tukiraudat[suunta].SijaintiAlku.X, kentta.Tukiraudat[suunta].SijaintiAlku.Y, 3000); rGroup.EndPoint = new Point(kentta.Tukiraudat[suunta].SijaintiLoppu.X, kentta.Tukiraudat[suunta].SijaintiLoppu.Y, 3000); polygon.Points.Add(new Point(kentta.VasenAlanurkka.X, kentta.VasenAlanurkka.Y + kentta.Korkeus * 1000 + 100, 3000)); polygon.Points.Add(new Point(kentta.VasenAlanurkka.X, kentta.VasenAlanurkka.Y + kentta.Korkeus * 1000 - 100, 3000)); break; case "oikea": rGroup.EndPoint = new Point(kentta.Tukiraudat[suunta].SijaintiAlku.X, kentta.Tukiraudat[suunta].SijaintiAlku.Y, 3000); rGroup.StartPoint = new Point(kentta.Tukiraudat[suunta].SijaintiLoppu.X, kentta.Tukiraudat[suunta].SijaintiLoppu.Y, 3000); polygon.Points.Add(new Point(kentta.VasenAlanurkka.X + kentta.Leveys * 1000 - 100, kentta.VasenAlanurkka.Y, 3000)); polygon.Points.Add(new Point(kentta.VasenAlanurkka.X + kentta.Leveys * 1000 + 100, kentta.VasenAlanurkka.Y, 3000)); break; case "alas": rGroup.StartPoint = new Point(kentta.Tukiraudat[suunta].SijaintiAlku.X, kentta.Tukiraudat[suunta].SijaintiAlku.Y, 3000); rGroup.EndPoint = new Point(kentta.Tukiraudat[suunta].SijaintiLoppu.X, kentta.Tukiraudat[suunta].SijaintiLoppu.Y, 3000); polygon.Points.Add(new Point(kentta.VasenAlanurkka.X, kentta.VasenAlanurkka.Y + 100, 3000)); polygon.Points.Add(new Point(kentta.VasenAlanurkka.X, kentta.VasenAlanurkka.Y - 100, 3000)); break; } return(polygon); }
public RaudoitusForm(Raudoittaja raudoittaja, Kentta kentta) { InitializeComponent(); this.raudoittaja = raudoittaja; this.kentta = kentta; }
public Laskija(Kentta kentta, double kuormat, double hyotykuormat) : this(kentta, kuormat) { this.hyotykuormat = hyotykuormat; }
public Laskija(Kentta kentta, double kuormat, bool verbose) : this(kentta, kuormat) { this.virheenkorjausMomentti = true; this.virheenkorjausJaykistys = true; }