Sık Sorulan Sorular
Download
İzle Öğren
Eğitim Videoları
AutoCAD Videoları
3ds Max Videoları
AutoCAD Kursu Ders Videoları
AutoCAD Kursu 2 Boyut Dersleri
AutoCAD Kursu 3 Boyut Dersleri
Proje Dökümanları
Çizimler
Mimari Çizimler
Elektrik
Doğalgaz
Harita Çizimleri
Tesisat
Ferforje
Makine
3 Boyut
3ds Max
ArchiCAD
Solidworks
Diğer Çizimler
Lispler
Menüler
Fontlar
FreeMUST
Eğitim Dökümanları
Genel Kategori
Çizim Programları
IES Dökümanları
AutoCAD
AutoLISP
Konu Anlatımları
1) AutoLISP Nedir?
2) AutoLisp dos.
3) Lisp Dosyala.
Autolisp komutl.
Autolisp te tip.
entmake fonksiy.
entmake fonksiy.
entmake fonksiy.
entmake fonksiy.
entmake fonksiy.
Liste Fonksiyon.
entmake fonksiy.
Liste Fonksiyon.
entmake fonksiy.
Liste Fonksiyon.
Örnek Lispler
Sürümler
Menüler
DWF Dosyaları
Programlama
AutoCAD Püfleri
Eğitim
AutoCAD Eğitimi
Karma 3 Boyut Dersleri
Adım Adım AutoCAD Eğitimi
01.Bölüm
02.Bölüm
03.Bölüm
04.Bölüm
05.Bölüm
06.Bölüm
07.Bölüm
08.Bölüm
09.Bölüm
10.Bölüm
11.Bölüm
12.Bölüm
Uygulamalar
Adım Adım 3 Boyut Eğitimi
Kariyer
3ds Max
Attribute lar
- aLd Fonksiyonu
- TCad Metraj
- FacadeCAD
- Cephe Kot
- HQ Library
- FreeMUST
- ALS/Pasdoc.A
- Excele Tablo Aktaran Lisp
- Nokta Koordinat Tablosu
- Plana İç Ölçü Verme
- Toplam Alanı Yazan Lisp
- Alan ve Çevre Yazan Lisp
- Koordinat, Alan ve Çevre Tablo Halinde Yazma
- AutoCAD'de Nokta Dökümü
- Hava Kanalı Metraj Fonksiyonu
- Boru Metrajı Fonksiyonu
- OptiCAD
- Özel Çizgi Tipi Oluşturmak
- AutoCAD te Koni Açılımı Nasıl Yapılır?
- PolyLine & Point Objelerinden Aplikasyon Çizelgesi
- Z değerini sıfırlama
- AutoCAD te Polyline üzerine uzunluk yazdırma
- Sıralı numaralandırma
- Yazı içindeki sayıları toplama
- Karmaşık Path ile Loft Uygulaması
- Çoklu Fillet Fonksiyonu
- Ölçekli Türk Bayrağı çizen lisp
- Duvar-Lento-Kapı-Pencere Metraj Programı
Autolisp komutları ve açıklamaları
otokoc - 18.05.2005 09:54
(prompt);
ekranın mesaj kısmına yazı yazmak için kullanılır. İfade formatı şu şekildedir:
(prompt) "yazı") örneğin (prompt "Bir nokta seç")
(prompt) fonksiyonu ile ayni işlem gören yani ekrana yazı yaıan (princ), (prin1) ve (print) fonksiyonları vardır. (princ) ve (prin1), yazıları tırnak içine alırlar; (print) ise yazıdan sonra boşluk bırakmaktadır.
(getpoint);
bir nokta seçilmesini ister. Nokta seçilinceye kadar ekranda hiç bir şey olmaz. Ancak Ekranda bir nokta gösterildiğinde, noktanın koordinatları mesaj bölgesinde görülür. Komut (setq) ile kullandığında, seçilen noktanın koordinatları (setq) ile belirlenen değişkene atanır; ayrıca ifadeye bir de mesaj eklenebilir. Örneğin:
(setq a (getpoint "Birinci noktayı seç"))
ifadede Birinci noktayı seç mesajı komut bölgesinde görülür ve nokta seçildikten sonra, noktanın koordinatları a değişkenine atanır. Bu şekilde noktanın koordinatları a değişkeninde saklanmış olur. Şöyleki Command: mesajına !a ile yanıt verilirse, noktanın koordinatları mesaj bölgesinde görünür.
(command);
tüm AutoCAD komutlarının kullanma imkanını sağlar; ayrıca takip eden değişkenler komuta aittir. Örneğin yukarıda b maddesindeki ifade ile Birinci noktanın koordinatları a değişkeninde saklanmış olsun. ikinci noktanın koordinatları aşağıdaki ifadeyle:
(setq b (getpoint "İkinci noktayı seç"))
b değişkenine saklansın. Bu durumda:
(command "line" a b)
ifadesi ile yukardaki mesajlarla koordinatları belli olan a ve b noktaları arasında bir çizgi çizilir. Çizgi çizildikten sonra line (çizgi) komutu geçerli kalır. Bu komutu bitirmek için son noktadan sonra, örneğin (command "line" a b "") şeklinde iki çift tırnak yazılır. Çizgi sadece iki nokta arasında değil, koordinaları bilinen bir çok nokta arasında çizilebilir; ayrıca "c" ile çizgi kapatılabilir. Örneğin:
(command "line" a b c d "c")
ifadeyle dört kenarlı bir çizim oluşturulur.
(getcorner);
(getpoint) fonksiyonuna benzemekle beraber esasen seçilen iki nokta arasında bir dikdörtgen oluşturur. Burada ilk nokta daha önce seçilir veya bir değişkene atanır ve ancak ikinci noktanın seçiminde (getcorner) kullanılır; bu durumda kursor ikinci noktaya hareket ettirildiğinde dikdörtgen lastik band şeklinde görünür. İfadeler şöyledir:
(setq pt1 (getpoint "Bir nokta seç"))
(setq pt2 (getcorner pt1 "başka bir nokta seç"))
(getreal);
bir a değişkenine klavyeden gerçek sayı bir değer atanmasını sağlar. İfade:
(setq a (getreal "Bir sayı gir"))
olup, Bir sayı gir mesajı göründükten sonra sayı girilir.
(getdist);
bir uzaklığı sayı olarak girmek veya ekranda iki nokta göstererek, verme imkanını sağlar. İfade şöyledir:
(setq a (getdist "Yükseklik gir"))
(getstring);
bir yazı girilmesini sağlar. İfade:
(setq a (getstring T "Yazı gir"))
şeklindedir. Burada Yazı gir mesajına bir yazı girilir ve daha sonra !a ile yazı tekrar mesaj bölümünde görülür. Buradaki T , dizgi içinde boşluk kullanılabileceği anlamına gelir. T yazılmadığı zaman girilen yazı içinde boşluk kullanılamaz.
(angle);
iki nokta arasındaki açı değerini ölçer. Burada önce noktalar belirlenir ve sonra açı ölçme ifadesi yazılır. İfadeler şöyledir:
(setq pnt1 (getpoint "Bir nokta seç"))
(setq pnt2 (getpoint "İkinci noktayı seç"))
(setq a (angle pnt1 pnt2))
(dtr a)
Burada pnt1 ile pnt2 noktalar arasındaki açı radyan olarak a değişkenine atanır; son ifadede, (dtr) programı yüklü ise, açıyı radyandan dereceye çevirir. Açının değerini görmek için !a girilir.
(distance);
iki nokta arasında uzaklığı ölçer; burada da ilkin noktaların belirlenmesi gerekir. Uzaklık ölçme ifadesi şöyledir:
(setq d (distance pnt1 pnt2))
(polar);
bir noktanın polar olarak, yani uzunluk ve açıya bağlı olarak koordinatlarının verilmesini sağlar. İfade şöyledir:
(setq a (polar pnt1 ang1 dst1))
(getangle), (getorient);
her iki fonksiyon iki nokta göstererek bir açının bulunmasını sağlarlar. İfade:
(setq a (getangle "Açıyı seç"))
şeklindedir. (getorient) her zaman 0 derece olarak East (Doğu); (getangle) ise 0 olarak güncel yönünü kabul etmektedir. Örneğin 0‘ın güncel yönü North (Kuzey) ise bunu alır. Bu fonksiyonda açılar klavyeden de girilebilir. Ancak açı derece olarak belirlenmişse, bu otomatik şekilde radyan olarak saklanır
(setvar);
AutoCAD'in Setvar komutu içinde bulunan sistem değişikliklerini ayarlar. İfade şöyledir:
(setvar "orthomode 1")
Kenetleme oluşturmak için:
(setvar "osmode" n)
ifadesi kullanılır. Burada n kenetleme şekline bağlı olan ve aşağıda verilen bir sayıdır.
Center 4 Endpoint 1 İnsert 64 Intersection 32
Midpoint 2 Nearest 512 Node 8 Perpend 128
Quadrant 16 Tangent 256 None 0
(ssget),
(entsel) fonksiyonları nesnelerin seçmesini sağlar. (entsel) bir defada bir tek nesne seçer; (ssget), Window (pencere) ve Crossing (kesişme) dahil olmak üzere çeşitli seçme yöntemlerini kullanarak bir defada bir nesne kümesi seçebilir. Pencere için ifade:
(setq a (ssget "W" pnt1 pnt2))
şeklindedir; kesişme kullanıldığı durumda W yerine C yazılır. Bu şekilde a değişkenine atanan ve adı
(ssget "x" ' ((0. "text")))
ifadesiyle seçilen nesnelerle ilgili tüm yazı veri tabanı
Entity type 0 Block 2 Line type 6 Text style 7 Color 62
Elevation 38 Layer 8 Thickness 39 Attributes 66
İf
(Koşul) olarak da bilinen bu ifadeler if-then-else üçlüsüne dayanmaktadır. AutoLisp'te bir if’e bir then karşılık gelmektedir. ifadenin formatı şu şeklindedir:
(if (xxx1 ) (xxx2) (xxx3))
Burada if’ten sonra xxx1 kontrol edilmesi gereken deyimdir; örneğin (= a b) şeklinde ifade edilen a=b eşitliği gibi. Eğer bu deyim doğru ise o zaman (then) xxx2 deyimi işlem görür; değilse (else) xxx3 deyimi işlem görür. Örneğin:
(setq a 6)
(setq b 9)
(if (= a b) (setq b "eşit") (setq b "eşit değil"))
programı yazılıp işleme konulursa, !b girildiğinde "eşit değil" sonucu görünür. if ifadesine (progn) fonksiyonu kullanılarak bir çok then (o zaman) atanabilir. Bu fonksiyon xxx1'den
sonra parantezsiz yazılır; eğer if ifadesi sona ererse (progn) parantez içine yazılır. (= a b) 'in yanısıra, şu lojik fonksiyonlar vardır.
(> a b) a b'den daha büyük
(< a b) a b'den daha küçük
(/= a b) a b'ye eşit değil
(<= a b) a b'den küçük veya eşit
(>= a b) a b'den büyük veya eşit
(and a b) a ve b; lojik bağlaç ve
(or a b) a veya b; lojik bağlaç veya
(not ..) lojik hayır
(listp a) a bir liste ise
(null a) a nil ise
Örneğin: (if (> (getvar "FILLETRAD") 0.25) (setvar "GRİDMODE" 0))
ifadesi, eğer getvar fonksiyonunun yuvarlatma yarıçapı (Filletrad) 0.25 ten daha büyükse, ızgara modunu (Gridmode) 0'a eşitle anlamına gelir. Burada aksine yani yuvarlatma çapı 0.25'ten daha küçük olduğu durumda ne yapılacağını belirtilmediği için, hiç bir işlem yapılmaz.
Yazar: otokoc
İçerik:
Tag: Autolisp komutları ve açıklamaları, prompt, getpoint, setq
Teşekkürler güzel bir anlatım olmuş.
Anlatım için teşekkürler.
Lisp yazılan dil nedir? Tüm mantığını ve kodlarını öğrenmek mümkünmü acaba?
TEBRİK EDERİM GERÇEKTEN GÜZEL BİR ANLATIM...
selam bir lisp isteği : Ekranda çizim almadan önce kalem ayarlarını tek tek yazıp uğraşmak yerine kalem kalınlığı değiştireceğimiz objeyi seçtiğimizde tabakayı komple yada sadece o rengimi seçmek istiyorsun seçeneği ile kalem ayarlarını yapabileceğimiz bir lisp varmıdır yada mümkünmüdür böle bişey quick selecet ten falan yapılıyor onu biliyorum ama benim istediğim ekranda tıklayacaz pencere açılacak 0.20 0.30 değeri girecz kaelm ayarı değişmiş olacak şimdiden teşekkürler ...
projedeki blokları sayacak lisp var mı
abi elin degmisken autocaktaad den excel e verileri sırayla aktaracak bi program yazsan diyorum.cook kullanıslı olurr,yap bi guzellik?
herseyden önce autocade bakış açımı değiştirdiğiniz için teşekkür ederim.Çalışmlarınızı daha geniş yelpazede görmek isteriz.mesela nsjsfot'un dediği gibi komutları fazlalaştırmak iyi fikir....İyi çalışmalar.
teşekürler güzel bir çalışma olmuş
sevgili kardeşlerim biraz daha geniş konulara değinirsenbiz sevinirim. komutaları fazlalaştıralım yani.. iyi çalışmalar teşekkürler
güzel bir çalışma olmuş,
bizimle paylaştığın için teşekkürler...