• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

gisoracle

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

成功在C#和VB中将shp转换为CAD

C#中:
1、首先,添加一个LicenseControl,如图所示, 。在上面点击右键选择属性,在弹出的属性窗体上选择如下:选中ArcInfo即可,其余都不选。右侧的Extention可选。

2、然后再在菜单栏上选择“项目”——“Add ArcGIS Reference…”,在弹出的窗体上添加引用ConversionTools,Geoprocessing,Geoprocessor,如下图所示:

3、在窗体上添加一个按钮,在窗体的代码窗口上输入下列代码:

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.ConversionTools;

 

using ESRI.ArcGIS.Display;

 

using ESRI.ArcGIS.esriSystem;

 

using ESRI.ArcGIS.Geoprocessor;

 

using ESRI.ArcGIS.Geoprocessing;

 

using ESRI.ArcGIS.Geometry;

 

using ESRI.ArcGIS.Output;

 

 

 

namespace WindowsApplication1

 

{

 


public partial class Form1 : Form

 


{

 


public Form1()

 


{

 


InitializeComponent();

 


}

 

 



private void button1_Click(object sender, EventArgs e)

 


{

 


Geoprocessor GP = new Geoprocessor();

 

 


ExportCAD GPexport = new ExportCAD();

 


GPexport.Output_File = @"F:\XZY\Test\D111.dxf";
//
输出的文件名

 


GPexport.Output_Type = "DXF_R2000";
//
输出的文件类型

 


GPexport.in_features = @"F:\XZY\Test\q.shp";
//
源文件

 


GP.Execute(GPexport, null);

 

 


MessageBox.Show("
转换完成!");

 

 


}

 


}

 

}
本机安装有VS2005,ArcInfo 9.2,ArcEngine 9.2 for .Net,在本机上测试运行成功!

VB.Net中:
第一步和第二步同C#相同,只是代码不同,如下:

Public Class Form1

 

 


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 

 

 


Dim gp As ESRI.ArcGIS.Geoprocessor.Geoprocessor = New ESRI.ArcGIS.Geoprocessor.Geoprocessor()

 

 


Dim pExptoCAD As ExportCAD = New ExportCAD()

 


pExptoCAD.in_features = "F:\XZY\Test\q.shp"

 


pExptoCAD.Output_File = "F:\XZY\Test\VB1.dwg"

 


pExptoCAD.Output_Type = "DWG_R2004"

 


gp.Execute(pExptoCAD, Nothing)

 


MsgBox("OK!")

 

 


End Sub

 

End Class

值得注意的是:Geoprocessor这个类在ESRI.ArcGIS.Geoprocessor和ESRI.ArcGIS.Geoprocessing中都有,如果不指定的话,在VB.Net中默认为ESRI.ArcGIS.Geoprocessing,将无法实现。在C# 中也是同样的问题,但是在C# 中可以在执行方法的时候人为的指定它的重载函数。
来自:http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=32692&extra=pageD1&page=1

posted on 2009-07-31 14:54  gisai  阅读(2487)  评论(1)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3