乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 116|回复: 9

在窗体上显示实体(BlockPreviewManager)

[复制链接]

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-1-18 12:07:00 | 显示全部楼层 |阅读模式
改写自Kean的BlockView.Net
加入显示实体的功能
并集成输出图像文件的功能
BlockPreviewManager.cs
  1. using System;
  2. using System.IO;
  3. using System.Drawing;
  4. using System.Windows.Forms;
  5. using System.Collections;
  6. using System.Collections.Generic;
  7. using Autodesk..GraphicsSystem;
  8. using Autodesk.AutoCAD.DatabaseServices;
  9. using Autodesk.AutoCAD.GraphicsInterface;
  10. using Autodesk.AutoCAD.ApplicationServices;
  11. using TlsCad.Utils;
  12. using TlsCad.ExtendMethods;
  13. namespace TlsCad.Trans
  14. {
  15.     public class BlockPreviewManager : IEnumerable,IDisposable
  16.     {
  17.         List[B] m_Previews = new List[B]();
  18.         Color m_BackColor = Color.Empty;
  19.         Database m_Database = null;
  20.         private Autodesk.AutoCAD.GraphicsSystem.RenderMode m_RenderMode = Autodesk.AutoCAD.GraphicsSystem.RenderMode.Wireframe;
  21.         private VisualStyleType m_VisualStyleType = VisualStyleType.Basic;
  22.         bool m_AllowMouseEvents = false;
  23.         bool m_DisplayByBlock = true;
  24.         #region Properties
  25.         public Autodesk.AutoCAD.GraphicsSystem.RenderMode RenderMode
  26.         {
  27.             set { m_RenderMode = value; }
  28.             get { return m_RenderMode; }
  29.         }
  30.         public VisualStyleType ViewStyle
  31.         {
  32.             set { m_VisualStyleType = value; }
  33.             get { return m_VisualStyleType; }
  34.         }
  35.         public Database Database
  36.         {
  37.             get { return m_Database; }
  38.         }
  39.         public Color BackColor
  40.         {
  41.             set { m_BackColor = value; }
  42.             get { return m_BackColor; }
  43.         }
  44.         public bool AllowMouseEvents
  45.         {
  46.             set { m_AllowMouseEvents = true; }
  47.             get { return m_AllowMouseEvents; }
  48.         }
  49.         public bool DisplayByBlock
  50.         {
  51.             get { return m_DisplayByBlock; }
  52.             set { m_DisplayByBlock = value; }
  53.         }
  54.         public BlockPreview this[int index]
  55.         {
  56.             get
  57.             {
  58.                 if (index >= 0 && index  ents = new List();
  59.                         foreach (ObjectId id in btr)
  60.                         {
  61.                             ents.Add((Entity)tr.GetObject(id, OpenMode.ForRead).Clone());
  62.                         }
  63.                         return Add(panel, ents, ext3d);
  64.                     }
  65.                 }
  66.             }
  67.             return null;
  68.         }
  69.         public BlockPreview Add(Panel panel, BlockTableRecord btr, Extents3d ext3d)
  70.         {
  71.             BlockPreview bp =
  72.                 new BlockPreview(
  73.                    this,
  74.                    panel,
  75.                    btr,
  76.                    ext3d);
  77.             m_Previews.Add(bp);
  78.             return bp;
  79.         }
  80.         public BlockPreview Add(Panel panel, List ents, Extents3d ext3d)
  81.         {
  82.             BlockPreview bp =
  83.                new BlockPreview(
  84.                    this,
  85.                    panel,
  86.                    ents,
  87.                    ext3d);
  88.             m_Previews.Add(bp);
  89.             return bp;
  90.         }
  91.         public BlockPreview Add(IEnumerable ents, Extents3d ext3d)
  92.         {
  93.             BlockPreview bp =
  94.                new BlockPreview(
  95.                    this,
  96.                    ents,
  97.                    ext3d);
  98.             m_Previews.Add(bp);
  99.             return bp;
  100.         }
  101.         public BlockPreview Add(IEnumerable ents)
  102.         {
  103.             BlockPreview bp =
  104.                new BlockPreview(
  105.                    this,
  106.                    ents,
  107.                    DbUtility.GetExtents(ents));
  108.             m_Previews.Add(bp);
  109.             return bp;
  110.         }
  111.         public void RemoveAt(int index)
  112.         {
  113.             if (index >= 0 && index = 0 && index  ents = new List();
  114.                            
  115.                             foreach (ObjectId id in btr)
  116.                             {
  117.                                 ents.Add((Entity)tr.GetObject(id, OpenMode.ForRead).Clone());
  118.                             }
  119.                             Display(index, ents, ext3d);
  120.                         }
  121.                         return true;
  122.                     }
  123.                 }
  124.             }
  125.             return false;
  126.         }
  127.         private void Display(int index, BlockTableRecord btr, Extents3d ext3d)
  128.         {
  129.             m_Previews[index].Display(btr, ext3d);
  130.         }
  131.         private void Display(int index, IEnumerable ents, Extents3d ext3d)
  132.         {
  133.             m_Previews[index].Display(ents, ext3d);
  134.         }
  135.         public void Refresh()
  136.         {
  137.             foreach (BlockPreview bp in m_Previews)
  138.             {
  139.                 bp.Refresh();
  140.             }
  141.         }
  142.         #endregion
  143.         #region IEnumerable 成员
  144.         IEnumerator IEnumerable.GetEnumerator()
  145.         {
  146.             return m_Previews.GetEnumerator();
  147.         }
  148.         #endregion
  149.         #region IDispose
  150.         public void Dispose()
  151.         {
  152.             foreach (BlockPreview bp in m_Previews)
  153.             {
  154.                 bp.Dispose();
  155.             }
  156.         }
  157.         #endregion
  158.     }
  159. }
回复

使用道具 举报

1

主题

8

帖子

2

银币

初来乍到

Rank: 1

铜币
12
发表于 2020-3-14 20:51:00 | 显示全部楼层

强!顶~!终于开源了嘿嘿!
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-1-18 12:34:00 | 显示全部楼层
BlockPreview.cs
  1. using System;
  2. using System.Drawing;
  3. using System.Windows.Forms;
  4. using System.Collections.Generic;
  5. using System.Drawing.Imaging;
  6. using GSView = Autodesk.AutoCAD.GraphicsSystem.View;
  7. using Autodesk.AutoCAD.Geometry;
  8. using Autodesk.AutoCAD.GraphicsSystem;
  9. using Autodesk.AutoCAD.DatabaseServices;
  10. using Autodesk.AutoCAD.GraphicsInterface;
  11. using Autodesk.AutoCAD.ApplicationServices;
  12. using TlsCad.Utils;
  13. namespace TlsCad.Trans
  14. {
  15.     public class BlockPreview : IDisposable
  16.     {
  17.         public enum PreviewStatus
  18.         {
  19.             Nothing = 0,
  20.             Orbiting = 1,
  21.             Panning = 2,
  22.         }
  23.         private Panel m_Panel = null;
  24.         // Gs specific
  25.         private static Manager m_Manager = null;
  26.         private Device m_Device = null;
  27.         private Model m_Model = null;
  28.         private GSView m_View = null;
  29.         // flags
  30.         private bool m_MouseDown = false;
  31.         private PreviewStatus m_PreviewStatus;
  32.         private System.Drawing.Point m_StartPoint;
  33.         private System.Drawing.Point m_EndPoint;
  34.         private BlockPreviewManager m_Owner;
  35.         private bool m_DisplayByBlock;
  36.         private BlockTableRecord m_BlockTableRecord;
  37.         private List m_Entitys;        #region Property
  38.         public Color BackColor
  39.         {
  40.             set
  41.             {
  42.                 //update it
  43.                 m_Device.BackgroundColor = value;
  44.                 // finally set the logical palette
  45.                 m_Device.SetLogicalPalette(GsUtility.MyAcadColorPs);
  46.                 // now update the gs view
  47.                 Refresh();
  48.             }
  49.         }
  50.         public static Manager Manager
  51.         {
  52.             get { return m_Manager; }
  53.             set { m_Manager = value; }
  54.         }
  55.         public Device Device
  56.         {
  57.             get { return m_Device; }
  58.             set { m_Device = value; }
  59.         }
  60.         public Model Model
  61.         {
  62.             get { return m_Model; }
  63.             set { m_Model = value; }
  64.         }
  65.         public GSView View
  66.         {
  67.             get { return m_View; }
  68.             set { m_View = value; }
  69.         }
  70.         public bool MouseDown
  71.         {
  72.             get { return m_MouseDown; }
  73.             set { m_MouseDown = value; }
  74.         }
  75.         public Point StartPoint
  76.         {
  77.             get { return m_StartPoint; }
  78.             set { m_StartPoint = value; }
  79.         }
  80.         public Point EndPoint
  81.         {
  82.             get { return m_EndPoint; }
  83.             set { m_EndPoint = value; }
  84.         }        public Entity this[int index]
  85.         {
  86.             get
  87.             {
  88.                 if (index >= 0 && index  entitys, Extents3d ext)
  89.         {
  90.             Initialize(owner, DbUtility.GetSize(ext));
  91.             Display(entitys, ext);
  92.         }
  93.         
  94.         internal BlockPreview(BlockPreviewManager owner, Panel panel, List entitys, Extents3d ext)
  95.         {
  96.             Initialize(owner, panel);
  97.             Display(entitys, ext);
  98.         }
  99.         internal void Display(IEnumerable entitys, Extents3d ext)
  100.         {
  101.             if (m_View != null)
  102.             {
  103.                 m_View.EraseAll();
  104.                 SetViewTo(ext);
  105.                 m_DisplayByBlock = false;
  106.                 m_Entitys = new List();
  107.                 AddEntity(entitys);
  108.                 Refresh();
  109.             }
  110.         }
  111.         public void AddEntity(params Entity[] entitys)
  112.         {
  113.             foreach (Entity ent in entitys)
  114.             {
  115.                 m_Entitys.Add(ent);
  116.                 m_View.Add(ent, m_Model);
  117.             }
  118.         }
  119.         public void AddEntity(IEnumerable entitys)
  120.         {
  121.             foreach (Entity ent in entitys)
  122.             {
  123.                 m_Entitys.Add(ent);
  124.                 m_View.Add(ent, m_Model);
  125.             }
  126.         }
  127.         public void RemoveEntity(params Entity[] entitys)
  128.         {
  129.             foreach (Entity ent in entitys)
  130.             {
  131.                 m_Entitys.Remove(ent);
  132.                 m_View.Erase(ent);
  133.             }
  134.         }
  135.         public void RemoveEntity(IEnumerable entitys)
  136.         {
  137.             foreach (Entity ent in entitys)
  138.             {
  139.                 m_Entitys.Remove(ent);
  140.                 m_View.Erase(ent);
  141.             }
  142.         }
  143.         public void Update(params int[] indexs)
  144.         {
  145.             if (m_View != null)
  146.             {
  147.                 if (!m_DisplayByBlock)
  148.                 {
  149.                     foreach (int index in indexs)
  150.                     {
  151.                         Entity ent = this[index];
  152.                         if (ent != null)
  153.                         {
  154.                             m_View.Erase(ent);
  155.                             m_View.Add(ent, m_Model);
  156.                         }
  157.                     }
  158.                 }
  159.             }
  160.         }
  161.         public void Update(IEnumerable[i] indexs)
  162.         {
  163.             if (m_View != null)
  164.             {
  165.                 if (!m_DisplayByBlock)
  166.                 {
  167.                     foreach (int index in indexs)
  168.                     {
  169.                         Entity ent = this[index];
  170.                         if (ent != null)
  171.                         {
  172.                             m_View.Erase(ent);
  173.                             m_View.Add(ent, m_Model);
  174.                         }
  175.                     }
  176.                 }
  177.             }
  178.         }
  179.         public void Update(params Entity[] entitys)
  180.         {
  181.             if (m_View != null)
  182.             {
  183.                 if (!m_DisplayByBlock)
  184.                 {
  185.                     foreach (Entity ent in entitys)
  186.                     {
  187.                         m_View.Erase(ent);
  188.                         m_View.Add(ent, m_Model);
  189.                     }
  190.                 }
  191.             }
  192.         }
  193.         public void Update(IEnumerable entitys)
  194.         {
  195.             if (m_View != null)
  196.             {
  197.                 if (!m_DisplayByBlock)
  198.                 {
  199.                     foreach (Entity ent in entitys)
  200.                     {
  201.                         m_View.Erase(ent);
  202.                         m_View.Add(ent, m_Model);
  203.                     }
  204.                 }
  205.             }
  206.         }
  207.         #endregion
  208.         #region Inage
  209.         public void Save(string filename, ImageFormat format)
  210.         {
  211.             using (Bitmap bitmap = GetImage())
  212.             {
  213.                 bitmap.Save(filename, format);
  214.             }
  215.         }
  216.         public Bitmap GetImage()
  217.         {
  218.             return m_Device.GetSnapshot(m_View.Viewport);
  219.         }
  220.         public void Refresh()
  221.         {
  222.             m_View.Invalidate();
  223.             m_View.Update();
  224.         }        // draws the zoom window rectangle
  225.         public void RubberRectangle(Point startPt, Point endPt)
  226.         {
  227.             // create a new instance of my GDI helper class, it seems too tricky to create simple XOR graphics
  228.             // in .NET so let's resort to direct calls instead
  229.             GsUtility.RubberbandRectangle rect = new GsUtility.RubberbandRectangle();
  230.             System.Drawing.Graphics graphics = m_Panel.CreateGraphics();
  231.             // draw the XOR rectangle
  232.             rect.DrawXORRectangle(graphics, startPt, endPt);
  233.         }
  234.         #endregion
  235.         #region Events
  236.         protected void OnPaint(object sender, PaintEventArgs e)
  237.         {
  238.             Refresh();
  239.         }
  240.         public void OnMouseWheel(object sender, MouseEventArgs e)
  241.         {
  242.             if (e.Delta  1.0)     // outside the radius
  243.                             {
  244.                                 double x = last_vector.X / last_vector.Length;
  245.                                 double y = last_vector.Y / last_vector.Length;
  246.                                 double z = last_vector.Z / last_vector.Length;
  247.                                 last_vector = new Vector3d(x, y, z);
  248.                             }
  249.                             else
  250.                             {
  251.                                 double x = last_vector.X;
  252.                                 double y = last_vector.Y;
  253.                                 double z = System.Math.Sqrt(1.0 - last_vector.X * last_vector.X - last_vector.Y * last_vector.Y);
  254.                                 last_vector = new Vector3d(x, y, z);
  255.                             }
  256.                             Vector3d new_vector = new Vector3d((e.Location.X - centerX) / radius, -(e.Location.Y - centerY) / radius, 0.0);
  257.                             if (new_vector.LengthSqrd > 1.0)     // outside the radius
  258.                             {
  259.                                 double x = new_vector.X / new_vector.Length;
  260.                                 double y = new_vector.Y / new_vector.Length;
  261.                                 double z = new_vector.Z / new_vector.Length;
  262.                                 new_vector = new Vector3d(x, y, z);
  263.                             }
  264.                             else
  265.                             {
  266.                                 double x = new_vector.X;
  267.                                 double y = new_vector.Y;
  268.                                 double z = System.Math.Sqrt(1.0 - new_vector.X * new_vector.X - new_vector.Y * new_vector.Y);
  269.                                 new_vector = new Vector3d(x, y, z);
  270.                             }
  271.                             // determine angles for proper sequence of camera manipulations:
  272.                             Vector3d rotation_vector = last_vector;
  273.                             rotation_vector = rotation_vector.CrossProduct(new_vector);  // rotation_vector = last_vector x new_vector
  274.                             Vector3d work_vector = rotation_vector;
  275.                             work_vector = new Vector3d(work_vector.X, work_vector.Y, 0.0f);                      // projection of rotation_vector onto xy plane
  276.                             double roll_angle = System.Math.Atan2(work_vector.X, work_vector.Y);        // assuming that the camera's up vector is "up",
  277.                             // this computes the angle between the up vector
  278.                             // and the work vector, which is the roll required
  279.                             // to make the up vector coincident with the rotation_vector
  280.                             double length = rotation_vector.Length;
  281.                             double orbit_y_angle = (length != 0.0) ? System.Math.Acos(rotation_vector.Z / length) + Half_Pi : Half_Pi;                   // represents inverse cosine of the dot product of the
  282.                             if (length > 1.0f)                                              // rotation_vector and the up_vector divided by the
  283.                                 length = 1.0f;                                              // magnitude of both vectors.  We add pi/2 because we
  284.                             // are making the up-vector parallel to the the rotation
  285.                             double rotation_angle = System.Math.Asin(length);                // vector ... up-vector is perpin. to the eye-vector.
  286.                             // perform view manipulations
  287.                             m_View.Roll(roll_angle);               // 1: roll camera to make up vector coincident with rotation vector
  288.                             m_View.Orbit(0.0f, orbit_y_angle);     // 2: orbit along y to make up vector parallel with rotation vector
  289.                             m_View.Orbit(rotation_angle, 0.0f);     // 3: orbit along x by rotation angle
  290.                             m_View.Orbit(0.0f, -orbit_y_angle);     // 4: orbit along y by the negation of 2
  291.                             m_View.Roll(-roll_angle);               // 5: roll camera by the negation of 1
  292.                             break;
  293.                     }
  294.                     Refresh();
  295.                     m_StartPoint = e.Location;
  296.                 }
  297.             }
  298.         }
  299.         protected void OnMouseDown(object sender, MouseEventArgs e)
  300.         {
  301.             m_MouseDown = true;
  302.             switch (e.Button)
  303.             {
  304.                 case MouseButtons.Left:
  305.                     m_PreviewStatus = PreviewStatus.Orbiting;
  306.                     break;
  307.                 case MouseButtons.Right:
  308.                     m_PreviewStatus = PreviewStatus.Panning;
  309.                     break;
  310.             }
  311.             m_StartPoint = e.Location;
  312.         }
  313.         protected void OnMouseUp(object sender, MouseEventArgs e)
  314.         {
  315.             switch (e.Button)
  316.             {
  317.                 case MouseButtons.Left:
  318.                     m_PreviewStatus -= (int)PreviewStatus.Orbiting;
  319.                     break;
  320.                 case MouseButtons.Right:
  321.                     m_PreviewStatus -= (int)PreviewStatus.Panning;
  322.                     break;
  323.             }
  324.             m_PreviewStatus = PreviewStatus.Nothing;
  325.             m_MouseDown = false;
  326.         }
  327.         protected void OnSizeChanged(object sender, EventArgs e)
  328.         {
  329.             if (m_Device != null)
  330.             {
  331.                 m_Device.OnSize(m_Panel.Size);
  332.             }
  333.         }
  334.         #endregion
  335.         #region IDispose
  336.         public void Dispose()
  337.         {
  338.             if (m_Device != null)
  339.             {
  340.                 bool b = m_Device.Erase(m_View);
  341.             }
  342.             if (m_View != null)
  343.             {
  344.                 m_View.EraseAll();
  345.                 m_View.Dispose();
  346.                 m_View = null;
  347.             }
  348.             if (m_Manager != null)
  349.             {
  350.                 if (m_Model != null)
  351.                 {
  352.                     m_Model.Dispose();
  353.                     m_Model = null;
  354.                 }
  355.                 if (m_Device != null)
  356.                 {
  357.                     m_Device.Dispose();
  358.                     m_Device = null;
  359.                 }
  360.             }
  361.         }
  362.         #endregion
  363.     }
  364. }
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-1-18 12:36:00 | 显示全部楼层
[code]
using System;
using System.Drawing;
using System.Windows.Forms;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.GraphicsSystem;
namespace TlsCad.Utils
{
    public class GsUtility
    {
        public const String strActive = "*Active";
        public const String strActiveSettings = "ACAD_RENDER_ACTIVE_SETTINGS";
        public static void CustomUpdate(System.IntPtr parmeter, int left, int right, int bottom, int top)
        {
            MessageBox.Show("Left:" + left + "Right" + right + "Bottom" + bottom + "Top" + top);
        }
        public static System.Drawing.Color[] MyAcadColorPs =
            {
              System.Drawing.Color.FromArgb(255, 0, 0, 255),    //----- 0 - lets make it red for an example
              //{255, 255, 255, 255},//----- 0 - ByBlock - White
              System.Drawing.Color.FromArgb(255, 0, 0, 255),    //----- 1 - Red
              System.Drawing.Color.FromArgb(255, 255, 0, 255),    //----- 2 - Yellow
              System.Drawing.Color.FromArgb(0, 255, 0, 255),    //----- 3 - Green
              System.Drawing.Color.FromArgb(0, 255, 255, 255),    //----- 4 - Cyan
              System.Drawing.Color.FromArgb(0, 0, 255, 255),    //----- 5 - Blue
              System.Drawing.Color.FromArgb(255, 0, 255, 255),    //----- 6 - Magenta
              System.Drawing.Color.FromArgb(255, 0, 0, 255),    //----- 7 - More red Red
              System.Drawing.Color.FromArgb(255, 0, 0, 255),    //----- 8 - More red Red
              System.Drawing.Color.FromArgb(255, 0, 0, 255),    //----- 9 - More red Red
              /*System.Drawing.Color.FromArgb(255, 255, 255, 255),//----- 7 - White
              System.Drawing.Color.FromArgb(255, 255, 255, 255),//----- 8
              System.Drawing.Color.FromArgb(255, 255, 255, 255),//----- 9*/
              System.Drawing.Color.FromArgb(255, 0, 0, 255),    //----- 10
              System.Drawing.Color.FromArgb(255, 127, 127, 255),//----- 11
              System.Drawing.Color.FromArgb(165, 0, 0, 255),    //----- 12
              System.Drawing.Color.FromArgb(165, 82, 82, 255),    //----- 13
              System.Drawing.Color.FromArgb(127, 0, 0, 255),    //----- 14
              System.Drawing.Color.FromArgb(127, 63, 63, 255),    //----- 15
              System.Drawing.Color.FromArgb(76, 0, 0, 255),        //----- 16
              System.Drawing.Color.FromArgb(76, 38, 38, 255),    //----- 17
              System.Drawing.Color.FromArgb(38, 0, 0, 255),        //----- 18
              System.Drawing.Color.FromArgb(38, 19, 19, 255),    //----- 19
              System.Drawing.Color.FromArgb(255, 63, 0, 255),    //----- 20
              System.Drawing.Color.FromArgb(255, 159, 127, 255),//----- 21
              System.Drawing.Color.FromArgb(165, 41, 0, 255),    //----- 22
              System.Drawing.Color.FromArgb(165, 103, 82, 255),    //----- 23
              System.Drawing.Color.FromArgb(127, 31, 0, 255),    //----- 24
              System.Drawing.Color.FromArgb(127, 79, 63, 255),    //----- 25
              System.Drawing.Color.FromArgb(76, 19, 0, 255),    //----- 26
              System.Drawing.Color.FromArgb(76, 47, 38, 255),    //----- 27
              System.Drawing.Color.FromArgb(38, 9, 0, 255),        //----- 28
              System.Drawing.Color.FromArgb(38, 23, 19, 255),    //----- 29
              System.Drawing.Color.FromArgb(255, 127, 0, 255),    //----- 30
              System.Drawing.Color.FromArgb(255, 191, 127, 255),//----- 31
              System.Drawing.Color.FromArgb(165, 82, 0, 255),    //----- 32
              System.Drawing.Color.FromArgb(165, 124, 82, 255),    //----- 33
              System.Drawing.Color.FromArgb(127, 63, 0, 255),    //----- 34
              System.Drawing.Color.FromArgb(127, 95, 63, 255),    //----- 35
              System.Drawing.Color.FromArgb(76, 38, 0, 255),    //----- 36
              System.Drawing.Color.FromArgb(76, 57, 38, 255),    //----- 37
              System.Drawing.Color.FromArgb(38, 19, 0, 255),    //----- 38
              System.Drawing.Color.FromArgb(38, 28, 19, 255),    //----- 39
              System.Drawing.Color.FromArgb(255, 191, 0, 255),    //----- 40
              System.Drawing.Color.FromArgb(255, 223, 127, 255),//----- 41
              System.Drawing.Color.FromArgb(165, 124, 0, 255),    //----- 42
              System.Drawing.Color.FromArgb(165, 145, 82, 255),    //----- 43
              System.Drawing.Color.FromArgb(127, 95, 0, 255),    //----- 44
              System.Drawing.Color.FromArgb(127, 111, 63, 255),    //----- 45
              System.Drawing.Color.FromArgb(76, 57, 0, 255),    //----- 46
              System.Drawing.Color.FromArgb(76, 66, 38, 255),    //----- 47
              System.Drawing.Color.FromArgb(38, 28, 0, 255),    //----- 48
              System.Drawing.Color.FromArgb(38, 33, 19, 255),    //----- 49
              System.Drawing.Color.FromArgb(255, 255, 0, 255),    //----- 50
              System.Drawing.Color.FromArgb(255, 255, 127, 255),//----- 51
              System.Drawing.Color.FromArgb(165, 165, 0, 255),    //----- 52
              System.Drawing.Color.FromArgb(165, 165, 82, 255),    //----- 53
              System.Drawing.Color.FromArgb(127, 127, 0, 255),    //----- 54
              System.Drawing.Color.FromArgb(127, 127, 63, 255),    //----- 55
              System.Drawing.Color.FromArgb(76, 76, 0, 255),    //----- 56
              System.Drawing.Color.FromArgb(76, 76, 38, 255),    //----- 57
              System.Drawing.Color.FromArgb(38, 38, 0, 255),    //----- 58
              System.Drawing.Color.FromArgb(38, 38, 19, 255),    //----- 59
              System.Drawing.Color.FromArgb(191, 255, 0, 255),    //----- 60
              System.Drawing.Color.FromArgb(223, 255, 127, 255),//----- 61
              System.Drawing.Color.FromArgb(124, 165, 0, 255),    //----- 62
              System.Drawing.Color.FromArgb(145, 165, 82, 255),    //----- 63
              System.Drawing.Color.FromArgb(95, 127, 0, 255),    //----- 64
              System.Drawing.Color.FromArgb(111, 127, 63, 255),    //----- 65
              System.Drawing.Color.FromArgb(57, 76, 0, 255),    //----- 66
              System.Drawing.Color.FromArgb(66, 76, 38, 255),    //----- 67
              System.Drawing.Color.FromArgb(28, 38, 0, 255),    //----- 68
              System.Drawing.Color.FromArgb(33, 38, 19, 255),    //----- 69
              System.Drawing.Color.FromArgb(127, 255, 0, 255),    //----- 70
              System.Drawing.Color.FromArgb(191, 255, 127, 255),//----- 71
              System.Drawing.Color.FromArgb(82, 165, 0, 255),    //----- 72
              System.Drawing.Color.FromArgb(124, 165, 82, 255),    //----- 73
              System.Drawing.Color.FromArgb(63, 127, 0, 255),    //----- 74
              System.Drawing.Color.FromArgb(95, 127, 63, 255),    //----- 75
              System.Drawing.Color.FromArgb(38, 76, 0, 255),    //----- 76
              System.Drawing.Color.FromArgb(57, 76, 38, 255),    //----- 77
              System.Drawing.Color.FromArgb(19, 38, 0, 255),    //----- 78
              System.Drawing.Color.FromArgb(28, 38, 19, 255),    //----- 79
              System.Drawing.Color.FromArgb(63, 255, 0, 255),    //----- 80
              System.Drawing.Color.FromArgb(159, 255, 127, 255),//----- 81
              System.Drawing.Color.FromArgb(41, 165, 0, 255),    //----- 82
              System.Drawing.Color.FromArgb(103, 165, 82, 255),    //----- 83
              System.Drawing.Color.FromArgb(31, 127, 0, 255),    //----- 84
              System.Drawing.Color.FromArgb(79, 127, 63, 255),    //----- 85
              System.Drawing.Color.FromArgb(19, 76, 0, 255),    //----- 86
              System.Drawing.Color.FromArgb(47, 76, 38, 255),    //----- 87
              System.Drawing.Color.FromArgb(9, 38, 0, 255),        //----- 88
              System.Drawing.Color.FromArgb(23, 38, 19, 255),    //----- 89
              System.Drawing.Color.FromArgb(0, 255, 0, 255),    //----- 90
              System.Drawing.Color.FromArgb(127, 255, 127, 255),//----- 91
              System.Drawing.Color.FromArgb(0, 165, 0, 255),    //----- 92
              System.Drawing.Color.FromArgb(82, 165, 82, 255),    //----- 93
              System.Drawing.Color.FromArgb(0, 127, 0, 255),    //----- 94
              System.Drawing.Color.FromArgb(63, 127, 63, 255),    //----- 95
              System.Drawing.Color.FromArgb(0, 76, 0, 255),        //----- 96
              System.Drawing.Color.FromArgb(38, 76, 38, 255),    //----- 97
              System.Drawing.Color.FromArgb(0, 38, 0, 255),        //----- 98
              System.Drawing.Color.FromArgb(19, 38, 19, 255),    //----- 99
              System.Drawing.Color.FromArgb(0, 255, 63, 255),    //----- 100
              System.Drawing.Color.FromArgb(127, 255, 159, 255),//----- 101
              System.Drawing.Color.FromArgb(0, 165, 41, 255),    //----- 102
              System.Drawing.Color.FromArgb(82, 165, 103, 255),    //----- 103
              System.Drawing.Color.FromArgb(0, 127, 31, 255),    //----- 104
              System.Drawing.Color.FromArgb(63, 127, 79, 255),    //----- 105
              System.Drawing.Color.FromArgb(0, 76, 19, 255),    //----- 106
              System.Drawing.Color.FromArgb(38, 76, 47, 255),    //----- 107
              System.Drawing.Color.FromArgb(0, 38, 9, 255),        //----- 108
              System.Drawing.Color.FromArgb(19, 38, 23, 255),    //----- 109
              System.Drawing.Color.FromArgb(0, 255, 127, 255),    //----- 110
              System.Drawing.Color.FromArgb(127, 255, 191, 255),//----- 111
              System.Drawing.Color.FromArgb(0, 165, 82, 255),    //----- 112
              System.Drawing.Color.FromArgb(82, 165, 124, 255),    //----- 113
              System.Drawing.Color.FromArgb(0, 127, 63, 255),    //----- 114
              System.Drawing.Color.FromArgb(63, 127, 95, 255),    //----- 115
              System.Drawing.Color.FromArgb(0, 76, 38, 255),    //----- 116
              System.Drawing.Color.FromArgb(38, 76, 57, 255),    //----- 117
              System.Drawing.Color.FromArgb(0, 38, 19, 255),    //----- 118
              System.Drawing.Color.FromArgb(19, 38, 28, 255),    //----- 119
              System.Drawing.Color.FromArgb(0, 255, 191, 255),    //----- 120
              System.Drawing.Color.FromArgb(127, 255, 223, 255),//----- 121
              System.Drawing.Color.FromArgb(0, 165, 124, 255),    //----- 122
              System.Drawing.Color.FromArgb(82, 165, 145, 255),    //----- 123
              System.Drawing.Color.FromArgb(0, 127, 95, 255),    //----- 124
              System.Drawing.Color.FromArgb(63, 127, 111, 255),    //----- 125
              System.Drawing.Color.FromArgb(0, 76, 57, 255),    //----- 126
              System.Drawing.Color.FromArgb(38, 76, 66, 255),    //----- 127
              System.Drawing.Color.FromArgb(0, 38, 28, 255),    //----- 128
              System.Drawing.Color.FromArgb(19, 38, 33, 255),    //----- 129
              System.Drawing.Color.FromArgb(0, 255, 255, 255),    //----- 130
              System.Drawing.Color.FromArgb(127, 255, 255, 255),//----- 131
              System.Drawing.Color.FromArgb(0, 165, 165, 255),    //----- 132
              System.Drawing.Color.FromArgb(82, 165, 165, 255),    //----- 133
              System.Drawing.Color.FromArgb(0, 127, 127, 255),    //----- 134
              System.Drawing.Color.FromArgb(63, 127, 127, 255),    //----- 135
              System.Drawing.Color.FromArgb(0, 76, 76, 255),    //----- 136
              System.Drawing.Color.FromArgb(38, 76, 76, 255),    //----- 137
              System.Drawing.Color.FromArgb(0, 38, 38, 255),    //----- 138
              System.Drawing.Color.FromArgb(19, 38, 38, 255),    //----- 139
              System.Drawing.Color.FromArgb(0, 191, 255, 255),    //----- 140
              System.Drawing.Color.FromArgb(127, 223, 255, 255),//----- 141
              System.Drawing.Color.FromArgb(0, 124, 165, 255),    //----- 142
              System.Drawing.Color.FromArgb(82, 145, 165, 255),    //----- 143
              System.Drawing.Color.FromArgb(0, 95, 127, 255),    //----- 144
              System.Drawing.Color.FromArgb(63, 111, 127, 255),    //----- 145
              System.Drawing.Color.FromArgb(0, 57, 76, 255),    //----- 146
              System.Drawing.Color.FromArgb(38, 66, 76, 255),    //----- 147
              System.Drawing.Color.FromArgb(0, 28, 38, 255),    //----- 148
              System.Drawing.Color.FromArgb(19, 33, 38, 255),    //----- 149
              System.Drawing.Color.FromArgb(0, 127, 255, 255),    //----- 150
              System.Drawing.Color.FromArgb(127, 191, 255, 255),//----- 151
              System.Drawing.Color.FromArgb(0, 82, 165, 255),    //----- 152
              System.Drawing.Color.FromArgb(82, 124, 165, 255),    //----- 153
              System.Drawing.Color.FromArgb(0, 63, 127, 255),    //----- 154
              System.Drawing.Color.FromArgb(63, 95, 127, 255),    //----- 155
              System.Drawing.Color.FromArgb(0, 38, 76, 255),    //----- 156
              System.Drawing.Color.FromArgb(38, 57, 76, 255),    //----- 157
              System.Drawing.Color.FromArgb(0, 19, 38, 255),    //----- 158
              System.Drawing.Color.FromArgb(19, 28, 38, 255),    //----- 159
              System.Drawing.Color.FromArgb(0, 63, 255, 255),    //----- 160
              System.Drawing.Color.FromArgb(127, 159, 255, 255),//----- 161
              System.Drawing.Color.FromArgb(0, 41, 165, 255),    //----- 162
              System.Drawing.Color.FromArgb(82, 103, 165, 255),    //----- 163
              System.Drawing.Color.FromArgb(0, 31, 127, 255),    //----- 164
              System.Drawing.Color.FromArgb(63, 79, 127, 255),    //----- 165
              System.Drawing.Color.FromArgb(0, 19, 76, 255),    //----- 166
              System.Drawing.Color.FromArgb(38, 47, 76, 255),    //----- 167
              System.Drawing.Color.FromArgb(0, 9, 38, 255),        //----- 168
              System.Drawing.Color.FromArgb(19, 23, 38, 255),    //----- 169
              System.Drawing.Color.FromArgb(0, 0, 255, 255),    //----- 170
              System.Drawing.Color.FromArgb(127, 127, 255, 255),//----- 171
              System.Drawing.Color.FromArgb(0, 0, 165, 255),    //----- 172
              System.Drawing.Color.FromArgb(82, 82, 165, 255),    //----- 173
              System.Drawing.Color.FromArgb(0, 0, 127, 255),    //----- 174
              System.Drawing.Color.FromArgb(63, 63, 127, 255),    //----- 175
              System.Drawing.Color.FromArgb(0, 0, 76, 255),        //----- 176
              System.Drawing.Color.FromArgb(38, 38, 76, 255),    //----- 177
              System.Drawing.Color.FromArgb(0, 0, 38, 255),        //----- 178
              System.Drawing.Color.FromArgb(19, 19, 38, 255),    //----- 179
              System.Drawing.Color.FromArgb(63, 0, 255, 255),    //----- 180
              System.Drawing.Color.FromArgb(159, 127, 255, 255),//----- 181
              System.Drawing.Color.FromArgb(41, 0, 165, 255),    //----- 182
              System.Drawing.Color.FromArgb(103, 82, 165, 255),    //----- 183
              System.Drawing.Color.FromArgb(31, 0, 127, 255),    //----- 184
              System.Drawing.Color.FromArgb(79, 63, 127, 255),    //----- 185
              System.Drawing.Color.FromArgb(19, 0, 76, 255),    //----- 186
              System.Drawing.Color.FromArgb(47, 38, 76, 255),    //----- 187
              System.Drawing.Color.FromArgb(9, 0, 38, 255),        //----- 188
              System.Drawing.Color.FromArgb(23, 19, 38, 255),    //----- 189
              System.Drawing.Color.FromArgb(127, 0, 255, 255),    //----- 190
              System.Drawing.Color.FromArgb(191, 127, 255, 255),//----- 191
              System.Drawing.Color.FromArgb(82, 0, 165, 255),    //----- 192
              System.Drawing.Color.FromArgb(124, 82, 165, 255),    //----- 193
              System.Drawing.Color.FromArgb(63, 0, 127, 255),    //----- 194
              System.Drawing.Color.FromArgb(95, 63, 127, 255),    //----- 195
              System.Drawing.Color.FromArgb(38, 0, 76, 255),    //----- 196
              System.Drawing.Color.FromArgb(57, 38, 76, 255),    //----- 197
              System.Drawing.Color.FromArgb(19, 0, 38, 255),    //----- 198
              System.Drawing.Color.FromArgb(28, 19, 38, 255),    //----- 199
              System.Drawing.Color.FromArgb(191, 0, 255, 255),    //----- 200
              System.Drawing.Color.FromArgb(223, 127, 255, 255),//----- 201
              System.Drawing.Color.FromArgb(124, 0, 165, 255),    //----- 202
              System.Drawing.Color.FromArgb(145, 82, 165, 255),    //----- 203
              System.Drawing.Color.FromArgb(95, 0, 127, 255),    //----- 204
              System.Drawing.Color.FromArgb(111, 63, 127, 255),    //----- 205
              System.Drawing.Color.FromArgb(57, 0, 76, 255),    //----- 206
              System.Drawing.Color.FromArgb(66, 38, 76, 255),    //----- 207
              System.Drawing.Color.FromArgb(28, 0, 38, 255),    //----- 208
              System.Drawing.Color.FromArgb(33, 19, 38, 255),    //----- 209
              System.Drawing.Color.FromArgb(255, 0, 255, 255),    //----- 210
              System.Drawing.Color.FromArgb(255, 127, 255, 255),//----- 211
              System.Drawing.Color.FromArgb(165, 0, 165, 255),    //----- 212
              System.Drawing.Color.FromArgb(165, 82, 165, 255),    //----- 213
              System.Drawing.Color.FromArgb(127, 0, 127, 255),    //----- 214
              System.Drawing.Color.FromArgb(127, 63, 127, 255),    //----- 215
              System.Drawing.Color.FromArgb(76, 0, 76, 255),    //----- 216
              System.Drawing.Color.FromArgb(76, 38, 76, 255),    //----- 217
              System.Drawing.Color.FromArgb(38, 0, 38, 255),    //----- 218
              System.Drawing.Color.FromArgb(38, 19, 38, 255),    //----- 219
              System.Drawing.Color.FromArgb(255, 0, 191, 255),    //----- 220
              System.Drawing.Color.FromArgb(255, 127, 223, 255),//----- 221
              System.Drawing.Color.FromArgb(165, 0, 124, 255),    //----- 222
              System.Drawing.Color.FromArgb(165, 82, 145, 255),    //----- 223
              System.Drawing.Color.FromArgb(127, 0, 95, 255),    //----- 224
              System.Drawing.Color.FromArgb(127, 63, 111, 255),    //----- 225
              System.Drawing.Color.FromArgb(76, 0, 57, 255),    //----- 226
              System.Drawing.Color.FromArgb(76, 38, 66, 255),    //----- 227
              System.Drawing.Color.FromArgb(38, 0, 28, 255),    //----- 228
              System.Drawing.Color.FromArgb(38, 19, 33, 255),    //----- 229
              System.Drawing.Color.FromArgb(255, 0, 127, 255),    //----- 230
              System.Drawing.Color.FromArgb(255, 127, 191, 255),//----- 231
              System.Drawing.Color.FromArgb(165, 0, 82, 255),    //----- 232
              System.Drawing.Color.FromArgb(165, 82, 124, 255),    //----- 233
              System.Drawing.Color.FromArgb(127, 0, 63, 255),    //----- 234
              System.Drawing.Color.FromArgb(127, 63, 95, 255),    //----- 235
              System.Drawing.Color.FromArgb(76, 0, 38, 255),    //----- 236
              System.Drawing.Color.FromArgb(76, 38, 57, 255),    //----- 237
              System.Drawing.Color.FromArgb(38, 0, 19, 255),    //----- 238
              System.Drawing.Color.FromArgb(38, 19, 28, 255),    //----- 239
              System.Drawing.Color.FromArgb(255, 0, 63, 255),    //----- 240
              System.Drawing.Color.FromArgb(255, 127, 159, 255),//----- 241
              System.Drawing.Color.FromArgb(165, 0, 41, 255),    //----- 242
              System.Drawing.Color.FromArgb(165, 82, 103, 255),    //----- 243
              System.Drawing.Color.FromArgb(127, 0, 31, 255),    //----- 244
              System.Drawing.Color.FromArgb(127, 63, 79, 255),    //----- 245
              System.Drawing.Color.FromArgb(76, 0, 19, 255),    //----- 246
              System.Drawing.Color.FromArgb(76, 38, 47, 255),    //----- 247
              System.Drawing.Color.FromArgb(38, 0, 9, 255),        //----- 248
              System.Drawing.Color.FromArgb(38, 19, 23, 255),    //----- 249
              System.Drawing.Color.FromArgb(84, 84, 84, 255),    //----- 250
              System.Drawing.Color.FromArgb(118, 118, 118, 255),//----- 251
              System.Drawing.Color.FromArgb(152, 152, 152, 255),//----- 252
              System.Drawing.Color.FromArgb(186, 186, 186, 255),//----- 253
              System.Drawing.Color.FromArgb(220, 220, 220, 255),//----- 254
              System.Drawing.Color.FromArgb(255, 255, 255, 255),//----- 255
            };
        //////////////////////////////////////////////////////////////////////////////
        // standard autocad colours
        public static System.Drawing.Color[] MyAcadColorMs =
            {
              System.Drawing.Color.FromArgb(255, 255, 255, 255),//----- 0 - ByBlock - White
              System.Drawing.Color.FromArgb(255, 0, 0, 255),    //----- 1 - Red
              System.Drawing.Color.FromArgb(255, 255, 0, 255),    //----- 2 - Yellow
              System.Drawing.Color.FromArgb(0, 255, 0, 255),    //----- 3 - Green
              System.Drawing.Color.FromArgb(0, 255, 255, 255),    //----- 4 - Cyan
              System.Drawing.Color.FromArgb(0, 0, 255, 255),    //----- 5 - Blue
              System.Drawing.Color.FromArgb(255, 0, 255, 255),    //----- 6 - Magenta
              System.Drawing.Color.FromArgb(255, 255, 255, 255),//----- 7 - White
              System.Drawing.Color.FromArgb(255, 255, 255, 255),//----- 8
              System.Drawing.Color.FromArgb(255, 255, 255, 255),//----- 9
              System.Drawing.Color.FromArgb(255, 0, 0, 255),    //----- 10
              System.Drawing.Color.FromArgb(255, 127, 127, 255),//----- 11
              System.Drawing.Color.FromArgb(165, 0, 0, 255),    //----- 12
              System.Drawing.Color.FromArgb(165, 82, 82, 255),    //----- 13
              System.Drawing.Color.FromArgb(127, 0, 0, 255),    //----- 14
              System.Drawing.Color.FromArgb(127, 63, 63, 255),    //----- 15
              System.Drawing.Color.FromArgb(76, 0, 0, 255),        //----- 16
              System.Drawing.Color.FromArgb(76, 38, 38, 255),    //----- 17
              System.Drawing.Color.FromArgb(38, 0, 0, 255),        //----- 18
              System.Drawing.Color.FromArgb(38, 19, 19, 255),    //----- 19
              System.Drawing.Color.FromArgb(255, 63, 0, 255),    //----- 20
              System.Drawing.Color.FromArgb(255, 159, 127, 255),//----- 21
              System.Drawing.Color.FromArgb(165, 41, 0, 255),    //----- 22
              System.Drawing.Color.FromArgb(165, 103, 82, 255),    //----- 23
              System.Drawing.Color.FromArgb(127, 31, 0, 255),    //----- 24
              System.Drawing.Color.FromArgb(127, 79, 63, 255),    //----- 25
              System.Drawing.Color.FromArgb(76, 19, 0, 255),    //----- 26
              System.Drawing.Color.FromArgb(76, 47, 38, 255),    //----- 27
              System.Drawing.Color.FromArgb(38, 9, 0, 255),        //----- 28
              System.Drawing.Color.FromArgb(38, 23, 19, 255),    //----- 29
              System.Drawing.Color.FromArgb(255, 127, 0, 255),    //----- 30
              System.Drawing.Color.FromArgb(255, 191, 127, 255),//----- 31
              System.Drawing.Color.FromArgb(165, 82, 0, 255),    //----- 32
              System.Drawing.Color.FromArgb(165, 124, 82, 255),    //----- 33
              System.Drawing.Color.FromArgb(127, 63, 0, 255),    //----- 34
              System.Drawing.Color.FromArgb(127, 95, 63, 255),    //----- 35
              System.Drawing.Color.FromArgb(76, 38, 0, 255),    //----- 36
              System.Drawing.Color.FromArgb(76, 57, 38, 255),    //----- 37
              System.Drawing.Color.FromArgb(38, 19, 0, 255),    //----- 38
              System.Drawing.Color.FromArgb(38, 28, 19, 255),    //----- 39
              System.Drawing.Color.FromArgb(255, 191, 0, 255),    //----- 40
              System.Drawing.Color.FromArgb(255, 223, 127, 255),//----- 41
              System.Drawing.Color.FromArgb(165, 124, 0, 255),    //----- 42
              System.Drawing.Color.FromArgb(165, 145, 82, 255),    //----- 43
              System.Drawing.Color.FromArgb(127, 95, 0, 255),    //----- 44
              System.Drawing.Color.FromArgb(127, 111, 63, 255),    //----- 45
              System.Drawing.Color.FromArgb(76, 57, 0, 255),    //----- 46
              System.Drawing.Color.FromArgb(76, 66, 38, 255),    //----- 47
              System.Drawing.Color.FromArgb(38, 28, 0, 255),    //----- 48
              System.Drawing.Color.FromArgb(38, 33, 19, 255),    //----- 49
              System.Drawing.Color.FromArgb(255, 255, 0, 255),    //----- 50
              System.Drawing.Color.FromArgb(255, 255, 127, 255),//----- 51
              System.Drawing.Color.FromArgb(165, 165, 0, 255),    //----- 52
              System.Drawing.Color.FromArgb(165, 165, 82, 255),    //----- 53
              System.Drawing.Color.FromArgb(127, 127, 0, 255),    //----- 54
              System.Drawing.Color.FromArgb(127, 127, 63, 255),    //----- 55
              System.Drawing.Color.FromArgb(76, 76, 0, 255),    //----- 56
              System.Drawing.Color.FromArgb(76, 76, 38, 255),    //----- 57
              System.Drawing.Color.FromArgb(38, 38, 0, 255),    //----- 58
              System.Drawing.Color.FromArgb(38, 38, 19, 255),    //----- 59
              System.Drawing.Color.FromArgb(191, 255, 0, 255),    //----- 60
              System.Drawing.Color.FromArgb(223, 255, 127, 255),//----- 61
              System.Drawing.Color.FromArgb(124, 165, 0, 255),    //----- 62
              System.Drawing.Color.FromArgb(145, 165, 82, 255),    //----- 63
              System.Drawing.Color.FromArgb(95, 127, 0, 255),    //----- 64
              System.Drawing.Color.FromArgb(111, 127, 63, 255),    //----- 65
              System.Drawing.Color.FromArgb(57, 76, 0, 255),    //----- 66
              System.Drawing.Color.FromArgb(66, 76, 38, 255),    //----- 67
              System.Drawing.Color.FromArgb(28, 38, 0, 255),    //----- 68
              System.Drawing.Color.FromArgb(33, 38, 19, 255),    //----- 69
              System.Drawing.Color.FromArgb(127, 255, 0, 255),    //----- 70
              System.Drawing.Color.FromArgb(191, 255, 127, 255),//----- 71
              System.Drawing.Color.FromArgb(82, 165, 0, 255),    //----- 72
              System.Drawing.Color.FromArgb(124, 165, 82, 255),    //----- 73
              System.Drawing.Color.FromArgb(63, 127, 0, 255),    //----- 74
              System.Drawing.Color.FromArgb(95, 127, 63, 255),    //----- 75
              System.Drawing.Color.FromArgb(38, 76, 0, 255),    //----- 76
              System.Drawing.Color.FromArgb(57, 76, 38, 255),    //----- 77
              System.Drawing.Color.FromArgb(19, 38, 0, 255),    //----- 78
              System.Drawing.Color.FromArgb(28, 38, 19, 255),    //----- 79
              System.Drawing.Color.FromArgb(63, 255, 0, 255),    //----- 80
              System.Drawing.Color.FromArgb(159, 255, 127, 255),//----- 81
              System.Drawing.Color.FromArgb(41, 165, 0, 255),    //----- 82
              System.Drawing.Color.FromArgb(103, 165, 82, 255),    //----- 83
              System.Drawing.Color.FromArgb(31, 127, 0, 255),    //----- 84
              System.Drawing.Color.FromArgb(79, 127, 63, 255),    //----- 85
              System.Drawing.Color.FromArgb(19, 76, 0, 255),    //----- 86
              System.Drawing.Color.FromArgb(47, 76, 38, 255),    //----- 87
              System.Drawing.Color.FromArgb(9, 38, 0, 255),        //----- 88
              System.Drawing.Color.FromArgb(23, 38, 19, 255),    //----- 89
              System.Drawing.Color.FromArgb(0, 255, 0, 255),    //----- 90
              System.Drawing.Color.FromArgb(127, 255, 127, 255),//----- 91
              System.Drawing.Color.FromArgb(0, 165, 0, 255),    //----- 92
              System.Drawing.Color.FromArgb(82, 165, 82, 255),    //----- 93
              System.Drawing.Color.FromArgb(0, 127, 0, 255),    //----- 94
              System.Drawing.Color.FromArgb(63, 127, 63, 255),    //----- 95
              System.Drawing.Color.FromArgb(0, 76, 0, 255),        //----- 96
              System.Drawing.Color.FromArgb(38, 76, 38, 255),    //----- 97
              System.Drawing.Color.FromArgb(0, 38, 0, 255),        //----- 98
              System.Drawing.Color.FromArgb(19, 38, 19, 255),    //----- 99
              System.Drawing.Color.FromArgb(0, 255, 63, 255),    //----- 100
              System.Drawing.Color.FromArgb(127, 255, 159, 255),//----- 101
              System.Drawing.Color.FromArgb(0, 165, 41, 255),    //----- 102
              System.Drawing.Color.FromArgb(82, 165, 103, 255),    //----- 103
              System.Drawing.Color.FromArgb(0, 127, 31, 255),    //----- 104
              System.Drawing.Color.FromArgb(63, 127, 79, 255),    //----- 105
              System.Drawing.Color.FromArgb(0, 76, 19, 255),    //----- 106
              System.Drawing.Color.FromArgb(38, 76, 47, 255),    //----- 107
              System.Drawing.Color.FromArgb(0, 38, 9, 255),        //----- 108
              System.Drawing.Color.FromArgb(19, 38, 23, 255),    //----- 109
              System.Drawing.Color.FromArgb(0, 255, 127, 255),    //----- 110
              System.Drawing.Color.FromArgb(127, 255, 191, 255),//----- 111
              System.Drawing.Color.FromArgb(0, 165, 82, 255),    //----- 112
              System.Drawing.Color.FromArgb(82, 165, 124, 255),    //----- 113
              System.Drawing.Color.FromArgb(0, 127, 63, 255),    //----- 114
              System.Drawing.Color.FromArgb(63, 127, 95, 255),    //----- 115
              System.Drawing.Color.FromArgb(0, 76, 38, 255),    //----- 116
              System.Drawing.Color.FromArgb(38, 76, 57, 255),    //----- 117
              System.Drawing.Color.FromArgb(0, 38, 19, 255),    //----- 118
              System.Drawing.Color.FromArgb(19, 38, 28, 255),    //----- 119
              System.Drawing.Color.FromArgb(0, 255, 191, 255),    //----- 120
              System.Drawing.Color.FromArgb(127, 255, 223, 255),//----- 121
              System.Drawing.Color.FromArgb(0, 165, 124, 255),    //----- 122
              System.Drawing.Color.FromArgb(82, 165, 145, 255),    //----- 123
              System.Drawing.Color.FromArgb(0, 127, 95, 255),    //----- 124
              System.Drawing.Color.FromArgb(63, 127, 111, 255),    //----- 125
              System.Drawing.Color.FromArgb(0, 76, 57, 255),    //----- 126
              System.Drawing.Color.FromArgb(38, 76, 66, 255),    //----- 127
              System.Drawing.Color.FromArgb(0, 38, 28, 255),    //----- 128
              System.Drawing.Color.FromArgb(19, 38, 33, 255),    //----- 129
              System.Drawing.Color.FromArgb(0, 255, 255, 255),    //----- 130
              System.Drawing.Color.FromArgb(127, 255, 255, 255),//----- 131
              System.Drawing.Color.FromArgb(0, 165, 165, 255),    //----- 132
              System.Drawing.Color.FromArgb(82, 165, 165, 255),    //----- 133
              System.Drawing.Color.FromArgb(0, 127, 127, 255),    //----- 134
              System.Drawing.Color.FromArgb(63, 127, 127, 255),    //----- 135
              System.Drawing.Color.FromArgb(0, 76, 76, 255),    //----- 136
              System.Drawing.Color.FromArgb(38, 76, 76, 255),    //----- 137
              System.Drawing.Color.FromArgb(0, 38, 38, 255),    //----- 138
              System.Drawing.Color.FromArgb(19, 38, 38, 255),    //----- 139
              System.Drawing.Color.FromArgb(0, 191, 255, 255),    //----- 140
              System.Drawing.Color.FromArgb(127, 223, 255, 255),//----- 141
              System.Drawing.Color.FromArgb(0, 124, 165, 255),    //----- 142
              System.Drawing.Color.FromArgb(82, 145, 165, 255),    //----- 143
              System.Drawing.Color.FromArgb(0, 95, 127, 255),    //----- 144
              System.Drawing.Color.FromArgb(63, 111, 127, 255),    //----- 145
              System.Drawing.Color.FromArgb(0, 57, 76, 255),    //----- 146
              System.Drawing.Color.FromArgb(38, 66, 76, 255),    //----- 147
              System.Drawing.Color.FromArgb(0, 28, 38, 255),    //----- 148
              System.Drawing.Color.FromArgb(19, 33, 38, 255),    //----- 149
              System.Drawing.Color.FromArgb(0, 127, 255, 255),    //----- 150
              System.Drawing.Color.FromArgb(127, 191, 255, 255),//----- 151
              System.Drawing.Color.FromArgb(0, 82, 165, 255),    //----- 152
              System.Drawing.Color.FromArgb(82, 124, 165, 255),    //----- 153
              System.Drawing.Color.FromArgb(0, 63, 127, 255),    //----- 154
              System.Drawing.Color.FromArgb(63, 95, 127, 255),    //----- 155
              System.Drawing.Color.FromArgb(0, 38, 76, 255),    //----- 156
              System.Drawing.Color.FromArgb(38, 57, 76, 255),    //----- 157
              System.Drawing.Color.FromArgb(0, 19, 38, 255),    //----- 158
              System.Drawing.Color.FromArgb(19, 28, 38, 255),    //----- 159
              System.Drawing.Color.FromArgb(0, 63, 255, 255),    //----- 160
              System.Drawing.Color.FromArgb(127, 159, 255, 255),//----- 161
              System.Drawing.Color.FromArgb(0, 41, 165, 255),    //----- 162
              System.Drawing.Color.FromArgb(82, 103, 165, 255),    //----- 163
              System.Drawing.Color.FromArgb(0, 31, 127, 255),    //----- 164
              System.Drawing.Color.FromArgb(63, 79, 127, 255),    //----- 165
              System.Drawing.Color.FromArgb(0, 19, 76, 255),    //----- 166
              System.Drawing.Color.FromArgb(38, 47, 76, 255),    //----- 167
              System.Drawing.Color.FromArgb(0, 9, 38, 255),        //----- 168
              System.Drawing.Color.FromArgb(19, 23, 38, 255),    //----- 169
              System.Drawing.Color.FromArgb(0, 0, 255, 255),    //----- 170
              System.Drawing.Color.FromArgb(127, 127, 255, 255),//----- 171
              System.Drawing.Color.FromArgb(0, 0, 165, 255),    //----- 172
              System.Drawing.Color.FromArgb(82, 82, 165, 255),    //----- 173
              System.Drawing.Color.FromArgb(0, 0, 127, 255),    //----- 174
              System.Drawing.Color.FromArgb(63, 63, 127, 255),    //----- 175
              System.Drawing.Color.FromArgb(0, 0, 76, 255),        //----- 176
              System.Drawing.Color.FromArgb(38, 38, 76, 255),    //----- 177
              System.Drawing.Color.FromArgb(0, 0, 38, 255),        //----- 178
              System.Drawing.Color.FromArgb(19, 19, 38, 255),    //----- 179
              System.Drawing.Color.FromArgb(63, 0, 255, 255),    //----- 180
              System.Drawing.Color.FromArgb(159, 127, 255, 255),//----- 181
              System.Drawing.Color.FromArgb(41, 0, 165, 255),    //----- 182
              System.Drawing.Color.FromArgb(103, 82, 165, 255),    //----- 183
              System.Drawing.Color.FromArgb(31, 0, 127, 255),    //----- 184
              System.Drawing.Color.FromArgb(79, 63, 127, 255),    //----- 185
              System.Drawing.Color.FromArgb(19, 0, 76, 255),    //----- 186
              System.Drawing.Color.FromArgb(47, 38, 76, 255),    //----- 187
              System.Drawing.Color.FromArgb(9, 0, 38, 255),        //----- 188
              System.Drawing.Color.FromArgb(23, 19, 38, 255),    //----- 189
              System.Drawing.Color.FromArgb(127, 0, 255, 255),    //----- 190
              System.Drawing.Color.FromArgb(191, 127, 255, 255),//----- 191
              System.Drawing.Color.FromArgb(82, 0, 165, 255),    //----- 192
              System.Drawing.Color.FromArgb(124, 82, 165, 255),    //----- 193
              System.Drawing.Color.FromArgb(63, 0, 127, 255),    //----- 194
              System.Drawing.Color.FromArgb(95, 63, 127, 255),    //----- 195
              System.Drawing.Color.FromArgb(38, 0, 76, 255),    //----- 196
              System.Drawing.Color.FromArgb(57, 38, 76, 255),    //----- 197
              System.Drawing.Color.FromArgb(19, 0, 38, 255),    //----- 198
              System.Drawing.Color.FromArgb(28, 19, 38, 255),    //----- 199
              System.Drawing.Color.FromArgb(191, 0, 255, 255),    //----- 200
              System.Drawing.Color.FromArgb(223, 127, 255, 255),//----- 201
              System.Drawing.Color.FromArgb(124, 0, 165, 255),    //----- 202
              System.Drawing.Color.FromArgb(145, 82, 165, 255),    //----- 203
              System.Drawing.Color.FromArgb(95, 0, 127, 255),    //----- 204
              System.Drawing.Color.FromArgb(111, 63, 127, 255),    //----- 205
              System.Drawing.Color.FromArgb(57, 0, 76, 255),    //----- 206
              System.Drawing.Color.FromArgb(66, 38, 76, 255),    //----- 207
              System.Drawing.Color.FromArgb(28, 0, 38, 255),    //----- 208
              System.Drawing.Color.FromArgb(33, 19, 38, 255),    //----- 209
              System.Drawing.Color.FromArgb(255, 0, 255, 255),    //----- 210
              System.Drawing.Color.FromArgb(255, 127, 255, 255),//----- 211
              System.Drawing.Color.FromArgb(165, 0, 165, 255),    //----- 212
              System.Drawing.Color.FromArgb(165, 82, 165, 255),    //----- 213
              System.Drawing.Color.FromArgb(127, 0, 127, 255),    //----- 214
              System.Drawing.Color.FromArgb(127, 63, 127, 255),    //----- 215
              System.Drawing.Color.FromArgb(76, 0, 76, 255),    //----- 216
              System.Drawing.Color.FromArgb(76, 38, 76, 255),    //----- 217
              System.Drawing.Color.FromArgb(38, 0, 38, 255),    //----- 218
              System.Drawing.Color.FromArgb(38, 19, 38, 255),    //----- 219
              System.Drawing.Color.FromArgb(255, 0, 191, 255),    //----- 220
              System.Drawing.Color.FromArgb(255, 127, 223, 255),//----- 221
              System.Drawing.Color.FromArgb(165, 0, 124, 255),    //----- 222
              System.Drawing.Color.FromArgb(165, 82, 145, 255),    //----- 223
              System.Drawing.Color.FromArgb(127, 0, 95, 255),    //----- 224
              System.Drawing.Color.FromArgb(127, 63, 111, 255),    //----- 225
              System.Drawing.Color.FromArgb(76, 0, 57, 255),    //----- 226
              System.Drawing.Color.FromArgb(76, 38, 66, 255),    //----- 227
              System.Drawing.Color.FromArgb(38, 0, 28, 255),    //----- 228
              System.Drawing.Color.FromArgb(38, 19, 33, 255),    //----- 229
              System.Drawing.Color.FromArgb(255, 0, 127, 255),    //----- 230
              System.Drawing.Color.FromArgb(255, 127, 191, 255),//----- 231
              System.Drawing.Color.FromArgb(165, 0, 82, 255),    //----- 232
              System.Drawing.Color.FromArgb(165, 82, 124, 255),    //----- 233
              System.Drawing.Color.FromArgb(127, 0, 63, 255),    //----- 234
              System.Drawing.Color.FromArgb(127, 63, 95, 255),    //----- 235
              System.Drawing.Color.FromArgb(76, 0, 38, 255),    //----- 236
              System.Drawing.Color.FromArgb(76, 38, 57, 255),    //----- 237
              System.Drawing.Color.FromArgb(38, 0, 19, 255),    //----- 238
              System.Drawing.Color.FromArgb(38, 19, 28, 255),    //----- 239
              System.Drawing.Color.FromArgb(255, 0, 63, 255),    //----- 240
              System.Drawing.Color.FromArgb(255, 127, 159, 255),//----- 241
              System.Drawing.Color.FromArgb(165, 0, 41, 255),    //----- 242
              System.Drawing.Color.FromArgb(165, 82, 103, 255),    //----- 243
              System.Drawing.Color.FromArgb(127, 0, 31, 255),    //----- 244
              System.Drawing.Color.FromArgb(127, 63, 79, 255),    //----- 245
              System.Drawing.Color.FromArgb(76, 0, 19, 255),    //----- 246
              System.Drawing.Color.FromArgb(76, 38, 47, 255),    //----- 247
              System.Drawing.Color.FromArgb(38, 0, 9, 255),        //----- 248
              System.Drawing.Color.FromArgb(38, 19, 23, 255),    //----- 249
              System.Drawing.Color.FromArgb(84, 84, 84, 255),    //----- 250
              System.Drawing.Color.FromArgb(118, 118, 118, 255),//----- 251
              System.Drawing.Color.FromArgb(152, 152, 152, 255),//----- 252
              System.Drawing.Color.FromArgb(186, 186, 186, 255),//----- 253
              System.Drawing.Color.FromArgb(220, 220, 220, 255),//----- 254
              System.Drawing.Color.FromArgb(255, 255, 255, 255),//----- 255
            };
        public static bool GetActiveViewPortInfo(ref double height, ref double width, ref Point3d target, ref Vector3d viewDir, ref double viewTwist, bool getViewCenter)
        {
            // get the editor object
            Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
            ed.UpdateTiledViewportsInDatabase();
            Database db = HostApplicationServices.WorkingDatabase;
            using (Transaction t = db.TransactionManager.StartTransaction())
            {
                ViewportTable vt = (ViewportTable)t.GetObject(db.ViewportTableId, OpenMode.ForRead);
                ViewportTableRecord btr = (ViewportTableRecord)t.GetObject(vt[GsUtility.strActive], OpenMode.ForRead);
                height = btr.Height;
                width = btr.Width;
                target = btr.Target;
                viewDir = btr.ViewDirection;
                viewTwist = btr.ViewTwist;
               
                t.Commit();
            }
            return true;
        }
        public class RubberbandRectangle
        {
            public enum PenStyles
            {
                PS_SOLID = 0,
                PS_DASH = 1,
                PS_DOT = 2,
                PS_DASHDOT = 3,
                PS_DASHDOTDOT = 4
            }
            // These values come from the larger set of defines in WinGDI.h,
            // but are all that are needed for this application.  If this class
            // is expanded for more generic rectangle drawing, they should be
            // replaced by enums from those sets of defones.
            private int NULL_BRUSH = 5;
            private int R2_XORPEN = 7;
            private PenStyles penStyle;
            private int BLACK_PEN = 0;
            // Default contructor - sets member fields
            public RubberbandRectangle()
            {
                penStyle = PenStyles.PS_DOT;
            }
            // penStyles property get/set.
            public PenStyles PenStyle
            {
                get { return penStyle; }
                set { penStyle = value; }
            }
            public void DrawXORRectangle(Graphics grp, System.Drawing.Point startPt, System.Drawing.Point endPt)
            {
                int X1 = startPt.X;
                int Y1 = startPt.Y;
                int X2 = endPt.X;
                int Y2 = endPt.Y;
                // Extract the Win32 HDC from the Graphics object supplied.
                IntPtr hdc = grp.GetHdc();
                // Create a pen with a dotted style to draw the border of the
                // rectangle.
                IntPtr gdiPen = CreatePen(penStyle,
                              1, BLACK_PEN);
                // Set the ROP cdrawint mode to XOR.
                SetROP2(hdc, R2_XORPEN);
                // Select the pen into the device context.
                IntPtr oldPen = SelectObject(hdc, gdiPen);
                // Create a stock NULL_BRUSH brush and select it into the device
                // context so that the rectangle isn't filled.
                IntPtr oldBrush = SelectObject(hdc,
                                     GetStockObject(NULL_BRUSH));
                // Now XOR the hollow rectangle on the Graphics object with
                // a dotted outline.
                Rectangle(hdc, X1, Y1, X2, Y2);
                // Put the old stuff back where it was.
                SelectObject(hdc, oldBrush); // no need to delete a stock object
                SelectObject(hdc, oldPen);
                DeleteObject(gdiPen);  // but we do need to delete the pen
                // Return the device context to Windows.
                grp.ReleaseHdc(hdc);
            }
            // Use Interop to call the corresponding Win32 GDI functions
            [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
            private static extern int SetROP2(
                    IntPtr hdc,  // Handle to a Win32 device context
                    int enDrawMode // Drawing mode
                    );
            [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
            private static extern IntPtr CreatePen(
                    PenStyles enPenStyle, // Pen style from enum PenStyles
                    int nWidth,    // Width of pen
                    int crColor    // Color of pen
                    );
            [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
            private static extern bool DeleteObject(
                    IntPtr hObject // Win32 GDI handle to object to delete
                    );
            [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
            private static extern IntPtr SelectObject(
                    IntPtr hdc,  // Win32 GDI device context
                    IntPtr hObject // Win32 GDI handle to object to select
                    );
            [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
            private static extern void Rectangle(
                    IntPtr hdc,   // Handle to a Win32 device context
                    int X1,    // x-coordinate of top left corner
                    int Y1,    // y-cordinate of top left corner
                    int X2,    // x-coordinate of bottom right corner
                    int Y2    // y-coordinate of bottm right corner
                    );
            [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
            private static extern IntPtr GetStockObject(
                    int brStyle // Selected from the WinGDI.h BrushStyles enum
                    );
            // C# version of Win32 RGB macro
            private static int RGB(int R, int G, int B)
            {
                return (R | (G 复制代码
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-1-18 12:46:00 | 显示全部楼层
强!顶~!终于开源了嘿嘿!
回复

使用道具 举报

18

主题

174

帖子

11

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
244
发表于 2010-1-18 17:22:00 | 显示全部楼层
附上选择实体输出jpg文件的例子
  1.         [CommandMethod("t1")]
  2.         public void Test1()
  3.         {
  4.             PromptSelectionResult res = Helper.Editor.GetSelection();
  5.             if (res.Status == PromptStatus.OK)
  6.             {
  7.                 using (DBTransaction tr = new DBTransaction())
  8.                 {
  9.                     List ents = new List();
  10.                     foreach (ObjectId id in res.Value.GetObjectIds())
  11.                     {
  12.                         Entity ent = (Entity)tr.GetObject(id, OpenMode.ForRead);
  13.                         ents.Add((Entity)ent.Clone());
  14.                     }
  15.                     using (BlockPreviewManager bps = new BlockPreviewManager())
  16.                     {
  17.                         BlockPreview bp = bps.Add(ents);
  18.                         bp.Save("d:\\1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
  19.                     }
  20.                 }
  21.             }
  22.         }
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-1-18 17:37:00 | 显示全部楼层
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:guksry3523m.rar 
下载次数:0  文件大小:96.67 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]


感谢雪山飞狐  这是代码vs2005+AutoCAD2007(较原创有稍许改动)   执行t1命令可将当前选择对象保存到d:\1.jpg   
我试过了
回复

使用道具 举报

23

主题

122

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
214
发表于 2010-5-8 09:52:00 | 显示全部楼层
看看先,不知道是不是我想要的,能给图就好了
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
1
发表于 2010-8-24 11:12:00 | 显示全部楼层
贴图这里有的


回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-8-24 11:54:00 | 显示全部楼层
飞狐出品,必是精品!顶你,老大!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 01:15 , Processed in 0.370434 second(s), 77 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表