예제 #1
0
        public void CreateHatch1()
        {
            // 创建填充边界.
            ObjectId loopId1 = ModelSpace.AddLine(new Point3d(100, 0, 0), new Point3d(0, 0, 0));
            ObjectId loopId2 = ModelSpace.AddLine(new Point3d(100, 0, 0), new Point3d(80, 60, 0));
            ObjectId loopId3 = ModelSpace.AddLine(new Point3d(80, 60, 0), new Point3d(0, 0, 0));
            ObjectId loopId4 = ModelSpace.AddCircle(new Point3d(150, 50, 0), 40);

            // 定义两个ObjectId集合.
            ObjectIdCollection loops1 = new ObjectIdCollection();

            loops1.Add(loopId1);
            loops1.Add(loopId2);
            loops1.Add(loopId3);
            ObjectIdCollection loops2 = new ObjectIdCollection();

            loops2.Add(loopId4);

            // 定义一个ObjectId集合数组.
            ObjectIdCollection[] loops = new ObjectIdCollection[2];
            loops.SetValue(loops1, 0);
            loops.SetValue(loops2, 1);

            // 实施填充.
            ObjectId hatchId = ModelSpace.AddHatch(loops, 0, "ANGLE", ModelSpace.Rad2Ang(30), 2);
        }
예제 #2
0
 public void CreateArc()
 {
     ObjectId arcId = ModelSpace.AddArc(new Point3d(20, 10, 0), 20, ModelSpace.Rad2Ang(60), ModelSpace.Rad2Ang(180));
 }
예제 #3
0
        public void CreateDimension()
        {
            // 创建要标注的图形---------------------------------------------
            ModelSpace.AddLine(new Point3d(30, 20, 0), new Point3d(120, 20, 0));
            ModelSpace.AddLine(new Point3d(120, 20, 0), new Point3d(120, 40, 0));
            ModelSpace.AddLine(new Point3d(120, 40, 0), new Point3d(90, 80, 0));
            ModelSpace.AddLine(new Point3d(90, 80, 0), new Point3d(30, 80, 0));
            ModelSpace.AddArc(new Point3d(30, 50, 0), 30, ModelSpace.Rad2Ang(90), ModelSpace.Rad2Ang(270));
            ModelSpace.AddCircle(new Point3d(30, 50, 0), 15);
            ModelSpace.AddCircle(new Point3d(70, 50, 0), 10);

            // 得到当前标注样式---------------------------------------------
            Database db          = HostApplicationServices.WorkingDatabase;
            ObjectId curDimstyle = db.Dimstyle;

            // (水平)转角标注-----------------------------------------------
            ModelSpace.AddDimRotated(0, new Point3d(30, 20, 0), new Point3d(120, 20, 0), new Point3d(75, 10, 0));
            // (垂直)转角标注-----------------------------------------------
            ModelSpace.AddDimRotated(ModelSpace.Rad2Ang(90), new Point3d(120, 20, 0), new Point3d(120, 40, 0), new Point3d(130, 30, 0));

            // 对齐标注、尺寸替代-------------------------------------------
            ModelSpace.AddDimAligned(new Point3d(120, 40, 0), new Point3d(90, 80, 0), new Point3d(113, 66, 0), "50%%p0.2", curDimstyle);

            // 半径标注-----------------------------------------------------
            Point3d ptCen = new Point3d(30, 50, 0);
            Point3d p2    = ModelSpace.PolarPoint(ptCen, ModelSpace.Rad2Ang(30), 15);

            ModelSpace.AddDimRadial(ptCen, p2, 10);

            // 直径标注-----------------------------------------------------
            Point3d dcen     = new Point3d(70, 50, 0);
            Point3d ptChord1 = ModelSpace.PolarPoint(dcen, ModelSpace.Rad2Ang(45), 10);
            Point3d ptChord2 = ModelSpace.PolarPoint(dcen, ModelSpace.Rad2Ang(-135), 10);

            ModelSpace.AddDimDiametric(ptChord1, ptChord2, 0);

            // 角度标注-----------------------------------------------------
            Point3d angPtCen = new Point3d(120, 20, 0);
            Point3d p5       = ModelSpace.PolarPoint(angPtCen, ModelSpace.Rad2Ang(135), 10);

            ModelSpace.AddDimLineAngular(angPtCen, new Point3d(30, 20, 0), new Point3d(120, 40, 0), p5);

            // 弧长标注-----------------------------------------------------
            ModelSpace.AddDimArc(new Point3d(30, 50, 0), new Point3d(30, 20, 0), new Point3d(30, 80, 0), new Point3d(-10, 50, 0));

            // 坐标标注-----------------------------------------------------
            ModelSpace.AddDimOrdinate(new Point3d(70, 50, 0), new Point3d(70, 30, 0), new Point3d(90, 50, 0));

            // 引线标注-----------------------------------------------------
            Point3dCollection pts = new Point3dCollection();

            pts.Add(new Point3d(90, 70, 0));
            pts.Add(new Point3d(110, 80, 0));
            pts.Add(new Point3d(120, 80, 0));
            ModelSpace.AddLeader(pts, false);
            // 添加引线标注的文字.
            ModelSpace.AddMtext(new Point3d(120, 80, 0), "{\\L引线标注示例\\l}", curDimstyle, AttachmentPoint.BottomLeft, 2.5, 0);

            // 尺寸公差标注--------------------------------------------------
            ModelSpace.AddDimRotated(0, new Point3d(30, 80, 0), new Point3d(90, 80, 0), new Point3d(30, 90, 0), "60{\\H0.7x;\\S+0.026^-0.025;}", curDimstyle);

            // 形位公差标注--------------------------------------------------
            string dimText = "{\\fgdt;r}" + "%%v" + "{\\fgdt;n0.03}" + "%%v" + "B";

            ModelSpace.AddTolerance(dimText, new Point3d(80, 100, 0), new Vector3d(0, 0, 1), new Vector3d(1, 0, 0));
            // 为形位公差标注添加引线.
            Point3dCollection ptss = new Point3dCollection();

            ptss.Add(new Point3d(70, 80, 0));
            ptss.Add(new Point3d(70, 100, 0));
            ptss.Add(new Point3d(80, 100, 0));
            ModelSpace.AddLeader(ptss, false);
        }
예제 #4
0
        public void CreateHatch2()
        {
            // 创建填充边界.
            ObjectId loopId1 = ModelSpace.AddLine(new Point3d(100, 0, 0), new Point3d(0, 0, 0));
            ObjectId loopId2 = ModelSpace.AddLine(new Point3d(100, 0, 0), new Point3d(80, 60, 0));
            ObjectId loopId3 = ModelSpace.AddLine(new Point3d(80, 60, 0), new Point3d(0, 0, 0));
            ObjectId loopId4 = ModelSpace.AddCircle(new Point3d(150, 50, 0), 40);

            // 定义两个ObjectId集合.
            ObjectIdCollection loops1 = new ObjectIdCollection();

            loops1.Add(loopId1);
            loops1.Add(loopId2);
            loops1.Add(loopId3);
            ObjectIdCollection loops2 = new ObjectIdCollection();

            loops2.Add(loopId4);

            // 定义一个ObjectId集合数组.
            ObjectIdCollection[] loops = new ObjectIdCollection[2];
            loops.SetValue(loops1, 0);
            loops.SetValue(loops2, 1);

            // 实施填充.
            Color    c1      = Color.FromRgb(200, 200, 100);
            Color    c2      = Color.FromRgb(250, 20, 10);
            ObjectId hatchId = ModelSpace.AddHatch(loops, GradientPatternType.PreDefinedGradient, c1, c2, "LINEAR", ModelSpace.Rad2Ang(30));
        }