📄 exportdxf.cs
字号:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.ADF.BaseClasses;
using ESRI.ArcGIS.ADF.CATIDs;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Carto;
using Studioat.ArcGIS.Engine;
using System.IO;
//Author: Domenico Ciavarella
//www.studioat.it
namespace Studioat.ArcGIS.Engine.AppBase.Commands
{
public sealed class ExportDXF : BaseCommand
{
IHookHelper m_hookHelper = null;
public ExportDXF()
{
}
#region Overriden Class Methods
public override string Tooltip
{
get
{
return "Export DXF";
}
}
public override string Caption
{
get
{
return "Export DXF";
}
}
public override string Message
{
get
{
return "Export DXF";
}
}
public override void OnCreate(object hook)
{
if (hook == null)
return;
try
{
m_hookHelper = new HookHelperClass();
m_hookHelper.Hook = hook;
if (m_hookHelper.ActiveView == null)
m_hookHelper = null;
}
catch
{
m_hookHelper = null;
}
if (m_hookHelper == null)
base.m_enabled = false;
else
base.m_enabled = true;
}
public override void OnClick()
{
if (null == m_hookHelper)
return;
object hook = null;
if (m_hookHelper.Hook is IToolbarControl2)
{
hook = ((IToolbarControl2)m_hookHelper.Hook).Buddy;
}
else
{
hook = m_hookHelper.Hook;
}
object customProperty = null;
IMapControl3 mapControl = null;
if (hook is IMapControl3)
{
mapControl = (IMapControl3)hook;
customProperty = mapControl.CustomProperty;
}
else
return;
if (null == customProperty || !(customProperty is ILayer))
return;
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "DXF File|*.dxf";
saveFileDialog.Title = "Export layer in dxf";
saveFileDialog.RestoreDirectory = true;
saveFileDialog.FileName = System.IO.Path.Combine(saveFileDialog.InitialDirectory, ((ILayer)customProperty).Name + ".dxf");
DialogResult dr = saveFileDialog.ShowDialog();
if (saveFileDialog.FileName != string.Empty && dr == DialogResult.OK)
{
if (System.IO.File.Exists(saveFileDialog.FileName))
{
System.IO.File.Delete(saveFileDialog.FileName);
}
ILayer layer = customProperty as ILayer;
ConvertDXF dxf = new ConvertDXF(saveFileDialog.FileName, layer as IFeatureLayer);
dxf.completed += new ConvertDXF.OnCompleted(dxf_completed);
dxf.Convert();
}
}
void dxf_completed(object sender, ConvertDXFArgs e)
{
if (e.Result)
MessageBox.Show("Export success!");
else
MessageBox.Show("Export failed:" + e.Exception.Message);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -