private void MallinnaKenttaraudoitusVerkot(ContourPlate laatta) { for (int i = 0; i < kentat.Length; i++) { Polygon polygon = new Polygon(); Point p1 = kentat[i].VasenAlanurkkaTekla; Point p2 = new Point(kentat[i].VasenAlanurkkaTekla.X, kentat[i].VasenAlanurkkaTekla.Y + kentat[i].Korkeus * 1000, 3000); Point p3 = new Point(kentat[i].VasenAlanurkkaTekla.X + kentat[i].Leveys * 1000, kentat[i].VasenAlanurkkaTekla.Y + kentat[i].Korkeus * 1000, 3000); Point p4 = new Point(kentat[i].VasenAlanurkkaTekla.X + kentat[i].Leveys * 1000, kentat[i].VasenAlanurkkaTekla.Y, 3000); polygon.Points.Add(p1); polygon.Points.Add(p2); polygon.Points.Add(p3); polygon.Points.Add(p4); Verkko raudoitus = kentat[i].RaudoitusYleensa; if (raudoitus.Tyyppi == "Ei sopivaa") { continue; } double silmavali = raudoitus.SilmaKokoVaaka; string verkonKoko = raudoitus.RaudanKoko.ToString(); RebarMesh rMesh = new RebarMesh(); rMesh.StartPoint = p1; rMesh.EndPoint = p2; rMesh.CatalogName = "Vähimmäisraudoitus"; rMesh.LongitudinalSize = verkonKoko; rMesh.CrossSize = verkonKoko; 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(silmavali); rMesh.CrossDistances.Add(silmavali); rMesh.Class = 7; rMesh.NumberingSeries.StartNumber = 0; rMesh.NumberingSeries.Prefix = "Mesh"; rMesh.Grade = raudoitus.Tyyppi; rMesh.OnPlaneOffsets.Add(raudoitus.SuojaBetoni); rMesh.FromPlaneOffset = -raudoitus.SuojaBetoni; rMesh.StartPointOffsetType = Reinforcement.RebarOffsetTypeEnum.OFFSET_TYPE_COVER_THICKNESS; rMesh.StartPointOffsetValue = raudoitus.SuojaBetoni; rMesh.StartFromPlaneOffset = raudoitus.SuojaBetoni; rMesh.Name = "Kentta " + kentat[i].Numero; rMesh.MeshType = RebarMesh.RebarMeshTypeEnum.POLYGON_MESH; rMesh.Polygon = polygon; rMesh.CrossBarLocation = RebarMesh.RebarMeshCrossBarLocationEnum.LOCATION_TYPE_ABOVE; rMesh.EndFromPlaneOffset = raudoitus.SuojaBetoni; rMesh.CutByFatherPartCuts = true; rMesh.Father = laatta; rMesh.Insert(); malli.CommitChanges(); RaudoitaKeskelle(kentat[i].RaudoitusKeskella, laatta, new Point[] { p1, p2, p3, p4 }, kentat[i]); } }
public static dynamic GetTSObject(RebarMesh dynObject) { if (dynObject is null) { return(null); } return(dynObject.teklaObject); }
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(); }