Example #1
0
        public void MyCommand()
        {
            if (!this.ShowDialog())
            {
                return;
            }
            double            num1              = 1.0;
            double            num2              = 0.25;
            double            num3              = this.m * (double)this.z;
            double            da                = (2.0 * num1 + (double)this.z) * this.m;
            double            df                = ((double)this.z - 2.0 * num1 - 2.0 * num2) * this.m;
            double            db                = num3 * Math.Cos(this.a * Math.PI / 180.0);
            Point3d           point             = this.GetPoint();
            DateTime          now1              = DateTime.Now;
            Circle            circle1           = new Circle(point, Vector3d.get_ZAxis(), db / 2.0);
            Circle            cir1              = new Circle(point, Vector3d.get_ZAxis(), da / 2.0);
            Circle            circle2           = new Circle(point, Vector3d.get_ZAxis(), df / 2.0);
            Circle            pitchCircle       = new Circle(point, Vector3d.get_ZAxis(), num3 / 2.0);
            Point3dCollection point3dCollection = new Point3dCollection();
            Polyline3d        evolent1          = this.CreatEvolent(point, da, db, cir1);
            Polyline3d        evolent2          = this.MirrorEvolent(evolent1, pitchCircle, point);
            Arc  arc   = this.CreatArc(point, evolent1, evolent2);
            Line line1 = new Line(point, ((Curve)evolent1).get_StartPoint());
            Line line2 = new Line(point, ((Curve)evolent2).get_StartPoint());
            DBObjectCollection objectCollection1 = new DBObjectCollection();

            objectCollection1.Add((DBObject)evolent1);
            objectCollection1.Add((DBObject)evolent2);
            objectCollection1.Add((DBObject)line2);
            objectCollection1.Add((DBObject)line1);
            objectCollection1.Add((DBObject)arc);
            DBObjectCollection objectCollection2 = new DBObjectCollection();

            Entity[] entityArray = this.ArrayPolar((Entity)(Region.CreateFromCurves(objectCollection1).get_Item(0) as Region), point, this.z, 2.0 * Math.PI);
            objectCollection1.Clear();
            objectCollection1.Add((DBObject)circle2);
            Region region1 = Region.CreateFromCurves(objectCollection1).get_Item(0) as Region;

            foreach (Entity entity in entityArray)
            {
                Region region2 = entity as Region;
                if (DisposableWrapper.op_Inequality((DisposableWrapper)region2, (DisposableWrapper)null))
                {
                    region1.BooleanOperation((BooleanOperationType)0, region2);
                }
            }
            objectCollection1.Clear();
            Circle circle3 = new Circle(point, Vector3d.get_ZAxis(), 0.15 * (df - 10.0));

            objectCollection1.Add((DBObject)circle3);
            DBObjectCollection fromCurves = Region.CreateFromCurves(objectCollection1);

            region1.BooleanOperation((BooleanOperationType)2, fromCurves.get_Item(0) as Region);
            Solid3d solid3d = new Solid3d();

            solid3d.Extrude(region1, this.h, 0.0);
            solid3d.BooleanOperation((BooleanOperationType)2, this.NewBox(point, this.h, df));
            if (this.doDemo == "Y")
            {
                this.AddEntityToModelSpace((Entity)evolent1);
                this.AddEntityToModelSpace((Entity)evolent2);
                this.AddEntityToModelSpace((Entity)arc);
                this.AddEntityToModelSpace((Entity)line1);
                this.AddEntityToModelSpace((Entity)line2);
                this.AddEntityToModelSpace((Entity)(((RXObject)region1).Clone() as Region));
                Thread.Sleep(this.delay * 5);
            }
            this.ZoomToEntity((Entity)solid3d);
            this.AddEntityToModelSpace((Entity)solid3d);
            DateTime now2 = DateTime.Now;

            this.ed.WriteMessage("\n耗时{0}。", new object[1]
            {
                (object)this.Elapsed(now1, now2)
            });
        }