예제 #1
0
        void write_text()
        {
            Eldtype  eld  = new Eldtype();
            TEXTtype text = new TEXTtype();

            text.text   = textstring;
            text.Length = (short)textstring.Length;
            text.scatt  = 1;
            text.Layer  = "$$$$_15";
            text.laatt  = 1;
            text.x1     = xta;
            text.y1     = yta;
            text.Size   = textsize;
            text.rotn   = textrotn;
            text.Color  = 15;
            text.style  = 1;
            text.Label  = modstr + ":" + stgstr;

            eld.Code = 9;

            fp2.Write(eld.Code);
            text.ToStream(fp2);
        }
예제 #2
0
        void write_text()
        {
            Eldtype  eld  = new Eldtype();
            TEXTtype text = new TEXTtype();

            text.text   = textstring;
            text.Length = (short)textstring.Length;
            text.scatt  = 1;
            text.Layer  = "$$$$_14";
            text.laatt  = 1;
            text.x1     = x2;
            text.y1     = y2;
            text.Size   = textsize;
            text.rotn   = textrotn;
            text.Color  = 14;
            text.style  = 1;
            text.Label  = modnam + ":" + stglbl;

            eld.Code = 9;

            fp1.Write(eld.Code);
            text.ToStream(fp1);
        }
예제 #3
0
        public static void ExportToDRG(IHeadsApplication app, string strPath)
        {
            CCfgtype cfg = app.ActiveDocument.ConfigParam;

            CBox box = app.ActiveDocument.BoundingBox;

            double[] Arr = new double[] { box.BottomRight.X, box.BottomRight.Y, box.TopLeft.X, box.TopLeft.Y };

            cfg.XLate_X = Arr[0];
            cfg.XLate_Y = Arr[1];
            cfg.hs      = (297 / (Arr[2] - cfg.XLate_X));

            BinaryWriter bw  = new BinaryWriter(new FileStream(strPath, FileMode.Create), Encoding.Default);
            Eldtype      eld = new Eldtype();

            eld.Code = 99;
            bw.Write(eld.Code);
            cfg.ToStream(bw);
            IHdEntity[] allEntities = app.ActiveDocument.Entities;
            foreach (IHdEntity entity in allEntities)
            {
                if (entity.EntityName == "LINE")
                {
                    IHdLine hdline = (IHdLine)entity;
                    eld.Code = (short)((Constants.BuildType == eHEADS_RELEASE_TYPE.DEMO) ? 91 : 1);
                    bw.Write(eld.Code);

                    Linetype line = new Linetype();

                    line.elatt = 0;
                    line.scatt = 1;
                    line.layer = hdline.Layer;
                    line.laatt = 1;

                    line.x1 = hdline.StartPoint.X;
                    line.y1 = hdline.StartPoint.Y;
                    line.z1 = hdline.StartPoint.Z;

                    line.x1 = line.x1 / cfg.XMetric;
                    line.y1 = line.y1 / cfg.YMetric;

                    line.x2 = hdline.EndPoint.X;
                    line.y2 = hdline.EndPoint.Y;
                    line.z2 = hdline.EndPoint.Z;

                    line.x2 = line.x2 / cfg.XMetric;
                    line.y2 = line.y2 / cfg.YMetric;

                    line.color = entity.ColorIndex;

                    if (hdline.Label == "")
                    {
                        line.label = "$$$$$$$$:****";
                    }
                    else
                    {
                        line.label = hdline.Label;
                    }

                    line.ToStream(bw);
                }
                else if (entity.EntityName == "ELLIPSE")
                {
                    IHdEllipse hdEllipse = (IHdEllipse)entity;
                    eld.Code = (short)((Constants.BuildType == eHEADS_RELEASE_TYPE.DEMO) ? 93 : 3);
                    bw.Write(eld.Code);

                    Circletype circle1 = new Circletype();

                    circle1.elatt = 0;
                    circle1.scatt = 1;
                    circle1.Layer = hdEllipse.Layer;
                    circle1.laatt = 1;

                    circle1.xc = hdEllipse.CenterPoint.X;
                    circle1.yc = hdEllipse.CenterPoint.Y;

                    circle1.xc     = circle1.xc / cfg.XMetric;
                    circle1.yc     = circle1.yc / cfg.YMetric;
                    circle1.Radius = hdEllipse.Radius;

                    circle1.color = entity.ColorIndex;

                    if (hdEllipse.Label == "")
                    {
                        circle1.Label = "$$$$$$$$:****";
                    }
                    else
                    {
                        circle1.Label = hdEllipse.Label;
                    }

                    circle1.ToStream(bw);
                }
                else if (entity.EntityName == "ARC")
                {
                    IHdArc hdArc = (IHdArc)entity;
                    eld.Code = (short)((Constants.BuildType == eHEADS_RELEASE_TYPE.DEMO) ? 94 : 4);
                    bw.Write(eld.Code);

                    Arctype arc = new Arctype();

                    arc.elatt = 0;
                    arc.scatt = 1;
                    arc.Layer = hdArc.Layer;
                    arc.laatt = 1;

                    arc.xc = hdArc.CenterPoint.X;
                    arc.yc = hdArc.CenterPoint.Y;
                    arc.xc = arc.xc / cfg.XMetric;
                    arc.yc = arc.yc / cfg.YMetric;

                    arc.xs     = (arc.xc + hdArc.Radius * Math.Cos(hdArc.StartAngle)) / cfg.XMetric;
                    arc.ys     = (arc.yc + hdArc.Radius * Math.Sin(hdArc.StartAngle)) / cfg.YMetric;
                    arc.xe     = (arc.xc + hdArc.Radius * Math.Cos(hdArc.EndAngle)) / cfg.XMetric;
                    arc.ye     = (arc.yc + hdArc.Radius * Math.Sin(hdArc.EndAngle)) / cfg.YMetric;
                    arc.Radius = hdArc.Radius;

                    arc.Color = entity.ColorIndex;
                    if (hdArc.Label == "")
                    {
                        arc.Label = "$$$$$$$$:****";
                    }
                    else
                    {
                        arc.Label = hdArc.Label;
                    }
                    arc.ToStream(bw);
                }
                else if (entity.EntityName == "POLYLINE3D")
                {
                    IHdPolyline3D hdPline      = (IHdPolyline3D)entity;
                    CPoint3D[]    Coord        = hdPline.Coordinates;
                    int           NumVerticies = Coord.Length - 2;
                    for (int j = 0; j <= NumVerticies; j++)
                    {
                        eld.Code = (short)((Constants.BuildType == eHEADS_RELEASE_TYPE.DEMO) ? 91 : 1);
                        bw.Write(eld.Code);

                        Linetype line = new Linetype();

                        if (j == 0)
                        {
                            line.elatt = 0;
                        }
                        else
                        {
                            line.elatt = 1;
                        }

                        //line.elatt = X;
                        line.scatt = 1;
                        line.layer = hdPline.Layer;
                        line.laatt = 1;

                        line.x1 = Coord[j].X;
                        line.y1 = Coord[j].Y;
                        line.z1 = Coord[j].Z;

                        line.x1 = line.x1 / cfg.XMetric;
                        line.y1 = line.y1 / cfg.YMetric;

                        line.x2 = Coord[j + 1].X;
                        line.y2 = Coord[j + 1].Y;
                        line.z2 = Coord[j + 1].Z;

                        line.x2    = line.x2 / cfg.XMetric;
                        line.y2    = line.y2 / cfg.YMetric;
                        line.color = entity.ColorIndex;

                        if (hdPline.Label == "")
                        {
                            line.label = "$$$$$$$$:****";
                        }
                        else
                        {
                            line.label = hdPline.Label;
                        }

                        line.ToStream(bw);
                    }
                }
                else if (entity.EntityName == "TEXT")
                {
                    IHdText hdTxt = (IHdText)entity;
                    eld.Code = (short)((Constants.BuildType == eHEADS_RELEASE_TYPE.DEMO) ? 90 : 9);
                    bw.Write(eld.Code);

                    TEXTtype text = new TEXTtype();

                    text.Length = 1;
                    text.scatt  = 1;
                    text.Layer  = hdTxt.Layer;
                    text.laatt  = 1;

                    text.x1 = hdTxt.InsertionPoint.X;
                    text.y1 = hdTxt.InsertionPoint.Y;

                    text.x1    = text.x1 / cfg.XMetric;
                    text.y1    = text.y1 / cfg.YMetric;
                    text.Size  = hdTxt.Height;
                    text.rotn  = hdTxt.Rotation * 180 / Math.PI;
                    text.text  = hdTxt.Text;
                    text.Color = entity.ColorIndex;
                    if (hdTxt.Label == "")
                    {
                        text.Label = "$$$$$$$$:****";
                    }
                    else
                    {
                        text.Label = hdTxt.Label;
                    }
                    text.ToStream(bw);
                }
            }

            bw.Close();
        }