C# ile AutoCAD 2015 eklentileri geliştirme

AutoCAD 2015 için eklenti geliştirebilmek için ilk önce OrbjectARX kütüphanesini bilgisayarımıza yüklememiz gerekmektedir. ObjectARX indirme sayfasına girdiğimizde formu doldurup ObjectARX for AutoCAD 2015 (32-bit and 64-bit) seçeneğini seçerek kütüphaneyi bilgisayarımıza indirelim ve kurulumunu gerçekleştirelim.

Daha sonra Visual Studio için proje şablonunun kurulma işlemi var. AutoCAD 2015 .NET Wizards eklentisini http://images.autodesk.com/adsk/files/AutoCAD_2015-2016_DotNet_Wizards.zip adresinden indirip bilgisayarınıza kurabilirsiniz.

Kurulum işlemi bittikten sonra Visual Studio’yu çalıştıralım ve File -> New Project (CTRL + Shift + N) komutuna tıklayalım.

autocad-2015-visual-studio

Autodesk sekmesinin altında bulunan AutoCAD 2015 CSharp plugin‘i seçelim ve projemizi oluşturalım. OK tuşuna bastığımızda aşağıdaki gibi bir ekran gelecektir.

AutoCAD-dotnet-wizard-configurator

Specify the location of the folder inside the ObjectARX SDK that contains AcMgd.dll yazan bölüme ObjectARX’i kurduğumuz klasörün altında bulunan inc klasörünü gösteriyoruz. Benim bilgisayarımda C:\ObjectARX 2015\inc klasörü altında bulunmaktadır.

Specify the AutoCAD executable location yazan bölüme ise AutoCAD’i kurduğumuz klasörü yazıyoruz. Benim bilgisayarımda C:\Program Files\Autodesk\AutoCAD 2015 klasörü altında bulunmaktadır.

Bu değerleri girdikten sonra OK tuşuna basalım ve otomatik olarak projemizin ayarlarının yapılmasını bekleyelim. Projemiz oluşturulduğunda aşağıdaki gibi bir solution’ımız olacaktır.

autocad-solution-tree

myPlugin sınıfının altında Initialize ve Terminate isminde iki adet metodumuz bulunmaktadır.

Initialize metodu eklentimiz AutoCAD tarafından ilk yüklendiği zaman çalışacak olan metoddur.
Terminate metodu ise AutoCAD tarafından eklentiğimiz sonlandırıldığı zaman çalışacak olan metoddur. Eklentinin yüklenmesinde veya sonlandırılmasında çalışmasını istediğiniz kodları bu alanlara yazabilirsiniz.

myCommands sınıfında ise AutoCAD’in Command kısmında yazarak çalışmasını istediğimiz komutların çalışmasını sağlayan metodların olduğu yerdir.

Şimdi AutoCAD’in mesaj alanına Hello World yazan örnek kod yazalım. Örnek kodumuz aşağıdaki gibidir.

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
 
[assembly: CommandClass(typeof(AutoCAD_CSharp_plug_in1.MyCommands))]
 
namespace AutoCAD_CSharp_plug_in1
{
    public class MyCommands
    {
        [CommandMethod("HelloWorld")]
        public void HelloWorld()
        {
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Editor ed;
            if (doc != null)
            {
                ed = doc.Editor;
                ed.WriteMessage("Hello World AutoCAD :)");
 
            }
        }
    }
}

CommandName attribute’üne parametre olarak geçtiğimiz string ifade AutoCAD tarafında komutumuzun ismidir. Daha sonra Document tipinde, doc isminde bir değişken tanımlayarak AutoCAD tarafında aktif olan çizimin nesne örneğini alıyoruz ve WriteMessage metoduyla AutoCAD’in mesaj alanına mesajımızı yazdırıyoruz.

Şimdi Visual Studio üzerinde yazılımımızı çalıştıralım. Eğer kodlarımızda herhangi bir hata yoksa otomatik olarak AutoCAD’de açılacaktır. AutoCAD açıldıktan sonra Command paneline NETLOAD komutunu yazıp Enter tuşuna basalım.

autocad-command-panel

NETLOAD komutu .NET Framework ile geliştirilmiş AutoCAD eklentilerini AutoCAD tarafına yüklenmesini sağlamaktadır. Ekran dosya seçme ekranı gelecektir. Gelen ekranda projemizin derlenmiş DLL dosyasını seçelim.

choose-dotnet-assembly

Eğer Security Concern ekranı gelirse Load düğmesine basarak eklentinin yüklenmesini sağlayalım.

Yükleme sırasında herhangi bir problem oluşmadıysa Command Panel alanına HelloWorld yazalım.

command-panel-hello-world

Enter tuşuna bastığımızda mesaj penceresine Hello World AutoCAD 🙂 yazacaktır.

command-panel-hello-world-result

Ayrıca AutoCAD’in .NET Framework API’si ile ilgili daha fazla bilgi almak isterseniz bu sayfadan yararlanabilirsiniz.