现在的位置: 首页 > 综合 > 正文

AutoCAD二次开发之视图操作(3)指定视图大小和中心点来设置视图

2014年09月05日 ⁄ 综合 ⁄ 共 1884字 ⁄ 字号 评论关闭

 

此方法实现通过指定三维点和视图长宽,设置视图。

注:该方法显示的是俯视视角设置视图

vtr.CenterPoint = new Point2d(vp.X, vp.Y);

如果直接使用,请注意。

因核心处理代码相似。所以方法的说明请见上文。

 

  /// <summary>
        /// 给定观察点与边界值,进行视图显示
        /// </summary>
        /// <param name="vp">观察点</param>
        /// <param name="height">长度</param>
        /// <param name="width">宽度</param>
        public void VPoint(Point3d vp, Double height, Double width)
        {
         
            try
            {
               
                using (Database db = HostApplicationServices.WorkingDatabase)
                {
                  
                    using (Transaction trans = db.TransactionManager.StartTransaction())
                    {
                       
                        ViewTable vt = (ViewTable)trans.GetObject(db.ViewTableId, OpenMode.ForWrite);
                    
                        ViewTableRecord vtr = new ViewTableRecord();
                      
                        if (vt.Has("tempView"))
                        {
                        
                            vtr = (ViewTableRecord)trans.GetObject(vt["tempView"], OpenMode.ForWrite);
                        }
                        else
                        {
                           
                            vtr.Name = "tempView";
                            vt.Add(vtr);
                            trans.AddNewlyCreatedDBObject(vtr, true);
                        }
                   
                        vtr.CenterPoint = new Point2d(vp.X, vp.Y);
                     
                        vtr.Height = height;
                    
                        vtr.Width = width;
                   
                        trans.Commit();
                       
                        Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
                       
                        ed.SetCurrentView(vtr);
                    }
                }
            }
            finally
            {

            }

        }
如有问题:请加qq1419226548或QQmail给我。 若转载,请注明出处。谢谢。

 

抱歉!评论已关闭.