明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 844|回复: 0

鼠标拉框事件问题

[复制链接]
发表于 2015-7-22 09:16:59 | 显示全部楼层 |阅读模式
鼠标拉框后  1 绘制出这个框
2 不让entity被选中
下面代码有异常,框没有绘制出来,另外 2 没有解决
全局变量   Point3d startPt;
    Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.PromptingForCorner += new PromptPointOptionsEventHandler(Editor_PromptingForCorner);
            Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.PromptedForCorner += new PromptPointResultEventHandler(Editor_PromptedForCorner);
   void Editor_PromptingForCorner(object sender, PromptPointOptionsEventArgs e)
        {
            startPt = e.Options.BasePoint;
        }
  void Editor_PromptedForCorner(object sender, PromptPointResultEventArgs e)
        {
            Point3d endPt = e.Result.Value;
            Editor ed=Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
            //Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog(startPt.X.ToString() + ":" + startPt.Y.ToString() + ":" + endPt.X.ToString());
            //PromptSelectionResult res = ed.SelectImplied();
            //if (res.Status != PromptStatus.OK) return;
            //if (res.Value.Count == 0) return;
            //Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("d2d");
            Database db = ed.Document.Database;
            Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager;
            using (Transaction tr = tm.StartTransaction())
            {
               
                Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("d1d");
                BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForWrite);
                BlockTableRecord btr = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
                Polyline entity = new Polyline();
                //之前的代码出现异常
                Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("d2d");
                entity.AddVertexAt(entity.NumberOfVertices, new Point2d(startPt.X, startPt.Y), 0, -1, -1);
                entity.AddVertexAt(entity.NumberOfVertices, new Point2d(endPt.X, startPt.Y), 0, -1, -1);
                entity.AddVertexAt(entity.NumberOfVertices, new Point2d(endPt.X, endPt.Y), 0, -1, -1);
                entity.AddVertexAt(entity.NumberOfVertices, new Point2d(startPt.X, endPt.Y), 0, -1, -1);
                Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("d3d");
                entity.Closed = true;
                entity.ColorIndex = 1;
                entity.LineWeight = LineWeight.LineWeight005;
                //entity.Layer = layername;// layer.Name;
                btr.AppendEntity(entity);
                tr.AddNewlyCreatedDBObject(entity, true);
                Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("d4d");
                //for (int i = 0; i < res.Value.Count; i++)
                //{
                //    Entity entity = tr.GetObject(res.Value[i].ObjectId, OpenMode.ForWrite) as Entity;
                //    entity.Unhighlight();
                //    Autodesk.AutoCAD.ApplicationServices.Application.UpdateScreen();
                //}
                tr.Commit();
            }
           
        }

各位大神,帮助看下。谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 10:58 , Processed in 0.154152 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表