DONATIPRO KÜTÜPHANESİNİ KULLANARAK C# İLE KENDİ DONATI ÇİZİM YAZILIMINIZI OLUŞTURUN!
Bildiğiniz gibi DonatıPro™ yazılımının AutoCAD içerisinde donatıları temsil eden “Akıllı Donatı” adını verdiğimiz özel bir çizim nesnesi var. Bu nesnenin (LINE, PLINE, CIRCLE) gibi diğer AutoCAD nesnelerinden hiçbir farkı yok. Hatta "Akıllı Donatı" nesnesi üzerinde tüm AutoCAD komutları rahatlıkla kullanılabiliyor. MOVE, ROTATE gibi basit düzenleme komutları donatı nesnesi özelliklerinde değişiklik yapmazken, STRETCH, COPY, ARRAY, FILLET gibi komutlar bu nesne üzerinde farklı etkileşim kuruyor.
Örneğin STRETCH komutu ile donatı nesnesinin boyunu değiştirdiğinizde bu değişiklik ilgili gönye boyu ve toplam boya yansıyor. Hatta tam boy demir uzunluğu geçilirse donatı nesnesinin gösterimi kullanıcıyı uyaracak şekilde değişiyor.
Kullanıcılarımızın büyük bir çoğunluğunu inşaat mühendisleri ve teknikerleri oluşturuyor. Birçoğu kendine özgü küçük ya da büyük ölçekli yardımcı yazılımlar yapıyorlar ya da yapmışlar. Eminiz ki bir kısmı da merak ediyordur: “Peki, nedir bu “Akıllı Donatı” nesnesi ve tüm bu sihir nasıl oluşuyor?”.
Bizim “Akıllı Donatı” adını verdiğimiz bu nesnenin AutoCAD içindeki adı TALREBAR. Bu nesneyi seçip özelliklerine baktığınızda, normal bir AutoCAD nesnesi gibi LAYER, COLOR özelliklerini taşıdığını, buna ilave olarak donatı nesnesine ait birçok özelliği de barındırdığını görürsünüz.
Şekil.1
Yani donatı nesnesini AutoCAD’de görebilmeniz ve kullanabilmeniz için bu iki eklentinin AutoCAD’e tanıtılmış olması gerekir. DonatıPro™ yazılımını satın alan ve bilgisayarlarına kuran ofislerde bu işlem otomatik olarak tamamlanmıştır. Bilgisayarında bu iki eklenti olmayan AutoCAD kullanıcıları bu nesneleri PROXY OBJECT olarak görebilirler. Ancak üzerinde bir düzenleme yapmaları mümkün olmaz.
Sizin için yaratılan Class1.cs dosyasının ismini DPKomut olarak değiştirin.
‘References’ altına accoremgd.dll, acdbmgd.dll, acmgd.dll dosyalarını ekleyin. Bu dosyalar AutoCAD 2015 dizini altında bulunmaktadır.
Yeni eklediğimiz bu üç dosyayı seçerek özelliklerinden ‘Copy Local=False’ yapın.
Şimdi başlamak için hazırız. Dosyamızın en üstüne gerekli modülleri #using direktifi ile ekleyelim.
Şu anda temel olarak AutoCAD ile bağlantı kurabilecek bir DLL dosyası ayarlarına ulaşmış olduk. Ancak AutoCAD’in bu dosyayı eklenti olarak tanıması için yapmamız gereken biraz daha iş var. Öncelikle bu modülün bir AutoCAD arabirimi olduğunu bildirmemiz gerekiyor. Lütfen aşağıdaki satırları dosyanıza ekleyin.
Son olarak bu modülü aynı zamanda yeni AutoCAD komutumuzu eklemek için kullanacağımızı belirlememiz gerekiyor. Bunun için de aşağıdaki satırı eklememiz gerekiyor.
Artık AutoCAD kısmı hazır hale geldiğine göre donatı nesnesini kullanmak için, Taliasoft tarafından hazırlanan .NET bağlacını referans listemize koyma zamanı geldi. Bu bağlaç dosyasının ismi TRebarNetW.dll. Bu dosya c:\Program Files\Talia\DPRO3-R20x dizini altında bulunmaktadır. Bu modül için ‘Copy Local=True’ olacak. Bu modülü de kullanmak için #using direktifimizi eklememiz gerekiyor.
Yavaş yavaş beklenen ana geliyoruz. Şimdi AutoCAD komutumuzu yaratarak ekrana bir donatı eklemeyi sağlayan kodu inceleyelim.
10. şekilde gördüğünüz fonksiyon tanımını DPKomut sınıf tanımımızın içerisine yazalım. Bu aşamada kodumuzu derlersek kullanıma hazır olacak. Ancak derlemeden önce hedef .NET sürümünü 4.5 yapmamız gerekiyor. Çünkü AutoCAD 2015 .Net modülleri .NET 4.5 ile yazılmıştır. Bunun için ‘solution explorer’ penceresinden projemizi seçip farenin sağ tuşu ile özelliklerine girerek giriş sekmesinden ‘Target Framework’ değerini 4.5 olarak değiştirmemiz gerekiyor.
Bu ayardan sonra projeyi derleyip deneyelim. Projeyi derlediğinizde Debug/Release dizini altında DPro.dll isminde bir dosya oluşacak. Bu dosyanın oluşup oluşmadığını kontrol edin. Eğer oluştuysa başardınız demektir. Ayrıca aynı dizinin altına TRebarNetW.dll dosyasının da kopyalandığından emin olun. AutoCAD içerisinden NETLOAD komutu ile bu dosyayı yükleyin. Eğer yükleme başarılı olduysa DONATIEKLE isminde yeni bir AutoCAD komutumuz oldu. Bu komutu çalıştırdığımızda 0,0 noktasından başlayan 0,55 ve 500,55 noktalarından geçen bir donatı nesnemiz olacak.
Bütün bu işlemler sırasında AutoCAD’in program yüklemek için güvenilir dizinler listesi, NETLOAD, VS 2013 derleme gibi işlemlere aşina olduğunuzu varsayıyorum. Eğer siz de ekranınızda yeni yaratılan donatı nesnesini görüyorsanız işlem tamam demektir.
Dikkat ettiyseniz yeni donatımızın çap ve demir adedi 0 (sıfır) olarak geldi. Bu değerler ve diğer donatı özelliklerini nesne özellikleri penceresinden değiştirebilirsiniz. Ama iyi programcılar olarak, bu değerlerin önceden girilmiş olmasını tercih ettiğinizi duyar gibiyim. Bu sebeple ‘Donati’ nesnesinin bir iki özelliğini kodumuza ekleyelim.
Donatı nesnesi için tanımladığımız ‘dnt’ değişkenini yazarak nokta işaretine bastığımızda tanımlanmış tüm donatı ve PLINE özellikleri otomatik kod tamamlayıcı tarafından listelenecektir.
Gelecek yazılarımızda programlanabilir özelliklerin birçoğundan bahsedeceğiz. Bu başlangıç bilgisinden sonra bir çoğunuzun bir iki haftasını vererek basit döşeme, kolon vb. komutları yazdığınızı görür gibi oluyorum. Zaten DonatıPRO yazılımını hazırlarken biz de aynı arabirimi kullanıp çok genel anlamda söylemek gerekirse oldukça uzun makrolar yazıyoruz C# dilinde.
Bir dahaki yazımıza kadar hepinize mutlu programlamalar dilerim.
Örneğin STRETCH komutu ile donatı nesnesinin boyunu değiştirdiğinizde bu değişiklik ilgili gönye boyu ve toplam boya yansıyor. Hatta tam boy demir uzunluğu geçilirse donatı nesnesinin gösterimi kullanıcıyı uyaracak şekilde değişiyor.
Kullanıcılarımızın büyük bir çoğunluğunu inşaat mühendisleri ve teknikerleri oluşturuyor. Birçoğu kendine özgü küçük ya da büyük ölçekli yardımcı yazılımlar yapıyorlar ya da yapmışlar. Eminiz ki bir kısmı da merak ediyordur: “Peki, nedir bu “Akıllı Donatı” nesnesi ve tüm bu sihir nasıl oluşuyor?”.
Bizim “Akıllı Donatı” adını verdiğimiz bu nesnenin AutoCAD içindeki adı TALREBAR. Bu nesneyi seçip özelliklerine baktığınızda, normal bir AutoCAD nesnesi gibi LAYER, COLOR özelliklerini taşıdığını, buna ilave olarak donatı nesnesine ait birçok özelliği de barındırdığını görürsünüz.
Şekil.1
Peki, nasıl oluyor bu iş?
AutoCAD’de özel (custom) nesne tanımlama işi oldukça karmaşık ve teknik bir süreç. Biz bu süreci sizler için tamamladık. Eğer DonatıPro kütüphanelerini kullanarak C# ile kendi donatınızı çizdirmek isterseniz için bilmeniz gerkenler:- TALREBAR özel bir AutoCAD nesnesidir (custom object).
- Nesne özellikleri ve ekranda nasıl gözükeceği TRebarDbx.dbx eklentisi ile belirlenmiştir. Bu eklenti C++ dili ile Taliasoft Yazılım tarafından hazırlanmıştır.
- AutoCAD komutlarına nasıl tepki vereceği ise TRebarArx.arx eklentisi ile belirlenmiştir. Bu eklenti de C++ ile Taliasoft Yazılım tarafından hazırlanmıştır.
Yani donatı nesnesini AutoCAD’de görebilmeniz ve kullanabilmeniz için bu iki eklentinin AutoCAD’e tanıtılmış olması gerekir. DonatıPro™ yazılımını satın alan ve bilgisayarlarına kuran ofislerde bu işlem otomatik olarak tamamlanmıştır. Bilgisayarında bu iki eklenti olmayan AutoCAD kullanıcıları bu nesneleri PROXY OBJECT olarak görebilirler. Ancak üzerinde bir düzenleme yapmaları mümkün olmaz.
DonatıPro™ yazılımı hangi dilde yazıldı?
DonatıPro birçok modülden oluşur. Az önce bahsettiğimiz "Akıllı Donatı" modülleri C++ ile ObjectARX API’si kullanılarak yazıldı. Programın güvenlik modülleri tamamen C++ ile yazıldı. Kiriş, tekniker ve metraj modülleri ise C# ile yazıldı.Programlamak için başka yazılım dilleri kullanılabilir mi?
Donatı nesnesi için COM ve .NET bağlaçları yazılmıştır. Bu sebeple Visual Basic, Visual LISP, LISP, VB.NET, C#, J#, C++/CLI ve C++ (ObjectARX) kullanılabilir. Bu tamamen ihtiyaçlarınıza ve hangi yazılım dilinde tecrübe birikiminiz olduğuna bağlı.Bu işe girişmeden önce bilgisayarımda neler olmalı?
- AutoCAD 2013, 2014 ya da 2015 sürümlerinden biri. Yazı hazırlanırken 2015 sürümü kullanılmıştır.
- DonatıPro™ yazılımı. Yazı hazırlanırken 3.x sürüm kullanılmıştır.
- Visual Studio 2010, 2012 ya da 2013 sürümlerinden biri. Yazı hazırlanırken 2013 sürümü kullanılmıştır.
- Donanım kilidi.
- İyi derecede C# ve AutoLISP bilgisi
- Biraz sabır
Visual Studio içerisinde AutoCAD eklentisi oluşturma.
Giriş ekranında ‘New Project…’ seçerek karşınıza gelen ekranda ‘Visual C#’ ve ‘Class Library’ seçeneğini işaretleyerek projenize bir isim verin.
Şekil.2
Sizin için yaratılan Class1.cs dosyasının ismini DPKomut olarak değiştirin.
Şekil.3
‘References’ altına accoremgd.dll, acdbmgd.dll, acmgd.dll dosyalarını ekleyin. Bu dosyalar AutoCAD 2015 dizini altında bulunmaktadır.
Yeni eklediğimiz bu üç dosyayı seçerek özelliklerinden ‘Copy Local=False’ yapın.
Şimdi başlamak için hazırız. Dosyamızın en üstüne gerekli modülleri #using direktifi ile ekleyelim.
Şu anda temel olarak AutoCAD ile bağlantı kurabilecek bir DLL dosyası ayarlarına ulaşmış olduk. Ancak AutoCAD’in bu dosyayı eklenti olarak tanıması için yapmamız gereken biraz daha iş var. Öncelikle bu modülün bir AutoCAD arabirimi olduğunu bildirmemiz gerekiyor. Lütfen aşağıdaki satırları dosyanıza ekleyin.
Son olarak bu modülü aynı zamanda yeni AutoCAD komutumuzu eklemek için kullanacağımızı belirlememiz gerekiyor. Bunun için de aşağıdaki satırı eklememiz gerekiyor.
Artık AutoCAD kısmı hazır hale geldiğine göre donatı nesnesini kullanmak için, Taliasoft tarafından hazırlanan .NET bağlacını referans listemize koyma zamanı geldi. Bu bağlaç dosyasının ismi TRebarNetW.dll. Bu dosya c:\Program Files\Talia\DPRO3-R20x dizini altında bulunmaktadır. Bu modül için ‘Copy Local=True’ olacak. Bu modülü de kullanmak için #using direktifimizi eklememiz gerekiyor.
Yavaş yavaş beklenen ana geliyoruz. Şimdi AutoCAD komutumuzu yaratarak ekrana bir donatı eklemeyi sağlayan kodu inceleyelim.
10. şekilde gördüğünüz fonksiyon tanımını DPKomut sınıf tanımımızın içerisine yazalım. Bu aşamada kodumuzu derlersek kullanıma hazır olacak. Ancak derlemeden önce hedef .NET sürümünü 4.5 yapmamız gerekiyor. Çünkü AutoCAD 2015 .Net modülleri .NET 4.5 ile yazılmıştır. Bunun için ‘solution explorer’ penceresinden projemizi seçip farenin sağ tuşu ile özelliklerine girerek giriş sekmesinden ‘Target Framework’ değerini 4.5 olarak değiştirmemiz gerekiyor.
Bu ayardan sonra projeyi derleyip deneyelim. Projeyi derlediğinizde Debug/Release dizini altında DPro.dll isminde bir dosya oluşacak. Bu dosyanın oluşup oluşmadığını kontrol edin. Eğer oluştuysa başardınız demektir. Ayrıca aynı dizinin altına TRebarNetW.dll dosyasının da kopyalandığından emin olun. AutoCAD içerisinden NETLOAD komutu ile bu dosyayı yükleyin. Eğer yükleme başarılı olduysa DONATIEKLE isminde yeni bir AutoCAD komutumuz oldu. Bu komutu çalıştırdığımızda 0,0 noktasından başlayan 0,55 ve 500,55 noktalarından geçen bir donatı nesnemiz olacak.
Bütün bu işlemler sırasında AutoCAD’in program yüklemek için güvenilir dizinler listesi, NETLOAD, VS 2013 derleme gibi işlemlere aşina olduğunuzu varsayıyorum. Eğer siz de ekranınızda yeni yaratılan donatı nesnesini görüyorsanız işlem tamam demektir.
Nasıl yaptık?
Daha önce de bahsettiğimiz gibi TALREBAR nesnesi yeni ve özel olarak tanımlanmış bir çizim elemanı. Bahsetmediğimiz şeyse bu nesnenin AutoCAD’in PLINE nesnesinden türetildiğidir. Bu da TALREBAR, bir PLINE’nın sahip olduğu tüm özelliklere sahip demek. Bunun yanı sıra donatı olarak da tanımlandığı için, bir donatıda bulunan tüm özelliklere de sahip. Bütün bu özelliklere hazırladığımız .Net bağlaç modülü üzerinden ulaşabiliyoruz.Dikkat ettiyseniz yeni donatımızın çap ve demir adedi 0 (sıfır) olarak geldi. Bu değerler ve diğer donatı özelliklerini nesne özellikleri penceresinden değiştirebilirsiniz. Ama iyi programcılar olarak, bu değerlerin önceden girilmiş olmasını tercih ettiğinizi duyar gibiyim. Bu sebeple ‘Donati’ nesnesinin bir iki özelliğini kodumuza ekleyelim.
Donatı nesnesi için tanımladığımız ‘dnt’ değişkenini yazarak nokta işaretine bastığımızda tanımlanmış tüm donatı ve PLINE özellikleri otomatik kod tamamlayıcı tarafından listelenecektir.
Gelecek yazılarımızda programlanabilir özelliklerin birçoğundan bahsedeceğiz. Bu başlangıç bilgisinden sonra bir çoğunuzun bir iki haftasını vererek basit döşeme, kolon vb. komutları yazdığınızı görür gibi oluyorum. Zaten DonatıPRO yazılımını hazırlarken biz de aynı arabirimi kullanıp çok genel anlamda söylemek gerekirse oldukça uzun makrolar yazıyoruz C# dilinde.
Bir dahaki yazımıza kadar hepinize mutlu programlamalar dilerim.
Yorumlar
Yorum Gönder