C#ObjectArx Cad将图形范围缩放至指定实体

先上代码(亲测可用):

 /// <summary>
        /// 定位缩放值指定实体
        /// </summary>
        /// <param name="oid"></param>
        public static void Orientate(ObjectId oid)
        {
            try
            {
                Entity current_entity = GetEntity(oid);

                current_entity.Highlight();//高亮显示实体 

                //缩放至实体
                ZoomToExtent(current_entity.GeometricExtents);
            }
            catch (Exception ex)
            {

                throw;
            }
          
        }

        /// <summary>
        /// 缩放至指定范围
        /// </summary>
        /// <param name="extent"></param>
        public static void ZoomToExtent(Extents3d extent)
        {
            try
            {

                Point3d pMin = extent.MinPoint;

                Point3d pMax = extent.MaxPoint;

                //获取当前文档及数据库
                Document acDoc = Application.DocumentManager.MdiActiveDocument;

                Database acCurDb = acDoc.Database;

                // 启动事务
                using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
                {
                    // 获取当前视图
                    using (ViewTableRecord acView = acDoc.Editor.GetCurrentView())
                    {
                        //设置视图的高
                        acView.Height = Math.Abs(pMin.Y - pMax.Y);

                        //设置视图的宽
                        acView.Width = Math.Abs(pMin.X - pMax.X);

                        // 设置视图中心
                        acView.CenterPoint = new Point2d((pMin.X+pMax.X)/2, (pMin.Y+pMax.Y)/2);

                        // 更新当前视图
                        acDoc.Editor.SetCurrentView(acView);

                    }
                    // 提交更改
                    acTrans.Commit();
                }
            }
            catch (Exception)
            {

                throw;
            }
        }

我有一个功能是做检查功能得,检查结果为一个DataTable显示在DataGridView中,我要实现双击行定位缩放到指定实体。

DataGridView显示了除过oid(ObjectID.ToString())得其它字段,双击行由于id唯一,我们可以找到这个对象拿到oid,通过上一篇文章可以获取ObjectID实体然后进行缩放定位。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值