ArcEngine打开AutoCAD文件的几种方法.doc_第1页
ArcEngine打开AutoCAD文件的几种方法.doc_第2页
ArcEngine打开AutoCAD文件的几种方法.doc_第3页
ArcEngine打开AutoCAD文件的几种方法.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ArcEngine 打开AutoCAD文件的几种方法方法一、 IWorkspaceFactory pWorkspaceFactory; IFeatureWorkspace pFeatureWorkspace; IFeatureLayer pFeatureLayer; IFeatureDataset pFeatureDataset; /打开CAD数据集 pWorkspaceFactory = new CadWorkspaceFactoryClass(); pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(directoryPath, 0); /打开一个要素集 pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(fileName); /IFeaturClassContainer可以管理IFeatureDataset中的每个要素类 IFeatureClassContainer pFeatureClassContainer = (IFeatureClassContainer)pFeatureDataset; /对CAD文件中的要素进行遍历处理 for (int i = 0; i pFeatureClassContainer.ClassCount - 1; i+) IFeatureClass pFeatureClass = pFeatureClassContainer.get_Class(i); if (pFeatureClass.FeatureType = esriFeatureType.esriFTAnnotation) /如果是注记,则添加注记层 pFeatureLayer = new CadAnnotationLayerClass(); else/如果是点、线、面,则添加要素层 pFeatureLayer = new FeatureLayerClass(); pFeatureLayer.Name = pFeatureClass.AliasName; pFeatureLayer.FeatureClass = pFeatureClass; this.axmc_Main.Map.AddLayer(pFeatureLayer); this.axmc_Main.ActiveView.*(); 方法二、 /-定义工作空间,并用CadWorkspaceFactoryClass()实例化它 IWorkspaceFactory pWorkspaceFactory = new CadWorkspaceFactoryClass(); /-打开相应的工作空间,并赋值给要素空间,OpenFromFile() /-中的参数为CAD文件夹的路径 IFeatureWorkspace pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(directoryPath, 0) as IFeatureWorkspace; /*-打开线要素类,如果要打开点类型的要素,需要把下边的代码该成: *- IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass (fileName + :point); *- 由此可见fileName为CAD图的名字,后边加上要打开的要素类的类型,中间用冒号 *- 隔开,大家可以想想多边形和标注是怎么打开的。 */ /point polyline IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass(fileName + :point); IFeatureLayer pFeatureLayer = new FeatureLayerClass(); pFeatureLayer.FeatureClass = pFeatureClass; this.axmc_Main.Map.AddLayer(pFeatureLayer); this.axmc_Main.ActiveView.*(); 方法三、 /*-下边的两行代码是定义一个CAD工作空间,然后打开它,但这次不是赋值给 -IFeatureWorkspace对象,而是赋值给IWorkspace定义的对象*/ IWorkspaceFactory pWorkspaceFactory = new CadWorkspaceFactoryClass(); IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(directoryPath, 0); /-定义一个CAD画图空间,并把上边打开的工作空间赋给它 ICadDrawingWorkspace pCadDrawingWorkspace = pWorkspace as ICadDrawingWorkspace; /-定义一个CAD的画图数据集,并且打开上边指定的工作空间中一幅CAD图 /-然后赋值给CAD数据集 ICadDrawingDataset pCadDrawingDataset = pCadDrawingWorkspace.OpenCadDrawingDataset(fileName); /-通过ICadLayer类,把上边得到的CAD数据局赋值给ICadLayer类对象的 /-CadDrawingDataset属性 ICadLayer pCadLayer = new CadLayerClass(); pCadLayer.CadDrawingDataset = pCadDrawingDataset; /-利用MapControl加载CAD层 this.axmc_Main.Map.AddLayer(pCadLayer); this.axmc_Main.ActiveView.*();方法四、 IWorkspaceFactory pWorkspaceFactory = new CadWorkspaceFactoryClass(); IFeatureWorkspace pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(directoryPath, 0) as IFeatureWorkspace; IFeatureDataset pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(fileName); IFeatureClassContainer pFeatureClassContainer = (IFeatureClassContainer)pFeatureDataset; for (int i = 0; i pFeatureClassContainer.ClassCount - 1; i+) IFeatureClass pFeatureClass = pFeatureClassContainer.get_Class(i); IFeatureLayer pFeatureLayer = new FeatureLayerClass(); pFeatureLayer.FeatureClass = pFeatureClass; /ICadLayer pCadLayer = new CadLayerClass(); /pCadLayer = pFeatureLayer as ICadLayer; this.axmc_Main.Map.AddLayer(pFeatureLayer); this.axmc_Main.ActiveView.*(); 方法五、 /Add passed file to MapControl ICadDrawingDataset pCadDrawingDataset = GetCadDrawingDataset(directoryPath, fileName); if (pCadDrawingDataset = null) return; ICadLayer pCadLayer = new CadLayerClass(); pCadLayer.CadDrawingDataset = pCadDrawingDataset; pCadLayer.Name = fileName; this.axmc_Main.AddLayer(pCadLayer, 0); / / 获取记录集 / / / / private ICadDrawingDataset GetCadDrawingDataset(string directoryPath, string fileName) /Create a WorkspaceName object IWorkspaceName pWorkspaceName = new WorkspaceNameClass(); pWorkspaceName.WorkspaceFactoryProgID = esriDataSourcesFile.CadWorkspaceFactory; pWorkspaceName.PathName = directoryPath; /Create a CadDrawingName object IDatasetName pDataset

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论