Roof Animate 2000
Ilker Cetin
Aydinlioglu, Ant
Birsu Vural
s04054,
s04008
Gerceklestirim Belgesi
Yazilim Gelistirme
Projesi
Bilgi Teknolojileri Sertifika
Programi
IDEA: ODTU Sanal Kampusu
14 Haziran 2001
Oz
Gerceklestirim raporunun :
a) Amaci:
Projenin gerceklestirim asamasini okuyucuya aktarabilmektir.
b) Icerigi:
Bu raporda yazilim sirasinda karsilasilan sorunlar, bunlara getirilen
cozumler, yazilimi olusturan temel bilesenler ve
bunlarin gorevleri anlatilmaktadir. Ayrica projeyi olusturan menu ve
ekranlardan ornekler verilmektedir.
Son bolumde ise kullanicilara yonelik bir klavuz (yazilimin amacini,
ozelliklerini, becerilerini, hangi
platformlarda v.s. iceren) sunulmaktadir.
Karsilasilan
Sorunlar ve Uygulunan Cozumler
Hatirlatma:
Analiz ve Tasarim belgelerinde bulunan Seviye1 VAD diyagraminda "Cizim
Modulu" isminde modul bulunmaktadir.
Bu modulun aciklamasi tekrar (karsilasilan sorunlari okuyucuya daha
saglikli anlatabilmek icin) verilmektedir.
""
Cizim Modulu:
-Bu modulde programin ikinci bolumu aktif hale gelir. Ikinci
ve yeni bir program devreye girer. Aslinda bu ikinci
kisim cpu'nun blok kuyrugunda bulunmaktadir. Aktif hale gelmesi
ile hazir durumuna gecmesi saglanir.
Sozu edilen modul Autolisp kullanilarak yazilacaktir. Amac sistemin
Autocad ortaminda uc boyutlu cizimini
yapmaktir.
Bu modulun aktif hale gelebilmesi icin, analiz belgesinde seviye1
VAD'da anlatilan modullerdeki islemlerin
(sisteme ait duzenli verilerin hazirlanmasi) yapilmasi gerekmektedir.
Diger anlamda bu modulun okuyacagi
dosyalarin olusturulmasi gerekmektedir.
Not:
Programin calisacagi bilgisayarda, bu modul yuzunden cpu'nun
bos bekleme yapmamasi icin, isletim sistemleri
dersinde gorulen down ve up kavramlarinin benzerleri (sleep,
delay vb. komutlar) kullanilacaktir.
""
Yazilimin gerceklestirimi sirasinda karsilasilan sorunlar:
1) Cizim Modulu uygulamada ayri bir programdir.
1.1) Cizim Modulu 250 satirlik (diger anlamda satir sayisi cok az)
ek bir programdan olusmaktadir.
1.2) Sadece diger modullerin (Seviye1 VAD'da bulunan) yardimi ile hazirlanan
dosyadan, verileri okudugu sirada
cizim islemini gereklestirmektedir.
Bu yuzden icerigi basit.
1.3) Delphi'de kullanilan Pascal komutlari ile Autocad'te cizim yapilabilseydi,
"Cizim Modulu" adli modul
pascal komutlarindan olusacakti.
Diger anlamda, bu modul Autolisp kullanilarak yazilmayacak ve
uygulamada ikinci yeni bir
program olmayacakti.
Bu uc madde (1.1, 1.2, 1.3) sebebiyle cizim modulu, analiz ve tasarim
sirasinda teorikte ayri bir program olarak
dusunulmemistir. Programin gerceklestirimi sirasinda olusan bu sapma
bir probleme yol acmamistir.
2) Roof Animate calismaya basladiginda iki program
aktif hale gelir. Bunlar;
2.1) Kullanicinin verilerini girecegi ve bu veriler isiginda cizim
icin gerekli datalarin hazirlanacagi delphi'de
yazilan "Animate.exe" isimli
program.
2.2) Hazirlanan sistemin duzenli verilerini, Autocad ortaminda uc boyutlu
cizime doken Autolisp ile yazilmis olan
"A~engine.lsp" isimli program.
Diger anlamda Cizim Modulunu olusturan program.
"2.2" de bahsedilen program, yazilim calismaya basladigi andan itibaren
her sekiz saniyede bir aktiflesmektedir.
Cunku: "2.1" de sozu edilen programin, sistemin cizimi icin gereken
dosyalari hazirlayip hazirlamadigina
bakmaktadir.
Amac: cpu'nun bos bekleme yapmasini engellemektir. Bu islem "Delay"
komutu ile gerceklestirilmistir.
Bekleme suresinin sekiz saniye alinmasi yaptigim denemelerle bulunmustur.
Bu surenin farkli alinmasi
(16 veya 1 saniye gibi) durumunda olusabilecek senaryolar su sekildedir.
Ornek 1:
Bekleme suresini 16 saniye aldigimizi kabul edelim. Uc boyutlu cizim
icin gerekli dosyanin, program
calistirildiktan sonra 33. saniyede olustugunu kabul edelim.
Boyle bir durumda olusacak istenmeyen durum soyledir:
a)Bekleme suresi 16 saniye oldugundan cpu 32. saniyenin sonunda toplamda
iki kere bos bekleme yapardi. Yine 32.
saniyenin sonunda "2.2" de bahsedilen program bekleme
suresi 16 saniye olacak sekilde blok durumuna gecerdi.
Gerekli dosya 33. saniyenin sonunda olustugundan kullanici
fazladan 15 saniye daha beklerdi.
b)Bekleme suresi 8 saniye olsaydi cpu 32. saniyenin sonunda toplamda
dort kere bos bekleme yapardi. Yine 32.
saniyenin sonunda "2.2" de bahsedilen program bekleme
suresi 8 saniye olacak sekilde blok durumuna gecerdi.
Gerekli dosya 33. saniyenin sonunda olustugundan kullanici
fazladan 7 saniye daha beklerdi.
Bu durumda cpu'nun dort kere bos bekleme yapmasi tercih edilmektedir.
Ve Delay suresi bu nedenle 8 saniye
alinmistir.
Ornek 2:
Bekleme suresini cok kisa tuttugumuzu ve 1 saniye aldigimizi kabul
edelim. Uc boyutlu cizim icin gerekli
dosyanin, program calistirildiktan sonra tekrar 33. saniyede olustugunu
kabul edelim.
Boyle bir durumda olusacak istenmeyen durum soyledir:
Bekleme (Delay) suresi 1 oldugundan cpu, cok fazla bos bekleme (cizim
icin gerekli dosyanin olusmasi icin)
yapacagindan ortalama bekleme zamani (bekleme zamaninin 8 saniye olmasina
kiyasla) yuksek olmaktadir.
3) Uzay catiya (sisteme) ait elemanlar (borular),
uc boyutlu olarak cizilme asamasinda asagidaki kisitlama
uygulanmistir.
3.1) Elemanlarin (borularin) cizimi sirasinda silindir yerine polygon
(sekiz koseli) kullanilmistir. Amac:
Cizim 3dsMax programina
aktarildigi sirada "out of memory" hatasini vermesini onlemektir.
Yukarida karsilasilan ve gelistirilen cozumlerin hicbirisi proje teklifinde
verilen amaclara, ulasmayi etkilememistir.
Yazilimin
Bilesenleri ve Gorevleri
Projenin temel bilesenleri asagidaki basliklar altinda toplanmaktadir.
1) Veri Tabani Tablolari: *.db uzantili dosyalardir. Tasarim belgesinde
detayli olarak aciklanmistir.
2) Yazilim Bilesenleri:
2.1) *.exe uzantili dosya (Animate.exe) Autocad altindan ilgili butona
basilmasiyla calisan program.
2.2) *.lsp uzantili dosya (A~engine.lsp) uc boyutlu cizim islemini
gerceklestiren program.
2.3) Kaynak program kodlari:
Unit1.pas -
Roof animate acilis programi.
Unit2.pas -
Seviye1 VAD'ta bulunan (Okuma, Veritabani islemcisi, Hesap, Dosya hazirlama)
modullerinin
gerceklestirildigi program.
Unitek.pas - Kullanicinin
gerekli verileri girmesini saglayan program. Diger anlamda Seviye1 VAD'ta
bulunan
Parametreler modulunun gerceklestirilmesini saglayan program.
Unit4.pas - "About
Roof Animate" programi.
3) dfm uzantili dosyalar (form dosyalari)
4) Yazilimda bulunan dizinler (alt dizinlerle birlikte) su sekildedir.
Ornek:
Kullanici programin "c:\Acm-two" surucusu
altina kurdugunu (baska surucu ve dizinlerin altinada kurulabilir)
kabul edelim. Bu yazilimin kurulmaya hazir
hale getirilmesinde "Install Shield for Delphi4" isimli program
kullanilmistir. Buna gore olusan dizinler
ve gorevleri:
- c:\Acm-two
" \Roof
" "
\Animate
" "
" \Bin
dizini altinda "Animate.exe" ve "A~engine.lsp" dosyalari,
" "
" \Data
dizini altinda "Animate.exe" programinin urettigi ve "A~engine.lsp"
programinin uc boyutlu cizim icin okudugu ilgili sisteme ait (formati
txt turundeki) dosyalar,
" "
" \Icons
dizini altinda programlarda kullanilan "*.ico" dosyalari,
" "
" \Images
dizini altinda 3dsMax veya 3ds4'de kullanilacak arka plan resim
(*.jpg, *.bmp, *.gif formatlarinda) dosyalari,
" "
" \Matlibs
dizini altinda 3dsMax veya 3ds4'de kullanilacak yardimci kutuphane
(*.mli formatinda) dosyalari,
" "
" \Meshes dizini
altinda kullanicinin incelemesi amaciyla ornek (*.3ds formatinda)
dosyalar, diger anlamda 3dsMax'da kullanilmaya hazir, uc boyutlu cizimi
yapilmis sistemler,
" "
" \Projects dizini
altinda yine kullanicinin incelemesi amaciyla ornek (*.prj
formatinda) dosyalar, diger anlamda 3dsMax'da kamera, isik ayarlari
tanimlanmis dosyalar,
" "
" \Register dizini
altinda Roof Animate programinin kullandigi kutuk (*.db
formatinda) dosyalari,
" "
" \Support
dizini altinda sistemin uc boyutlu cizimi sirasinda A~engine.lsp programi
tarafindan kullanilan blok (*.dwg formatinda) dosyasi,
" "
" \Template dizini altinda
yine sistemin uc boyutlu cizimi sirasinda A~engine.lsp
programi tarafindan kullanilan cizim ekrani (*.dxf formatinda) dosyasi
bulunmaktadir.
- c:\Acm-two
" \Temp
dizini altinda sistemin analiz sonucu olan "*.sap" dosyasinin default olarak
bulundugu
kabul edilen yer. "*.sap" dosyasi ile ilgili bilgi seviye1 VAD'ta (analiz
ve tasarim)
belgelerinde bulunmaktadir.
" "
\Show dizini altinda sistemin uc boyutlu ciziminin yapildiktan sonra bu
cizimin default olarak
kaydedildigi yer.
Yazilimdan
Kesitler
Asagida sirasiyla yazilim calistirildiktan sonra elde edilen ekran ciktilari,
bir sistemin ornek cozumu ve
bunun sonucunda uretilen sonuc bulunmaktadir. Diger anlamda "ornek
sistem cozumu" linkinde cozulen
sistemin sonuclari "elde edilen sonuc" linkinde verilmistir. Bunun
amaci okuyucunun aciklamalari rahat
takip edebilmesine yardimci olmaktir.
KULLANICI ARAYUZU
ORNEK SISTEM COZUMU
ELDE EDILEN SONUC
Kullanici
Klavuzu
Yazilimin:
1) Amaci:
-Sap90 (version 5.10, 5.40), Sap2000N ciktilarini
(*.sap) degerlendirerek animasyon icin gerekli olan cizimi
uretmektir.
-Sonsuz sayida elemanli sistemlerin animasyonu icin
cizimini uretmektir.
2) Ihtiyac Duyulan Platform:
-Win9x ve Autocad 14/2000
3) Kullanimi:
-Autocad14 altindan ilgili iconuna basilir.Cikan
menu uygun degerler girilerek doldurulur.Run komutu ile
program calistirilir.
4) Ozellikleri ve Becerileri:
-Roof Animate sistemin *.dxf dosyasini 3DMax
veya 3DS-R4 animasyon programlarina hazirlar.Bahsedilen
animasyon programlarindan birisi calistirilarak
sistemin ilgili *.dxf dosyasi cagrilir.Malzeme aydinlatma ve
kamera tanimlari yapilan bu programdan
*.bmp (3D resim), *.flc, *.avi (3D animasyon) elde edilir.
-Sistemin geometrik sekli ve buyuklugu Roof
Animate icin baglayici degildir.
5) Yazilimda Bulunan Bolumlerin Aciklamalari:
5.1) File Section:
Tanimlama
Bu bolumde sisteme ait input dosyasi, ilgili *.sap dosyasi (Sap90 veya
Sap2000N ciktisi)
bulunduklari adresler ile
birlikte tanimlanir.Roof Animate programinin benzeri programlardan farkli
olmasini
saglayan Sap90 veya Sap2000N
(Nonlinear) ile uyumlu calismasi ve sonsuz kapisiteli (limitsiz) olmasidir.
Ornek (Dosya tanimlamasi
icin):
Cozumlenmesi istenen sistemin input dosyasinin ismi 'Opis' olsun.Ornek
sistemin Sap90 veya
Sap2000N (Nonlinear) ciktisi
'Opis.sap' olsun.
Bu durumda input dosyasi belirtilirken 'Input file name' adli radyo butonuna
basilir ve input
dosyasinin bulundugu dizine
gidilerek ilgili dosya 'Opis' secilir.
Eger 'Opis.sap' dosyasi input dosyasi ile ayni dizinde bulunmuyorsa, 'Extensions
with *.sap' adli
radyo butonuna basilir ve
'Opis.sap' dosyasinin bulundugu dizine gidilerek adi gecen dosya secilir.
5.2) Output Section:
Tanimlama
Bu bolumde, sisteme ait Roof Animate sonuclarinin olusturulacagi dizin
secilir ve cozulecek sisteme
ait, ust ve capraz basligin
baslangic eleman numarasi belirtilir.
'Top Plane starting member number' yazisinin karisisinda bulunan kutuya
(editbox), ust basligin
baslangic eleman numarasi,
'Crossing Plane starting member number' yazisinin karsisinda bulunan
kutuya capraz basligin baslangic
eleman numarasi belirtilir.
Roof Animate programinin
sonuclari:
- Animate.dwg
(Sistemin animasyona hazir ilgili *.dwg dosyasi),
- Animate.dxf
(Sistemin animasyona hazir ilgili *.dxf dosyasi).
5.3) Sap Section:
Tanimlama
Bu bolumde, animasyonu yapilmasi istenen sistemin *.sap ciktisini
almak icin kullanilan Sap90
versiyon numarasi (ver 5.10
, ver 5.40) veya Sap2000N (Nolinear) secilir.
Hatirlatma:
-Sozu edilen bu islemlerin (yazilimin) yapilabilmesi icin,
"uis" dersindeki mutex,
"vya, vtys, ym, cbp" derslerindeki ogretilen konularin hespinden
ama hepsinden faydalanilmistir.
NOT:
-Programin gerceklestirim asamasini Borland C++ Builder 5.0'da yapmak
isterdim. Fakat sahip oldugum
donanimdaki yetersizliklerden dolayi bunu yapamadim. Bunun yerine
Delphi 4.0 (teklifte belirttigim gibi)
kullandim.
Ana Sayfa |