示例#1
0
文件: Arc.cs 项目: catashd/NetVecCad
 public Arc(netDxf.Entities.Arc dxfArc)
     : this((Point) dxfArc.Center
  , dxfArc.StartAngle
  , dxfArc.EndAngle
  , dxfArc.Radius)
 {
 }
示例#2
0
 public LineSegment(netDxf.Entities.Line dxfLine)
 {
     this.Origin = (Point) dxfLine.StartPoint;
      this.EndPt = (Point)dxfLine.EndPoint;
      this.BoundingBox = new BoundingBox(this.Origin);
      this.BoundingBox.expandByPoint(this.EndPt);
 }
示例#3
0
文件: Text.cs 项目: catashd/NetVecCad
 public Text(netDxf.Entities.MText dxfMTxt)
     : this(dxfMTxt.Value
  , (Point) dxfMTxt.Position
  , dxfMTxt.Height)
 {
     this.Rotation = dxfMTxt.Rotation;
 }
示例#4
0
        void ReadArc(netDxf.Entities.Arc arc, double x, double y)
        {
            // TODO :
            var point0 = CreateHiddenPoint(arc.Center.X + x, arc.Center.Y + y);

            var aPoint1 = CreateHiddenPoint(point0.X + arc.Radius * System.Math.Cos(System.Math.PI / 180 * arc.StartAngle), point0.Y + arc.Radius * System.Math.Sin(System.Math.PI / 180 * arc.StartAngle));
            var point1 = compareFreePoints(this.drawing.Figures, aPoint1);
            if (point1 == null)
            {
                point1 = aPoint1;
                this.drawing.Figures.Add(point1);
            }
            var aPoint2 = CreateHiddenPoint(point0.X + arc.Radius * System.Math.Cos(System.Math.PI / 180 * arc.EndAngle), point0.Y + arc.Radius * System.Math.Sin(System.Math.PI / 180 * arc.EndAngle));
            var point2 = compareFreePoints(this.drawing.Figures, aPoint2);
            if (point2 == null)
            {
                point2 = aPoint2;
                this.drawing.Figures.Add(point2);
            }
            var figure = Factory.CreateArc(drawing, new[] { point0, point1, point2 });

            Actions.Add(drawing, figure);
        }
示例#5
0
        void ReadInsert(netDxf.Entities.Insert insert)
        {
            List<netDxf.Entities.IEntityObject> entities = insert.Block.Entities;
            //netDxf.Collections.EntityCollection entities = insert.Block.Entities;
            netDxf.Entities.IEntityObject entity = null;
            //netDxf.Entities.EntityObject entity = null;

            for (int index = 1; index < entities.Count; index++)
            {
                entity = entities[index];

                if (entity is Line)
                    ReadLine((Line)entity, insert.InsertionPoint.X, insert.InsertionPoint.Y);
                    //ReadLine((Line)entity, insert.Position.X, insert.Position.Y);
                else if (entity is netDxf.Entities.Arc)
                    ReadArc((netDxf.Entities.Arc)entity, insert.InsertionPoint.X, insert.InsertionPoint.Y);
                    //ReadArc((netDxf.Entities.Arc)entity, insert.Position.X, insert.Position.Y);
                else if (entity is netDxf.Entities.Circle)
                    ReadCircle((netDxf.Entities.Circle)entity, insert.InsertionPoint.X, insert.InsertionPoint.Y);
                    //ReadCircle((netDxf.Entities.Circle)entity, insert.Position.X, insert.Position.Y);
                else if (entity is netDxf.Entities.Polyline) //IPolyline)
                {
                    netDxf.Entities.Polyline polyline = CastPolyline((netDxf.Entities.Polyline)entity); //IPolyline)entity);
                    if (polyline != null)
                    {
                        ReadPolyline(polyline.Vertexes, polyline.IsClosed, 0, 0);
                    }
                }

            }
        }
示例#6
0
        void ReadCircle(netDxf.Entities.Circle circle, double x, double y)
        {
            var figures = new List<IFigure>();

            figures.Add(CreateHiddenPoint(circle.Center.X + x, circle.Center.Y + y));
            figures.Add(CreateHiddenPoint(circle.Center.X + x + circle.Radius, circle.Center.Y + y));

            this.drawing.Add(figures);

            var figure = Factory.CreateCircleByRadius(drawing, figures);

            Actions.Add(drawing, figure);
        }
示例#7
0
 short DxfLineType2PicGrp(netDxf.Tables.LineType lineType)
 {
     if (_lineType2GrpDictionary.ContainsKey(lineType))
         return _lineType2GrpDictionary[lineType];
     else
         return 0;
 }
示例#8
0
 public PicGraphics.LT DxfLineType2PicLT(netDxf.Tables.LineType lineType)
 {
     if (_lineTypeDictionary.ContainsKey(lineType))
         return _lineTypeDictionary[lineType];
     else
         return PicGraphics.LT.LT_CUT;
 }
 void ReadArc(netDxf.Entities.Arc arc, double x, double y)
 {
     // TODO :
 }