Reklam ver...

AutoCAD Programlama Dilleri



Yazar Erhan Toker
Mesleği Y. Mimar İTÜ
  Autodesk Yetkili Danışmanı
web Programcı
e-mail  

SEVİYE
: İleri
VERSİYON
: AutoCAD(TM) 2002 - AutoCAD(TM) 2007

 

   Talia Ltd. ekibi olarak 16 yıldır AutoCAD (TM) üzerinde çalışan uygulamalar hazırlıyoruz. Firmamız kurulduğundan bu yana ABB, AEG, Mercedes Benz Türk, Eczacıbaşı Banyo Mutfak A.Ş., Mood A.Ş. gibi bir çok önde gelen Türk firması için projeler hazırladık. Çeşitli dergilerde uzun süreler AutoCAD (TM) uygulamaları ile ilgili yazılar yayınladık. Şimdi de bu köşeden sizlere sesleniyoruz. Zaman zaman bu köşede küçüklü büyüklü uygulamalar tanıtıp yayınlıyoruz. Bazısına AutoLISP, bazısına .NET, bazısına da ObjectARX tabanlı uygulama diyoruz. Bu köşenin okuyucuları olan sizlerin de ‘Acaba AutoCAD hangi dillerle programlanabiliyor? Hangi dil daha uygun?‘ dediğinizi duyar gibi oluyorum. Ben de bu yazımda bu konuya açıklık getirmeye çalışacağım.


   AutoCAD’in piyasaya çıktığından beri kullanıcıları cezbeden en önemli özelliği customizable ( uyarlanabilir ) olmasıdır. Tıpkı Apple ve PC arasındaki fark gibi, daha iyi çizim programları olmasına rağmen, uyarlanabilir olması AutoCAD’i daima ön planda tutmuştur. Çünkü AutoCAD’in menüsü, durum çubuğu, komut satırı, görünüşü, içi, dışı hemen her şeyi uyarlanabilir. Bu yazımızda sadece parametrik çizim yapmaya yarayan dilleri ele alacağız. Öncelikle listeyi bir görelim:

Tablo 1

Tablo 1 - AutoCAD Programlama ve Makro Dilleri

Şimdi kısaca bütün uygulama dillerini inceleyelim:

SCRIPT :
   Uzantısı SCR olan yazı dosyaları olarak hazırlanırlar. Basit AutoCAD (TM) komutlarını arka arkaya işletmek için kullanılır. Genellikle arka arkaya çizici çıktısı almak, slayt gösterisi yapmak için kullanılırdı. Ancak günümüz AutoCAD’lerinde halen çalışmasına karşın SCR dosyalarının yerini çağdaş komutlar almıştır.

DIESEL :
   İlk çıktığında koordinat ve açıların gösterildiği durum çubuğundan çeşitli bilgiler vermeyi amaçlıyordu. Ancak geliştirilerek menü makroları yazmak için de kullanılıyor. Sınırlı kullanım alanı vardır ancak pratik işler yapar. Örneğimize birlikte bakalım :

Command: modemacro
New value for MODEMACRO, or . for none <"">: $(getvar,clayer)

MODEMACRO değişkeninin değerini bir DIESEL ifadesi ile değiştirirseniz durum çubuğunda bu ifadedeki fonksiyonun sonucu görüntülenir. Örnekte kullanılan katman ismi durum satırına yazdırılmıştır.

AutoLISP :
   Önceleri herhangi bir yazı editörü kullanarak hazırladığınız LSP dosyalarını AutoLISP programları olarak kullanırdık. Ancak AutoCAD (TM) 2000 ile birlikte Visual LISP programını kullanıyoruz. Bu program sayesinde bir ya da birden çok LISP dosyası bir proje altında tanımlanabiliyor ve derlenerek okunmaz hale getirilebiliyor. Derlenmiş LISP dosyası içinde projeye ait tüm LISP dosyalarını barındırır ve FAS uzantısını alır. AutoLISP öğrenilmesi kolay bir dildir. Deneme yanılmaya karşı toleransı çok yüksektir. Deneyimli kullanıcılar çok ileri düzeyde işleri AutoLISP ile yapabilirler.
   Artıları : Kolay öğrenilir, AutoCAD (TM) içerisindeki Visual LISP kullanıldığından başkaca bir programlama aracı gerektirmez. Deneme yanılmaya karşı toleransı çoktur. Orta derecede karmaşık işler parametrik olarak LISP ile yapılabilir.
   Eksileri : Kullanıcı ara birimi kullanmak zordur. DCL denilen dili öğrenmeniz gerekir. Hız ve performans gerektiren işleri yapmanıza müsait değildir. Veri tabanlarına bağlanamaz ( özel komutlar hariç ).

ADS ( AutoCAD Development System ):
   AutoCAD (TM) , C gibi bir yapısal ve derlenen dille ilk defa ADS sayesinde buluştu. Ancak bu dilin ömrü uzun olmadı. Hemen arkasından ObjectARX geldi ve ADS ömrünü tamamladı. Kullanmak için Watcom C ya da Metaware C denilen derleyicilere ihtiyaç vardı. Bu derleyicilerin IDE’leri olmadığından C dosyalarını harici bir yazı düzenleyicide hazırlıyordunuz. Dosya uzantıları ADS ya da EXE idi.
   Artıları : Derlenmiş kod daha hızlı çalışıyordu ve çok daha güvenli oluyordu. AutoCAD (TM) içerisindeki hemen her şeye ulaşım mümkündü. Veri tabanlarına bağlanmak zor da olsa mümkündü. İşletim sistemi dosya işlemleri çok daha hızlı ve kolaydı.
   Eksileri : C öğrenmek çok zordur. Kullanılan derleyiciler tam bir işkenceydi. Kullanıcı ara birimi yine DCL ile sağlanabiliyordu. Kendi kütüphanelerinizi hazırlamadıysanız proje tamamlamak çok zordu.

Object ARX ( AutoCAD Runtime Extensions ):
   Visual C++ ( Visual Studio 6.0 ( VS6 ) ) ile AutoCAD (TM), R13 sürümünde buluştu. Devrimsel yenilik kendi AutoCAD (TM) nesnelerinizi C++ ile tanımlamaktı. Object ARX ile tıpkı bir çizgi gibi, yay gibi, siz de kendi kapı nesnenizi tanımlayabiliyorsunuz ve bu nesne AutoCAD’in kendi çizim elemanıymışçasına MOVE, ERASE, COPY gibi tüm komutlarla çalışıyor. Elbette bu tanımlamayı yapmak çok zor. Bunun dışında VS6’ yı kullandığımızdan MFC kütüphanelerine erişim olanağı doğdu. Bu da kullanıcı arabirimi olarak Windows (TM) pencerelerini kullanmak, veri tabanlarına doğrudan bağlanmak, network erişimi, internet erişimi demek. Dosya uzantıları ARX ya da DBX olabiliyor. Bunlar aslında birer DLL dosyası.
   Artıları : Hızlı ve güvenilir dosyalar oluşturur. Veri tabanı erişimleri ve kullanıcı arabirimlerini hazırlamak çok kolay. AutoCAD’in dahili komutları ile aynı düzeyde çalışır.
   Eksileri : Öğrenmesi çok zordur. Kendi kütüphaneleriniz ile projeleri hızlandırabilirsiniz.

DCL ( Dialog Control Language ):
   AutoLISP ve ADS için kullanıcı ara birimi hazırlamak bu dil sayesinde mümkün olabiliyor. Temel prensip her diyalog kontrolüne bir anahtar, bir etiket ve bir özellik vermek olarak açıklanabilir. Verilen anahtar üzerinden diyalog kontrolüne programatik olarak ulaşılıyor. Halen kullanılmaktadır. Dosya uzantısı DCL’ dir. AutoCAD (TM) dizini altındaki dosyaları inceleyerek bir fikir sahibi olabilirsiniz.

.NET :
   Visual Studio 2002 ve ya 2005 ( VS2005 ) ile C#, VB.NET DLL projeleri tanımlayarak oluşturulur. AutoCAD’in ‘ObjectARX wrapper‘ ‘ları olarak hazırladığı MANAGED EXTENSION DLL’ leri projeye referans olarak tanıtılır. Oluşan dosyanın uzantısı DLL’ dir ve NETLOAD komutu ile yüklenir. Böyle bir uygulamaya örnek olarak AutoCAD 2007 İçin Blok Sayıcı yazımı inceleyebilirsiniz.
   Artıları : Kolay öğrenilir. Kullanıcı arabirimi tasarlamak çok basittir. Veri tabanlarına bağlanmak çok basittir. Yazdığınız kod diğer projelerinizde de kolaylıkla kullanılabilir.
   Eksileri : Tersine mühendisliğe çok açık olan sistem, DLL dosyalarınızın kolaylıkla yorumlanabilmesine olanak verir. Microsoft Co. bu konuda biraz daha çalışmalı. Object ARX’ e göre yavaş çalışır. Kendi nesnelerinizi tanımlayamazsınız. Oluşan kod APPLICATION DOMAIN’de çalıştığından AutoCAD’i kapatmadan bellekten çıkarmak mümkün değildir. Bu bakımdan yazılım geliştirme ve debugging süreci işkence çektirir.

VBA ( Visual Basic for Applications ) :
   AutoDESK’in Windows (TM) uyumlu sertifikasını almak için oluşturduğu bir sistemdir. EXCEL’de olduğu gibi AutoCAD (TM) içerisinden de basit VB projesi oluşturabilirsiniz. Serkan ÖZANT arkadaşımız bu sistemi kullanarak kanal çizim programlarını hazırlamaktadır.
   Artıları : Öğrenmesi kolaydır. Kullanıcı arabirimi hazırlamak kolaydır. Veri tabanlarına bağlanmak kolaydır.
   Eksileri : VB kullananlar bilir. DLL’lerle uğraşmak ve her bilgisayarda ayrı çıkan sorunlar insanı hayatından bezdirir. Üstelik AutoDESK bu sistemi kerhen tanımladığı için kullanıcıya pek te yardımcı olmamaktadır. Göreceli olarak yavaş çalışır. AutoCAD çiziminde ve ekranında bir şeyleri bozması her an mümkündür.

Rastgele bir yazı

3 Votes | Average: 4.67 out of 53 Votes | Average: 4.67 out of 53 Votes | Average: 4.67 out of 53 Votes | Average: 4.67 out of 53 Votes | Average: 4.67 out of 5 (3 oy, ortalama: 4.67)
Loading ... Loading ...

Yorum bırak