AutoCAD Günlüğü | » AutoLISP programlama: Çizimdeki sayıların üzerinde işlem yapmanızı sağlayan program > AutoCAD, AutoLISP, AutoCAD Dersleri, Mekanik Tesisat, Bilgisayar, Yazılım, Özel Yazılım

AutoLISP programlama: Çizimdeki sayıların üzerinde işlem yapmanızı sağlayan program


Yazar Derya Bahceci
Mesleği İnşaat Mühendisi ODTÜ
   
web  
e-mail  

Merhaba,

İlk yazım olarak sizlerle, ilk yazdığım Lisp’lerden birini paylaşmak istedim. Programın amacı yaptığınız bir çizimde, sizin belirlediğiniz alandaki yazıları taramak ve bulduklarında dört işlem gerçekleştirmek. Bu lisp’i yapma amacım; tüm çizimi bitirdikten sonra verdiğim belki de yüzlerce kot değerinin, referans noktasını hatası nedeniyle değişmesi gerektiğiydi. Bu değerleri tek tek değiştirmek epeyce uzun süreceğinden, bu Lisp’i yazdım. Belki sizinde işinize yarayacaktır.

Öncelikle, programı tanımlayalım. Komut kısayolunu “cx” olarak ayarladım çünkü yazımı kolay. Genelde birbirine yakın ve kısayol atanmamış kodlar tercih ediyorum.

Liste-1

Liste-1

Sıradaki işimiz, programın tüm çizimi taramak yerine, kendi belirlediğimiz alanda çalışması için bir poligon yardımıyla alan oluşturmak ve bu alandaki yazı cisimlerini taramak.
Burada dikkat edilmesi gereken husus tıkladıpımız son noktanın ilkini de kapsayacak şekilde olması, aksi takdirde poligon oluşmuyor.
Bunun için; aşağıdaki satırları oluşturdum.

Liste-2
Liste-2

Burda amaç sizin istediğiniz sayıda ve geometride seçeceğiniz noktaları kullanarak kapalı bir alan oluşturmak ve bu alan içerisindeki “E” katmanındaki {örnekte E kullandım siz (cons 8 “E”) yazan satıra istediğiniz ismi girebilirisiniz} yazı cisimlerini sspoint değişkeninde listeleyerek veritabanına almak. Komutu biraz incelerseniz nasıl çalıştığını anlayacaksınız.

Şimdi veritabanına alınan cisimlerin sayısını bir değere atamalıyız ki; az sonra yaratacağımız döngünün tekrar sayısını sisteme girebilelim. Yapmamız gereken, oluşturduğumuz sspoint listesinin uzunluğunu ölçtürecek komutu yazmak

Liste-3
Liste-3

Eğer oluşturduğumuz kapalı alanda yazı cisimleri varsa “ssl” değişkeni bir doğal sayı olacaktır. Bu değeri kullanarak bir döngü oluşturalım.

Liste-4
Liste-4
Bu döngüdeki işlem değerden “0.30” çıkarmak. Siz bunu istediğiniz gibi değiştirebilirsiniz.
Burada unutmamız gereken nokta şu; eğer yazı cismi sayı değilde harflerden oluşuyorsa programın işe yaramayacağıdır. O yüzden sayı olarak girdiğimiz yazı cisimlerinin ayrı bir katmanda olması önemli.
Son olarak parantez eşitliğini sağlayarak programı sonlandıralım.

Liste-5

Liste-5

Komutları kendiniz yazıp Autocad’de adım adım çalıştırarak çalışırsanız herşeyi çok daha net anlayacaksınz. Mesela, programın sadece poligon kısmını yazıp çalıştırın ve değerleri kontrol edin. Daha sonra yazı cisimleri listesini oluşturun vs.. Adım adım gitmek her zaman daha sağlıklı olacaktır.

Kolay gelsin.

İlgili Dosya:

  • 4islem.lsp
Benzer Yazılar

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5 out of 5)
Loading ... Loading ...

4 yorum “AutoLISP programlama: Çizimdeki sayıların üzerinde işlem yapmanızı sağlayan program”

  • 1
    ismail asi
    19 February 2008, Tuesday 13:49

    Sayın Bahçeci, öncelikle kullanışlı bir lisp olduğu için tebrik ediyorum. Fakat bir sorunla karşılaştım. Komutu çalıştırıp ilk noktayı tıkladıktan sonra komuttan çıkıyor.
    Problem nerede acaba?
    Teşekkürler.

  • 2
    M.Derya BAHÇECİ
    13 March 2008, Thursday 12:51

    öncelikle biraz geç yazdığım için kusura bakmayın.
    problemin “layer” ile ilgili olduğunu düşünüyorum. (Programda yazan layer’İn Autocad’da tanımlı olmaması gibi) ama bana komut satırında ne yazdığını belirtirseniz, problemi buluruz.
    kolay gelsin.

  • 3
    Raci
    8 May 2008, Thursday 17:22

    Sayın Bahçeci eline sağlık güzel yazmışsın , ufak tefek sorunlar çıktı ama hallettim. Bazı parantezler eksikti ve ayrıca (command “change” ent ….. satırında çift tırnak sayısını 6 dan 5 e indirdim çalıştı. Teşekkürler. (ODTU inş 95)

  • 4
    M.Derya BAHÇECİ
    19 June 2008, Thursday 10:58

    versiyon farklılığından dolayı bu tip tırnak problemleri oluyor her zaman. Parantez eksikliği belki yayınlanırken oluşmuş olabilir. Admin, yüklü dosyayı düzeltirse sevinirim. İyi çalışmalar.

Yorum bırak