明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4112|回复: 3

[讨论]dwg转shp文件

[复制链接]
发表于 2009-11-10 10:03:00 | 显示全部楼层 |阅读模式

下面是从网上拷贝来的,大家还有更好的方法吗?

dwg to shp 制作流程

引用:http://www.geochina.net/archiver/tid-664.html

Dwg 图转换为Shp 图操作流程

    一直搞AO二次开发,很少有时间来做数据处理工作。最近要把一些DWG图转换为SHP格式的文件,闲暇无事,就把操作过程总结了一下,与感兴趣的朋友分享。

我们将使用到如下的软件:
    AutoDesk Map 2004
    ArcView 3.3
    ArcGis WorkStation 8.3 (ArcToolBox)
    Visual Foxpro 6.0
    (要安装的软件还真多呀!)
    以下将分步讲解,懒得截图了,大家就将就看吧。
一、CAD 图处理
    1.新建"A_完成编辑的DWG"文件夹;
    2.打开待处理的DWG文件;
    3.删除多余对象,如填充线,图廓外信息等;
    4.编辑文本。将分散的文本集合成一个对象,如:"文" "明" "路" 三个对象合为 "文明路" 一个对象,将多余的两个注记文本删除;
    5.封闭多边形。对于没有闭合的房屋、闭合的公路等多边形实体进行闭合检查及处理;
    6.块重绘。对于块需要炸开再重绘,重绘对象所属的图层要与原来该块所属的图层一致;
    7.确认编辑完成后,将文件另存为工作目录的"A_完成编辑的DWG"文件夹中,名称为默认的文件名;
    8.如果还有需要进行初步处理的DWG文件,重复上述的2-7步。

二、接边及分层
    1.新建"B_接边DWG"文件夹目录;
    2.打开CADMap 新建工程,将当前工程保存在工作目录的"B_接边DWG"文件夹中,命名为"All.DWG";
    3.在"工程"区域的制图中,用Attach工具将处理好的所有单幅CAD图添加到工程中,先用Quick View 显示每幅图,再用 Zoom Extents 定位视图。
    4.建立Current Query,选择 Location >>All,即定义查询区域为全图;
    5.将单幅图Detach出去;
    6.对查询结果进行编辑,处理图幅接边地带的地物;
    7.以客户要求或制图的要求为标准,对地物进行分层;将公路、铁路等线状地物,地名注记、水系注记等文本注记,房屋等多边形依次分层。
    8.保存图形。

    说明:
       以上的接边工作(3-5)也可以使用下面的方式来处理:

    3.将所有需要接边的单幅DWG文件加载到CADMAP中。
    4.对每一单幅,使其激活为当前编辑文件,使用 CTRL+A 命令选择所有的对象,点击复制命令,然后使用All.DWG激活为当前编辑图形,在图形中点击右键,选择"粘贴到原坐标"命令,将单幅图复制到All.Dwg中;
    5.重复第4步,将所有单幅图都通过"Ctrl+A"->复制->粘贴到原坐标添加到All.Dwg中。关闭所有单幅DWG图形。

三、大地定向
    1.新建"C_大地定向DWG"文件夹;
    2.将接边后的图打开,然后另存在"C_大地定向DWG"文件夹中;
    3.选定两个定位基准点,即定向控制点,一般选取在图幅左下角及右上角两个点,拾取基准点,获取其直角坐标系中的坐标;
    4.使用高斯坐标转换工具,转换成大地坐标,以度为单位;
    5.使用 AutoMap 中的 "Tools"->"Transform" 开始转换: 命令行: select<Layer> 选取转换的图层,或回车不选取;命令行:Layer to Transform 回车(默认全部层都转换),选取第一个基准点,输入新的大地坐标,选取第二个基准点,输入对应的大地坐标,确认后开始转换;

四、导出线层、点层及文本层等为Shp文件
    1.新建"Shapes"文件夹;
    2.确让要导出图层没有错误后,用 CADMAP >> Map >>Tools >> Export 工具将大地定向后的 CAD 图的点、线、文本注记层分别导出为对应的Shp 文件格式,输出的文件存储到"Shapes"文件夹中;
    3.用Visual FoxPro 6 打开 "Shapes" 文件夹中各矢量文件的 DBF 文件,根据客户需要添加或修改字段,如 name ,textlabel等;经常用到的命令有 update 、modify 等...
    4.可以对需要编辑处理的数据进行处理,如添加数据等操作;
    5.重复每3-4步,处理所有需要处理的DBF 文件。

五、导出面层为Shp文件(线型)
    1.新建"D_AutoMap输出dxf"文件夹;
    2.在"C_大地定向DWG"文件夹中打开大地定向后的dwg文件,然后另存为 R12 DXF 文件到 "D_AutoMap输出dxf"文件夹,名称为All.dxf;
    3.新建"E_ArcView输出Shp"文件夹;
    4.用ArcView 3.3 打开 "All.dxf" 文件,使用 "Convert to Shapefile" 将 dxf 转换为 shp 文件并保存到 "E_ArcView" 文件夹,名称为:All.shp;

六、转换成 Coverag 文件(面)
    1.用 ArcToolBox >> Shp to Coverage 工具将 All.shp 转换为 Line Coverage 文件格式: All_Cov;
    2.用 ArcToolBox >> Clean 工具将 All_cov 处理为 Polygon Coverage文件格式: All_Cov_Clean;

七、转换为Shp 文件(面)
    1.新建"F_ArcView 输出Top 后的Shp" 文件夹;
    2.用ArcView 打开 All_Cov_Clean ,然后用 Convert to Shapefile 将其转换为 All_poly.shp 文件,并保存到"F_ArcView 输出Top 后的Shp" 文件夹中,关闭ArcView;
    3.新建"G_字段修改后的Shp"文件夹;
    4.将"F_ArcView 输出Top 后的Shp"文件夹中的文件复制一个到"G_字段修改后的Shp"文件夹;
    5.用Visual FoxPro 6 打开 "F_ArcView 输出Top 后的Shp" 文件夹中的 All_poly.dbf文件;
    6.根据客户要求增添或修改字段;并建立一个字段用于对Poly 进行分层,如: type 字段;
    7.使用 update 表名 set type ="XX" 命令将 type 值全部赋为地物最多图层的描述,如:Building;

八、分层
    1.新建"H_分层"文件夹;
    2.将"G_字段修改后的Shp"文件夹中的文件复制到"H_分层"文件夹中;
    3.用ArcView 打开"H_分层"文件夹中的shp 文件,并保存工程到该文件夹,名称为"分层.apr";
    4.按Type字段分层配置图例,参照"C_大地定向DWG"文件夹中的dwg文件对地物分层,将其type 字段值设为相对应的图层描述;
    5.分层完成后,使用ArcView的查询工具将每一层查询出来,并用Convert to Shapefile 转换为对应图层的SHP文件格式,将转换出来的文件存储到"Shapes"文件夹中。

    如果您找不到 ArcView 3.3 或 Arcgis Workstation 8.3 ,也可以使用ArcGis 9 来完成。时间有限,懒是配图,大家有兴趣的就将就看吧。使用ArcView 3.3 主要是考虑到软件体积比Arcgis9 小,而占用内存要少,命令也简单直接一点。不过我还是喜欢在ArcGis 9 + AutoCAD map 2004 + Visual Foxpro 6 来处理。

    如: arcview 3.3 中的 Convert to shape 命令,可以用 arcmap 9 中的 TOC 视图中的 图层名称上击右键: 数据>> 导出数据 命令来完成;ArctoolBox 中的 Clean 命令,可以用arcmap 9 中的 菜单 窗口>>命令行 打开命令行操作窗口,并通过 clean 命令完成....

发表于 2011-5-8 11:28:46 | 显示全部楼层
发表于 2011-5-9 10:40:16 | 显示全部楼层
用FME呀
发表于 2011-5-9 15:18:32 | 显示全部楼层
FME二次开发不好弄
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 21:50 , Processed in 0.159940 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表