ArcEngine_CAD_查看CAD文件(1)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.DataSourcesFile;
using ESRI.ArcGIS.Geodatabase;

namespace ArcGisCAD
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void viewCAD_btn_Click(object sender, EventArgs e)
        {
            OpenFileDialog openDlg = new OpenFileDialog();
            openDlg.Title = "打开CAD文件";
            openDlg.Filter = "AutoCAD文件(*.dwg)|*.dwg|(*.dxf)|*.dxf";
            if (openDlg.ShowDialog() == DialogResult.OK)
            {
                //CAD文件路径,例如:D:temp\
                string worksapcePath = 
                    openDlg.FileName.Substring(0, openDlg.FileName.LastIndexOf("\\") + 1);
                string fileName = openDlg.FileName.Substring(openDlg.FileName.LastIndexOf("\\")+1);
                //将CAD文件添加到mapcontrol中
                ICadDrawingDataset cadDrawingDataset =
                    CADClass.GetCADDataset(worksapcePath, fileName);
                if (cadDrawingDataset == null)
                {
                    return;
                }
                ICadLayer cadLayer = new CadLayerClass();
                cadLayer.CadDrawingDataset = cadDrawingDataset;
                cadLayer.Name = fileName;
                axMapControl1.AddLayer(cadLayer, 0);

                axMapControl1.Extent = axMapControl1.FullExtent;
                    
            }
        }

        private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
        {
            
            if (e.button == 1)
            {
                //若是左键,使用矩形框框选放大部位
                axMapControl1.Extent = axMapControl1.TrackRectangle();
            }
            else
            {
                //鼠标滚轴或右键,移动图形
                axMapControl1.Pan();
            }
        }
        
    }
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.DataSourcesFile;
using ESRI.ArcGIS.Geodatabase;

namespace ArcGisCAD
{
    class CADClass
    {
        /// <summary>
        /// 获取CAD数据集
        /// </summary>
        /// <param name="workspacePath">CAD文件路径</param>
        /// <param name="fileName">cad文件名称(带文件扩展名)</param>
        /// <returns></returns>
        public static ICadDrawingDataset GetCADDataset(string workspacePath, string fileName)
        { 
            //创建一个 WorkspaceName
            IWorkspaceName workspaceName = new WorkspaceNameClass();
            workspaceName.WorkspaceFactoryProgID =
                "esriDataSourcesFile.CadWorkspaceFactory";
            workspaceName.PathName = workspacePath;

            //创建一个 CADDrawingName 
            IDatasetName cadDatasetName = new CadDrawingNameClass();
            cadDatasetName.Name = fileName;
            cadDatasetName.WorkspaceName = workspaceName;

            //打开CAD
            IName name = (IName)cadDatasetName;
            return (ICadDrawingDataset)name.Open();
        }
    }
}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ARCGIS的数据转换CAD流程(2009-04-23 09:10:44)标签:it 分类:GIS及相关专业技术 工作中,一点点摸索,终于能够导出CAD图了,感谢我的姐姐,一起分享收获的快乐: GIS数据导出CAD流程 1、 打开GIS系统,在TOC中的layers右键属性→general→reference scale→输入1000(CAD中要求字体越小,这个数也越小,经验),→确定 2、 选中作要范围的图层数据。法一、用DRAW工具条中的New Rectangle 或New Polygon 在图上画出范围,单击菜单selection的select by Graphics工具,即可选中所要范围的数据图层。法二、直接使用标准工具条中的select Features工具,选出所要范围数据。法三、另建一*.shp图层(polygon),画出所要求范围(多边形),然后运用菜单selection的select by location工具进行选择。 前提:所需的各层数据都可选择。(Set Selectable layers 进行选择) 3、 图层标注的文字属性导出。右键→属性,首先保证label选中。单击Convert labels to Annotation,打开对话框,store Annotation 选 in a database, Create Annotation for 选择selected features, 将下面表格里的feature linked的√去掉,此时出现文件夹图标,选择保存位置。确定。(默认为该图层所在的文件位置) 4、 所选图层数据保存到新建的Database里。 5、 打开ArcToolBox或者ArcCatalog,导出CAD文件 6、 打开导出的CAD文件,未看到图。单击全部缩放工具,此时出现一个白点,挪动,放大。看到点线面,而没有注记文字。 7、显示注记文字。关闭所有点线面图层,打开图层特性管理器,只保留注记层,确定。在点线面的位置圈选,可看到选中标记,颜色选择任何(除了纯白色纯黑色)颜色,将字体样式改为宋体。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值