AUTOLISP VE PROJE MÜHENDİSLİĞİNDE UYGULAMALARI

Slides:



Advertisements
Benzer bir sunumlar
Ayrık Yapılar Algoritma Analizi.
Advertisements

EKRAN ÇIKTISI.
Company Logo  Suzhou GreatStar Technology Development Co., Ltd GÜVENİLİR, ETKİLİ & EN ÖNEMLİSİ DÜŞÜK MALİYETLİ CAD GStarICAD 2008 SİSTEM24 TÜRKİYE YETKİLİ.
Nesnelerin Özellikleri. - Üye nesneler - friend belirtesi - Nesnelerin operatörlere yüklenmesi - this yerel (lokal) değişkeni - inline tanımlı üye fonksiyonlar.
Problemi Çözme Adımları
VERİ TABANI YÖNETİMİ Ders 11: PL/SQL’e Giriş
Yrd. Doç.Dr. Nilgün GÜLER BAYAZIT
ALGORİTMA ÖRNEKLERİ Programlamaya Giriş
Bölüm 4 – Kontrol İfadeleri:1.kısım
4 Kontrol Yapıları: 1.Bölüm.
BPR151 ALGORİTMA VE PROGRAMLAMA - I
4. KONTROL VE DÖNGÜ KOMUTLARI
Karar ifadeleri ve Döngüler
Fonksiyonlar ve Alt Programlar
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 3: Döngüler
Bölüm 5 Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut
Bölüm 3 – Yapısal Programlama
T-SQL-2.Konu Akış Kontrolleri.
Fortran PROGRAMLAMA DİLİ
Yapısal Program Geliştirme – if, if-else
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
Nesneye Dayalı Programlama
Görsel C# ile Windows Programlama
Bilgisayar Programlama
BPR152 ALGORİTMA VE PROGRAMLAMA - II
8. VİSUAL BASİC İLE TEMEL DOSYALAMA İŞLEMLERİ
Bilgisayar Programlama
Algoritmalar (Algoritms)
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
C ile Programlamaya Giriş
Bölüm 5 Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut
Metotlar.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Algoritmalar (Algoritms)
Başlat menüsü ve öğeleri
MESAJ KUTUSU.
Özyineleme(Recursion)
BM-103 Programlamaya Giriş Güz 2014 (7. Sunu)
JAVA’DA DÖNGÜLER.
Nesneye Dayalı Programlama
FONKSİYONLAR İbrahim Onur Sığırcı.
BİL 102 BİLGİSAYAR PROGRAMLAMA
Değişken Türleri.
4. KONTROL VE DÖNGÜ KOMUTLARI
String class String karakterler dizisidir
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
HAZIRLAYAN:SEMİH KÜRTÜNCÜ
Bilgi Teknolojisinin Temel Kavramları
Bugünkü konular Programlama dilleri ve Syntax Generic C Program yapısı
Bugünkü Konular Döngüler ve Akış Diyagramları C de Döngü Tanımlama
Modül 1: Giriş. Genel Bakış Temel.NET kavramları Geliştirme ortamında gezinti Bir C# projesi oluştur Use Visual Studio.NET Veriye eriş Hata ayıkla ve.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı Arş. Gör. Pınar CİHAN.
Hazırlayan -> ORHAN ŞEN
STRING FONKSİYONLARI Dim ders As String
C Programlama Dili Bilgisayar Mühendisliği.
UYGULAMA 4 Uygulama 4.1: Aşağıdaki kodlardaki hataları/eksiklikleri belirleyerek düzeltiniz, ekran çıktılarını yazınız. Programı yazıp çalıştırırarak.
METHODLAR VE KOŞULLAR.
PROGRAMLAMA TEMELLERİ
ACTIONSCRIPT TEMELLER İ SAVAŞ TUNÇER
Excel’de VBA Programlama (Visual Basic Application)
Bilgisayar Programlamasına ve Veri Analizine Giriş
BİL 102 BİLGİSAYAR PROGRAMLAMA
Bilgisayar Bilimi Problem Çözme Süreci-2.
Problemi Çözme Adımları
FONKSİYONLAR İbrahim Onur Sığırcı.
Bilgisayar Bilimi Fonksiyonlar-2.
C ile Programlamaya Giriş
Sunum transkripti:

AUTOLISP VE PROJE MÜHENDİSLİĞİNDE UYGULAMALARI SUNAN: Tolga Gürol

Autolisp Nedir? Diğer AUTOCAD API’ları Autolisp Fonksiyonları Programlama ve Avantajları Proje Çizimlerine Yardımcı Autolisp Uygulamaları

1.AUTOLISP NEDİR? Autolisp, Autocad için özel olarak üretilmiş yazılım programlama arabirimidir (API)

2.DİĞER AUTOCAD API’ları Autocad’e sunabileceğimiz 3 temel API vardır. C/C++ API (ObjectARX) VB API Autolisp API Hangisi daha iyi? The AutoCAD APIs by Andrew Canfield

UYGUN API SEÇME KRİTERLERİ Hangi yazılım dilinde kendimi daha rahat ve verimli hissediyorum? Ne kadar zamanım var? Hedef kullanıcı kitlem kim ve Autocad bilgileri ne ölçüde? Autocad ve / veya İşletim sistemini ne ölçüde kontrol etmeye ihtiyacım var? The AutoCAD APIs by Andrew Canfield

OBJECT ARX API Diğer dillere kıyasla, Autocad ve Windows üzerinde en çok hakimiyeti olan arabirim. C veya C++ ‘a alışkın olanlar için kullanışlı. Minimum Autocad bilgisi olan kitle için uygun. Diğer 2 API’nin giriş yapamadığı Autocad değişkenlerine giriş sağlar. Diğer API’lere göre daha uzun kodlar yazmak gerekiyor, daha çok zaman ayırmak gerekli ve basit çizim gereçleri için daha çok hafıza kullanıyor. Kullanım alanları: “Custom object”, “Spatial filtering”, diğer API’ler için yazılmış uygulamaların fonksiyonelliğini artırmak için kullanışlı. The AutoCAD APIs by Andrew Canfield

OBJECT ARX API ÖRNEK The AutoCAD APIs by Andrew Canfield void chngAtt() { ads_name entres; ads_point ptres; AcDbObjectId _Id, _attId; AcDbObjectIterator *pIttr = NULL; if(acedEntSel("Select a Block Reference", entres, ptres) != RTNORM ) //Selection failed return; } acdbGetObjectId(_Id, entres); AcDbObjectPointer<AcDbBlockReference> pRef(_Id,AcDb::kForRead); if(pRef.openStatus()!=Acad::eOk) //Open failed pIttr = pRef->attributeIterator(); while(!pIttr->done()) _attId = pIttr->objectId(); AcDbObjectPointer<AcDbAttribute> pAtt(_attId,AcDb::kForWrite); if(pAtt.openStatus()==Acad::eOk) pAtt->setTextString("We changed this"); break; pIttr->step(); delete pIttr; The AutoCAD APIs by Andrew Canfield

VB API İlk defa Autocad arabirim yazılımı kullanacaklar için uygun. “Visual Basic” yazılım diline yatkın olanlar için kullanışlı. Sadece komut isimlerini okuyarak komutların ne işe yaradığı anlaşılabilir. Autocad erişimi C++ veya Autolisp API’lerine göre daha sınırlıdır. Uygulamaların çalıştırılması için, buton ya da menü imgesinden seçim yapılmalı. (Sadece komutla çalışan kullanıcılar için kullanışsız) Dialog kutularını ve butonları en hızlı ve kolay hazırlayan API. The AutoCAD APIs by Andrew Canfield

VB API ÖRNEK The AutoCAD APIs by Andrew Canfield Option Explicit Sub chngAtt() Dim objEnt As AcadObject Dim objRef As AcadBlockReference Dim varAtts As Variant Dim objAtt As AcadAttributeReference Dim emptyPt As Variant ThisDrawing.Utility.GetEntity objEnt, emptyPt, "Select Block: " If objEnt.ObjectName = "AcDbBlockReference" Then Set objRef = objEnt If objRef.HasAttributes Then varAtts = objRef.GetAttributes Set objAtt = varAtts(0) objAtt.TextString = "We changed this" End If End Sub The AutoCAD APIs by Andrew Canfield

AUTOLISP API Autolisp derleyici (compiler) olarak Autocad komut ekranını kullanır. Yani hem komut akışını hem de çizim ekranını aynı anda takip edebilirsiniz. Çoğu kullanıcının Autolisp’te çalışmasının nedeni bu dilde rahat etmeleri ve en hızlı bu dilde yazılım geliştirebilmeleridir. 2000 yılına kadar, VBA Autocad’e tam olarak uyarlanmadan önce, çok sayıda Autolisp kütüphanesi geliştirilmiştir. Autolisp ile çalışmak rahat geliyorsa, Autocad komutlarını iyi biliyorsanız Autolisp sizin için uygun API’dır. The AutoCAD APIs by Andrew Canfield

AUTOLISP API ÖRNEK (defun C:chngAtt () (setq Mainent (entsel)) (setq entList (entget (car Mainent))) (setq entAtt (entget (entnext (cdr (assoc -1 entList))))) (setq entNewAttVal (subst (cons 1 "We changed this") (assoc 1 entAtt) entAtt) ) (entmod entNewAttVal) (entupd (car Mainent)) (princ) The AutoCAD APIs by Andrew Canfield

3.AUTOLISP FONKSİYONLARI Fonksiyon: Autolisp’in uygulaması için önceden belirlenmiş komutlar dizisidir. Fonksiyonları 3 bölümde inceleyebiliriz OPERATÖRLER - Kullanıcıdan verileri alır İŞLEMCİLER - Verileri manipüle eder KOMUTLAYICILAR - Autocad’e komut gönderir

3.1. OPERATÖR FONKSİYONLAR Kullanıcının veri girmesini sağlayan fonksiyonlardır. Kullanıcıdan alınan veri türleri: Sayı String (Karakterler dizisi) Nokta Mesafe Autocad objesi/objeleri

3.1. OPERATÖR FONKSİYONLAR Örnek: (setq p (getpoint "\nReferans kot noktasını seçiniz:")) getpoint : Kullanıcıdan nokta seçmesini ister. (setq refkot (getreal "\nReferans kot degerini girin:")) getreal : Kullanıcıdan sayı girmesini ister.

3.2. İŞLEMCİ FONKSİYONLAR Kullanıcıdan gelen verileri üzerinde işlem yapmayı sağlayan fonksiyonlardır.

3.2. İŞLEMCİ FONKSİYONLAR Örnek: (setq p1 (polar p (/ pi 3) 3)) Yerleştirilecek üçgenin köşelerini belirle.

3.3. KOMUT FONKSİYONLARI Autocad’e komut göndererek yeni objeler yaratan veya mevcut objelerin veritabanlarını değiştiren fonksiyonlardır.

3.3. KOMUT FONKSİYONLARI Örnek: (command "pline" p p1 p2 "c") p, p1 ve p2 noktalarından geçen polyline çizer. (command "text" "j" "bl" p1 1 0 (rtos ref 2 2)) p1 noktasına kot değerini yazar.

3. AUTOLISP GEÇMİŞİ LISP, 50’li yılların ortalarında John McCarthy tarafından yazılmış, 70’li yıllarda “Yapay Zeka” (AI) uygulamaları için kullanılmış yazılım dilidir. LISP, diğer programlama dillerinden farklı olarak, parantezli – önden eklemeli notasyona mensuptur. (fully parenthesized Polish prefix notation) Autolisp 80’li yıllarda yazılmış, Autocad yazılım programlama arabirimi olarak tasarlanmış, LISP lehçesidir.

3.Önden Eklemeli Notasyon AUTOLISP MATLAB GÖREV (setq a (+ a 4)) Değişken atama a = a + 4 (if (< a 0) (setq a (* -1 a)) (setq a 0) ) if a < 0 a = -1 * a else a = 0 end Koşullandırma (setq pr 1) (while (> a 0) (setq pr (* pr a)) ) pr=1 while a > 0 pr = pr * a end Döngü

3.Önden Eklemeli Notasyon AUTOLISP MATLAB GÖREV (defun isim (x) (setq y (sin (* 2 x))) (progn y) ) function y= isim(x) y= sin (2*x) end Fonksiyon Tanımlama İsim : fonksiyon ismi x : input y : output

4.PROGRAMLAMA VE AVANTAJLARI Başlangıç seviyesinde Programlama dili (syntax) yapmak istediğimiz işin önünde bir bariyer olabilir. Elimizdeki mevcut araçlarla programı işlemek ve test etmek zaman alabilir. Programlama dilini ve yapısını öğrenmek zor olabilir. The Benefits of Understanding Programming by Luke Robinson

4.PROGRAMLAMA VE AVANTAJLARI Fakat bu güçlükler programlamayı daha çekici hale de getirebilir. “Problem çözümleme” becerisi, programlama çalışmalarıyla geliştirilebilir. Ancak bu beceri, “gerçekçi” düşünce yollarıyla olması gereken yönde geliştirilebilir. The Benefits of Understanding Programming by Luke Robinson

4.PROGRAMLAMA VE AVANTAJLARI Programın gerçekleştireceği çözüm basamakları (algoritma) oluşturulduktan sonra kodlamaya başlanmalıdır. Program, yalnızca bilgisayarın gerçekleştirmesini istediğimiz komutlar zinciridir. The Benefits of Understanding Programming by Luke Robinson

4.PROGRAMLAMA VE AVANTAJLARI Verimli olarak program yazabilmek için -Programın kontrol yapısını ve nasıl çalıştığını -Veri türlerini -Programlama dilini kavramak gerekir. The Benefits of Understanding Programming by Luke Robinson

4.PROGRAMLAMA VE AVANTAJLARI Programlama, yaptığımız işleri hızlandırarak bireysel gelişim sağlamanın yanı sıra, günümüz teknolojisini anlamak açısından önemlidir. The Benefits of Understanding Programming by Luke Robinson