⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exportdxf.cs

📁 arcengine开发的图层输出到dxf
💻 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 + -