PGerceklestirim Belgesi  
 
 
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