Exemple #1
0
        public void ChengTai3()
        {
            ObjectIdCollection objectIdCollection = new ObjectIdCollection();
            Point3d            point = CAD.GetPoint("选择插入点: ");
            Point3d            point3d;

            if (!(point == point3d))
            {
                objectIdCollection.Add(CAD.AddPoint(point));
                long    num        = Conversions.ToLong(Interaction.InputBox("输入桩直径或边长", "三桩承台", "400", -1, -1));
                long    num2       = Conversions.ToLong(Interaction.InputBox("输入桩中心距(mm)", "三桩承台", "1400", -1, -1));
                Point3d pointAngle = CAD.GetPointAngle(point, (double)num2 * Math.Sqrt(3.0) / 3.0, 90.0);
                objectIdCollection.Add(CAD.AddPoint(pointAngle));
                Point3d pointAngle2 = CAD.GetPointAngle(point, (double)num2 * Math.Sqrt(3.0) / 3.0, 210.0);
                objectIdCollection.Add(CAD.AddPoint(pointAngle2));
                Point3d pointAngle3 = CAD.GetPointAngle(point, (double)num2 * Math.Sqrt(3.0) / 3.0, -30.0);
                objectIdCollection.Add(CAD.AddPoint(pointAngle3));
                double   r           = 2.0 * Math.Sqrt(3.0) / 3.0 * (double)num;
                Point3d  pointAngle4 = CAD.GetPointAngle(pointAngle, r, 60.0);
                Point3d  pointAngle5 = CAD.GetPointAngle(pointAngle, r, 120.0);
                Point3d  pointAngle6 = CAD.GetPointAngle(pointAngle2, r, 180.0);
                Point3d  pointAngle7 = CAD.GetPointAngle(pointAngle2, r, 240.0);
                Point3d  pointAngle8 = CAD.GetPointAngle(pointAngle3, r, 300.0);
                Point3d  pointAngle9 = CAD.GetPointAngle(pointAngle3, r, 360.0);
                Polyline polyline    = new Polyline();
                Polyline polyline2   = polyline;
                int      num3        = 0;
                Point2d  point2d;
                point2d..ctor(pointAngle4.X, pointAngle4.Y);
                polyline2.AddVertexAt(num3, point2d, 0.0, 0.0, 0.0);
                Polyline polyline3 = polyline;
                int      num4      = 1;
                point2d..ctor(pointAngle5.X, pointAngle5.Y);
                polyline3.AddVertexAt(num4, point2d, 0.0, 0.0, 0.0);
                Polyline polyline4 = polyline;
                int      num5      = 2;
                point2d..ctor(pointAngle6.X, pointAngle6.Y);
                polyline4.AddVertexAt(num5, point2d, 0.0, 0.0, 0.0);
                Polyline polyline5 = polyline;
                int      num6      = 3;
                point2d..ctor(pointAngle7.X, pointAngle7.Y);
                polyline5.AddVertexAt(num6, point2d, 0.0, 0.0, 0.0);
                Polyline polyline6 = polyline;
                int      num7      = 4;
                point2d..ctor(pointAngle8.X, pointAngle8.Y);
                polyline6.AddVertexAt(num7, point2d, 0.0, 0.0, 0.0);
                Polyline polyline7 = polyline;
                int      num8      = 5;
                point2d..ctor(pointAngle9.X, pointAngle9.Y);
                polyline7.AddVertexAt(num8, point2d, 0.0, 0.0, 0.0);
                polyline.Closed = true;
                objectIdCollection.Add(CAD.AddEnt(polyline).ObjectId);
                Class36.smethod_18(objectIdCollection);
            }
        }
Exemple #2
0
        public void flower(object r, object px, object py, object pi, object col)
        {
            object obj = checked ((int)Math.Round((double)(unchecked (8f - VBMath.Rnd(1f) * 5f))));
            short  num;

            if (Operators.ConditionalCompareObjectEqual(Operators.ModObject(obj, 2), 0, false))
            {
                num = 2;
            }
            else
            {
                num = 1;
            }
            Point3d p       = default(Point3d);
            Point3d point3d = default(Point3d);
            float   num2    = 0f;
            float   num3    = Conversions.ToSingle(Operators.AddObject(Operators.MultiplyObject(num, pi), Operators.DivideObject(pi, Operators.MultiplyObject(10, obj))));
            float   num4    = Conversions.ToSingle(Operators.DivideObject(pi, Operators.MultiplyObject(15, obj)));
            float   limit   = num3;
            float   num5    = num2;

            while (ObjectFlowControl.ForLoopControl.ForNextCheckR4(num5, limit, num4))
            {
                float num6 = Conversions.ToSingle(Operators.AddObject(Operators.MultiplyObject(Operators.AddObject(Operators.MultiplyObject(Operators.DivideObject(r, 4), Math.Sin(Conversions.ToDouble(Operators.MultiplyObject(Operators.MultiplyObject(3, obj), num5)))), Operators.MultiplyObject(r, Math.Sin(Conversions.ToDouble(Operators.MultiplyObject(obj, num5))))), Math.Cos((double)num5)), px));
                float num7 = Conversions.ToSingle(Operators.AddObject(Operators.MultiplyObject(Operators.AddObject(Operators.MultiplyObject(Operators.DivideObject(r, 4), Math.Sin(Conversions.ToDouble(Operators.MultiplyObject(Operators.MultiplyObject(3, obj), num5)))), Operators.MultiplyObject(r, Math.Sin(Conversions.ToDouble(Operators.MultiplyObject(obj, num5))))), Math.Sin((double)num5)), py));
                if (num5 == 0f)
                {
                    Point3d p2;
                    p2..ctor((double)num6, (double)num7, 0.0);
                    CAD.AddPoint(p2);
                    p..ctor((double)num6, (double)num7, 0.0);
                }
                else
                {
                    point3d..ctor((double)num6, (double)num7, 0.0);
                    CAD.AddLine(p, point3d, "0");
                    p..ctor((double)num6, (double)num7, 0.0);
                    p = point3d;
                }
                num5 += num4;
            }
        }
        public void TcFace()
        {
            int    num;
            int    num4;
            object obj2;

            try
            {
IL_01:
                ProjectData.ClearProjectError();
                num = -2;
IL_09:
                int num2 = 2;
                Document mdiActiveDocument = Application.DocumentManager.MdiActiveDocument;
IL_16:
                num2 = 3;
                Database database = mdiActiveDocument.Database;
IL_1F:
                num2 = 4;
                using (Transaction transaction = database.TransactionManager.StartTransaction())
                {
                    TypedValue[] array  = new TypedValue[1];
                    Array        array2 = array;
                    TypedValue   typedValue;
                    typedValue..ctor(0, "3DFACE");
                    array2.SetValue(typedValue, 0);
                    SelectionFilter       selectionFilter = new SelectionFilter(array);
                    PromptSelectionResult selection       = mdiActiveDocument.Editor.GetSelection(selectionFilter);
                    if (selection.Status == 5100)
                    {
                        SelectionSet value      = selection.Value;
                        IEnumerator  enumerator = value.GetEnumerator();
                        while (enumerator.MoveNext())
                        {
                            object         obj            = enumerator.Current;
                            SelectedObject selectedObject = (SelectedObject)obj;
                            Face           face           = (Face)transaction.GetObject(selectedObject.ObjectId, 1);
                            Interaction.MsgBox(face.GetVertexAt(0).ToString(), MsgBoxStyle.OkOnly, null);
                            CAD.AddPoint(face.GetVertexAt(0));
                        }
                        if (enumerator is IDisposable)
                        {
                            (enumerator as IDisposable).Dispose();
                        }
                    }
                    transaction.Commit();
                }
IL_121:
                num2 = 6;
                if (Information.Err().Number <= 0)
                {
                    goto IL_146;
                }
IL_132:
                num2 = 7;
                Interaction.MsgBox(Information.Err().Description, MsgBoxStyle.OkOnly, null);
IL_146:
                goto IL_1C2;
IL_148:
                int num3 = num4 + 1;
                num4     = 0;
                @switch(ICSharpCode.Decompiler.ILAst.ILLabel[], num3);
IL_17C:
                goto IL_1B7;
IL_17E:
                num4 = num2;
                if (num <= -2)
                {
                    goto IL_148;
                }
                @switch(ICSharpCode.Decompiler.ILAst.ILLabel[], num);
                IL_194 :;
            }
            catch when(endfilter(obj2 is Exception & num != 0 & num4 == 0))
            {
                Exception ex = (Exception)obj3;

                goto IL_17E;
            }
IL_1B7:
            throw ProjectData.CreateProjectError(-2146828237);
IL_1C2:
            if (num4 != 0)
            {
                ProjectData.ClearProjectError();
            }
        }
Exemple #4
0
        public void TcFlower()
        {
            float[]  array  = new float[3];
            float[]  array2 = new float[3];
            float[]  array3 = new float[3];
            object   obj    = 3.1415926535897931;
            object   obj2   = 400;
            object   obj3   = 300;
            object   obj4   = 30;
            ColorRGB colorRGB;

            colorRGB..ctor(255.0, 0.0, 0.0);
            this.flower(RuntimeHelpers.GetObjectValue(obj4), RuntimeHelpers.GetObjectValue(obj2), RuntimeHelpers.GetObjectValue(obj3), RuntimeHelpers.GetObjectValue(obj), colorRGB);
            array[0]  = 7f;
            array2[0] = 43.6f;
            array3[0] = 24.5f;
            array[1]  = 17f;
            array2[1] = 77.5f;
            array3[1] = 18f;
            array[2]  = 31f;
            array2[2] = 102f;
            array3[2] = 13f;
            object value = 0;

            VBMath.Randomize(Conversions.ToDouble(value));
            short num = 0;

            do
            {
                object right = array[(int)num];
                object left  = array2[(int)num];
                obj4 = array3[(int)num];
                float num2;
                if (num == 2)
                {
                    num2 = Conversions.ToSingle(Operators.DivideObject(Operators.MultiplyObject(2, obj), right));
                }
                else
                {
                    num2 = 0f;
                }
                float num3  = 0f;
                float num4  = Conversions.ToSingle(Operators.SubtractObject(Operators.MultiplyObject(2, obj), num2));
                float num5  = Conversions.ToSingle(Operators.DivideObject(Operators.MultiplyObject(2, obj), right));
                float limit = num4;
                float num6  = num3;
                while (ObjectFlowControl.ForLoopControl.ForNextCheckR4(num6, limit, num5))
                {
                    float num7 = Conversions.ToSingle(Operators.AddObject(obj2, Operators.MultiplyObject(left, Math.Cos((double)num6))));
                    float num8 = Conversions.ToSingle(Operators.AddObject(obj3, Operators.MultiplyObject(left, Math.Sin((double)num6))));
                    colorRGB..ctor(255.0, 255.0, 0.0);
                    this.flower(RuntimeHelpers.GetObjectValue(obj4), num7, num8, RuntimeHelpers.GetObjectValue(obj), colorRGB);
                    num6 += num5;
                }
                num += 1;
            }while (num <= 2);
            Point3d p       = default(Point3d);
            Point3d point3d = default(Point3d);
            float   num9    = 0f;
            float   num10   = Conversions.ToSingle(Operators.MultiplyObject(14, obj));
            float   num11   = Conversions.ToSingle(Operators.DivideObject(obj, 60));
            float   limit2  = num10;
            float   num12   = num9;

            while (ObjectFlowControl.ForLoopControl.ForNextCheckR4(num12, limit2, num11))
            {
                float num13 = Conversions.ToSingle(Operators.AddObject(obj2, 144.0 * (1.0 + 0.2 * Math.Sin(9.06 * (double)num12)) * Math.Cos((double)num12)));
                float num14 = Conversions.ToSingle(Operators.AddObject(obj3, 144.0 * (1.0 + 0.2 * Math.Sin(9.06 * (double)num12)) * Math.Sin((double)num12)));
                if (num12 == 0f)
                {
                    p..ctor((double)num13, (double)num14, 0.0);
                    Point3d p2;
                    p2..ctor((double)num13, (double)num14, 0.0);
                    CAD.AddPoint(p2);
                }
                else
                {
                    point3d..ctor((double)num13, (double)num14, 0.0);
                    CAD.AddLine(p, point3d, "0");
                    p..ctor((double)num13, (double)num14, 0.0);
                    p = point3d;
                }
                num12 += num11;
            }
        }
Exemple #5
0
        public void 等距布块()
        {
            int    num;
            int    num31;
            object obj;

            try
            {
IL_01:
                ProjectData.ClearProjectError();
                num = -2;
IL_09:
                int num2 = 2;
                Document mdiActiveDocument = Application.DocumentManager.MdiActiveDocument;
IL_16:
                num2 = 3;
                Database database = mdiActiveDocument.Database;
IL_1F:
                num2 = 4;
                Editor editor = Application.DocumentManager.MdiActiveDocument.Editor;
IL_32:
                num2 = 5;
                PromptEntityOptions promptEntityOptions = new PromptEntityOptions("选择一个对象:");
IL_40:
                num2 = 6;
                PromptEntityResult entity = editor.GetEntity(promptEntityOptions);
IL_4D:
                num2 = 7;
                using (Transaction transaction = database.TransactionManager.StartTransaction())
                {
                    object @object  = transaction.GetObject(entity.ObjectId, 1);
                    string fullName = @object.GetType().FullName;
                    string left     = fullName.Substring(Strings.InStrRev(fullName, ".", -1, CompareMethod.Binary));
                    double num3     = Class36.smethod_30("指定长度(4000):", 4000.0);
                    string text     = Conversions.ToString(Application.GetSystemVariable("USERS1"));
                    if (Operators.CompareString(text, "", false) != 0)
                    {
                        if (Operators.CompareString(left, "Line", false) == 0)
                        {
                            Line   line = (Line)transaction.GetObject(entity.ObjectId, 1);
                            double a    = line.StartPoint.DistanceTo(line.EndPoint);
                            short  num6;
                            short  num7;
                            checked
                            {
                                short num4 = (short)((long)Math.Round(a) / (long)Math.Round(num3));
                                short num5 = 0;
                                num6 = num4 - 1;
                                num7 = num5;
                            }
                            for (;;)
                            {
                                short num8 = num7;
                                short num9 = num6;
                                if (num8 > num9)
                                {
                                    break;
                                }
                                Point3d pointAtDist = line.GetPointAtDist(num3 * (double)(checked (num7 + 1)));
                                CAD.AddPoint(pointAtDist);
                                Class36.smethod_75(pointAtDist, text);
                                num7 += 1;
                            }
                        }
                        else if (Operators.CompareString(left, "Polyline", false) == 0)
                        {
                            Polyline polyline            = (Polyline)transaction.GetObject(entity.ObjectId, 1);
                            double   distanceAtParameter = polyline.GetDistanceAtParameter(polyline.EndParam);
                            short    num12;
                            short    num13;
                            checked
                            {
                                short num10 = (short)((long)Math.Round(distanceAtParameter) / (long)Math.Round(num3));
                                short num11 = 0;
                                num12 = num10 - 1;
                                num13 = num11;
                            }
                            for (;;)
                            {
                                short num14 = num13;
                                short num9  = num12;
                                if (num14 > num9)
                                {
                                    break;
                                }
                                Point3d pointAtDist2 = polyline.GetPointAtDist(num3 * (double)(checked (num13 + 1)));
                                CAD.AddPoint(pointAtDist2);
                                Class36.smethod_75(pointAtDist2, text);
                                num13 += 1;
                            }
                        }
                        else if (Operators.CompareString(left, "Arc", false) == 0)
                        {
                            Arc    arc = (Arc)transaction.GetObject(entity.ObjectId, 1);
                            double distanceAtParameter2 = arc.GetDistanceAtParameter(arc.EndParam);
                            short  num17;
                            short  num18;
                            checked
                            {
                                short num15 = (short)((long)Math.Round(distanceAtParameter2) / (long)Math.Round(num3));
                                short num16 = 0;
                                num17 = num15 - 1;
                                num18 = num16;
                            }
                            for (;;)
                            {
                                short num19 = num18;
                                short num9  = num17;
                                if (num19 > num9)
                                {
                                    break;
                                }
                                Point3d pointAtDist3 = arc.GetPointAtDist(num3 * (double)(checked (num18 + 1)));
                                CAD.AddPoint(pointAtDist3);
                                Class36.smethod_75(pointAtDist3, text);
                                num18 += 1;
                            }
                        }
                        else if (Operators.CompareString(left, "Circle", false) == 0)
                        {
                            Circle circle = (Circle)transaction.GetObject(entity.ObjectId, 1);
                            double distanceAtParameter3 = circle.GetDistanceAtParameter(circle.EndParam);
                            short  num22;
                            short  num23;
                            checked
                            {
                                short num20 = (short)((long)Math.Round(distanceAtParameter3) / (long)Math.Round(num3));
                                short num21 = 0;
                                num22 = num20 - 1;
                                num23 = num21;
                            }
                            for (;;)
                            {
                                short num24 = num23;
                                short num9  = num22;
                                if (num24 > num9)
                                {
                                    break;
                                }
                                Point3d pointAtDist4 = circle.GetPointAtDist(num3 * (double)(checked (num23 + 1)));
                                CAD.AddPoint(pointAtDist4);
                                Class36.smethod_75(pointAtDist4, text);
                                num23 += 1;
                            }
                        }
                        else if (Operators.CompareString(left, "Spline", false) == 0)
                        {
                            Spline spline = (Spline)transaction.GetObject(entity.ObjectId, 1);
                            double distanceAtParameter4 = spline.GetDistanceAtParameter(spline.EndParam);
                            short  num27;
                            short  num28;
                            checked
                            {
                                short num25 = (short)((long)Math.Round(distanceAtParameter4) / (long)Math.Round(num3));
                                short num26 = 0;
                                num27 = num25 - 1;
                                num28 = num26;
                            }
                            for (;;)
                            {
                                short num29 = num28;
                                short num9  = num27;
                                if (num29 > num9)
                                {
                                    break;
                                }
                                Point3d pointAtDist5 = spline.GetPointAtDist(num3 * (double)(checked (num28 + 1)));
                                CAD.AddPoint(pointAtDist5);
                                Class36.smethod_75(pointAtDist5, text);
                                num28 += 1;
                            }
                        }
                    }
                    transaction.Commit();
                }
IL_3C7:
                num2 = 9;
                if (Information.Err().Number == 0)
                {
                    goto IL_3F1;
                }
IL_3DC:
                num2 = 10;
                Interaction.MsgBox(Information.Err().Description, MsgBoxStyle.OkOnly, null);
IL_3F1:
                goto IL_478;
IL_3F6:
                int num30 = num31 + 1;
                num31     = 0;
                @switch(ICSharpCode.Decompiler.ILAst.ILLabel[], num30);
IL_432:
                goto IL_46D;
IL_434:
                num31 = num2;
                if (num <= -2)
                {
                    goto IL_3F6;
                }
                @switch(ICSharpCode.Decompiler.ILAst.ILLabel[], num);
                IL_44A :;
            }
            catch when(endfilter(obj is Exception & num != 0 & num31 == 0))
            {
                Exception ex = (Exception)obj2;

                goto IL_434;
            }
IL_46D:
            throw ProjectData.CreateProjectError(-2146828237);
IL_478:
            if (num31 != 0)
            {
                ProjectData.ClearProjectError();
            }
        }