全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学教育与临床实践的国际化人才培养
- 护理管理人员职责
- 售后服务转让协议书范文
- 医学影像科多学科会诊小组协作效率
- 物流女生就业方向指南
- 职业分析报告模板
- 苏州设计人才就业前景
- 《运筹学》-课程实践S1
- 课时1 平方根的概念及计算课件 2025-2026学年人教版数学七年级下册
- 医学区块链研究摘要的海牌视觉表达
- 《城轨供电系统继电保护与二次回路》电子教案 26地铁典型牵引站保护配置
- 管工中级考试操作试题及答案
- 水土保持学余新晓课件
- 高层建筑结构的体系布置教案
- 2025年烟台南山单招试题及答案
- 淋浴房技术知识培训内容
- 静心主题班会课件:拒绝浮躁静心学习
- 盐酸多奈哌齐课件
- 2025年高考真题-生物(浙江卷) 含答案
- 绿色园区评价要求
- 化验室复工安全培训课件
评论
0/150
提交评论