AutoCAD Günlüğü | » Çizimdeki noktaları silen AutoLISP uygulaması > AutoCAD, AutoLISP, AutoCAD Dersleri, Mekanik Tesisat, Bilgisayar, Yazılım, Özel Yazılım

Çizimdeki noktaları silen AutoLISP uygulaması


Yazar Muharrem Koçyiğit
Mesleği Makine Teknikeri
  AutoCAD, AutoLISP, Visual LISP
  Prosteel Uzmanı
e-mail  

Kategori: : Visual Lisp  
Dosyalar: : Del-Points.rar
İlgili Yazılar: : Aşağıda bulabilirsiniz.

Merhaba arkadaşlar,

Bu günkü Lisp konumuz AutoCAD çiziminde bulunan POINT nesnenelerini silmek. Programı yazarken sizlere AutoLisp ile VisualLisp arasındaki programla farkını göstermek istedim. Onun için iki çesit ana fonksiyon bulunmaktadır.

C:Delpt fonksiyonu (Fig.1) ERASE komutunu kullanarak POINT nesnelerini siler.

Kod.1
Fig.1 - Ana (main) Fonksiyon “C:Delpt

C:DelptX fonksiyonu (Fig.2): VisualLisp programlama yöntemi ile (vla-delete) nesneleri silmektedir. AutoLisp’de oluşturduğunuz seçim setininin içeriğini bilmeniz gerekir. (sslength) sonucuna göre while döngüsüyle teker teker ele alabilirsiniz. Visual Lisp ile oluşturulan seçim setinde buna gerek yoktur. Sadece Vlax-for fonksiyonu kullanmak yeterli olacaktır.

Kod.2
Fig.2 - Ana (main) Fonksiyon “C:DelptX” (VisuaLisp)

UTL:SEL:SET-FILTER (Fig.3) ve UTL:ADD:SELECTIONSET fonksiyonlari (Fig.4) kendime ait olan kütüphane (KMLIB.vlx) icinde bulununan yardımcı fonksiyonlardan sadece bir kaçıdır. Yazılımda bu tür alt fonksiyonlara devamlı ihtiyaç duyulur. Onun için programin tasarımını önceden iyi düşünmek gerekir. Asağıda gördüğünüz fonksiyonlar seçim seti olusturmanızda yardımci olur.

Kod.3
Fig.3 - Alt Fonksiyon “UTL:SEL:SET-FILTER

Biraz karmaşık gibi görünse de aslında çok akıllıca tasarlanmıştır. Vaktim sınırlı olduğu için bu günkü konumuzu burada noktalamak istiyorum.

Kod.4
Fig.4 - Alt Fonksiyon “UTL:ADD-SELECTIONSET

Programda kullanılan VisualLisp komutları:

  • vl-catch-all-error-p, vl-catch-all-apply
  • vlax-for, vla-Add, vla-item
  • vlax-Select, vla-SelectOnScreen, vla-Highlight
  • vlax-SafeArray-Fill, vlax-Make-SafeArray

Konu hakkında soru ve yorumlarınızı bekliyorum.

Kolay gelsin

İlgili Yazılar:AutoLISP dersi

Technorati Tags: ,

Benzer Yazılar

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

4 yorum “Çizimdeki noktaları silen AutoLISP uygulaması”

  • 1
    sinan öztürk
    19 November 2007, Monday 0:47

    muharrem bey çlaışmalarınızdan dolayı sizi kutluyorum sayenizde ne güzel şeyler öğrendik çalışmalarınızın devamını bekliyoruz

    hayatınızda başarılar diliyorum sevgilerimle

  • 2
    Muharrem
    19 November 2007, Monday 21:57

    Merhaba Sinan,
    övgü dolu sözler duymak güzel bir duygu. Hepinize Teşekkür ederim…

  • 3
    Mehmet Şamil Demiryürek
    31 December 2007, Monday 14:58

    Hocam elinize sağlık birçok yolla nokta silmeyi tarif etmişsiniz. Dikkatimi çeken Autolisp ile silme işlemi. Bu kadar işleme neden gerek var.

    (setq ss (ssget “_x” (list (cons 0 “POINT”))))
    (command “erase” ss “”)

    bu autolisp kodu da aynı işlemi yapıyor. Yazması da daha kısa. Farkını öğrenmemiz mümkün mü?

  • 4
    Muharrem Koçyiğit
    2 January 2008, Wednesday 22:43

    Merhaba Mehmet Bey,

    VisualLisp ile seçim seti oluşturmak biraz zahmetli iştir. Fakat bir seferlik zahmete katlanıp yazdıktan sonra *.vlx Kütüphanenisi oluşturur işinize yarıyan fonsiyonlarla çalıstırırsınız. AutoCAD - VBA ‘ye hakimseniz ayni şekilde programlanmanız gerekiyor.

    Gelelim asil nedenine Microsoft Sistemine kayıtlı olan her COM programını (bunun icinde VBA / VisualLisp’de dahil) bir VBScript ile otomatikleştirme imkanı bulunmakta, yani >>AutoCAD’ın içine girmeden

Yorum bırak