Exemplo n.º 1
0
        public static bool InsertWindows(double lenght, double height, double heightFloor)
        {
            var objects = new ModelObjectSelector().GetSelectedObjects();

            while (objects.MoveNext())
            {
                var obj = objects.Current;
                try
                {
                    var midWallPoint = obj.GetCoordinateSystem().Origin;
                    var wallLenght   = obj.GetCoordinateSystem().AxisX;
                    if (wallLenght.X == 0)
                    {
                        int numberOfWindows = Convert.ToInt32(Math.Floor(wallLenght.Y / (lenght + windowsDistance)));
                        midWallPoint.Y += wallLenght.Y / numberOfWindows / 2;
                        for (int i = 0; i < numberOfWindows; ++i)
                        {
                            ArrayList list = new ArrayList
                            {
                                new Point(midWallPoint.X, midWallPoint.Y - lenght / 2, midWallPoint.Z + heightFloor),
                                new Point(midWallPoint.X, midWallPoint.Y + lenght / 2, midWallPoint.Z + heightFloor),
                                new Point(midWallPoint.X, midWallPoint.Y + lenght / 2, midWallPoint.Z + heightFloor + height),
                                new Point(midWallPoint.X, midWallPoint.Y - lenght / 2, midWallPoint.Z + heightFloor + height)
                            };
                            InsertElements.InsertCutPlate(obj as ContourPlate, list, "PL100", "A36");
                            midWallPoint.Y += wallLenght.Y / numberOfWindows;
                        }
                    }
                    else
                    {
                        int numberOfWindows = Convert.ToInt32(Math.Floor(wallLenght.X / (lenght + windowsDistance)));
                        midWallPoint.X += wallLenght.X / numberOfWindows / 2;
                        for (int i = 0; i < numberOfWindows; ++i)
                        {
                            ArrayList list = new ArrayList
                            {
                                new Point(midWallPoint.X - lenght / 2, midWallPoint.Y, midWallPoint.Z + heightFloor),
                                new Point(midWallPoint.X + lenght / 2, midWallPoint.Y, midWallPoint.Z + heightFloor),
                                new Point(midWallPoint.X + lenght / 2, midWallPoint.Y, midWallPoint.Z + heightFloor + height),
                                new Point(midWallPoint.X - lenght / 2, midWallPoint.Y, midWallPoint.Z + heightFloor + height)
                            };
                            InsertElements.InsertCutPlate(obj as ContourPlate, list, "PL100", "A36");
                            midWallPoint.X += wallLenght.X / numberOfWindows;
                        }
                    }
                }
                catch
                {
                    return(true);
                }
            }
            return(false);
        }
Exemplo n.º 2
0
        public static bool InsertDoor(double doorWidth, double doorHeight)
        {
            var objects = new ModelObjectSelector().GetSelectedObjects();

            while (objects.MoveNext())
            {
                var obj = objects.Current;
                try
                {
                    var midWallPoint = obj.GetCoordinateSystem().Origin;
                    var wallLenght   = obj.GetCoordinateSystem().AxisX;
                    midWallPoint.X += wallLenght.X / 2;
                    midWallPoint.Y += wallLenght.Y / 2;
                    ArrayList list;
                    if (wallLenght.X == 0)
                    {
                        list = new ArrayList
                        {
                            new Point(midWallPoint.X, midWallPoint.Y - doorWidth / 2, midWallPoint.Z),
                            new Point(midWallPoint.X, midWallPoint.Y + doorWidth / 2, midWallPoint.Z),
                            new Point(midWallPoint.X, midWallPoint.Y + doorWidth / 2, midWallPoint.Z + doorHeight),
                            new Point(midWallPoint.X, midWallPoint.Y - doorWidth / 2, midWallPoint.Z + doorHeight)
                        };
                    }
                    else
                    {
                        list = new ArrayList
                        {
                            new Point(midWallPoint.X - doorWidth / 2, midWallPoint.Y, midWallPoint.Z),
                            new Point(midWallPoint.X + doorWidth / 2, midWallPoint.Y, midWallPoint.Z),
                            new Point(midWallPoint.X + doorWidth / 2, midWallPoint.Y, midWallPoint.Z + doorHeight),
                            new Point(midWallPoint.X - doorWidth / 2, midWallPoint.Y, midWallPoint.Z + doorHeight)
                        };
                    }
                    InsertElements.InsertCutPlate(obj as ContourPlate, list, "PL100", "A36");
                }
                catch
                {
                    return(true);
                }
            }
            return(false);
        }