zoukankan      html  css  js  c++  java
  • Cad 二次开发关于SelectCrossingPolygon和SelectFence返回结果Status为error的小测试

      CAD2008的二次开发,有个很奇怪的现象,只要你选择的点集不在当前视图上SelectCrossingPolygon和SelectFence返回结果Status就会为error,所以要获取正确的结果,在操作前最好全屏缩放一下!

      小测试:

            [CommandMethod("TestPromptSelectionResult")]
            public void TestPromptSelectionResult()
            {
                Point3dCollection pt3dCol = new Point3dCollection();
                pt3dCol.Add(new Point3d(486750, 2538400, 0));
                pt3dCol.Add(new Point3d(487000, 2538400, 0));
                pt3dCol.Add(new Point3d(487000, 2538600, 0));
                pt3dCol.Add(new Point3d(486750, 2538600, 0));
                pt3dCol.Add(new Point3d(486750, 2538400, 0));
                Document doc =  Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
                PromptSelectionResult psrss = doc.Editor.SelectFence(pt3dCol);
                //if (psrss.Status != PromptStatus.OK)
                    MessageBox.Show(psrss.Status.ToString());
                Polyline pl = new Polyline();
                for (int i = 0; i < pt3dCol.Count; i++)
                {
                    //添加多段线的顶点
                    pl.AddVertexAt(i, new Point2d(pt3dCol[i].X, pt3dCol[i].Y), 0, 0, 0);
                }
                CadDatabase.AppendToModelSpace(pl, doc.Database);
            }

    最后你只要看到那个多段线,再打入命令TestPromptSelectionResult就会返回OK,个人认为是c#Cad二次开发的一下Bug,求大神打我脸!

  • 相关阅读:
    Jersey Politics
    网络流——最小费用最大流
    网络流——最大流Dinic算法
    【洛谷2756】飞行员配对方案问题(二分图匹配,网络流24题)
    状压dp入门
    2018九江市赛
    [CQOI2007]余数求和
    CSAPC2008 skyline
    [ZJOI2009]函数 题解
    由不定方程想到的——数论选讲
  • 原文地址:https://www.cnblogs.com/baofengyu/p/5981136.html
Copyright © 2011-2022 走看看