özdirenç verilerinin sonlu elemanlar yöntemi kullanılarak iki boyutlu
Transkript
özdirenç verilerinin sonlu elemanlar yöntemi kullanılarak iki boyutlu
BI$OKUii Prof' 0r' trhmetT" AIiKAIL{ t-tNiVpnsirp si FENBiLIMLENENSTITUSU YUTSETLISANSTEZI ozoinsNQvenimniNiu soNLUELEMANLanv6msm KULLAMLARAK iTi EOYUTLU MODELLSUTSI rrE TERS arconiruast gOzrh,ru igiNorouarir ad ouzer'u,evs Ayhan DOGAN JEOF1ZiKMIII{ENDISLiGi ANABILIM DALI A}IIA\IL\ 2001 Her hakkl sakhdrr. Prof. Dr. Ahmel Tulrul BA$OKLIR damgmanhfrnda,Ayhan DOGAN tarafindan hazrrlananbu gahgmaM/10/20O1tarihinde aqa[rdaki jiiri tarafindanJeofizik Miihendislili Anabilim Dah'nda Yiiksek Lisanslezi olarak kabul edilmigtir. Bagkan: Dog.Dr. Fatma ERDOGAN rv>- pror. Dr.Ahmetru!rur "^**>ITJ| Yrd. Dog. Dr. Emin ULUGERGERLi Yukarriclri sonucuo""yh"3 / _,..'\r/i \. . .r-\,. r'' .7iod6r.EsmaKILIQ Enstitfl Mtdnrn -- 6znr Yiiksek Lisans Tezi OzninnNq vERiLERiNiN soNLU ELEMANLARYONTEMI MODELLEMESiVE TERS KULLANILARAKiTi EOYLTTTU eOzuMU iqiN orounrir aG lUznNrew ALGoRITMASI Ayhan DOGAN AnkaraUnivsrsitesi FenBilimleri Enstitiisii JeofizikMthendisli$iAnabilim Dalt Prof. Dr. AhmetTuprulBA$OKUR Damqman: Giiniimiizde dolp akrm ozdireng yontemi ile elde edilen veri; 2-B olarak yapma-kesitler ve seviye haritalan yardrmt ile sunulmakta ve nitel olarak ydntemi, arama yorumlama gahgrlmaktadrr. Bu yorumlanmaya modellsme problemlerinin goziimiinde gok etkili defiildh. iki-boyutlu programlan ise a$ dizayntntn diizenlsnmesinin sadrce konunun uzmanlan yaygln olarak endtistride yaprlabilmesi nedeniyle tarafindan kullarulmamaktadrr. Bu gahgmada; uchida vs Murakami (1990) tarafindan haztrlanan Schlumberger verilerinin 2-B ters gSziimiinii yapan bir bilgisayar programl yiizeyi igin gdrsel olarak otomatik a$ diiaenleyen bir kullanrq ara geligtirilmig ve bu programrn modelleme boliimii, sonlu elemanlar ydntemi ile giiziilmeye gahqrlmrqtrr.Programrn ters-96zii'm billiimii sasaki (1981) tarafrndan yazlmtqtr. Kullantct denetiminde gonel bilgisayar programl ile yaprlan aS dizayntnm, di$er yontemlerle elde edilen aflardan flstiinlii[ii tartrqrlmazdr. $imdiye kadar dop"ru akrm ozdireng verilerinin 2-B tsrs goziimiinde kullanrlan programlarda a$ ya sayrsal olarak kullanrcr tarafindan haarlanmakta yada biittin veriler igin standart bir aS kullanrtnaktadr' Bu ise kullamlan a[tn model ile uyumlu ohnamasrm do!'urmakta ve yanhg saytsal hesaplamalara yol agmahadrr. Aynca yanlanbilgisayar programl ile otomatik a$ oluqtudmaya 9ah9r1mr9 ve alrn gorsel olarak dizaynmr miimkiin krlacak ozsllikler programa konulmuqtur. 2001,174Sayfa ANAHTAR KEL|MELER: tlogru akrm ozdireng,sonlu elernanlary<intemi, 2-B modellsme, tcrs qoziim, otomatik a! diizenlemealgoritmave Programl- ABSTRACT MastersThesis AUTOMATIC MESH DESIGNALGORITM FORTHE TWO-DIMENSIONALFINITE ELEMENT MODELING AND INVERSION OF THE DIRECT CURRENTDATA. Ayhan DOGAN AnkaraUniversity GraduateSchoolof Natural Applied Science Departmentof GeophysicalEngineering Supervisor:Prof. Dr. Ahmet Tulrul BA$OKIIR The dtect currsnt data are traditionally presented by apparent resistivity pseudosections and maps and the data are interpreted in a qualitative way. This method of interpretation is not efficient to solve the exploration problerns. On the other hand, the two-dimensional modelling softwares are not widely used in the industry because of the lack of experienced interpreter able to correctly design the model mesh. llt a visual automatlc In this study, a user interface was developed to provide adapted from the was program mesh design tool. The inversion part of the (1990) for the twosoftware that developed by Uchida and Murakami data. The dimensional inversion of Schlumbsrg€r appare,nt resistivity modellingsectionofthesoftwareusesthefinite.elementmethod.The Sasaki(1981) inversion part of the software is originally developedby preparing a digital file The mesh design is traditionally performed by either cause instabiliry in or by using a standard mesh for all type of data' Th€se responses' The numerical computations and lead to incorrect model calculation proposed algorithm prevents the user designing inappropriate mesh. to a ussrMoreover. the automatic mesh design algorithm is connected way' interface to make the necessarycorrection in a visual 2001,lT4Page 2-D KEY WORDS: Direct current resistivity, finite element method, modeling, inversion' automatic mesh design algoritm' automaticmeshdesignsoftware' iv ONsOzverEgEKKtiR Giiniimiizde modelleme yaprlrrken bilgisayar kullamlmasr kaqrnrlmaz hale gelmigtir. Ancak kullamlan bilgisayar progranrmn istenilen iqlevlere uygunlu$u araqtrmactyt do$rudan etkilemekt€dir. Bu nedenl€ arastmacl igin gereken bilgi, hrz, gorsellik ve esnekliSi saSlayacak bilgisayar programlanna ihtiyag duyulmaktadr. iiniversite ortamrnda geligtirilmesinin Bu tiir bilgisayar programlanntn biiytik avantajlan bulunmaktadrr. merkezi konumunda bulunmasr gereken programlannda olduiundan, arattlrma igin bilgisayar ozellikleri en iyi bilen yerlerdir. Ozellikle iilkemizde iiniversiteler ara$trmanm Bu gahgmada yukanda belirtilen amaglarla, ozdireng verilerinin soulu elemanlar yontemi kullamlarak iki boyutlu modellsmcsi ve tsrs goziimii igin otomatik a$ diizenleyen bir bilgisayar programl geliqtirilmeye gahqrlmrqtrr. Bu gahgmada bana yardtmlanu esirgemeyen dantqman hocam Prof. Dr. Ahmet TuSul BA$OKUR'a oncelikli olarak tegekkiir ederim. Aynca bilgiterinden yararlandr$m Sayrn Yrd. Doq.th.Altan NECiOCLU (A.U. Jeofizik Miih.Bol.), Sayrn Yrd. Doq. Dr. Emin ULUGERGERLI (A.U. Jeofizik Miih.B61.), Sayrn Arg. Gbr. M. Emin CANDANSAYAR (A.U. Jeofizik Miih.Bol.) ve Sayrn Unal DIKMEN'e (Bayrndrrlrk ve iskan Bakanhsr Afet iqleri Genel Miidiirliisii) teqekkiir ederim. icfuvnnrir,rn .......' ....' ....".1 6 zrr .......... iii ................. v ...-.-............... viii ................ .'..-... ix xi '.....-........-.-. . - . . . . . . . . . . . . . .I. ' . . . . . . ABSTRACT veTE$EKKUR ONSOZ S'MGELERDiZiNi........ DiziNi $EKILLER eizELcELERDiziNi.... 1 .c i R i $ 2 --...-'...'.""" Amactve Kapsamt.l.l. Qalrqmamn 2. MODELLEMEVE ELEKTNKYONTEIVtr.ERE."".............3 IJYGULANI$I ."""""' 3 2.1.MdellemeninTanmr ..""" 6 2.2. GsrelolarakModellemeQeqitleri......' 2.3.SonluElemanlarYontemiile fui BoyutluModelleme.""' 9 ....-..-...'.12 3 .A c T A S A R I M . . . . . . . . . . . . . . . ."""" 13 Onsmi 3.1.Ag Tasanmrmn 14 .'....'..... Seqimi.'.... 3.2.UygunA$ Tasanmmrn -........16 4. ETKiLE$ilvtri AG TASARIMIYAPAN BiLGISAYARPROGRAMI ....--.......l7 EtkilegimliBilgisayarProgrammm 4.1. Geligtirilen Ozellikleri 4.2.BilgisayarProgramtile A$ Tasanmrve Modelleme...'...30 .'-...."32 5. UYGULAMALAR.............. 1................... 5.1.Ag Tasanmt "-..34 35 ...........'............' 2...-...........'.. 5.2.A|Tasanmr .....36 3...............'.. 5.3.Ag Tasanmr ......37 4.................. 5.4.Ag Tasanmr '....'38 5.................. 5.5.Ag Tasanmt .................-..-.......--.39 Tasanmr i1e Ag Verisi 5.6.OrnekArazi ve Ters Qitziim Sonucu 41 .......'....... OxeRitER.................. SONUQLARve ..-...-..'....42 KAYNAKLAR vl """"""""' 43 EKLER........ 43 EK-A. BilgisayarProgramtmnKaynakKodlan"""" """""" """"""" r74 Ozcrquig vii siMGELER DiziNi nAO DoguAkrm0zdireng l-B I BoYutlu 2-B 2 BoYutlu 3-B 3 BoYutlu lX Yatay y6nde,istasyonlararasrndakiuzakl* farkr' vlll $EKiLLERDiziNi $ekil2.1. Diiz ProblemQoziimiinin igleyigi (Nezihi Cmfez, JeofizikteModelleme,1997') $eki12.2. Ters ProblsmQiiziimiiniin igleyiqi (Nezihi Canrtez,Jeofizille Modelleme,I 997') $ekil2.3. I Boyutlu Model $ekil2.4. 2 Boyutlu Model $ekil2.5. 3 Boyutlu Model $ekil2.6. Model A$t $ekil2.7. HesaplamaA[t $ekil4.1. ProgrammGenelGoriiniimii $ekil4.2. OrnekAS TasanmrmnGiirtiniimii $ekil4.3. DosyaMeniisii $ekil 4.4. Diizen Msntisii $ekil4.5. Giiriiniim Meniisii $ekil4.6. Arag Qubu$u $ekil4.7. Goriiniim Yiizdesi $ekil4.8. Gdriiniimii AYarla $ekil 4.9. OzdirengTablosu $ekil 4.10. PsncereMeniisii $ekil4.11. Qdz Meniisii $ekil 4.12. TersQoziimPenceresi 1X $ekil4.13. ProgramHak}mda Meniisii $ekil 5.1. 2-F oziirrengmodeli $ekil 5.2. Yapay 2-B OzdbengModeli igin Ters Cttziim Sonucu $ekil 5.3. A$ TasanmrI Ters QdziimSonucu $ekil5.4. A! Tasanmr2 Ters QdziimSonucu $ekil5.5. AS Tasanml3 Ters Qtiziim Sonucu $ekil 5.6. A! Tasanmr4 Ters Qbziim Sonucu $ekil 5.7. Ap Tasanmr5 Ters Q6ziim Sonucu $ekil 5.8. Arazi Vsrisinin Ters Qirziim Sonucu qiznrcnr,nnoizixi Qizelge5.1. A[ TasanmrI igin kullanrlandz arahklan (soldansa$ado[nr srraile) Qizelge5.2. A! Tasanmr2 igin kullamlandz arahklan (soldansafado$u sua ile) Qizelge5.3. A! Tasanmr3 igin kullamlandz arahklan (soldansa$ado$ru sra ile) Qizelge5.4. A! Tasanmr4 igin kullanrlandz aral*lan (soldansaPado$ru sra ile) Qizelge5.5. A[ Tasanmr5 igin kullamlan& arahklan (soldansafa do$ru sra ile) xi l. ciRi$ DoEru Akrm yontemi, siilfiirlti madsn yataklanntn aranmasnda" hiclrokarbon arnmalannda, miihendislik jeofizi[inde ve yeraltrsuyu aramalanndakullamlan bir ydntemdir.Giinrlmiizdedolfu akrmy6nteminde verilsr geneldebir-boyutlu (l-B) olarak yorumlanmaktaveya iki-boyutlu (2-B) kontur haritalan olarak sunulmaktadr. Gergel$eyerigi iiq-boyutludur (3-B). Bu nedsnle yaprlan ara$tumave delerlendirmeler 3-B olarak yaprlmahdu. Ancak 3-B modelleme gok ytiksek kapasiteli bilgisayarlar gerektirmektedir (pmalel iqlemcili ig istasyonlan gtbi)- Bu nedenle gtnflmfizde, 3-B desalYndirmeys en yahn olan 2-B de$orlendirme kullamlmaktadr. Dogru ap tasanmrnrn kullammr, 2-B modellemenin baqansmakatkrda bulunacaktn.Bunun iginde modellemedeaEdiz:yn gok buyiik on€Nnta$tr' Bu ise e&ileqimli bir bilgisayarprogramrkullamlrak miimkiindtr- 1.1.CalrymanrnAmacrve KaPsamt Bu gahgmamn amacr; tizdireng verilerinin sonlu elemanlal yontemi kullanrlarak iki boyutlu modellemesi ve ters goziimt igin otomatik a$ diizsnlemeyaahmrnm geligtirilmesidir.Bu amagkapsamrndagorsel olarak otomatik as diizenleyen bir kullanrcr ara yl0,zeyigeligtirilmiq ve bu programm modelleme boliimti, sonlu elemenlar ydntemi ile gdziiLneye gafugrlmrgtl.Bilgisayar ortammdave araStmacrmn dsnetimindeyaprlacak olan a[ dizaynrmn, di[er ytinlemlerle elde edilen aplardan daha iistirn oldu!'u tartrgrlmazbir gergektir' 2. MODELLEME VE ELEKTRiK YONTEMLERE UYGULANI$I 2.1.ModcllemeninTantmr Jeofiz'rlqyeriginin yaprslnl yada Jeofizik belirtiye neden olan kayna$t modelleme,macryla defiiik yontemler kullanan uygulamah bir bilim dahdf. Jeofizik y6ntemler genelde iki ana guptur. Bunlardan birincisi; yeryuvanna herhangi bir etki yapmadan do$al olarak olugan fiziksel ozellikleri kullanarak 6lgiim ve ara$tumayaprlmasrdrrki bu y6ntem dopal kaynakir yontemler olarak isimlsndiritnektedir. Diseri ise yeryuvan bir diirtii veya bir sinyal ile uyanlmakta ve yerin tepkisi 6lgiilmeye gahgrlmaktadrr.Bu yontsme de yapay kaynakh yontemler denilmektedir. Kullamlan ydntem ister yapay kaynakh isterse dopal kaynakh olsun olu$umun anlagrlabilmesiigin 6uilnka modellenmesigerekmektedir.Bu modellsmelerise gok gegitliolabilmektedir Baz modelleme geqitl€ri; Jeolojik yaprun modellenmesi, fiziksel benzegmeninmodellenmesi,matematikselmodelin olugturulmasr,do$nrsal dizge modellemesi,kayna$n modellenmesi,uyan sinyalinin modellenmesi, stokastik modellsme. (Camtea 1997.) Bunlardan ba;ka' ortamrn geometrisinin dtzsnli olmadr$, tekdiize bir yaprmn oldu[u durumlarda sonlufmklu ve sonlu elemanls modellsmey6ntemleri Jeofizilte srklrkla kullamlr. qiinkfl ysryuvan geirellikle karmaqrkbir yaprdadu. Jeofizikte modellemegeqidi nasrl olursa olsun proble,mgOziimiigenellikle iki yonlfidiir. Jeolojik bir modelin verece$ijeofrzik belirtiyi hesaplama iSlemi "DiE Qoziim" (modelleme)olarak bilinmektedir ($ekil 2.1) Diiz gttzumyapabilmekigin jmhzik veri ile jeolojik parametreleriiliqkilendiren bt *Mdet Ba|utwrnd' ihtiyaq vardr. Jmfizik belirtiden jeolojik modelin parametrelerinin hesaplanmasrise "Ters Qdziii' olarak bilinmektedir. ($ekil2.2) 3 (Camtea1997') $ekil 2.1.Diiz ProblemQoziimiintinigleyiqi' cOzteussr gerinri MODEL FONKSiYONU IDEALLIi$TIRME ILKErsRi KURI JMSAL BEl,iRTi cO;.LEy- I HAYm. KURAM EVET MODEL $ekil2.2. TersProblemQ6zflmtnfinigleyrgi. (Canfie61997.) 2e Gcncl OlrrakMo&tknc Cctieri Jeolojik yartrrn mo&lunrnesi gENcloh&k fig gekildeyrytr; l-Boyuth' Eldcrik ve Elelcrommy*ik 2-Boytrffu ve 3-Boytslu mdcltmtnlhilnalcadn yintemki yine fiodelt@ h ydntemlerde d€ cftdaca rrc arnasr g6re bu kulhmh Ayaffifa Arlagrmn y6nmrerreen bfui s€gilir. clu$n$t rc izotop btmrtsdm l-B mddMq verighin dtrr kelml* Ys vueaylr. ($e*il23) BEa&ieoloiik pafirm€ftenb&l'ra ait edil€n i9itr elde jefiziknftxilik d4erl€d ABl2 ffih is dlgfilo 6Gdirryl€r, g6rftEfirMiWefi@idir. $cldl23. f BquthMorilel{freasryrr' ff9q) Dogo, Ak,- dzdim' ySrntemin&2-B morldin" 6zdirensix ve z ySnim& degis€o,y yonrrndei$e sabit krbl edilen bloildarrds olu$hgB vafsaFhr. (Sekil2.4.) $ckil2"4. 2 Soyutlu Model (Crndenrryrr' 19flD) Do€ru fium ozrtirenq ydnbminde 3.B nodellde, kendi iqinds t€kdire ve izotr,op ldbik priznohrda ($skil2.s.) $eld25 3Bopl|n Modd (Crndrmpr' yeriqinin ozdilEnci ohryugu varsaplrr. f999) belirti analitik Dogu Alom ozaireng pAo) veriled l-B modellenirken yoldanhesaplanabilir.Ancak2-Bve3-Bmodellemeyaprlrrkenmodeller Bu yfrzden daha karmasrk oldupundan analitik hesap mfimk0n de$ldir' gok kullamlan en hesaplamalarsayrsaly6ntemlerleyaplr'Bmlar arasnda *Sonlu Elemanlt YAntemi dn' birisi de yOntemterOen Butezdehesaplnmalarsonluelemanlarydntemikulla$larakyaprlmrgtr.Bu dilinde bir ap tezi gergekleqtirebilmekigin Visuat C++ prograJlllama Murakami' nin ve tasanmrprogamr geligtirilmig ve bu programaUchida (1990)2-B modellemeve ters $z0myapan progranlreklenmigtir' 23. Sonlu Elemanlar Ydntemi ile iki Boyutlu Modelleme Sonlu elemanlary6ntemi ile iki boyutlu modellemeyaprlrken hesaplamalar igin iki a[ kullamlr. Bu aflardan birisi model a[r' dileri de hesaplama afrdr. iki a! kullanilrnasrnrnsebepleri: Hesaplamaa$mn merkezi,model afrndaki herbir istasyonnoktasrmetkez nokiasr olmak izere yerleqtfuitir. Model aprndaki 6zdireng deferleri hesaplamaa[rndaki bloklara atamr ve bu gekildeherbir istasyonigin ayn ayn g6z[m yaprlr. Birden fada istasyonigin aym anda962[n yaplamazQiink[ bu durumda birdsn fazla ahm kaynagr olacakhr. Aynca Dtgey Elekhik sondajr dlgfrsfrndeAB/2 mesafesi yizlerce mete uzunlukta olabilir. 2-B modellemeyaparkentek bir a[ kullanrlmek istenirse,yanyana birden fazla istasyonuntnnrmlanaca$bir a[ dflzenlemelidir.Bu durumdaa! igin gok gok bnyflk olacakhr.Bund,n dolayrdaigtemlerigerqekleqtirebilmek hrzlr ve gok ylksek kapasitelibilgisayarlaraihtiyaq duyulacakur.Bu sorunu ortadankal&mak iqin iki a! dfrzenlenmektedir. Programmodel a$m olu$tururkenyanal y6ndeher istasyonaftNrnabir blok yerleqtirir. DnSeyy6nde blok derinlikleri, ise sonlu elemanlarhesaplama a$ndakine eqitolacakgekildelogarihik olarakartmaktadu. HesaplamaaFnda yatay ve diiqey y6nde dikddrtgen slsmanlar bilgisayar progmml kullanlarak otomatik olarak veya kullamcr taxafndan istenilen saylda olugturulurlar.Her dikd6rtgen eleman kendi iginde iki tane iiggen elemana b6lflnmfi$t[r. Bu tez kapsarnnda "recip'rocity" teoremi kullamlmrgtr. Bu teoremdeakrm elekho'dlanhesaplamaa$nrn merkezine, potansiyelelekrodlanisedrgtarafayerlegtirifunigtir.Buydntemsayesinde tek bir diiz g6ztim sonucu ile bir istasyona ait biitiin AB/2 de$erleri kullamlabilir ve biitiin AB/2 de$erleri igin goriiniir ozdireng deserleri hesaplanabilir. 10 $ekit 2.6. Model Ait $ekil2.7. HeseplamaA$ 11 3. AG TASARIMI Jeofrziktsgoziim yaparken,yer altrndakibloklan dahaiyi temsil etmesiigin ap tasanmtkullanrlr. 12 3.1.Ag TasanmrnrnOnemi Modellemeyaparkenkullanrlacaken uyguna$rnsegimi,goziimsonucunun daha krsa zamandave daha do$u olarak bulunmastnado$udan etki etmektedir.E[er olugturulacakolan a$da gere$ndsn fazla eleman (farklt ozdirengli bloklar) kullanrlrsa goztm iglemi gok z:lmaln alacak ve yinelemeler igin gere$nden fazla beklsmek gerekeceltir. EEer olugturulacakolan a$dagere[inden dahaaz elsmankullamlusa o zamanda 96ziim iglemi gabuk olmasrna kargrn, g6z[m istsnilsn hassasiyette olmayacak ve sonugta elde edilecek model ile gergek jeolojik model arasnda btiyiik farklar olabilecektir. Bu nedsnl€r ile aS tasanmr gok iyi dfrzenl€nmelidir. Ancak bunu yapabilmek mesleki tecriibe, hrzlt bilgisayarlar ve kullamcryayardrm edebilecekgeligmiggrafik 6zelli$i olan programlargerekrrektedir. Bu tez kapsamrndagrafft dzelliSi olan ve otomatik a! tasanmr yapan, gerelcilinde kullamcrya 4 iizerindeki farkh 6zdirengli bloklann 6zelliklerini de$gtirmeyeolanakverenbir bilgisayar progmmrgeliqtirilnig ve b6ylece daha iyi ag tasanml yapmak igin kullamcrya dnemli oranda kolayl* sa$lanmrytr. A! tasanmr e[er iyi yaprlmazsa9ok fazla saytda farkh 6zdirengli blok kullamlsa bile istsnilsn minumum hata oramna ulaqrlamayabilir. Bu durumda yineleme sayrsr gok arhnlffik daha do$u sonuca gidilmeye gahgrlabilir Ancak kullamlan ydntemebaSholarak isteirilen sonugyine de elde edilmeyebilir. Ornegin; endft inig y6ntemi kullamhyorsa yerel minumum nohasr goziim gibi algrlanabilir. Elbetteki daha geliqmiq matematiksel mstodlar ku[mdarak bu ttirdsn hatalann dniine hsmsn gegilebilir. (Ornelrn; S6nfimlflEn Kiigiik KarelerYdntemi gibi.) 13 3.2. Uygun A[ TasanmmrnSegimi Model A[r tasanmr,herbir dlgiim istasyonununoldugu b<ilgedebilgi daha yogun oldu!'u igin bu bdlgeler igin' merkeze yakrn yerlerde daha sdq merkezdensapave sola dopru ilerledikge daha seyrek olmak iizere farkh ozdirenglibloklann oldusu diigiinfflerekyaprlmahdrr.Aynca diigeyyondeki bdliimlsme de yiizeyden derinlsre do$u genigleyenbir yaprda olmahdf. Qoziim yaprlrken dtiqeyydnde en alta konulacakolan blo$un yiizeye olan mesafesi uygulanan elektrik ve elektomanyetik youtemg kullamlan cihazlara ve yaprlan aragtrmanln amaclna g6re segiLnelidir. Ornegin; aragtrmadakullamlan ydntem IP yontemi ise diigey ydnde almacakblok derinlipi yiizeydenen fazlabirkag kilometre mesafedeolmahdr. ESerdaha derin mesafeletede farHr ozdirenglibloklar yefleqtirilirse,yaprlanolgiimiin iginde yeteri kadar bilgi olmamasrnakaqrn gereksiz bir boliimleme yaprlmq ve derinlerdeki b<ilgelerhaklandabelki de yanhg bilgi edinitnig olur. Aynca daha fazla sayrdablok kullamldrprigiq 96ziim iglemlerigok dahafazla zamanalacahr. A! tasanmr yaprlrrken dikkat edilecek bir baqkahususta"a! tasanmrnda oluqturulan farkh 6zdirengli bloklara atanacak baqlangrg ozdireng degerleridir. Bu deperler en baqta otomatik olarak yaprlabilir. Ancak kullantct bilgisayar programr yardtmt ile bloklann dzdireng delerlerini diper jeofrzik ydntemlerdenelde edilen bilgiler, j*lqik bilgiler, arande yaprlangozlemler,dahadncedenyaprlmrgsondajveya laboratuvarbilgileri ve tecriibelerini kullanarak daha uygun baglangrqdeferleri vermelidir. en uygunbaqlangtq Boyleceiglemlerindahahrzh sonuqvsnnesinisa$lamrg, yaklagrmsa$lamtq bir gifime daha iyi aS tasanmrruyapmrsve gergek olacaktr. Sonlu eleinanlar yonteminde a$ tasarlanrken iki uytt ap kullamlmaktadrr.Buulardanmodel aprm aragtrmactolugturur.Oluqturulan model alr tizerindekiherbir istasyonnoktast merkezolmak iizsre, sonlu elemanlarhesaplamaalr btitiin istasyonlarigin ayn ayn gakrqtrnlrr.Sonlu elemanlarhesaplamaalr igin iiggen elemanlartsrcih edilmigtir. Boylece 1^ l+ afr sayesindedaha kiigtik ve model a[rnrJaki dikdtlrtgen bloklar hesaplama oluqan yeni a! pargalanmrg olur' Bunun sonucunda 9ok sayrda blo$a goziim iglemine sokulur ve goziime bilgisayar programlan kullamlarak ters yinelenir ve daha iyi sonug ahnmaya ul[rhaya gahgrlu. Gerekirse iglemler gahgrlrr. 15 4. rrrir,rsirvrr i .q.G rAsARrMr YAPAN gilcisA'vA.n PROGRAMI Bilgisayar ortammdaveri ba[rml, kullamcr denetimli ve grafik arabirime sahip a[ tasanmt yapan bA bilgisayar programl Microsoft Visual C+r programlamadili ile geliqtfuilmiqtir. l6 41. Gdt*iriilcn EtHGtid eirrfrrrcrrnrnrl Orgl$cri Progrsnilk{q&$n*i gd $€kil4.1.Proerera G€nol&tunmt 17 fareymdrmr ileverildikten Bir a$ tasanmrigin isteirilen6zdirengdeserleri de gCIr0lm€kt€dir' *nn"ti a! tasanmrmn0:rnekgitrfm0mt $€kil 4'2' $*il 4.2. OrnekAS Tasanmnrn G6rfl!fimii 18 komntlar ve6zdliHeri Ap tasarrnrprograffinds bulnnan Vrrrlar&r' IlosyeMcndrfi MeW Sdq43,,Dq1e **' trzer€bq q.dosya ve gahpa tf* :efi-Ag ttranml yapmak agar' bh ddfu€nqffnkvedclertablosu Ayncabu sayfailc iligkilendirilnig otu$unrlmtt+aS tamnr AS;D8bs dncadenbtr bilgisayer iginkullmrltr' tzcriod" yeni@ gahgmak ae"k Gt*", "e ve &syasnr kapartr'E$erdocyada"' Kryat Atcif olm a$ tesrm sayfasrn kntlucryr uyeff v€ kayMilm€sioi degifiklikyryrl& "e t*yOoCitu*i isc tl' so$u. 19 Kaydet:Buozellikekrandakialrifolanpenceredekia[tasanmlbilgilennt Kaydedilenbu sonhaliylebu programa6zgii bir dosyaformatrylakaydeder' dosyadabiitiin grafrk bilgiler bulunmakladu' dosyayr/yeni Farkh Kaydet Oluqturulmuqve daha dncedenkaydedilmig dosyayryeni isimlekaYdeder' VeriDosyasroku:Buiizellikdahaoncedenarandeyaprlanolgiimler dosya sonucundaoluqturulan ve Uchida'nm oluqturdugu "Kosa2l" formaflndangereklibilgileriokuyarakprogrammkullanabilece$iforma programrngizim uygun veriyi fretir. Bilgiler uygun hale getirildikten sonra psncsre ag:Ir ve modiiliine giinderilir. Qizim modfilii ekranda yeni bir otomatikbira$tasanmryapalalgbupencereigerisinegizer.Qizilenbua[ fare tasanmr tzsrinde bloklann yerlerini ve blok tizdirong deferlerini (mouse)ile de$igtirmekolanakhdr' boqluk ve Sayfa Ayarlan: Yaactdan grktr almadan6nce sayfanm kalrt ka[rdrn kullamm yoniinii ayarlamakigin kullamhr' Yazdrr:Ekrandaolugturulanagtasarimininkagidadokiimtiniialir. giiriinfiilenmesini Baskt Onizleme: Yazrcrdangktr elmadan6nce ekranda sa$lar. 20 I'6G.r licnftfi $6ki14.4.DBraMenES Geri Al: En sonyaprlm iqh,fii sms ilo g€ri dr. Tdcrla- En sooy4dm i+temitdcrrlar. Kcs Scgili olm nemeyi Oto& veya qg gi4ici) tdaar kopyalmak ilzere veyttatnreneasila- KspyEla: Sagili olao aerreyi (bh& veya a* Cidst €zrre (yry{gttr kmr*u ile) hnfirzya elrr, daLa *mm coplmk khadocc*Iks- veya-Kop3ialaLm$tlrr itehrF"alrselrqanen YgS scr tr€snenin birkcayuru iin*ir" SiL Segiliots nryi {ttuk voy*$ giaisi) sikr. 2t GdrtniimMenfisfi $€ldl 4.5. C6tftitu M€nii$ii Arag 9ubugu: Komutlann hmyol ikonlannrn hlundugu araq gubu$rmu a{,arvcya kspafir. $akit4.6.AraqQubulu f"t L+ Dosyameniistute&iTai"kmutmakaq{rtgdbve qgtrsrlmfupsr yeni bir ryEaF seglr.' Dosyamenfisk!*i'A*" komuhmr krgftk gelir ve dahs dneodenolu$urulmsgve kayffiitmif olm a[ tasrrm fuJm$m aS. jFl' oH; Docyamilstudeki*ICqt&t"komrmakryrhkgelirve kdlnrhslde olm dosyayrbir isim vcrtrek di*e karydetmeyisa$lar' U & I)Ezenmeaffide&i*Kes"komuamakrgrhkgelirve iluatli ola nesneveyanesneleribetrl$a arhrve buhdu$u yerden siler. DEzs menirsthdeki"l(opyala" komufimakrgl* gela *Yryrghr" komuht ve ittr€fli olm nemeveyamleleri 'l*remra ile go$alblnak Bmc tell{e alr. Ddzenmeirtuide&i *Yaplpr" kmrstma karqrhkgelh ve dahadncedsnkopyalayadayaprgr kmudffi ile bdle$e alman nesneyigo$elur. Docyamen$sfrarleki'Yazdrr"komtrba karpkk gclir vc fnrilandsaktaolan a$ lrsurmr &syammyeacrdm gkisrm alr. IE ProgramtlaldondamEsffii"Progrmllakhnda Yeprogramlayan Bilgi komunmatagrkk gelir v€ pmgramr*l*li haHnudahscbilgi vcir. r\ hf segmeyi, Ag tasrlm dosyacrtzeride&imsslsi gift sa$lar. d€i*irne,yi trHayrak nmelerin dzilirag desclsini 23 Fareyardrm ile istenileob0lgeyi dahayahadm veya Far€rinsoligmettugunutullandt$mzda dahauzekt*l gOsterir. gffinyt bft5rete,sagtusu tullandr$mzdag$riiut[yt k@filt0r turyuhrakmadanFrc€rs Fare,rinsolsegimtuSurabasarakbu agtr$mrzdabu pencereigemindekalanbolfimii ekranasr$abileceken bfiyiikboytrtb ffiYetfir. $' Gdribiim mentsfodefti'Ekr*na Srfdn' komntun* karsrhkgelirve lullamtnal*a olm q$ tascmmmtmanmn-r elcrana n$&nr. EB, Sqili olan neeneveyaameleri elnanaen b$rak boyutta s$dmr. ,$. Ekrandakigdrfistiiyii fffiir sol tugrmabasrpbralmadan far€yi heskct ettfudiliaizdehreke* yOnnntzegrirc dcrandski gtirtnttfyil hYdrr. Dunrm Satn: Programn sqenekleri hakhrndasiir€kli olarak ekranm alt satrnndabilgi vereudunrmsatmfl aqarveyakapatr. Normal Giiriiaiim: Ehanda standartg6niintm elrmmdan farkh bir gdriiniim varsa{dahakfigtk veya dahabtyfik) ehandaki giir0nt6yii standart(%l0o) hale getirir. 24 Vn75' gMti gorffiJp belirli caoilm& f'1o50.' G6 3fi#i: kaumtha&ffi, ol}i€s, drb ynlcnrfu trye ,dhilnEfu'boM'lsh ($dtil4J.) €€*it4J. G6cftuYfiadcsi ' ' l'i j: $e*ild&CfrrEnEdAYula ?5 Elaana Sridr: Yaplm ai asmnrmm boyutlan ne olusa olsr4 o aodski boyutlanndab$t6n ag bsffimmln bilgisayr elrmmda gdrinen penc€reNdn gdrfrom€sinisaflar- Ozdirenc Scimi: 6?dit!"S tablo$ isimli penccreyi aqar Ye bu pencere frzerindenffih dzrtirenglerive dolayrsyla r€nkl€ili fue ile gift hktahrak segneyi sallan Biyl*e a[ tasrlm fizsinde is*enilen bloklara farkh 6zdiren-9drqgerledlullmrcmm @e gift trklnmaq ile pplabilir. Aynca deEi$th 6"@.dq.gedtd h 6nc€d€notomatik okak ry ryTfen, krfrma )'ai deF yazlr d'eEi$it.kutuma basdtak @i$irilebilir. 6ekila.9.) $ekif 4.9. OzdirengTablosu Pwrlltuffi ' . : $e*il,4l0-"eaeeqe 4 trruropm ]sni hir pffi€de yeni l,€ryere egh de pery$*i kopfarugn*ir. Diir Aflk t&ro pencercki Udrklrr gAdfsc* *ikb cJtmboydfia ,:',el::.W#':.{ €kraoadirr. ' \'itl:t :';:' g*ik D6p: AEk oh bm pwerrlpei cinm yuyue veclt slt8ohk d6$cr. frffihg Diu snoF tu||4trk mqntinq sh fimli bfotcfilds Ym Yue dim. n hlinc eedrilnb) ffiffiB Q6zMenffsE $€kil4.ll. $6zMents 4'12' de -Ters Qdzfim Yap- komft s€gildiginde$ckil Ters.Q6affmYaP: (1990) oin t€rs $hf. Bn Mllt u{hfot& ve Mtrakami ;6rfu* peffi knll&rcrnm vcr€c€gi yineleme saytsr g6z$n alg$ieasr1l uka'plda' bir igt€myapdamsz Ttrs ;"d* rt!t$*". Buiql€mt€r dave ertedrenba$ka tnrlrry1ryylar dffmdsag 96znsi*l€ni bitin€ t€r$@$m smncnndl nenns$adski Smr$td istenirse dosya qeklititle gOimnf*ii' ;t"** tffs 96zEa itl€mi hydet seqene$ ile diske kny&ilir yada yeaitu yrytatitir. $ekil 4.f2. TersQizffm Penceresi 28 komut segildi[inde Dgrinlik D6nisffmfr Kullanarak AE Tasanm Yap: Bu yaprlr' Bu y6ntemle Meju Derinlik Hessbr Yontemikullamlarak a! dizayu ilgili aynntrhbilgi b6mm4.2.de verilmigtir' Program Haklanda Mentst Hakkrnda I Program ProgramH*lqrda Bilgi $ekil 4-I 3- ProgramHaklondaMenisfi programcnr ProeramHaklondaBilgi: Programrnadr,modeli (versiyonu)ve hakknda bilgi verir. 29 4.2. Bilgisayar Programt ile A! Tasanmrve Modelleme Program oncelikle "Dosya Oku" 6zelli$ ile okudufu dosyadanX ve Z ydniindeki koordinat bilgilerini, gortiniir dzdireng bilgilerini ve ABl2 'in de[erlerini okur. okudulu X delerlerinden ax de[erlerini bulw. AX, yansr kadar bir uzunluk a[rn baqlangrgnoklasr olmak tizere sol tarafa 'in yansr da a[rn sa$tarafina eklenir ve b6ylece eklenfu.Aym qekilde AX a[rn baqlangrQX6 ve bitig X" koordinatlan tespit edilir. Araya konulacak difer istasyon noklalannm yerleri de aym gekilde LX deferlerine bakrlarak tespit edilir. X yoniinde istasyonlann bulundu!'u noktalann koordinatlan tespit edildikten sonra her istasyon igin ap diizenlsmesi iki gekilde yaprln. Bunlardanbiri standart Ydntem di$eri ise Meju Derinlik HesabrYiintsmi'dir. Z ydniindeki bdliimleme de yine iki gekilde yaprlr. Bu ydntemlerden Standart Ydnte,nq Dosya meniisiindeki Veri Dosyax O,tz komutu ile kullanrlrr. Diler y6ntem ise Qoz meniisiturdeki Derinlik Ddttil;iimii Kullanorak A! Tasarmt lap komutu kullamlarakuygulanr. l) StandartYontem: Her istasyonX ydniinde boliimlenirken sapave sola AY *)nin 0.1, 0.2, 0.4 katlanoranmdanoltalar tespit dofru agrlacakgekilde edilir ve bu noktalardan ap olugturmak amacryla gizgllvr gegirilir. Bu katsayrlannsegilmesindekisebepistasyonaen yakrn yerdendaha gok bilgi almamrz, istasyonauzak yerden katlanarak artan oranda daha az bilgi almamudr. Boylece herbir istasyon igin X ekssnindsn istasyonun bulunduSuyerden itibaren sa[a ve sola dogru oh:rak iizere toplam 6 adet gizgi gegirilh. Z yrintindekiboliimlsmeise logaritmik artrgauygun olarak 23,20,2s ,26 ,27 yaprlrr.Ance22denbaglamakitze;re 2'nin katlangeklinde 'a oluqturulur' boltim tane 10 gizilerek toplam gizgi ,2", f ,210 kadar9 tane Bu boliimleme2r0 yani 1024m'yekadaryaprbnrqtrr.Ancak yine de daha derinlere blok yerlegtirilmek istenirse programdaki tek bir sabil de[igtirilmeksuretiylebu iglemyaprlabilir. 30 2) Meju Derinlik Hesabr Ytintemi: Bu yontemde de X yoniindeki X b<iliimleme yine Standart Y6ntem'cleki gibidir. Ancak bu y6ntemde fazla mesafesi hesaplanuken minumum derinlik (d-6) de[erinil 4 katrnda 'nin olmamast sallamr. Bu y6ntemde Meju ve dilerleri (1999) formillerinden faydalamlarak elde edilmiE olan d formfiliine g6re derinlik r.43.il.r44) yaprlu.d=_+2-/ hesabr her istasyon igin en kiigfrk ve en biiyuk AB/2 delerlerinde derinlikler hesaplanmrgtn. Elde edilen en bflyuk ve en kiiqik derinlik dizilerinden en btyuk ve en kflgfrk delerler ahlf, geri kalanlann en ayn ayn srtalamalan ahmr. Btiylece ortanu temsil eden en bflyik ve derinlik kigfrk en knquk ara$trma derinliklsri bulunmuS olur. Bulunan Bu formil kullamlrken baqlayarak en buyuk ara$trrma derinliEinin 3 kahna kadar arahkta a[ hazrrlamr. Bu a$n ara derinlik de[erleri ilk 10 blok igin 1.1 kat arttnlafalq sonraki l0 blok deferi 1.5 kat arttnlaralq bundan sonraki bloklann derinlikleri ise 2 kat arttrnlarak hesaplamr. Programda x ve z y6nflndeki a! gizgilerinin yerleri belirlenip delerinin ll3 kadar kalmlmlftcan bu noktalardan her iki y6nde de gr:flet gegirilerek baqlangrq a[ tasanmt olugturulur. Program bfitfrn bloklara varsayrlan olarak bir baqlangrg dzdireng de[eri verir. (Varsayrlan deper 100 ohm-m dir.) Bundan soila kull'nrcr isterse fare ile bloklann 6zdireng deferlerini de$gtirebilir. Bloklann 6zdireng deferlerini defligtirmek igin "Ozdireng De[eri Seqimi" penceresini kullanarak burada buhman renklgre atanmr$ dzdireng delerlerinden istedilini segip, sonra da istedi$ blofun frzerine gelip farenin sol tu$una iki kere basarak o blofun 6zdirencini de$qtirebilir. Kullamcr efer isterse "Ozdireng Deleri Segimi" penceresindeki renk gablonundaki 6zdireng Ag tasanmmda yaprlan blok 6zdireng degiqtirebilir. de[erlerini defiqikliklerinden soma "Tsrs Q6z[m" segene$ segilerek yaprlan a[ tasanml ters g6ziione sokulur ve daha 6nceden belidenen tekrarlama sayst kadar (varsayrlan tekrar sayrst on'dur) yineleme yaprlarak elde edilen g6ziimler a[ tasanm ekramnda gfafiklenir. Bundan sonra kullamcr ister bu iglemleri tekrarlar, isterse 962[m sonucunu kaydeder veya ka$da d6ktmfrnff alabilir. 3l S.UYGUI..AMALAN Uyguumyqsi@icnaodfl&yapayvedrpaiuigr.Buppayveri em& Mircncl 100ob* e$eesil Jt htu g6r6}es {b 5.1 $€*il ohn,.rn Osgirsrgti 3ft2T flrfe IO -F** m ofm ffiw ""*" gPrAmAUt' bir cistu boytrrne 32 eEhn En uygutr modcl *8 dfize*ini saphyabilnck amrcryle &Eit$kru&l hafaofmhn v€ rrrrenrmi$ hlal:ra ts* 96uIn sonuqlmdil ol& edilen m&t ile uy1lt11l|'|*batrbkrryguq mdd aEl e& edikn o*lin Fs buhmmafiagah$hrytr. igb dx OeB€rhrraylr g*inc haplaqs'sbr' I{aarlmm btrn @llil S yimlere yryrlilghr' Hsb B6ffip aE tasslmltrmn t€ns @nlcdn& ofsaklsisfitdsg€d€Einiim&e&e|dedir"so'mshraegedenaffifu ve s{dcgebataoralhnnn bafrlrmlg a}ronztmrrda ezdit€nqd4$Imlcme el& edil€nters s6.?Em sr{$q"* ieolojikryry"- _ry * tanm$r.gTmknsakenkEcffkhgorm(ilisfit)ddsedilmi€n dgn sory oldn$u*rrtemrnegelme'yebilir' Q6d'nalgorihasundogrugahgtE'Ilteft@&iginyapayrlteidenclds grafig edilen ?-B 6zditry mdeli igin t€'!rs962fim yeprhrg olnp sonr4 = (Yinelemesaym 8) $€kil 5J. rmiln#ie to00 r r050 Sokil5J. Yapay2-B OzrltrengModsf ftirT cm 904nn Sonncu ILhi(}ttil: %0.1X6 33 5.l.ApTesarmt 1 dolnl I igin tullaailm dz arabklan (soldm segs Qire!gqs.l. AE Tasmmr sna ile) 2.d 5.4 a8 tt5 r2.6 3.0 65 13.3 2d6 n.1 *.2 5.9 3.3 7.7 ts3 r83 {6s 2t6r 4.o 8.6 185 4it:}.{ tGB l?ts ffi $ckils3. 3.7 7.4 AlTasarmr IlatrOrrnr= 1A 9.5 m.4 Gr .:.'-, I Ten qdzf,n Sonucu Yoz2rtfl' 34 *,9 {0.4 NL,4 5.2-A$Tsrnnr dz ratrtlm (solfu cs&dofnt $irclge 5.L f&Tassrmr 2 iqin lollede srrsile) &6. 10-? 3.0 {29 {55 j16.2 5e5 6a€ tgSJ 238.5 2.5 |oaa lt50 1?55 .{,frs 4.3 t&6 ?9,S 5.2 8.2 7.5 aL3 2S.? 3a{ {s8a '95,8 lt5.o s4.0 {907.9 38r5.8 r*n $e&il5.3. A$Trannr 166[ rstl 1?S tail 2Tcnt Cfzfin Sonnsr Eatl Onm:96 O.llll 35 9.O 385 16.6 5.3.Af Tesrnur3 kullmrlan dz arahklan (soldansa$a&$u Sizotg€5.3. Ag Tasanmr3 igin sra ile) 15.8 21"8 {1.6 &3 ,6.3 .8401 ?3.6 rm.{ 136.1 185.1 25t.8 293 3d'2.1 {85.7 63:1.3 .8O{,3 1lit1.4 159a2 2rffiJ wx HSn t r:l60t.6187203.3 4{n7.5 3f50.2 a5 3.4 '39.8 4.6 a.l .t to lil $ekit 5.4 .f!Tesrnmr3 Ters S6zfim Sonnct Hrta Onm,= 96 l.lll3 36 5.a.AlTasennra dz ral*lm Qizelge5.4. Ag Tasanm 4 igin tulhrlm srraile) z8 ',A8 ?.o 8.3 ,3.O :3;3 &7 rl.0 ,loll te8 :16:4 21.0 (;oldm sngsd€o ,4.8 .2A-A giL*., , d$;3 1m.9 2t&8 56r 7in 4{t/l.6 550.t t{00.8 E&r2 14t2.4 S0.Lo &l Ir!i0 t2f,l Gr50 t?fll fi50 la fito los! $sldts.5. AETesenm 4Tcrs Cdz6E Sonucu --F----- - - . Hete Oram= 9/oO195 37 s.8 A p?-.5 55A!Trsenur5 e-l gizelge 5.5. Ag Tasanmr5 igin kullmrlan dz arebklal (soldaa38gadogro sra ile) L5 3.2 t&0 23,1 41 295 52 37.8 .9.7 /|8.4 8.6 tt.0 e{,9 tot.4 ?9' $70.9 nil!.8 EFZz 3aa-1 446.0 a6aE2. 935.4 Itg7'3 239{.5 47893 s78.{ r682 21tl rp.8 ol l to q t|al fln {r50 1ffi #5e $eHl 5,6. Af Taranm 5 Ttm{52fim $onucu ' HeraOrair"='/c0.12/0 38 14.1 Sonucn 5.6. Oredr Arsi Ycrfoi ile A$ Tasarmr vc Tcrr C6dn Bohr ilire ainir. golu ilinin geneljeok{isi hry $" "oisi altvyma ait gahl kum' kwrrtalr' $€kildir- $e,hir,Pleistoeenya$h di kuulru$n' Tcpe olu$on$ ttr zemin fai* mrrr ve kmgloffistfldm Kull*,h ilazi mloz ve toprak hrr+nnrndan; hsrrirnr prneleyen hsfif rn€yilli ymgh, ova.lcsmisskil'kmvetopfEholusllggelrgE$vy0ndonibueuir. Ycath sryu yrryhrda 3'4 o- ova tOtgwindc ise 05-l m' derinlilledir $ehtu Birirci d€rd t€hlikeli d€F€m b6lgp$tuHir. El& edilen yer €ld$ik kesitbe gb""&td Plei$s€4 Fqh q4ron ve ynzey&i birimler belirgin ohak ortayakmmg' errf T& :tr.t+ Sttb:!Ll 315to}lt 2t:rotl.5 t*:r'Da:t tlj6'nr,,:, t&3htlj ltttel3-t lLTb t5 eae1L7 5.t loll| trLtl $ss$. AnadvqstuFT.rsqsaqPry Hrtrorem- YISJjYI 39 kilti Modellerin Kargrlagtrrrlmasr: Modelierde yaprlan incelsmeler (hata oranlanna ve ters goziim sonucunda elde edilen grafiklere bahlarak) sonucunda en uygun modsllerin 2, 4 ve 5 nolu modeller oldu!'u anla;rlmtgttr. 2 nolu model kullamlarak bulunan tsrs goztim sonuglannda 10 ohm-m lik blok dolru olarak bulunmugtur. Ancak bloiun hsmen iistiinde hatah gibi gdziiken yakla.Sft 120 ohm-m 1ik gok ince (2m) bir tabaka daha gdrtinmektedir. 5 nolu modelin ters gdziim sonuglanndaise b6yle bir tabaka goztikmemetleda. 5 nolu modelin bu agrdan daha do!'ru sonug verdi$i goziikmekle bidikfe, blo$un altrndaki tabakada durum tam tersinedir. Bloiun altrndaki tabakada 5 nolu modelin ters goziim sonuglannt incelersek altta oldukga derinlore kadar devam eden (600 m) farkh ozdirengli bir tabaka gdziikmektedir ve bu tabaka yanal yonde siireklilik gdstermektedir. Halbuki 2 nolu model kullamlarak elde edilsn ters goziim grafigi sonuglannda altta goziiken bu tabaka 225 m dsrinlikle bitmetle ve yanal yonde de daha krsa bir uzanlm gostermehedir. Benzer gekilde 4 nolu model kullamlarak bulunan t€rs goztim sonuglannda da l0 ohm-m lik blok dolru olarak bulunmuqtur ve 5 nolu modelin ters goziim sonuglanna oranla dsrinlerde daha dolru sonuglar vsrmelifedir. 5 nolu modelin ters goziim sonucunda oldukga derinlsre kadar devam eden (yaklasrk 4500 m derinli[e kadar) gok genig yayrhm gosteren farkl ozdirengli (yaklark 90 ohm-m) bir tabaka daha grkmakladrr. oysaki 4 nolu model kullanrlarak bulunan goziimde farkl 6zdirengii tabaka daha stg derinlikte (250 m) kalmakta ve geniq bir uzanrm goslermemekledir. Btitiin bu incelerneler sonucundaen uygun modeiin 2 nolu model olduiq modellsnn ters goziim sonuglanndananlagrlmakladrr. 4A vE Oxsnirnn sofi{uCLAR yaprlan modellemeler sonucunda elde e{iilen bilgilere bakrlarak lu sonug ortaya grkm4tr: . Kullanrlacak olan model a$ sonuca clahadolru yaklagrlmasrmdolrudao etkilemektedk. yapay . En uygun lv{odel Agrmn tespiti igin mutlaka de$qik model a$lan a$t model uygun vsriler ile test edilmeli ve yaprlacak irylerne sn segilmelidir. . Farkh arastlrmaderinlili hesaplamayontemleri de gozoniine aitnmaltdr' . Bu gahgmada diigey yondeki blok kahnhklan en kiigtk aragtrma derinli$ininl/3katrndanbaSlamrgveenbiiyilkara$trmaderinlilinin3 yapmak ve sonuca katma kadar devam ettidlmi$ir. Daha iyi a$ tasanmlan yonlemleri daha iyi yakiagrm sa$lamak amactyla baqka derinlik hesaplama de aragtrnlabilir. 41 KAYNAKLAR Candansayar. M. E. 1999, DoFu Akrm Ozdireng Yonteminde 28 Modellemeve TersQ6ztm, A. U. F. F. JeofizikMiih' Bol' DersNotlan. (;raYrnlanmam4) canrtez. N. 1997,JeofiziliceModellsmeKitabr. Litsratilr Yayrncrhk. Dofan. A. 2001, DoEru aklm dzdirengydntemindeiki boyutlu modelle,nne A.U.F.F.Seminer-(yayrnlanmamrp) ve a! diizenlenmesi. Fenner. R T. 1975, Finite ele,mentmetiods for engineers.Lecturer in mechanicalengineering,Imperial Collageof Scienceand TecnologY,London. Meju. M.d, Fontes.S.L., Oliveira. M.F.B., Lima. J.P.R, Ulugergerli' E U. and Carrasquilla, A-A., 1999, Regional aquifer mapping using combined VES-TEM-AMT/EMAP methods in the ssmi-arid eastern margin of Parnaiba 64, no' 2,337'356' Basin,Brazil: Geophysics, SasakiY. 1981, Automaticinterpretationof resistivitysoundingdataover twodimsnsional stuctures (I). GeophysicalExploration (Butsuri-Tanko)34, 341-350(in Japanese). uchide. T. and Murakami. Y. 1990,Developmentof a Fortrancode for Inversion.Geological the Two-DimensionalSchlumberger 150. No. Report Open-File of Japan Survey ^,' EKLER EK-A. BilgisayarProgramrnrnKaynakKodlan sayfalarda Yazrlan bilgisayar programlnln kaynak kodlan ilerleyen Visual C++ verilmektedir.GeliEtirilsnbu bilgisayarprogrammdaMicrosoft library'ler Compiler ve component'leri ile yardtmct bazt component kod kullanrlmrgtr. Aqaglda programla ilgili geligtirilen asrl kaynak (' .H" dosyalan(.cPP" uzantrhdosyalar)ve yarcltmcrbaghk dosyalanmn uzanttltdosyalar)kodlanverilmigtir' 43 isimleri kodu dosyalannrn QizelgeA.l. Kaynakprogram Dowalanmn isimlsri: 44 DosyaAdr: ChildFrm.cPP childFrm.cpp // : i-mpJ-ementation of the CChildFrame ^t ^^^ LAdJ D #include "stdafx.h" #include "Mesh.h" #include'Chi1dFrm.h" #ifdef _DEBUG new DEBUG-NEW *define ltulluE! flrrJ rr!! statlc #endif char THIS FILE [ ] = -FILE-; / / / / / // / // // // / / / // / / / / / / / / / / / / // / / / / / // // / / / / / / / / / c c h i l d F r a m e / / //////// ///// (CchildFrame, IMPLEMENT-DYNCREATE CMDIChildWnd) CMDIChi ldWnd ) BEGIN-MESSAGE-MAP( CChi ldFrame, (CChiIdFTAME) // { iAFX_MSG_MAP acd and will /7 uoie - the Classwizard remove maPPing macros hereDo Nor EDrT what You see in these / / blocks of generated code ! //] )AFX_MSG_MAP 0 END-MESSAGE_MAP / /// // / / / / / / // / /// / / / / / / / / / / // / / / / / / // / / / / / / / / / / / / / // / / / / / / / / / / / / / / / / / / / / / / / / // cchildErame construction/destruction CChil-dFrame : : CChlldFrame ( ) { / / "tono: add member initialization ] CChildFrame : : -CChildFrane { ] () 45 code here BOOLCChildFrame::PreCreateWindow(CREATESTRUCTecS) { styles / / rooo: Modify the window class or here bY rnodifYing IhE CREATESTRUCTCS // if ( !CMDIChildWnd::PreCreateWindow(cs) tgllrq return ) FA]-,-S,E; TRUE; ) ////// / / / / / / / / / / / / / / / / / / / / / / // / / / / / / / / / / / / / / / / / / / / / / / / / / / / // / / / / / / / / / / / / / / / / / / / cCnildFrame diagnostics f Mg! voi-d CChildFrame: :AssertVal-id O const { () ; C M D I C h 1 l d W n d: : A s s e r t V a l i d ) void { C C h i l d F r a m e : : D u m p( C D u m p C o n t e x t & d c ) const C M D I C h i l d W n d : : D u m P( d c ) ; ) #endi-f //_DEBUG // / ///// / / / / / ////// / / / //// / / // /// ///// / //l / / / / / //// / / / / / / / / // / / / / / / / / / / / / / / / I / / cchiLdFramemessagehandlers 46 DosyaAdr: ilIainFrm.cPP // Mainltm.cpp ^1 ^ LAdDD : i-mplementation of the CMalnFrame - #include #include "stdafx.h" "Mesh.h" #include "MainFrm.h" #ifdef _DEBUG new DEBUG-NEW #define r r-!r, #unoeilrllr5 = char THIS FILE t I -FrLE-; static #endif /////////////////////////////////////////////////// / / / / / / / / / / / / / / / cMainFrame IMPLEMENT-DYNAI4I C ( C!'IainFr ame' CMDI Fr aneWnd ) I Fr amewnd ) BEGIN-I'GS SAGE-MAP ( CMainFr ame' CMD () ON WM QUERYNEWPAIETTE ON-V{M_PAI,ET TECHANGED0 / /7 8tx_t"rsG-MAP ( cMa inFrame ) add /7 Noie - the Crasswi-zard will remove maPPing macros here' i n DO NOT EDIT what You see // blocks of generated code ! oN_WM_CREATE ( ) // } }AT"X_MSG_MAP () END_MESSAGE-MAP static { UINT indicators [] // ID_SEPABATOR' indicator ID INDICATOR CAPS, ID_INDICATOR_NUM, ID-INDICATOR_SCRL, \; 47 status line and {-ha<a / / / / // // / / / / / / / / / / / / / /l / / / / / / / / /// / / / / / / / / / / / // //// / / / /// / / / / / / / / / / / / I / / / / / / / // Cltainrrame construction./destruction eMainFrame: : eMainFrane ( ) i // code here IoDOr add member initialization ] CMainFrame : : -CMainFrame ( ) { ] int C$ainFrame: :OnCreate (LPCREATESTRUCT ) lpQree!e9!-rug! { // Palette if (CMDIFrameWnd: OnCreate (lpCreateStruct) Ce: This line was added by the Support component = NULL; n_PPalette return if -1; ( !rn_wndStatusBar.Create II lthis) (indicators, !m wndStatusBar. Setlndicators s i z e o f ( i n d i c a t o r s ) / s i z e o f ( U I N T )) ) { ("Faifed TRACEO bar\n" ) ; recurn -1; to // create status tai:-. to create ] ( !m-wndToolBar.CreateEx (this, if TBSTYLE_FI,AT, WS_CHILD I WS-VISIBLE I CBRS_TOP I C B R S _ G R I P P E RI C B R S _ T O O L T I P S I CBRS_FLYBY I CBRS_SIZE_DYNAMIC) I I ! m _ w n d T o o l B a r . L o a d T o o I B a r ( f D R M A I N F R A M E) { 48 == T R A C E 0( " F a i l e d return -1; toolbar\n" create to | / / / F-i I d f , f I rL -v ^ ) -ro2te e l v s ] i - f ( ! m - w n d Z o o m B a r' C r e a t e E x ( t h i s ' CBRS_TOP TBSTYLE_FI,AT; WS_CHILD I WS-'VISIBLE I I Csns-toolTrls^l^. I CBRS-GRTPPER (O, O, O, O) , C B R S F L Y B Y I C B R S _ S I Z E _ D Y N A M I C ,C R C C T IDR OD-ZOOM_PAN) I I ! m-wndZoomBar . LoadTooIBar t ("Failed TRACEO toolbar\n" ); return create to -1; ( IDR- OD ZOOM PAN) // Tnnm {-^ faiL -ra:]-e ] ( !m-wndDrawingBar'CreateEx (this' if CBRS-TOP TBSTYLE-FLAT; WS_CHILD I WS_VIS_IBLE I I C B R S - G R T P P E RI C B R S - T O O L T T P SI^^ . (0' 0' 0' 0) ' C B R S F L Y B Y I C B R S - S I Z E - D Y N A I Y I C ,C R e c t IDR_OD_DRAWING) I I !m-wndDrawingBar. LoadToolBar i TRACE0("Failed toolbar\n" ) ; return to -1; // ( IDR-OD-DRAWING)) create faiL drawing to create ) i-f ( !n-wndAli-gnBar. CreateEx (thj's' TBSTYLE_FLAT, WS_CHILD I WS_VISIBLE I CBRS_TOP I C B R S - G R T P P E RI C B R S - T O O L T l P S - l ^ . C B R S F L Y B Y I C B R SS t z n o v n e l a t c , c R e c t ( 0 ' 0 ' 0 ' 0 ) ' , -^^ l-ul( ;^ tJlJ nt r^\T\ rulslv | | I I ! m-wndAl i gnBar . loadToo lBar ( I DR-OD-AI TGN) ) { TRACE0("Failed to create align toolbar\n"); -1; // fail- to create return l 49 ( !m-wndNudgeBar. CreateEx (this, if lpgTY!E_E!4T, vgg_CIlM l ws-vrqrEllE I cBRS-roP I CBRS_GRIPPER I CBRS_TOOLTIPS I CBRS_FLYBY I CBRS_SIZE_DYNA}4IC, CRECT(O, O' O' O) ' IDR_OD_NUDGE) I I ! m wndNudgeBar. LoadToolBar ( IDR-OD-NUDGE) ) { TRACEO("Faifed to create nudqe toolbar\n" ) ; to create / / fail recurn -1; i ( !m_wndRotateBar. CreateEx (this' if TBSTYLE-FLAT, WS_CHILD I WS_VISIBLE I CBRS_TOP I CBRS_GRIPPER I CBRS_TOOLTIPS I C B R S _ F I Y B Y I C B R S - S I Z E - D Y N A I " I I C ,C R e c t ( 0 , 0 , 0 , 0 ) , IDR-OD_ROTATE) I I ! m_wndRotateBar . Lo adToo lBar ( I DR-OD-ROTATE) ) { to create rotate T R A C E 0( " F a i l e d toolbar\n"); / / fail- Lo create return -1i ] (this' ( !m-wndStructureBar.CreateEx if CBRS_TOP WS_VISIBLE I TBSTYLE_FLAT, WS_CHILD I C B R S T O O L T T P SI C B R S _ G R T P P E R I I C R e c t ( 0 '0,0,0), D Y N A M I C ' S I Z E C B R S F L Y B Y CBRS I IDR 6D_STRUCTURE) I I ! m_wndStructureBar t(f,, . LoadToolBar ( IDR-OD-STRUCTU l { toolbar\n" T R A C E 0( " F a i l e d ); return to -1; // ] 50 create fai] structure to create ( !m-wndlayoutBar' CreateEx (this' CBRS_TOP TBSTYLE FI,AT; WS CHILD I WS-VISIBLE I C t s R s r o o l T rls^ I ^. I C B R S G R T P P E R I (O, O, O, O) , C R C C T C B R S _ S I Z E D T N A M I C , CBRS FLYBY I IDR OD_LAYOUT) I i j-f ( )) ! m-wndlayoutBa r' Lo adToo lBar I DR-OD-I'AYOUT { TRACE0("Failed to create laYout toolbar\n"); / / faLL to creace return -1; ] ( lm-wndCanvasBar'CreateEx (this' if CBRS-TOP TBSTYLE-FI,AT; WS_CHILD I WS_VISIBLE I C B R S T O O LTr|S^l ^. I I CBRS-GRTPPER C R e c t ( 0 '0'0'0)' S r Z r o V N e u t C , C B R S CBRS FLYBY I inn_oo_canvasl l l ! m-wndCanvasBar . Lo adToo lBar ( I DR-OD-CANVAS) ) t toolbar\n" T R A C E 0( " F a i l e d ); return Lo create -1; // canvas fa:-l- to create ] CString strCaPtion; / / raDo: * // to m a k e t h e * // to s e t t h e // Remove any of the EnableDocking not dockable ' toolbar Change any of the SetWindowText caPtion of the fJ-oating toofbar. lines lines m-wndToo lBar . Enabl eDoc king ( CBRS-AI I GN-ANY) ; m wndZoomBar . Enab leDocking ( CBRS-ALIGN-ANY ) ; Venf FY ( s t rCapt ion . LoadS tr ing ( IDS-OD-ZOOM-PAN ) m_wndZoomBar . SetWindowText ( s trCaption 5l ); m_wndDr aw i n gB a r . E n ab f e Doc k i n g ( CBRS-AL I GN-ANY ) \ISRI Fy ( strCaption. LoadString m_wndDrawingBar . SetWindowText ( IDS-OD-DRAWING) ) ( s trCapt ion) ; rn_wndAl i gnBa r . Enab 1 eDo c ki ng ( CBRS-AL I GN-ANY ) ; LoadString ( IDS-OD-Ar'IGN) ) ; VERIFY ( strCaption. m_wnciAl i gnBar . SetWindowText ( s trCapt i on ) ; m_wndNudgeB a r . Enab I eDo c k in g ( CBRS-AI I GN-ANY ) ; LoadString ( IDS-OD-NUDGE) ) ; VERIFY ( strCaption. ( strCaption) ; SetWindowText m_wndNudgeBar. m wndRotateBar . Enab] eDocki-ng ( CBRS-AI, I GN-ANY) ; (IDS-OD-ROTATE) ) ; veAf fy ( strCaption.LoadString m_wndRotateBar . SetWi-ndowText ( s t rCap t i on ) ; m_wndSt ructur VERI FY ( s trCapt eB ar . Enab f e Doc k in g ( CBRS-AI, I GN-AN ion. LoadS tr ing ( IDS-OD-S TRUCTURE m_wndStructureBar . SetWindowText (strCaption) ; m_wndl ayoutB a r . Enab I eDo c ki n g ( cBRs-AI I GN-ANY) ; LoadString ( IDS-OD-LAYOUT) ) ; Venf E'Y( strCaption. m_wndlayoutBar . SetW indowText ( s t rCapt i on ) ; m wndCanvasBar. EnableDocking (CBRSiIIGN-ANY) ; LoadString ( IDS-OD-CANVAS) ) ; vnnrrv (strCaption. m_wndCanvasBar . Se tWindowText ( s trCapt i on ) ; lines if you / / TODO: Delete the following want docking toolbars. line up better, To make the toolbars // method the utility utiLize o CODGlobal: : DockControIBarLeftof // donrt Enabl eDocking ( CBRS_AII GN_ANY) ; DockControlBar (&m wndToolBar) ; s2 (this' C O D G I o b a l: : D o c k C o n t r o l B a r l e f t O f ' n m d T o o l B a r ) ; ml B - cZooooG oa b ra,l & m &m wnd (this' : :SockcontrofBarleftof 7l&m-wndZoomBar) ; &m wndDrawingBar, DockControlBar ( am-wndRotateBar ) ; (this ' CODGIobat: : DockcoitrolBarleftof &m-wndRotateBar) ; em - * - wndAl-lgnBar, (this' Coo6lonur: : DockcontrolBarl,eftof ; &m - - - wndNudgeBar, crn-wndAlignBar) (this' coo6folui: :DockControlBarleftof &m-wndNudgeBar) ; &rn wndStructureBar' ( &m-wndlayoutBar ) ; IBar DockContro (this' CODGlobal : : DockCoitrolBarleftof ; &m-wndlayoutBar) &m-wndcanvasBar, return 0; ) (CREATESTRUCT&cs ) BOOL CllainFrame : : PreCreateWindow t here ) i f ( ! C M D I F r a m e W n d :: P r e c r e a t e W i n d o w ( c s ) FALSET return class or styres / / TQDO: Modify the Window bY modifYing ThC CREATESTRUCTCS / / return TRUE; ) /////////////////////////////////////////////////// / / / / / / / / / / / / / // / / / // / / / / / / // cl,tainrrame diagnostics #ifdef -DEBUG void O{ainFrame: :AssertValid t ( ) const C M D I F r a m e W n d :: A s s e r t V a l i d () ; ) void t dc) C M a i n F r a m e : : D u m p( C D u m p C o n t e x t a CMDIFrameWnd: :DumP (dc) ; 53 const ) #endif //_DEBuG //////// / / / / / / / / / / // / / / / / / / / / //// / /// / / / / / / / / // / / / / t / / / // / // / / / / / /l / /// / / / / / / message handlers cuaintrame // () BOOL CMainFrame : : OnQueryNewPalette { was added by the / / ce: This function component Support if (m-PPalette == NULL) FALSE; return // { BLOCK Palette CCli-entDC dc (thi"s) ; = CPalette* POldPalette ( m P P a l e t t e , dc. SelectPalette ->message :GeLCurrentMessage () WM PAI,ETTEC}ANGED); ; UINT nChanged : dc'RealizePaletteO T R U E ); dc. SelectPalette (pOldPalette' (nChanged == 0) FALSE; return if ) Inval-idate return () ; TRTIE; ) void CMainFrame: :OnPaletteChanged(CWnd* t // uQ ru rP n y vn! nr1-u 1f was added by the Ce: Thi-s function - vn- pvavnr lm r r vn. + pFocusWnd) Palette nt (pFocusWnd := return i this 54 I I IsChild(pFocusWnd)) OnQueryNewPalette ( ) ; l Cpalette* O{ainFrame : : Setpalette (CPafette* pPalette ) { was added by the / / CG: This function Support component Palette when the palette / / caII this function It willchanges. in the foreground / / reaLtze the palette cause the screen All cal1s to / / to repaint correctly. CDC::SelectPalette in code should sefect palettes / / painting the background. pOldPalette CPalette* m_pPaletts : pPalette; OnQueryNewPalette ( ) ; return pOldPalette; 55 = m_pPalette; to in DosyaAdr: Mesh.cPP / / Mesh.cpp application- : Defines #include #include #include #include "stdafx.h" "Mesh.h" "MeshMdl.h" "MeshVP.h" #i-nclude #include #inctude #include "MainFrn.h" "ChildFrm.h" "MeshDoc-h" "MeshView.h" class the behaviors for the /////////////////////////////////////////////////// -ovDLL / / / / / / / / / / / / l#Lfdef #include "initguid.h" #include "views\odGuids . h" #endif #ifdef -DEBUG #deflne new DEBUG-NEW #undef THIS FILE FTLEII ctrairHrs static f #endi = -FrLE-; ////// / ///// / / / ////// / / / /// / // //// / / / / / / / / / / / / / / / cMeshAPP // // ////// / / /// // ( CMeshApp' CWinApp ) BEGIN-MESSAGE-MAP -// { iAEX_MSG-MAP(CMeshAPP) onAppAbout) oN CoMMAND(tD-APPiBouT, add and // NOTE-- t6e Classwizard will remove maPPing macros here ' DO NOT EDIT what You see i-n these // blocks of generated code ! / / | IAFX_MSGI'{AP // Standard fi-l-e based document conmanos ON-COIO{AND( i D-FI LE-I\TEW' CWinApp : : OnFi I eNew ) ( ID-FILE-OPEN, CWinApp: : OnFileOpen) ON-COIO4AND 56 setuP command / / standard Print ( I D-FI LE_PRINT_SE TUP' ON_COMMAND C W i n A P P: : O n F i l - e P r i n t S e t u P ) END_MESSAGE_MAP0 / / / / / / // / / / / / // // / / / / / / ///// / / / / // / / // / // // / / / // / / / / / / / / / / / / / / / / / / cMeshApp construcLron CMeshApp: : CMeshAPP ( ) { / / yOoo: add constructlon / / PLace alI significant lnitlnstance ] code here' i-nitialization in ///////// / / / //// // / / / /// / // // / / / / / / / / / / / / / // / / / / /// object C M e s h A p p o n t y a n d The one /////////////// CHeshApp theAPP,' // // /////// ///////////// / // // / / / / / / // // /// / / /// / / / / / / / //// CODPropertYCache ////// thePropCache ; //// // / // // ///// / / / / / // / / // / / / / / / // / /// / /// / / / / / / // / / / / / / / / / / / / / / / cMeshApp initialization () BOOL CUeshAPP: : Initlnstance { AfxEnableControlContainer () ; / / sLand'ard initialization / / tt you are not using these wish to reduce the size executable, of your final // remove from the following initialization the specific // do not need. #ifdef _AFXDIL 57 features and you should routines you this #efse Enable3dControls0; when using MFC in a shared caLt // DLI, // Enable3dcontrolsStaticO; to MFC staticallY when linking *endif Call this key under which our / / Change the registry are stored. settings to be 'tOoOz You should rnodify this string // something aPProPriate your company or / / such as the name of organization. SetRegistryKey (-T ( "Local AppWizard-Generated )); Applications" INI LoadStdProfifeSettings (including oPtions file // O; MRU) Load standard docurnent the applicationrs // Register Document temPlates templates. between serve as the connection // v i e w s ' a n d w i n d o w s documents, frame pDocTemplate ; CMuf tiDocTemplate* ( pDocTemplate = new CMultiDocTemplate IDR MESHTYPE' RUNfII,1E_CLASS( CMeshDoc ), RUNTTME:CLASS(CchirdFrame) ' // custom frame MDI child (CMEShVJ-EW) ); RUNTIME_CT,ASS AddDocTemPIate (PDocTemPl ate ) ; / / create main MDI Frame window = new CMainFrame; CMainFrame* pMainFrame ( !pMainFrame-)LoadFrame (IDR-MAINFRAME) ) if FAISE; return : m-PMainWnd PMainErame; / / Parse command line for standard oPen commands, DDE, file cmdlnfo ; CCommandlinelnfo 58 shelf ParseCommandline (cmdln f o ),' commands specified on the / / DispaLch if ( ! P r o c e s s S h e L L C o m m a n d( c m d l n f o ) ) TEIUTN FAISE; command Iine / / tne main window has been initialized, show and update it. pMainFrame- >ShowWindow (m-nCmdShow) ; pMainFrame->UpdateWindow ( ) ; return so TRUE; ) / / / / / / / / / / / / / / / /// / //// //// / / / / / / / / / // / / // / / / // / / / / c P b o r t t D J - sd i a l o g u s e d f o r A p p ///////////////////// About class CeboutDlg : Public { public: CAboutDIg ( ) ; // CDialog DiaLog Data / / t {AEX_DATA ( CAboutDI g) enum { IDD : IDD_ABOUTBOX }; // } }AFI(_DATA function // Cl-assWizard generated virtual overrides / / I |AFK_VIRTUAI ( CAboutDl g ) protected: void DoDataExchange (CDataExchange* virtual pDX); // DDx/DDv support // } }AFX_VIRTUAL // Irnplementation protected: / / { {AE .J.SG (CAboutDls) / / xo message handlers 59 // ] ]Arx_MSG DECLARE_MESSAGE_MAP0 \; : CDialog(CAboutDlg: CAboutDlg: :CAboutDlgO { // i {AFX_DATA-INIT (CAboutDlg) / / } }AFX_DATA-INIT ) void { CAboutDlg: :IDD) : DoDataExchange (CDataExchange* pDX) C D i a l o g : : D o D a t a E x c h a n g e ( P D X ); / / t |AEK-DATA-MAP ( CAboutDlq ) // ) )AFX_DATA_MAP ) ( CAboutDj-g, CDialog) BEGIN_MESSAGE-I{AP // t {AFX_MSG-MAP(CAboutDJ-g) / / llo message handlers // i )Arx_MsG_MAP 0 END_MESSAGE_MAP / / ?lpp command to run the dlalog void CMeshAPP: : OnAPPAbout ( ) { CAboutDlg aboutDlg; aboutDlg.DoModal O; i /// /////// /// // / / / / / ////////// / / / / / // / / / / / / / / / / / / / / / // / / // CMeshapp message handfers 60 / / / ////// / / // / / / / / / / / DosyaAdr: MeshCtlr.cPP // MeshCtlr.cpp CMeshController #include #lnclude #include #incfude #include : implementation class of the "stdafx.h" "Mesh.h" "MeshCtlr-h" "MeshVP.h" "MeshMdl.h" #ifdef _DEBUG new DEBUG-NEW #define r J-!l! #under IHlb static #endi.f cnaitnts FrLE[] = -FrLE-; /////// / / / / / / //// / // / / / / // / / / / // / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /// // // / / / NeshController CMeshController::CMeshController((}{eshViewport* : pViewport) CODControl 1er (PViewPort ) i ) CMeshController: { l : -CMeshController () I BEGIN-MESSAGE-MAP( CFleshContro I 1 e r, CODContro I er ) // i {AEX MSG-I'fAP(C}IeshController) add and will /7 Hots - the Classwizard here. remove maPPing macros // i }AEX-MSGI'{AP END MESSAGE MAP0 // // //// / / / //// / / /// // //// /// ////// ////////////////////////// 61 // //// / // /// / / / / CMeshControLler // message handlers (CRect& rect' bool Cll"IeshControl-ler : :AddRectangle ) C O L O R R E Fc l r F i l l - C o l o r { 'l-rrr u! y { CODModel* pModel = this->GetVp O- >eetModel ( ) ; = new CODRectComponent* pRectComp ( CODRectComponent ) ; ( PRectCornP->AddRef ) ; pRectCornP->Create ( rect ) ; / / Ad'd' the }1ne component to the rnodel pModel->AppendChi 1d (pRectComp ) ; CODEdi-tProPerties ProPEdit ; ( FAISE ) ; SetCanMove ProPEdit (FAISE) ; S e t C a n R o t a t e ProPEdit. (FALSE); S e t C a n S c a l e ProPEdit. p r o p E d i t . S e t C a n S t r e t c h ( F A L S E )t ( FALSE) ; propEdit . SetCanEditVertices ( e p r o p Edit ) ; pRectComp->SetProperty ; CODFillProPerties ProPFill ; propFil1. SetColor (clrFiltCol-or) pRectComp->SetProperty (epropFill ) ; // ReLease this reference to the component. ( PRectComP->Release ) ; ] catch(...) { return false; l return true; i bool CMeshControlIer: :AddCircle (CPointa point) 62 t rry i CODModeI* pModel = this->Getvp O- >GetModel ( ) ; CODEllipseComponent* pEJ-llpseComp J-ipseComponent ( ) ; CODEJpEIliPseComP->AddRef ( ) ; = new CRect rcElliPse; = Point-x - 10; rcElllPse.left : Point.x + 10; rcElliPse.right - 10; = rcElliPse.top Point-Y = rcElliPse.bottom Point.Y + 10; (rcEllipse ) ; pEllipseComp-)Create (pEl lipseComp ) ; pModel->AppendChild CODFiI-lProPerties ProPFill ; p r o p F i l - I . S e t C o f o r ( R G B( Q , 2 5 5 , O ) \ ; pEl 1ipseComp->SetProperty (cpropFill pEllipseComP->Re1ease ( ) ; ) catch(...) { return ) return true,' ); false; ) :DblHit (UINT nFlags, void CMeshController: point, int nButton) { CODComponent* PComP = NULL; CODlineComPonent *Pl,eft : NULL; *PRigtht = NULL; CODlineComPonent *PToP = NULLT CoDlinecomPonent CODlineComPonent *PBottom = NULI; ptClicked; ptTarget' CPoint ptstart, 63 CPoint CStdioFile file; CString CMeshModel* pModel >GetVp ( ) ->GetModel ( ),. ptClicked = strTemp; (ClleshModel* ) this_ = point; this->VpDptolp (&ptClicked, (ptClicked) / /AddCircte ; ( ) ->UpdateA]l //this->GetVp I) ; () ; CODComponentSet* pAllConps = pModel_ >GetComponents ( ) ; j-terator (pAllComps CODComponentlterator ); /*fil-e.Open ("Debug.txt", CF1le::modeWrite); CFile: :rnodeCreate I strlemp . Format ( " \n { gd, gd } \n" , ptCJ-icked.x, ptClicked .y file.WriteString (strTemp) ; * / ); for (pComp = iterator.GetFirstO; pComp r= NULL; pcomp = iterator.GetNext()) { ( ISA(pComp, CODlineCornponent) if ) { CODlineComponent *plineComp = (CODlineComponent * ) pComp; = plineCompptStart >GetControlPoint ( OD_TOP_LEFT) ; = plineCompptTarget > G e t C o n t r o l P o i n t ( O D B O T T O MR I G H T ) ; { 8d, 8d} \n", /*strTemp. Format (" { gd, ?d} - file. ptStart.x, ptstart.y, ptTarget.x, ptTarget.y W r l t e S t r l n g (s t r T e m p ) ; * / & ); // ller lki- Noktantn I I / | v^+ -., roLay ri ! f / \ Yflerl aYnr -i -^i vravr nl-QJ- rri PLuLerL. 17 ! -- -- ^f Tr-^a{PL rArysL.J rr \ I t // if nJ- l- l i nlrarl rr llstte Kalacak Cizqi ( ptStart.y < \ { if { ( PToP == NULL ) pTop : pLineComp; ] el-se i CPoi-nt ptTop = pTop->GetControlPoint (OD_CENTER) ; if ( ptStart.y > ptTop.y ) { - T I PToP = n^- ^i l - . P!rrrEvvrrlP, ) i l / / AItEa Kalacak Cizgi if ( ptStart.y > n]- f''l i n Larl rz 'l I { if ( pBottom == NULL ) i PBottom = pLineComp; ) else { = pBottom->GetControlPoint CPoint ptBottom (OD_CENTER) ; 65 ( PtStart.Y if < ptBottom.Y ) t = PBottom plineCompi , I // // // if { l ) YataY Qizgt Kontrolu aYnr Her tki Noktanl-n x'Ieri Dusey Qizqt == PtTarget'x ) ( PtStart.x / /Sold'a Kalacak Qizgi < ( PtStart'x if ptClicked.x ) t ( Pleft if { == NULL ) = pleft plineComP, , e Ls e i pl,eft->GetControlPoint > ptl,eft.x = CPoint Ptleft ( O D - C E N T E R;) if ( PtStart.x ) { Pleft = plineComP, I )) // if pt.CIicked.x sa6aa Kalacak QtzgL > ( PtStart'x ) i if t 66 ( pRight == NULL ) = pRight plineComP, , else { CPoint PtRight ( O D - C E N T E R;) if { PtStart'x = pRight->GetControlPoint < ptRight.x ) { PRight plineComp, I l ) \ // YataY QizqL Kontrolu l ) if i ( pleft != NULL &e pRight !: tiULL ae NULL ) PToP != NULL && PBottom != CPoint PtTemP; CRect rcRecti PtBotRight; CPoint PtToPLeft, // SoL Ust noktanrn y'si iist qizginin y'si : PToPPtTemP ( ; OD-CENTER) >GetControIPoint = PtTemP' Y' PtToPl,eft.Y // Sot Ust noktanrn x'i sol qizgi'nin xti PtTemP = PLeft( OD-CENTER); >GetControlPoint : PtTemP'x; PtToPLeft.,q // SaA A1t noktanrn y'Fl : PBottomPtTemP (OD-CENTER) ; >GetControlPoint 67 y'si alt qizginin = PtBotRight.Y // Sad Alt = PtTenP.Y; noktanln x'i sa! gizginin xtl PtTemP = PRight( OD-CENTER); >GetCont rolPoint = PtTemP.x; ptBotRight.x /*strTemp. rormat ("\n { ?d, 8d} { ?d, ?di \n", ptTopleft.x, PtToPLeft.Y, ptBotRight.x, ); PtBotRight-Y (strTemP) ; */ file.WriteString ptBotRight) rcRect.SetRect (ptTopleft, AddRectangle (rcRect, PModel>GetResiztiviteColor O); /*AddCircte (ptCticked) ; */ ProP; /*CoDlineProPerties P r o P . S e t C o l o r ( R G B( 2 5 5 , 0 , 0 ) ) ; pToP->SetProPertY ( &ProP) ; pl,ef t->SetProPertY (&ProP) ; pBottom->SetProPertY (&ProP) ; ( &ProP) ; * / pRight->SetPropertY this->GetVP ( ) ->UPdateAl I ( ) ; l CODController : : DblHit (nFlags' nButton); ) 68 point, ; DosyaAdr: MeshDoc-cPP // MeshDoc.cpp class #include : impJ-ementation of the CMeshDoc "stdafx-h" #rnslude "l{qgh.tl" #include "MeshDoc.h" #rttslude "Meqh!'!dl'h" #ifdef _DEBUG #delrne new PEEvq-NEw #undet static #endif / ////// L'HI5 ! r!r, char THIS FILE t 1 = -FILE-; ////// /// / / / / / / / / / / / / // // / / / / / / / / / / / / / / / / / / / / / 1 1/ / / / / / / / / / / / / 1 1/ / I I / / / (]4eshDoc // IMPLEMENT-DYNeREAtE (CMeshDoc, CDocument) ( CMeshDoc, CDocument ) BEGIN-MESSAGE-MAP / / t IAFX_MSG_MAP( QMqChDSS) add and will // NOTE - the Classwizard here' macros remove naPPing Do NoT EDIT what You see in these // bfocks of generated code! MSG_},IAP //}}Arx. ENDJ{ESSAGE_MAP 0 / / / / / / /// / / / / /// / / / / / / /// / / / / / / // / / / / / / / / // / /////// / / / / / / / / / / / / / / // / / //// //// // CMeshDoc construction/destruction CMeshDoc: :Cl4eshDoc ( ) { / / lOoOz add one-time ) 69 construction code here Cl4eshDoc: : -CMeshDoc ( ) { (void) Cf earRezistivitelist ) () ; BOOL CMeshDoc: :OnNewDocument o { ( !CDocunent: ;onNewDocumentO ) if FALSE; return () ; InltNewRezlstiviteT,ist / / topo: add reinitialization reuse / / (SDI documents will return code here this document) TRUE; ] voi.d CMeshDoc:: DeleteContents ( ) { () ; m _ m d l C a n v a s .I n i t i a : . i z e C D o c u m e n t: : D e l e t e C o n t e n t s ( ) ; I void i C M e s h D o c :: C l e a r R e z i s t i v i t e l i s t () (int i-Ndx = 0; iNdx < for ; iNdx++ ) m arRezistivite'Getsizeo { *pobi = (CRezistivite CRezistivite * ) m_arRezistivite i N d x ] ; I delete PObj; i m_arRezistivite. RemoveAll ( ) ; ) // //// // / / / / / / ///// //////// ////////////////////////// / / C M e s h D o cs e r i a l i z a t l o n / / // // / / // // / / / / / // / / // / v o j - d C M e s h D o c : : S e r i ai fz e ( C A r c h i v e & a r ) t 70 the canvas model ' / / SertaLize S . m-mdlCanvas erial ize (ar ) ; (ar.IsStoring i-f { O ) code here / / "tooo: add storing = DWORDdwSize -GetSize ( ) ; m arRezistivite ar << dwsize; (int) dwSize; for (j-nt iNdx = 0; iNdx < iNdx++ ) { CRezistivite * )m arRezistivite poUj ->Seriali (CRezistivi-Le *PObj : I j-Ndx] ; ze (ar) ; i ) efse t code here / / IOOO: add loading DWORDdwSlze; ar >> dwSize; 0; iNdx < (int)dwSize; for (int iNdx: iNdx++ ) { CRezistivite CRezistivite *PObj = new () ; pObj->Serialize m-arRezistivite (ar) ; .add (PObj ) ; ) ] if { (ar.IsStoringO ) ) else i / / "toooz add storing code here / / 'IoDo: add loading code here l 7l BOOL CMeshDoc: : lsModified () i CDocument: : IsModifiedO return m_mdlCanvas . IsModif ied ( ) ; l | | / / / / / / / / / / / / / / / // / / /// / / / / / / // / / / / / / / / / / /// / / / / / / / / // / / / // / / / / / / / /// / / / / / / / / / / / QneshDoc diagnostics #ifdef _DEBUG void CMeshDoc: :AssertValidO const t () ; CDocument : : AssertValid ] void { CMeshDoc: :Dump (CDumpContext& dc) const CDocument::DumP(dc); ] f,enotI / / ur-lru(J / / / / / / / / / / / / / / // / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / // / / / / / / / / / / / / / / / / / / / / / // // CileshDoc commands () void CMeshDoc:: InitNewRezistivitelist { *PObi : NULL; CRezistivite for { ( j-nt iNdx = 0; iNdx < 20; iNdx++ I O ; PObj = new CRezistivite ( (DWORD) iNdx) , PObj->SetValue p O b j - > S e t C o l - o r R e f ( P A I E T T E I N D E X( i N d x ) ) ; (PObj ) ; m-arRezistivite.Add l ] void { C M e s h D o c :: S e t C u r r e n t R e z i s t i v i t e (int iNdx) *PObj = NULL; CRezistivlte *)m-arRezistiviteIiNdx] pobj = (CRezistlvite 7Z ; m_clrRef : pobj->GetColorRef O; CMeshModel* pModeJ. = this->GetModel O; (m_c] rRe f ) ; p M o d e l - > S e t R e s j -z t i v i t e C o l o r ] C O L O R R E FC M e s h D o c : : G e t C u r r e n t R e z i s t i v i t e C o l o r i return m_cLrRef; ) 73 () DosyaAdr: MeshMdl.cpp // MeshMdl.cpp class #incfude #include : implementation of the CMeshModel "stdafx.h" "MeshMdl.h" #ifdef _DEBUG new DEBUG NEW #define #undef THIS_FILE static char THIS FILEI] #endi f = FILE i / / / / / / ///// / / / / / / / / / / / / / / // / / / / / / / / / / / /// / / / / / / / / / / / / / / /// ///// / / / / / / / / // / / // // CMestrModel IMPLEMENT_SERIAI(CMeshModel, CODModel, 0) CMeshMode1: : CMeshModel ( ) { m_crSelColor = 0; ] CMeshlulodel: : -CMeshModel- o t ] / // // / / / / / / / / / / / / / / / / / / // / / / / // / / // / / / / / / / // // / / / / / / /// / / / / / / / / / / / / / / / / / / / / / / // CMeshModel seri-al-ization vold { CMeshl'lodel: : Serial-ize (CArchive& ar) C O D M o d e I: S e r i a l i z e ( a r ) ; 1f { (ar. IsStoring O ) // TODO: add storing ] 74 code here else { 'tooo: add loading // code here ) ) ////////// / /// / / / / / / / / / / / // / / / / / / / / / / / / / / / / // / / / / / / / / / / / / / / // / // / / / / / / / / / / / / / // CMeshUodeldiagnostics #ifdef _DEBUG const void CM6shModel::AssertValidO { : :AssertValid ( ) ; CODModeI l void CMesN,IodeI: :Dump(CDurnpContext&dc) const { CODModeI: : DumP(dc) ; ) #endif / / -DEBVG /////// / / / / / / / / / / / // / / / / / / / / / / / / / // / / / / / / / // / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /// / void CMeshModel: : SetResi ztiviteCoLor (COLORREF crSelColor) t m-crSelColor : crSelColor; ) C O L O R R E FC l 4 e s h M o d e l: : G e t R e s i z t i v i t e C o l o r { return m-crSeIColor; ] 75 () DosyaAdr: MeshView.cPP // MeshYiew.cpp class #include #include #include #include #include #include : implementation the of CMeshView "stdafx.h" "Mesh.h" "MeshMdl.h" t'MeshDoc . h" "MeshView.h" "RezistiviteDlg. h" #ifdef _DEBUG new DEBUG-NEW #define THIS_FILE #undef char THIS FILE [1 = -FILE static #endif ; / / / / / / / / / / / / // / / / // / / / / / / / / / / / // / / / / / / // / / / / / / / / / / / ////// // / / / / // // / / / / / /// // // CMeshView (CMeshView, CVi-ew) IMPLEMENT-DYNCREATE BEGIN_MESSAGE-MAP( CMeshVi ew, CView) / / l IAEX-MSG-MAP ( CMeshView ) ON_WM_CREATE() ON_WM_SIZE0 0 ON-WM_ERASEBKGND om comtaND (rD FrLE VERTDOSYASlOKU, onFi leveiidosyas iokf ) ( I D EDI T_CHECKLINES. ON_CO},N4AND OnEditChecklines ) I D V I E W- R E Z I S T I V I T E S E C I M I , O N C O } O 4 A N(D ) onviewReZi st iviteseEi*i ON_WM_DESTROY 0 // } }AFX-MSGI',IAP commands / / sLand'ard Printing FILE PRINT, CView: :OnFlfePrint) ON COI4}4AND(ID 76 ( I D_FILE_PRINT_DIRECT, ON CO},O,IAND CView: :Onf ilePri-nt) ( ID_FILE-PRINT_PREVIEW, ON CO}O4AND CView : : OnfilePrintPreview) END_},IESSAGE_MAP0 / / //////// / / / / / / ////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / // / / / / / / / / / / / / / // // CMeshView construction'/destructi-on CMeshView : : Cl'leshView ( ) { / / TODaz add constructlon m-PRezDIg : MiLL, l code here CMeshVi-ew: : -CMeshView o { l BooL CMeshView: : Precreatewindow t here (CREATESTRUCT&cS } 'tOOOz Modify the Window class / / by modi-fYing the CREATESTRUCTcs // return or styles CVlew: : PreCreateWi'ndow (cs) ; ) / / / / // / / / / // / / /// / / / // / // // / // / / // / / /// / / // / /////// / / / / / / / / / / // / / / / / /// // / // / // Cl4eshview attributes CMeshViewport* t return CMeshView: : GetViewport () &m vPCanvas; ] /// // / / /// / // / / / / / ///// //// ///// / / / / / // / / / / / / / / / // / / / / / / / / // Oteshview drawing 77 / / // / / // / / / l// // // / void CMeshView: :OnPrepareDC (CDC* pDC, CPrintlnfo* plnfo) { CView: :OnPrepareDC (pDC, plnfo) ; m_wpCanvas . OnPrepareDC (pDC, plnfo ) ; ) void { CMeshView: :OnDraw(CDC* pDC) CMeshDoc* pDoc = GetDocument O; ASSERT_VAIID (pDoc) ; // Update the window with vj-ewport buffer. m wpCanvas.Draw(pDC); // the TODO: add draw code for contents native data l 1nt { CMeshView: :OnCreate (LPCREATESTRUCTlpcs) if (CView::OnCreate(1pcs) == -1) return -1; CMeshDoc* pDoc = GetDocument O; CMeshModel* pMode} = pDoc->GetModel O; m_vpCanvas.Create (this, NULL) ; m_vpCanvas . SetMode} (pModel ) ; return 0; ) voj-d CMeShView: ;onTni ti:ll]nrl:f a () { CView: : OnlnitialUpdate OnViewRezistiviteSecimi () ; () ; m_vpCanvas.OnlnitialUpdate () ; of the here ] // / / / // / / / // / /// / / / / / /// / / ///// / / // // ////////////// / / / / / / / / // / /// / // / / / / / // // // CMeshview printing (CPrintInfo* BOOL CMeshView: : OnPreparePrinting plnfo ) i the object to print // erepare the CPrintlnfo q]-agram. (plnfo) ) ( !GetViewport O -)PreparePrinti-ng if return FAISEt preparation / / default (pInfo) ; return DoPreparePrinting ) (CDC* /*pDC* / , void CMeshView: :OnBeginPrinting CPrintlnfo* /*plnfo* /l { before / / \ADa: add extra initialization nrinfinn T voi-d Cl4eshView: :OnEndPrintingr CPrintlnfo* / *plnfo* / ) (CDC* / *pDC* /, i // fOoOz add cleanup after printing ) v o i d C M e s h V i e w :: O n P r i n t ( C D C * p D C , C P r i n t l n f o * plnfo) { code here / / TODa: add custornized printi-ng the canvas / / Print GetViewport ( ) ->Print (pDC, plnfo) ; I / / /// / / / / / / / / / / / / / / / / / / / / / / / / / / / / // // / / / // / / / // / // / ////////////////////////// 79 // CMeshview diagnostics #ifdef _DEBUG void CMeshView: :AssertValidO { CVlew: :AssertValid ( ), ] void { const CMeshView: :Dump (CDumpContext& dc) const CView: : Dump(dc) ; ] CMeshDoc* CMeshView: :GetDocument O is inline version // non-debug t ASSERT(m_pDocument>IsKindOf (RUNTIME_CLASS(CMeshDoc) ) ) ; (CMeshDoc* ) m PDocument; return l *efICl]-T / / Ur-ltULl / / / / / / / / / / / / / // / / / // / / / / // / / / // / / / / / / / / / / / // / / / / / / / ////////////////////////// / / a,teshYiew message handlers void { CMeshView::OnSize (UINT nTlpe, cxr CView: :OnSize(nTlpe, int cx, cY) ; take up entire / / Have canvas viewport container. m vpCanvas. Setsize (cxr cY) ; cView::OnSize (nT)Pe, cXt cY) ; ) BOOL CMeshVlew: :OnEraseBkgnd (CDC* pDC) { // Oon't erase the background! pDC; /,/ unused return TRUE; ) 80 int cy) BOOL CMeshView: :OnWndMsg(UINT messaqe' WPARAM wParam, LPARAM lParam, LRESULT* pResult) { a chance Lo route / / cive the canvas viewport the message to a controller. B O O L b H a n d l e d = m - v p C a n v a s ' O n W n d M s g( m e s s a g e ' wParamr lParam, PResult) ; if( { lbHandled ) bHandled = cview: :onwndMsg(message' wParam, lParam, PResult) i ] return bHandled; i BOOL Cl,leshView::OnCmdMsg(UINT nID, int nCode, void* ) pExtra, AFX-CMDHANDLERINFO*pHandlerlnfo t This pump through normal channels' titst atlows you to override inside // tne components' defaul-t handling the view class. (CView: :OnCmdMsg(nID, nCode, pExtra, if pHandlerlnfo) ) reLurn TRUE; // / / Pump message through the canvas viewport BOOL bHandled : FALSE; i-f (GetDocumentO != NULL) bHandled = m-wpCanvas - onCmdMsg(nID, nCode, pExtra, PHandlerlnfo) ; return bHandled; l void { CMeshView: : OnFj-leVeridosyasioku 81 () // TODO: Add your conmand handler code here CMeshDoc* pDoc = GetDocument O; CMeshModel* pModel : pDoc_>GetModel O; CODViewport *pViewport = (CODViewport *) Getviewport O ; pMode 1->SetCanEdi tprops ( FALSE) ; ( m_Veri.ReadDataO && if m_Veri.SetVirtualSize ( (CMeshViewport { ^_teri . Regen (pModel ) ,. ] pViewport->UpdateAll *)pViewport; () ; l void {t CMeshView: : OnEditChecklines () / / 'tOOOz Add your command hand.ler CODComponent* pComp = NULL; CPoint ptstart, ptTarget; code here CMeshDoc* pDoc : GetDocument O ; CMeshModel* pMode} = pDoc_)GetModel O; CODComponentSet* pAJ-J_Comps= pModel_ >GetComponents O ; CoDcomponentlterator (pAllComps) ; iterator CStdioFile file; CString fiIe.Open ("DebugA.txt", CFile : : modeWrite ) ; CODViewport *)GetViewportO; *pViewport strTemp; CFiIe: :modeCreate I = (CODViewport f o r ( p C o m p= i t e r a t o r . G e t F i r s t O ; NULL; pComp = iterator.GetNextO ) pComp r= ) i ( ISA(pComp, CODlineComponent) if { CODlineComPonent (CODlineComPonent *) PComP; >GetControlPoint >GetControIPoint ) *PLineComP = = PLineComPptstart (OD-TOP-LEFT) ; = PLineComPptTarget (OD-BOTTOM-RIGHT ); strTemP. Format (" t ?d, ?d] { 8d, *d} \n" , PtStarE'Y' Ptstart.x, PtTarget'Y PtTarget'x, ( s t r TemP) ; f ile.WriteString ); ( plineComp->IsOrthogonal o / /if. ) { ProP; CODlineProPerties ( R G B( 2 5 5 ' 0 ' 0 ) ) ; PLineComP( eproP) ; PViewPort->UPdateAll i ) ProP-SetColor >SetProperty () ; l ] void. CMeshView: : OnViewRezistiviteSecini { hand]er / / TaDaz Add your command = FALSE; bCreate BOOL Cstring strTitle; CMeshDoc* PDoc = GetDocument O; if t ( rn-PRezDlq 1= NttLL ) () code here ( : : IsWindow (m_PRezDLgif >GetSafeHwndO ) ) t ) efse { m_pRezDlg->ShowWindow( SW_SHOW ); bCreate = TRUE; l ] else { bCreate = TRUE; I if { ( bCreate ) n_PRezDlg = new C R e z i s t i v i t e D l g ( t h i s , P D o c) ; Tablosu s t r T i t l e . F o r m a t( _ T( " R e z i s t i v i t e i8sl"), pDoc->GetTitleO ) ; ( strTitl-e ) ; m_pRezDlg->SetWindowText ) l void CMeshView:: onDest.roy ( ) { CView: : OnDestroy ( ) ; / / 'tOoO: Add your message handler code here if ( m_pRezDlg !: NULL ) { if ( : : IsWindow(m_PRezDIg>cetsafeHwndO ) ) { () ; m_pRezDIg->DestroyWindow ) ) ) 84 DosyaAdr: NIeshVp.cPP // Meshvp.cpp class #include #include #include #include of : implementation the CMeshViewport "stdafx.h" "Mesh.h" "MeshVp.h" "MeshCtlr.h" #ifdef _DEBUG new DEBUG_NEW #define #uNdEf THIS_FILE char THIS FILE [ ] = static #endif FILE ; / / // / / / / / / / / / / /// // // / / / / / / / / / / / / / / / / // / / // / / / / / / / / //// // / // /// /// / / / // // / / I / // CMeshviewPort CMeshViewPort : : CMeshViewPort ( ) { ] Cl4eshViewport : : -G4eshViewport { ) /// / / / // / / / / / / ///// / // // /////// //////l/////////////////t/ imPlementation / / *leshYiewPort () // / / / / / / / / / / / / // / / / / () BOOL G"IeshViewport: : CreateControl]er { (n_pctlr !: NULL && m-bAutoDelctlr) if delete m-PCtIr; m_pCt1r : new CMeshControlfer : TRUE; rn_bAutoDel-Ctlr return TRUE; 85 (this) ; ] BOOLCMeshViewport: :OnCreate o { reLurn CODViewport::OnCreate O ; ) / / / / // / // / / / / / /// / // / // /// ////// /// / / / / / / / / / / // // / //////// 86 / / / / / / / / / / / / / / / / / // DosyaAdr: MyCug9T.cPP / ************************************************** *************************************************** Skeleton Class for a Derived MyCug v3 ' 5 *************************************************** *************************************************** #include #include #include #include "stdafx.h" "resource.h" "MYCug97.h" ' r M e s h D o c .h " #ifdef _DEBUG new DEBUG-NEW #define #undef THIS-FILE char THIS FILE [ ] : static #endif -FILE-; BEGINI"IE SSAGE-MAP (MYCUg, CUGCTT 1 ) / / t {AFx -MSG-MAP(MYCug) wi-fl add and Z7 NoTs - the classwlzard remove maPPing macros here' DO NOT EDIT what You see in these / / blocks of generated code ! / / I \AE1/'_MSG_MAP END_MESSAGE-MAP0 MyCug: :MYCug o { ) MyCug: : -MYCug o i ) void MYCug::OnSetuPo t 87 m iEllipsislndex : AddCeIIType (am-ellipsis) ; ] /************************************************** OnSheetSetup *************************************************** MyCug: :OnSheetSetup (int void ] sheetNumber) { int int MyCug: :OnCarNove (int oldcolr long oldrow' newcolr long newrow) { TRUE; return ) int int MyCug: :onCanViewMove (int o1dco1. long oldrow' n e w r o w ) l o n g { newcolr TRUE; return ] numrows, rong void MyCug: :OnHitBottom(long rowspast, Iong rowsfound) { ) void MyCug: :onHitTop (long numrows, long rowspast) i i MyCug::OnCanSizeCol (int TRUE; return int col) { i *width) { void MyCug: :OnColS izLng (int col, int ) col, int *width) t void MyCug::OnColSized(int t I M y C u g : O n C a n S i z e R o w ( j - o nrgo w ) i return TRUE; int ) v o l d M y C u g :: O n R o w S i - z i n(gI o n g r o w , i n t ) rznid Mrrcrrcr::onRowSized(Iong v v f s a r f v s Y . . v . . ^ l i n tL rrr M Y 1 . r .: O n C a n S i z e S i d e H d g r r f \ rv -s r 88 row, int () { *height) { *height) { return ) int TRUE; MyCug: :OnCanSizeToPHdg ( ) { TRTIE; return i int ) int MyCug: :OnSideHdgSlzing TRUE; return *width) (int MyCug::OnSideHdgSized(int TRUE; return { *width) { ] int MyCug: :OnTopHdgSized(int TRIIE; return *heiqht) { i int MyCug: :OnTopHdgSizing(int return TRtE; *heiqht) { ] MyCug: :OnCotChange (int void ) MyCug: :OnRowChange (Iong oldrow, Iong void MyCug: :OnCellChange (int oldrowr long newrow) { l oldcol, int oldcol, int newcol) { void l newrow) { newcol, Iong (int oldcol, int void MyCug: :OnTopRowChange (long newrow) { oldrow, long void l MyCug: :OnleftColChange i 89 newcol) { col, Iong row, int void MyCug::OnlClicked(int processed) updnrRECT *rect'POINT *pointrint { ) col, Iong row, int void MyCug::onRClicked(int * p o i n t rint * r e c t r P O I N T processed) { updnrRECT ] col, Iong row'RECT void MyCug::OnDClicked(int *rect, POINT *poi-nt,BoOL processed) { if(col==0) i try t m_pMeshDoc( (int) row) ; >SetCurrentRezistivite i catch(...) {} l ) v o i d M y C u g : : O n M o u s e M o v e( i n t c o l ' l o n g *pointrUINT nFlagsrBOOL processed) { row, POINT ] col, long row, int void MyCug::OnTH_LClicked(int updnrRBCT *rectrPOINT *point,BOOL processed) { ] coI' Long row, lnt void MyCug: :OnTH-RClicked(int * p o i n t , B O OL processed) { * r e c t , P O I N T updn,RECT I void MyCug: : OnTH_DC]icked (int col, long *rect, POINT *point,BOOL processed) { i row, RECT r r n i r { M r r f - r r a. .o n S f { L C l i c k e d ( i n t col,long row, int updn,RECT *rect,POINT *point'BOOL processed) { ) 90 void Mycug: :OnSH_RClicked (int col, long row, int updnrRECT*rectrPOINT *pointrBOOL processed) { ) void MyCug::OnSH_DC}icked(int col, long row,RECT *rect, POINT *point,BOOL processed) t ) void MyCug: :OnCB_LClicked(int *pointrBOOL processed) { updn,RECT *rect, POINT updn, RECT *rect, POINT t void MyCug: :OnCB_RCl-icked(int *point,BOOL processed) { l void MyCug: : OnCB_DClicked (RECT *rect, *point, BOOL processed) { POINT ) void ) MyCug: :OnKeyDown(UINT *vcKeyrBOOL processed) { void ) MyCug: :OnCharDown(UINT *vcKeyrBOOL processed) { void *aa MyCug; :OnGetCel-l (int l I \ col, Long row, CUGCell { ) void MyCug: :OnSetCell *celI) { (int col, l-ong row,CUGCelf ] voi-d MyCug: :OnDataSourceNotify(int param) { t 91 fD, long msg, long ID, int int MyCug::OnCeflTypeNotify(long row, long rnsgr long Param) i col, long j-f(col==0) { Ie L r r r I i CUGCeII cellCurrent; CCoforDialog d1g (0,0, this) ; ( dlq.DoModal O := IDOK ) if t thi-s>GetCeIl (co1, row, &ceflcurrent) ; (dlg.GetColor ( ) ) ; cellcurrent.SetBackColor : CObArrayc arlist () ; m_pMeshDoc->GetRezistivitelist *PObj = CRezistivite * (CRezistivite ) ar],ist [ (int) row] ; pobj >SetColorRef (dlg.GetColor ( ) ) ; this>SetCell (co1, row, &cellCurrent) ; (col, row) ,' this->RedrawCeIl ) ) catch(... ) i ) ] TRUE; return ) int MyCug::OnEditStart **adi1-'\ (int col, long row,CWnd t return TRUE; ) 1nt MyCug: OnEditVerify(int *edit,UfNT *vcKey) { return TRUE; l 92 col-, long row,CWnd coI, long row'CWnd cancelFlag) { int MyCug: :OnEditFinish(int *edit,LPCTSTR stringrBooL TRUE; return I int MyCug: :onEditContinue oldrow, int* newcol, Iong* TRtiE; return ) long (int oldcol, newrow) { / *+* *********************************************** - UG_TOPHEADING, UG_SIDEHEADING,UG-GRID UG_HSCROLL UG_VSCROLL UG CORNERBUTTON **i************************************************ secIiONS void MyCug: :OnMenuCommand(int col, long section, inL iten) { ' row, int //***+*************+******************************** return return UG_SUCCESSto aflow the menu to appear 1 to not allow the menu to appear ***********************J.*************************** int MyCug: :OnMenuStart (int section) { TRUE; return ) col, long row, int int MyCug: :OnHint (int col, long row' int *string) i section,CString ("Col : 8d Row: ?1d', col' row) ; string->Format TRUE; return ) int Mycugf: :OnVScrollHint TRIIE; return (long 93 row,Cstring *string) { ) int MyCug: OnHScrollHint (int return TRLIE,' i #ifdef col,CString *stringr) { _AFXOLE_H_ / ** ** * * * ******************************************* *************************************************** DROPEFFECT MyCug:: OnDragEnter(COl_eDataObiect* pDataObject) { return DROPEFFECT NONE,. ) / * * * ++* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *************************************************** DROPEFFECTMycuq: : OnDragOver (COleDataObject* pDataObject, int col, long row) { reIuTn DROPEFFECTNONE; )I /* * **** * ******************************************* *************************************************** DROPEFFECT Mycug: :OnDragDrop(COleDataObject* p D a t a O b j e c t ,i n t c o 1 , . l o n g r o w ) { return DROPEFFECT NONE; #endif /************************************************** *************************************************** void MyCug::OnScreenDCSetup (CDC* d c , i n t s e c t i o n ) { ] / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.**** * * * *** **** * * * 94 OnSortEvaluate return -1 0:= 1> *************************************************** int MyCug: : OnSortEvaluate *ceLLZ, int flags) i (CUGCeII *cell1' CUGCell i i f ( f lags cUG-SORT-DESCENDING) CUGCell *Ptr = cell1; = ceLLZ; celll cell2 : ptr; ) if (ce111-)IsPropertySet(UGCELL-TEXT-SET) // FALSE) { if (cel12// (UGCEIL-TEXT-SET) =: FALSE) >IsPropertySet return 0; // return -1i // // ' () ) { switch (celt1->GetDataTlpe CASC UGCELLDATA_STRING: && if(NULL == cellL->GetText() := O) ce1l2->GetText NULL 0; return () ) if (NULL == celI1->GetText return 1; if (NULL == cel-12->GetText O ) return -1; return _tcscmP (ce111>GeLText O, cel12->CetText O ) ; : CASE UGCELLDATA_NUMBER case UGCELLDATA-BOOL: case UGCELLDATA CURPGNCY: Aoufte n1 = ce111( >GetNumber ) ; double n2 : ceLL2' >GetNumber ( ) ; if (n1 < \2) 95 -1; return if (n1 > ^2) return return 0; 1; i if (NULL := celll->GetText O) return 1; () ) if (NULL :: cell2->GetText return -1i return _tcscmp (cel11->GetText ( )' cel12>GetText O ) ; ] f ** *** ********************************************* OnTabSel-ected *************************************************** void ] MyCug::OnTabSelected(int ID) { f +* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * OnAdj ustCornponentS i zes *************************************************** v o i d M y C u g: : O n A d j u s t C o m p o n e n t S i z e s ( R E C T * g r i d , *topHdg, RECT * sideHdg, RECT *cnrBtn, RECT *vScrol], RECT *hScroll,RECT *tabs) i i RECT / * * *********************************************+** OnDrawFocusRect *************************************************** r r n i d M r r C r r c r..O n f t r : a w F o c u s R e c t( C D C * d c , R E C T * r e c t ) vsY r . v.r sr / /DrawBxcelFocusRect rect->bottom (dc, rect) --; 96 ; i rect->ri-ght --; d c - > D r a w F o c u s R e c(tr e c t ) ; ) //************ ************************************** OnGetDefBackCofor *************************************************** COLORREFMyCug: : OnGetDefBackColor r e t u r n R G B( 2 5 5 , 2 5 5 , 2 5 5 ) ; 'r* l ( int section) { * ** * ** * * * * * ** * * * * * * * * * * ** * * * * * * * * * * *** * * * * * ** ** * * OnSetFocus *** * * ***** * * * * ** t'*** ******************************* void MyCug: :OnSetFocus (int ) section) { /*Jr************************************************ * OnKillFocus *************************************************** void )' / ** MyCug::OnKillFocus * **** (int section) { **************:k**************************** OnColSwaPStart *************************************************** BOOLMyCug::OncolswapStart (int return col) { TRUE; ) / ******* ******************************************* * OnCanColSwaP *************************************************** 97 BOOL MyCug: :OncanColSwap (int fromCol, int toCoL) { return TRUE; ) / * ************************************************* OnTrac kin gWindowMoved *************************************************** void MyCug: : OnTrackingWindowMoved (RECT *origRect, RECT *newRect) { ] 98 DosyaAdr: Olcum.cpp // Olcum.cpp #include #include #incLude : irnplementati-on fil-e "stdafx.h" "Mesh.h" " O l - c u m .h r #ifdef _DEBUG new DEBUG NEW #define #undef THIS_FILE static char THIS FILE [ ] = #endif FILE ; / / / / / / // / // / / // / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / // / / / / / / // / / / / / / / / // COlcum ( COI cum, CCndTarget ) IMPLEI,IENT_DyNCREATE COf cum: : COlcurn ( ) { ) COlcum: : -COl-cun o { ) ( COlcum, CCmdTarget ) BEGIN_I,IESSAGE_MAP // { {arx_uSG_MAP (COlcr:m) // WOtn - the ClassWizard will remove mapplng macros here. / / I IAFX_r"LSG_MAP END I4ESSAGE MAP 0 add and / / / / / / / / / / / / / / / / / / / / // / / / / // / / / / / / // / / // / / / / // / / / / / /////////////t//////////// // cO1cr:m message handlers 99 DosyaAdr: RezistiviteDlg.cpp // : implementation RezistiviteDlg.cpp #include #include #include t'stdafx.h" "mesh.h" "RezistiviteDlg. #ifdef _DEBUG new DEBUG_NEW #define #undef THIS_FILE static char THIS FILEI] #endif h" = FILE ; / / / / / / / / // /// /// / / // //// /// /////// / // / / / // / / / / / / / / / / // / / / / // dialog / / CRezistiviteDlg CRezistlviteDlg: : CRezistiviteDlg /*=NULL*,/, CMeshDoc *pDoc) : CDialog (CRezistiviteDlg: { file / /////// / /// / / // / (CWnd* pParent : IDD' pParent) m_pDoc = pDoc; rcClient; CRect rcMainClient, CWnd *pWnd = AfxGetMainWndO; pWnd->GetCfientRect (rcMainClient ) ; Create (CRezistivj-teDlg: : IDD, pParent) ; (rcClient ) ; this->GetCLientRect = rcMainClient.widtho i-nt i],eft () ; rcClient.Width int iToP = rcMainClient.Heighto rcf'l ianl- IJa-ialri- . r r v : Y l ] u /\ \ . / ' CPoj-nt ptPos (iLeft, iTop) ; ptPos.x += rcMalnClient. left,' ptPos. y += rcMainClient. top,' pWnd->ClientToScreen (eptPos ) ; ptPos.x -= 10; PtPos.Y -= 44; 100 ; *,-*L?"' \' o' o'swP-NosrZE) tr".*rlllipos tuur,l,ptPos' ( SW-SHOW ); this->ShowWindow / / t {AFX-DATA-INIT ( CRezi st-ivi teDlg ) ZU rioint'-iie-crassvliLzard member initialization // } }ATX-DATA_INIT wrll add here l void PDX) C R ez i s t i v i ' t e D l t ( g : : DoDataExchange CDataExchange CDialog: :DoDataExchange * ( P D X ); (cRezi st iviteDls ) i7i tfi{-*rA-MAP*d;";l;sswj'zard will // NorEt and DDV calls here // } }AFX_DATA_MAP ] add DDX cDialog) (cRezistiYil?Dls'' MESSAGE-MAP BEGIN g) teDl ivi i t " "" " " -" z s ( il71 erx-use-laeP cRe () ON_WM_DESTROY onsil ) olr_eu_cr,rciGD ( IDC-SIL, ot ) rirco t r oc-sIll'_ _9." " oN_BN_cL i r) i roc-oucr srrR' onDegist oN-BN-cl,rIi<so t /\terx-usc-MAP 0 END_I,IESSAGE_MAP ///// / . // / . // / / / / / / / / / / / / / / ///// //////////////////// /'iiiiiiiit messase / / / / / iiit t t/ cRezistiviteDls handlers void t' CRezistiviteDlg: : OnDestroy ( ) aoialog::onDestroYO ; message handler // ToDo: Add your delete this; 101 code here 1 BooL CRezisti-viteDlgt: : onlnitDialog () t CDialog: :OnInitDialog O ; . SetDocument, (n_pDoc ) ; m_ctrlGrid (this' I D C _ G R I D ); m_ctrlGrid.AttachGrid (void) fnitCol-orf,ist O ; the return focus to Pages should ] void { TRUE unless you set TRUE; / / return a conLrol // EXCEPTION: OCX ProPertY FAISE return CRezistiviteDlg: : InitColorlist o *PObj = NULLi CRezistivite cell-Current; CUGCellCString strTemp; try { CObArraY& arl,ist () ; >GetRezistivitel,lst = m PDoc- m_ctrlGrid. SetNumberRows(arl,ist. Getsize ( ) ) ; m_ctrf Grid. SetNunberCoI s (2 ) ; m_ctrl-Grid. SetCol-Width (0, 110 ) ; m_ctrlGrid. SetColWidth ( l, L07 ) ; m_ctrl-Grid. SetSH_Width ( 0 ) ; m_ctrfGrid. QuickSetText m_ctrlGrid. QuickSetText (0, - 1, "Renk" ) i (1, -1, "Defer" ) ; for ( int iNdx = 0; iNdx < arl,ist. GetSi ze O ; iNdx++ ) { Pobj = (CRezistivite * ) ar],ist [1Ndx] ; 102 s t r T e m p . F o r m a t ( - T ( " e " 0 2 d r) , p o b j >GetValue O ); (0, iNdx, ccellCurrent) ; m-ctrlGrid.GetCeIl ceIlCurrent. SetBackColor (pobj >GetColornef O ) ; ce 1 lCurrent ); . SetAl i gnment ( UG-AL I GNCENTER (0, iNdx, &ceIlCurrent) ; m-ctrlGrid.SetCelI rn ctrlGrid. QuickSetCellTlPe (0, ; ief f ipsislndex) iNdx, m-ctrlGria.n (0, iNdx) ; m ctrlGrid.RedrawCell j-Ndx, m-ctrlGrid. QuickSetText ( 1, strTemp); m-ctr 1Grid. Qui ckS etAl i gnment ( 1, iNdx. UG-ALI GNC ENTER); ] m_ctrl-Grid. Adj ustComponentS i zes ( ) ; l catch(...) { i i void { CRezistiviteDlg: : O n S i ] -( ) T OOO: Add your control notification code here handler rry { : m-PDocCObArraYe arlist ( >GetRezistivitelist ); long lRow = m-ctrfGrid.GetCurrentRowO *PObj = NULL; CRezistivite pObj = (CRezistivite *) arl,ist [ (int) lRow] ; // 103 ; ( (int) lRow) ; arlist.RemoveAt delete PObj; DeleteRow ( lRow ) ; m-ctrl-Grid. ) catch(...) t ) i void CRezistiviteDlg: :onEkle o I / / handler I vi ToDo: Add your code here uri[ controL notification r { CString strValue' strTemP; DWORDdwValue = 'It cellCurrent; U\J\JUgTT CObArraYe arlist () ; >GetRezistivitelist = *pEdit cEdit * ) GetDlgltern = m-PDoc- (CEdit ( IDC-DEGER) ; pndiE- >eetwindowText ( strvalue ); dwValue : atol (strValue); ( dwValue != -1 ) if t int iRow = (int) m-ctrrGrid' n":*H;;::::Jl;.'*erRows CRezistlvite CRezistivite () ; (iRow + *PObi = new p O b j - > S e t C o l o r R e f ( R G B( O ' 0 , 2 5 5 ) ) ; pObj ->SetValue (dwValue) ; (pobj ) ; arlist.edd strTemp. Format (-T ( " ZQ2d") , PObj >GetValue O l ; 104 (0, iRow, &cellCurrent) ; m_ctrlcrid.GetCell cellCurrent. SetBackColor (pobj >GetCoforRef O ) ; cellCurrent. SetAlignment ( U G A I , I G N C E N T E R;) SetCell (0, iRow, &cellCurrent) ; m_ctrlGrid. QuickSetCellTlpe (0' iRow, m_ctrlGrid.m_i-ElLipsislndex) ; (0' iRow) ; m ctrlGrid.RedrawCell n-ctrlGrid. QuickSetText ( 1, iRow, m_ctrlGrid. ^f-m^--\. r EILP,/ D L! , m_ctrl-Grid. ENTER); ( 1, iRow, UG-ALIGNc QuickSetAlignment m_ctrlGrid.RedrawCell (1, iRow) ; ) ) catch(...) i i ) void { CRezistiviteDlg: IoDo: Add your code here Ery // handler : OnDegistir control () notification t CString strValue, strTenp; DWORDdwValue - -I; cellCurrent; CUGCell : m_pDocCObArraye arl,ist ( >GetRezistivitelist ); CEdit *pEdit = (CEdit * ) GetDlglten ( IDC_DEGER); ( strValue pEdit->GetWindowText dwValue : atol (strValue); 105 ); ( dwValue if i != -1 ) int iRow = GetCurrentRow ( ) ; (int ) n ctrlGrid. *pOb3 : CRezistivite *) arlist IiRow]; pObj ->SetValue (dwValue) ; (CRezistivite strTemp.Format ( T ("802d"), >GetValue O pObj- ); (0, iRow' &cellCurrent) ; m_ctrlGrid.GetCell . SetBackColor (pobj cellCurrent >GetColornef O ) ; cel.ICurrent. DL!rsrrL},,/, (UG AIIGNCENTER) ; SetCell (0, iRow, &celfCurrent) ; m ctrlGrid.RedrawCell- (0, iRow); m-ctrlGrid. QuickSetText ( 1, iRow, m_ctrlGrid. ^ f e r ^''h\ SetAlignment . m_ctrlGrid. ENTER); QuickSetAlignment ( 1 , 1 R o w ,U G A L I G N c m_ctr1Grid.RedrawCell ) ) nal-nh / I { l 106 (1, iRow) ; DosyaAdr: stdafx.cPP that incLudes just the std.afx.cpp : source file // standard includes be the pre-compiled header Mesh-pch will / / contain the pre-compiled tlpe will stdafx.obi // informatron #include "stdafx.h" t07 DosyaAdr: Veri.cPP // Yeri.cPP : imPlementation #include #include #include "stdafx'h" "Mesh.h" "Veri.h" #include #inc1ude #include "Ves.b" "MeshI'{dI .h" "MeshVP.h" #]I(ler fife u-LIJU\t #define new DEBUG-NEW #UNdCf THIS_EILE : -FrLE-; static ciraitltts-Frt,E [] #endif #define XSCALE1 # d e f i n e Y S C A L E0 ' 7 5 //////////////////////////////////////////////////l / / / / / / / / / / / / / / / / / / / / / / / / // / / cveri (CVCTi, CObJECT) IMPLEMENT-DYNCREATE CVeri::CVeri o { ) CVeri: : -CVeri o { RemoveAllltens O ; i /////////////////////////////////////////////////// / / / / // // / / / / / / / / / / /// / / // / / / cveri message handlers void CVeri: : RemoveAllItens ( ) 108 for(int { i=0; < m_arVes.GetSizeO; i CObject *ob = m arVeslil delete ob; i-++) ; ) m arVes.RenoveAll O; l bool { CVeri::ReadDatao file; CstdioFile CString strTemp; cstrj-ng strNVES; CString SITVESID; long lNves; CVes *pVes; u!J t RemoveAl-lItems O ; ( file.Open(_T("KOSA.21"), if CFl]e::modeRead) ) { file.ReadString (strTemp) ; // BasLrk (strNVES) ; fite.ReadString INves = atol (strNVES); (long for lNves; lCount:0,' lCount lcount++) { >OlcumleriOku(file) pves = new CVes O; ( !pVesif ) { 109 // < NVIS dosyasr okunurken hata oluFtu" AfxMessageBox ( "Veri ); i m_arVes .Add (pVes ) ; ) ) ) catch(...) { return ] return false; true; J bool CVeri: ptsLog) :Addline (CMeshModel *pModel' LPPOINT t comPonent / / Create the line try { CODlineComponent* plineComp = new CODlineComponent ( ) ; PlineComP->addRef ( ) ; 2) , plineComp->Create (Ptslog, to the model line component Add' the // pModel- >AppendChi ld (pLineConp ) ; ( T R U E) ; plineComp->SetOrthoqonal CODEditProPerties ProPEdit ; P r o P E d i t . S e t C a n R o t a t e ( F A L S E) ; ProPEdi-t. SetCanScaIe (FAISE) ; P r o P E d i t . S e t C a n S t r e t c h ( F A L S E) ; ( F A I , S E) ; propEdit . SetCanEditVertices pLineComp->SetProperty ( epropEdit ) ; // Release this reference to the component. plineComP->ReIease l catch(...) { ll0 () ; return i return false; true; l *pragma warning 4244) (disable: (CMeshViewport bool CVeri: : SetVirtualsize *pViewPort) { = NtlT,I,; CVes *PVesFirst = *PVeslast NULL; CVes double dMesafe; double dSol, dsag; int il,astltemlndex; try { PVesFirst n_dllk (CVes *)m-arVes[0]; : = PVesFi-rst->m-dX; : ilastltemlndex m_arves . GeLUPPerBound ( ) ; - *)m-arVes [0] ) ->m-dX dSol : fabs ( ( (CVes > m d x ) ; ( (CVes *)m-arves [1] ) m-dSol : dSoI; dSag = fabs(((CVes *)m-arVes Iilastltemlndex-1] ) ->m-dX > n d X ) ; *)m-arves Iilastltemlndex] 1 m-dSag = dsag; = PVeslast * ) m_arVes Iilastltemlndex] m dSon = (CVes ; pVeslast->m-dX; t11 ( (CVes dMesafe = fabs (pVesFirst->m pvesl,ast->m_dX); dX - dMesafe += dSag; dMesafe +: dSoI; m_dMesafe : dMesafe : dMesafe; dMesafe * XSCALE; pViewPort->SetVirtualS t024 * YSCATE); ize ( (int ) dMesaf e' ) ^ ^ ! a L LaLUrr / l. \ . ..1 { return false; ) return true; l bool { CVeri: :Regen(CMeshModel *pModef) fil-eDelta; CStdioFile CVes *PVes = NULL; CVes *pVesNext = NULL; doubl-e dCurX; double dNextX; double dRefX; double dFark; doubl-e dPrevX = 0; POINT ptsr,og[21; POINT pLsZLog[2]; try t 112 for (int iNdx:O; iNdx < m arVes.GetSize O ; iNdx++1 { pVes = (CVes *)m-arVesli'Ndxl; dCurX = pVes->m_dX; if (iNdx+1 ( m-arVes-GetSizeO t PVesNext *)m_arves IiNdx+l] ; = ) (CVes dNextX = pvesNext->m-dX; ) else { dNextX:mdSon+m-dSag i dFark = fabs (dCurX - dNextX); dRefX = dPrevX + fabs (dCurX dNextX); 0.05) = (long) ( dRefX + dFark * ptslogtOl.x * xscALE; = 8 * YSCALE ; Ptsl,ogtol-Y = Ptslo$[0] 'x; ptslogtll.x = :-Q24 * YSCALE ; ptslogtLl.Y ; Addline (PModeI, Ptslog) 0.05) (long) ( dRefX * dFark * ptsl,ogtOl.x * XSCAI,E; : Ptslo$t0l -x; ptslogtll.x (PModel, i Addline Ptsl,og) 0.1) = (long) ( dRefX + dFark * ptslogt0l.x * XSCAI,E; = Ptslog[0] 'x; ptslogtll.x (PModel, Pts],og) ; Addline 0.1) ptslogtOl.x * xscAl,E; = (long) ( dRefX - dFark * 113 = PtsI,og[0].x; pts],og[1].x ( p M o d e l, Ptsl,og) ; Addline = ptsl,ogiOl.x 0.2) * xscALE; : Ptslog[0].x; ptslogtll.x (pModel, Addline t Ptslog) (long) ( dRefX - dFark = ptslogtOl.x 0.2) * xscAr,E; p t s l o g [ 1 1 . x : P t s l o $ [ 0 ]- x ; (pModel, Addline 0.4) (long) ( dRefX + dFark i Ptsl,og) = (l-ong) ( dRefx + dFark ptsl,ogt0l.x * xscAlE; : Ptslo$[0].x; ptslog[1].x Addline (pModel, Ptsl,og) i = ptslogtOl.x 0.4) * xscALE; (long) ( dRefX - dFark : Ptsl,o![0].x; ptslog[1].x ( P M o d e I, Ptslog) i Addline dPrevX = dRefX; l l+ 7. aL<an r - i Z r rr -i Il E^ !- i r */ ^ i z A i F i l i r rr+nr -; I. v Vraerr = 0; = (long) m-dMesafe * ptsZlog[0].x ptsZlogtll.x XSCALE; iNdx <1024 ; iNdx=iNdx*2) (iNdx=8; for t * YSCALE; PtsZlogt0l -Y = iNdx = PtsZLo$[0].Y ; ptsZlogtll.Y Addline (PModel, PtsZLog) ; ] / / *^ ? 4 ^Lann eKSerr a4 onf vJ-z9f l14 1 ^-: aEr I ^r orli vr4vrr -; I a; * / /* Delta X ve Delta dosyasina delta.out ( flleDelta.Open( if /* CFite::modeWrite) ) { for (int iNdx=O; m arves.GetSize O ; iNdx++) t Z degerleri yazdiriliyor T ("DELTA'OUT')' j'Ndx < . i,rlriteStri-ng (strTemp ) ; f ileDelta / / BaELtk fileDelta.ReadString NVES lNves; (strNVES) ; / / lNves = atol (strNVES) ; (long for lCount=0; lCount < lCount++) t pVes = new CVesO; if ( !PVes- >OfcumleriOku(file) ) { AfxMessageBox('Veri dosYasr okunurken hata olugtu") ; ) m_arVes.Add (pves ) , ) ) ) catch(...) t return ' false; ) 115 return true; n6 DosyaAdr: Ves.cpp // I/es-r-nn : imnlementation #incLude #include #include "stdafx.h" "Mesh.h" "Ves.h" #include "Olcum.h" #ifdef _DEBUG #define new DEBUG NEW #undef THIS_FILE static char THIS FILE [ ] = file FIIE i #endif ///// //// // / // //////// ////////////////////////// / / CYes //////// / / // / / / / / / / // / // / / / / / (CVes, CCndTarget ) IMPLEMENT_DYNCREATE C V e s : : C V e so { l CVes: : -CVes o { Ery t for(int i=0; i- < m arOlcum.GetSizeO; i++ ) { CObject *ob: delete ob; ] ] catch(...){} m_arO1cum.RemoveAll () ; ) n7 m arOlcumlil; BEGINI'IESSAGE-MAP ( CVes, CCmdTarget ) // t {AFX_MSG_MAP(CVes) f7 r.roTe - the Classwizard remove mapping macros here. // ) )AFX_MSG_MAP END_MESSAGEJ'{AP0 witl add and / I / / / / / / //// // / / / / / // // / / / / / / / / / / / / / / / / / / / // // / / / / / / / / / / // / / / / / / / / /// / / / / / / / / / / cves messagehandlers bool t CVes: :OlcumleriOku (CStdioFilec file) Cstring strTemP; int iPos; long lCount; COlcum *POlcum; e I f I f ile . ReadString (strTemP ) ; 'r 0) i iPos = strTemp.Find(' m strlD = strTemp.Left(iPos); fife. ReadString (strTemP) ; m dX : (double) atof (strTemp) ; t:-le . neadString (strTemP) ; n 1NDT = atol (strTemP) ; t i f e . R e a d S t r i n g (s t r T e n P ) ; for (lCount=O; fCount < rn-INDT; ICount++ ) { pOlcum = new Colcurno; file. ReadString (strTemp) ; pOlcum->m_strNO = strTemp .Mid (0, 3) ; pOlcunt->nt-dAb2 = ( s t r T e m p.Mid (4' 8) ) ; (double)atof polcum->m_dMn2 = (double)atof (strTemp.Mid (72,6) ) ; 118 pOlcum->m_RO: ( s t r T e m p . M i d( 1 8 ) ) ; ( d o u b l e )a t o f m_arOlcum.Add (POlcum); ) l catch(...) { return false; ) return crue; ) 119 DosyaAdr: VeriMeju.cPP Yerllfieju.cpp // : implementation #include #include #include "stdafx.h" "mesh.h" "VeriMeju.h" #include #include "MeshMdl.h" "MeshVP.h" #ifdef _DEBUG new DEBLIG-NEW #define #undef THIS-FILE char THIS-FILE [] static #endif #define #define = file -FILE-; XSCAIE 1 YSCALE 1 /// //// // / / / / / / // // / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / // / / / / /// // CVeril{eju (COIcumMeju' IMPLEMENT-DYNCREATE CObj ect) COIcunMeju : : COlcumMeju ( ) i ] COlcumMeju: : -COlcumMeju( ) { ) / /// /// // /// / / / / // / / / / /// // // / ////// //////////// CVeril'teju // (CIstasyonMeju, IMPLEMENT-DYNCREATE C l s t a s y o r M e i u : : C I s t a s Y o n M e i u( ) t 120 CObject) /// ] C l s t a s y o n M e j u: : - C I s t a s Y o n M e j u( ) { Cl-earltems O ; ) bool ClstasyonMeju: :Clearltens () { rry t COlcumMeju *PObj : vecOlcumlterator iterOlcum; = m vecOlcumler-beginO iterolcurn ( white m vecOlcumler.endO t NULL; ; iterolcum ) n.\}.ri: y v v J delete /t * i +r v-v a- \ r o l C U m ) ; pObj; iterOlcum++; l m_vecOLcumler . clear O ; i catch(...) t return false; ) return true; l boof ClstasyonMeju: :Olcuml-eriOku(CStdioFilee file) 121 != CString strTemp; int i-Pos; long lCount; COlcurnMeju *PolcumMeju try { = NULL; f ile . ReadString (strTenP) ; iPos = strTemp.Find(' m - s t r 1 D = s t r T e m p . L e f t "( 0i P) ;o s ) ; f ile . ReadString (strTemp) ; m_dX = (double) atof (strTemP) ; f ile. ReadString (strTemP) ; m_lNDT = atol (strTemP); f iIe . ReadString (strTemp ) ; < (ICount=0; lCount f or m-l-NDT; lCount++ ) { nolcrrmMciu = new COlcumMejuO; f ite. ReadString (strTertP) ; pOlcumMeju->m_strNo t/vrvwrB.vJ strTemp .Mid (0, 3 ) ; pOlcumMej u->m_dAb2 (double) atof (strTemP-Mid(4,8) \; pOlcumMeju->m_dMn2 (double) atof (strTemp.Mid (I2' 6) | ; pOlcumMeju->m_RO ( s t r T e m P.Mid(18) ); (double) atof m vecOlcumler.push back (pOlcumMeju) ; ) ^^f ^L,/ u@Lgrr \. \ . .,/ i return false; l return true; t22 = ] //////// / / / // //// / t/// //// / / / / /// / / / / // /// / //// / / // ////////////////////////// // CVeril4eju IMPLEMENT-DYNCREATE( CVeriI'Ie j u, CObj ect ) CVeriMeju : : CVeriMeju ( ) { ] CVeriMeju : : -CVeriMeju t () Clearltems ( ) ; i // / / / / / //// // // / // / / // / //// / / // / // / / / / // / // // / / / /// / / ///// / / / / // / / // / // / / / / / / / / CIIerLueju message handlers bool CVeriMeju: : Clearltems o { + rrr Lr if t *PObj CIstasYonMeju veclstasyonlterator = NLILLi iterlstasyoni iterlstasYon m_veclstasYonlar . begin ( ) ; while m veclstasYonlar-endO ( iterlstasYon ) I 1 pobj : (*iterlstasyon) delete PObj; 123 ; r= iter I stasYon++,' i m-vecl stasYonlar . clear ( ) ; ] catch(...) t return false; ) return true; i Iong CVeriMeju: :GetltemCount o { ClstasYorrMeju *m_vecIstasYonlar . begin ( ) ; return *PlstasYon PI stasYon->m-INDT ; ) : Public LessOlcumMeiu struct CofcurMeju*' std: :binary-function<COlcumMeju*, bool> { *p1, COlcumMeju* bool operator O ( COlcunt'leju p2 ) const { return P1->GetROO < P2->GetROO, ) ] LessOlculMeju; boof CVeriMeju: :Derinl-ikDonusumu( ) { try { doubfe dAdb2Current = 0.0; 124 COlcurnMeju *POlcumMelu *Plstasyon ClstasYonMeju veclstasyonf long for lNdx++ : NUI'L; iterlstasyon; terator = GetltemCount O ; lltemCount (long = NULL; INdx : 0; LNdx < lltemCount; 1 { vecOlcumler vecOlcumX ; ( i-terlstasYon for li t e rlstasyon m_veclstasyonlar.beginO; ) ; j-terlstasyon++ m-veclstasyonlar.endO { plstasYon (*iterlstasyon) ; pOlcuMeju PIstasyon( ( u n s i g n e d i n t ) lNdx) ; >GetNthltem (polcu:nMe j u) ; vecOlcumX . push-back i dAdb2Current POlcumMeju- >m_dAb2; vecOlcumX.end ( ), std: : sort (vecolcumX.begin ( ), L e s s o 1 c u m M e j u ); double dOrt : if { 0.0; ( vecOlcumX.size0 double > 2 | dTemP = 0.0; (unsigned int for n f t e m + + ) < v e c O l c u m X . s i z e O 1 ; L; nlteur t t2s nltem nA }/vf vecOlcunx [nItem] l a rrmMai vlA!4rvJ ; dTemP = rs r = dTemP + pOlcumMeju->m_RO; l vecOtcumX.sizeO = nftemcount int - 2; dOrt : dTemp / nltemCount; ) else t COIcumI4ej u *P1 COlcurnMeju *P2 vecOlcumX[0]; vecOlcumX [1] ; dOrt >m dAb2) / = ((p1->n_dAb2 + p2- 2); ) double double = dStePl double ( 1 . 4 3 * 3 . 1 4 * dAdb2Current ) ; dSteP2 = sqrt (dOrt) ; dDerinlik = dStePl dStep2; back (dDerinlik) m vecDerinlikler.push ] catch(...) { return false; t26 ; / ) return Erue; ) l.rnnl CVcri Meiu : : ReadData o f t , v r : : J v J u ' { CStdioFile fil-e; rrQi-ri vJ L! qf-m^FF. r cluv I u! r r rn9d t CSfri no strNVESi CS1.rina s|TVESID; v v L ! t . r J v v vv u! +r r Y v e long lNves; *plstasyonMeju ClstasyonMeju = NULLT rry { if { ( !ClearltemsO throw ) -1; i if CFile::modeRead) { ( file-OPen(-T ("KOSA.2!") , ) // file.ReadString(strTemP); Baglrk (strNVES) ; // file.ReadString = ( s t r NVES); atol INves for lNves; (long lCount++) t 127 lCount=0; NVES lCount = plstasYonMeju CIstasYonMeju ( ) ; >OIcumterioku dosyasr ( if (fiIe) new lplstasYonMeju- ) t okunurken hata AfxMessaqeBox ( "Veri oluqtu") i ) m-ve cI s t, a s yon)- ar . push-back (p I s tas yorrMej u ) ; ) if ( !DerinlikDonusumuO ) t throw -1; T; strTemP; Cstring CStdioFile double int fileOut; dVal = 0'0; nlternNdx = 1; fileOut.open (-T ("Derinfikler CFiIe: :modeCreate I CFile: :modeWrite ) ; vecDerinliklterator m_vecDerinlikf ' txt" ) ' iterDerinlik; iterDerinlik er.begi-n ( ) ; while m vecDerinlikler.endO { ( iterDerinlik ) dVal : *iterDerinlik; 128 != ?.4f\n"), s t r T e m p . F o r m a L( _ T ( " Z - 0 2 d nltemNdx' dVal) ; f ileOut.WriteString (strTemP) ; iterDerinlik++; nltemNdx ++; ) l catch(...) t return false; ) return true; ) booL CVeriMeju: :Addline (CMestrModel*pModel, I,PPOINT ptsLog) t comPonent / / Create the line try { CODlineComPonent* PLineComP CODlineComponent ( ) ; () ; plineComP->AddRef plineComP-)Create (Ptsl,og, 2\ ; component to the / / ?rdd the line pMode 1 ->AppendChi 1 d (ptineComp ) ; new model ( TRUE) ; plineComp->SetOrthogonal CODEditProPerties ProPEdit ; propEdi-t . SetCanRotate ( FALSE) ; proPEdit. SetCanScale (FAISE) ; p r o P E d i t . S e t C a n S t r e t c h ( F A I S E) ; ( FALSE) ; propEdit . SetCanEditVertices ( epropEdit ) ; plineComp->SetProperty t29 // ^^hhnh6hl vvlt(Fvr rvrr e this Release the to reference . plineComP*>Ref ) catch(...) t false; return ) return ease O ,' t.rue; i # p r a g m aw a r n i n g ( d i s a b l e z 4 2 4 4 ) CVeriMeju::SetVirtualsize bool *pViewPort) i ClstasyonMeju *plstasyonFirst Clstasyonl4eju *plstasyonlast double dMesafe; doubfe dSol, dSag; int ilastltemlndex; (CMeshViewport = NULLi = NULL; L!.Y { = m-veclstasyonlar plstasyonFirst [0] ; = plstasyonFirst->m_dX; m_dllk = iI,astltemlndex m_veclstasyonlar. size () -1 ; - dSol = fabs ( (m_veclstasyonlar (m veclstasyonlar [1] ) ->n dX) ; [ 0] ) ->n dX m_dSol = dSol; dSag f a b s ( ( m v e c T s f 3 s r r n n l : r t i T , : s l -T f e m fn d e x - l - ] ) - > m d X ! u v J \ (m veclstasyonlar Iilastltemlndex] m_dSag = dSag; 130 ) ->m-dX) ; PIstasYonlast m-vecI stasyonlar I iLast Itemlndex ] ; m-dSon = PIstasYonlast->m-dXi dMesafe = p I st as yonlast- >m-dX ) ; fabs(plstasyonFirst->m-dX dMesafe += dsag; dMesafe += dSol; m-dMesafe = dMesafe; dMesafe : dMesafe * XSCAI'E; pViewPort->SetVirtuaISize * YSCAI,E); 1024 ) catch(...) { return l return ( ( int ) dMesaf e' fafse; true; l bool { *pModeI) CVeriMeju: :Regen (Cl4eshModel fileDelta; CStdioFile : NULL; *plstasyonMeju ClstasyonMeju : NULL; *plstasyonMejuNext Clstasyonl4eju double dCurx, double dNextX; double dRefX; double dFark; double dPrevX = 0; 131 POINT Ptsl,og[2]; POINT PtsZLog[2]; l-e - rrr f t iNdx (int iNdx:O; for size O ; iNdx++) (int)m_veclstasyonlar. { pI stasyonMej u m_vecI stasyonlar I iNdx ] ; dCurX = plstasyonMeju->m_dX; if (int)m_veclstasYonlar.size (iNdx+t () ) i m_vecl stasyonlar pI stasYonMej uNext I iNdx+ 1 ] ; dNextX = plstasyonMejuNext- >m_dX; ] EI SE { dNextX:mdSon+mdsag; ) dFark - dNextX) ; = fabs (dCurx dPrevX dRefX + fabs (dCurX dNextX); dFark * 0.05) dFark * 0.05) (long) ( dRefX + ptsI,ogl0].x * XSCAI,E; = 8 * YSCAIE, ptslogi0l.Y = Ptsl,og[0i.x; ptslog[1].x : 1 ' 0 2 4 * Y S C A L E; ptsl,ogtll.Y Addline (pModel. Ptsl,og) ; ptslog [0] .x * XSCAI,E; ptslog[1].x 132 (long) ( dRefx = PtsLoQ[0].x; Addline (PModeI, Ptslog) = (long) ( dRefX + ptslogtOl-x * XSCALE; dFark * 0.1") = P t s ] , o g [ 0 ]' x ; ptslogtll.x (PModel, Pts],og) t Addline dFark*0.1) = (long)( dRefX ptslogtOl.x *XSCALE; = Ptslo$[0] 'x; ptslogtll.x (PModel, Pts],og) ; Addline = (Iong) ( dRefX + pts],ogt0l.x dFark * 0.2) * XSCAIE; ptslogtll -x = Ptslog[0] 'x; iaar,itt" (PModet, PtsLoS) ; (long) ( dRefx ptsr,ogl.0l -x dFark * 0.2) * XSCAIE; ptslogtll -x = Ptslo$[0] 'x; Addline (PModel, PtsI,og) ; > dFark) if (iterDerinlik*4 { * 4; dFark = iterderinlik ) (long) (dRefX + ptslogt0l -x *XSCA'LE,' dFark*0.4) ptslogtll -x = Ptsl,ogt0l'x; Addline (PModel, Ptsl,og) ' p t s l o g t 0 l . x = 1 1 o n g )( d R e f X dFark*0.4)*XSCALE; = P t s l , o g t 0 l' x ; ptslogtll.x Addline(PModel' Ptslog) i dPrevX = dRefX; ) vecDerinliklterator = 0; P t s Z L o g [ 0 ]' x PtsZLoglll 'x XSCAI,E; 133 iterDerinlik; (long) m-dMesafe * iterDerinlik .begin ( ) ; m_vecDerinlikler = 8'0i double dTotal ( ) while m vecDerinlikler.endO != iterDerinlik I 1 = *iterDerinlik; double dDerinlik dTotal += dDerinlik; * YscAr'E; : drotal PtsZLogtol 'Y = ptszl,ogtll.Y PtsZLoQ[0] 'Y ; ( p M o d e l ' Addline PtsZLog) i iterDer j-nIik++; ) gizdiriliyor' /* z eksen qizgileri = 0 ; PtsZLog [0] 'x (Iong) m-dMesafe Ptszlogtll.x XSCAIE; (iNdx:8; for { l /* iNdx <!024 : iNdx * YSCALE; Ptszl,ogtol 'Y ptsZlog i1l .Y = PtsZLo$ t0l 'Y ; Addline (PModet, PtsZLog) i Z eksen gizgileri ] ^^+alr / uquult\..., { ; iNdx=iNdx*2) I return false; ) return true; t34 gizdirildi' */ * DosyaAdr: ChildFrm.h cfass // Cnildlrm.h : interface of the CChi-ldFrarne ////// / / / / / / / / / / / / / / / / / / / / / / / / // / / // / / / / / / // / / / / / / / ////////////////// fr! 0ED-A594-BB I def ined (AFX-CHTLDFRM-H-BDDO6DEC-3 6EB-4 OFOO2F8 AF-INCLUDED_) #define OFOO2F84A AFX_CHILDFRM_H-BDDO6DEC_36EB_4OED_As94_88 F_lNCLUDED_ #i.f _MSc_vER > 1000 #pragma once > 1000 // #endif -Msc-YER class { CChildFrame : public CMDIChildWnd DECLARE-DYNCREATE( CChi f dFrame ) public: CChildFrame O ; // Attributes public: // operations public: overrides function // ClassWizard generated virtual overrides // t {AFX-VIRTUAI (CChildFrame) BOOL PreCreateWindow (CREATESTRUCT& virtual cs); // / /\ j^w.-vrRTUAr // Inplenentatlon public: -CChildFrame O ; virtual #ifdef _DEBUG const; void AssertValidO vlrtual void Dump (CDumpContext& dc) vj-rtual r35 const; #endif / / Generated message map functions protected: / / { {AEx_r"lSG( CchildFrame ) add and // NOte - the ClassWizard will here. remove member functions DO NOT EDIT what You see in these / / blocks of generated code ! //l jAr.?1' rvrDb DECLARE MESSAGE MAP0 Ii //// // / / / / / / / // ///// / / / / // / / / / /// / //// / / / // / /////// ////////////////// // { {ArX_rNSERT_LOCATTON}} Visuaf C++ wi-ll insert additional / / l'licrosoft immediately before the previous line. declarations #endif // I de f ined (AFX_CHILDFRM_H_BDD0 6DEC_36EB_4 0ED_A594_Bg OFOO2FS4AE INCLUDED ) t36 DosyaAdr: MainFrm.h of the CMai-nFrame class // t'tainFrn.h : interface / / / / / / / / / / / / / / / / / / / / / / / / / // / / / / / / / / / / / / / / / / / / / / / / / / ////////////////// 1 ! de f ined (AFX-MAINFRM-H-7 C9 0E 4 8 0-2AEE-4 B7 4-B l- 3 7 E 0 24A48F87F INCLUDED ) #define AEX_MAINFRM_H-? C9 OE4 8 O_2AEE_4B7 4_8 1 3 7 E O1 2 4A4 8 FB7 F -INCLUDED#if _Msc_vER > 1000 #pragrma once #endif // -uSC-vYR > 1000 class { CltainFrame : public CMDIFrameWnd DECLARE-DYNAMI C ( CMai nFrame ) public: CMainFrame O ; // Attributes public: // operations public: overrides function / / CJ,ass:vi'izard generated virtual overrides // { {AFX-VIRTUAL (C}'IainFrame) BOOL PrecreateWindow (CREATESTRUCT& virtual cs); / / j \AFX_VrRTUA! // // Inplementation public: -StainFrame O ; virtual #ifdef _DEBUG void AssertVatidO virtual 137 consti void virtual Dump(CDumpContextc dc) consti #endif bar embedded members protected: // control m-wndStatusBar; CstatusBar m-wndTooIBar; CToolBar m-wndZoomBar; CToofBar m-wndDrawingBar; CToolBar rn-wndAlignBar; CToofBar m-wndNudgeBar; CToolBar m-wndRotateBar; CToolBar m-wndStructureBar; CToolBar m-wndlaYoutBar; CToolBar m-wndCanvasBar; CToolBar // nrn.|- Generated acf orl message map functions . afx_msg BOOL OnQueryNewPalette O ; afx msg void OnPaletteChanged(CWnd* pFocusWnd); SetPalette (CPalette* pPalette) ; Cpalette* m_PPalette,' CPalette* / / { {AEK_SG (CMainFrame) afx-msg int OnCreate (LPCREATESTRUCT lpCreateSt.ruct) ; add and // NOTE - the ClassWizard will b e r e . f u n c t i o n s remove member DO NOT EDIT what You see in these // hlnnk< af rrcnerated code! // ) )AFX_MSG DECLARE_MESSAGE_MAP0 v ! Y v . . v _ ' l i; / / / / / / / / / / / // / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / // / / / / ////////////////////////// } // { {AFK_TNSERT_LOCATTON} / / tr''icrosoft Visuaf C++ will insert additional decl-arations immediately before the previous line' 138 *endit // 7-E 01 I de f ined (AF-X-MAINFRM-H-7C 9 OE4S0-2AEE-4B7 4-813 24A48F87F INCLUDED ) r39 DosyaAdr: Mesh.h / / l{res|n.h : main application JJ; header the for fiLe MESH f' ! d e f i n e d (AI'X-ME SH-H -B 6 2 g 6 2 CB-3 F 1 9-4 4 68 -9 C3 9-7'7 6F.F2 13 OO2g-INCLUDED_) #define AFX_MESH_H 8629 62CB-3 F7 9-4 4 6B-9C 3 9-7 7 6AF2 1 3 0 0 29 -r NCLUDED_ #if _MSc_vER > 1000 #pragima once // #endif _llsc_veR > looo #ifndef this #endif _AFXWIN-Hinclude #error for PCH file #include 'stdafx.h' // "resource.h" before including main synbols / // / / / / / / / / / / / / / / // / / / / / / / / / // / / / / / / / / / / / / / / / / / / / / / cMeshAPP: / / / / / / / / / / / / / / / / / //// of this / / see Mesh.cpp for the implementation clas s class CMeshAPP : Public CWinAPP t public: CMeShAPP( ) ; overrides // ClassWizard generated virtual overrides / / { IAFK_YIRTUA-L ( CMeshAPP) Pub11c: () ; BOOL Initlnstance virtual / / } TAFX_VIRTUAI // 140 function // Implementation // { {AFX_MSG(CMeshAPP) afx_msg void OnAPPAbout O ; add and // Note - the classwizard will here. remove member functions Do NoT EDrT what You see in these // blocks of generated code ! // ) )AFX_MSG DECLARE_MESSAGE_MAP0 / / / // / / / / / // / / / / // / / / // / / / / / / / / / / / / / / / / / / / / // /// / // /////////////////// / / | {A{X_TNSERT_LOCATTON} } additional insert Visual C++ will // Microsoft line' before the previous immediately decla'rations #endif / / ! de f i n e d (AFX-ME SH-H-B 1 3 0 0 2 9 T N C 1 U D E D) 6 2 9 6 7CB-3 E7 9-4 4 69 -9 C3 9-7'7 6P.F2 t4t DosyaAdr: MeshCtlr.h / / M a c ] . r / -ufr rl r laEDrl9 h . rr / / interface of the CMeshControlfer class ! de f i n ed (AFX-ME SHCTLR-H-8 BB 3 1 7A6-D0 F2-4 3AB-B DDD-F7 7DB4OB86DC INCLUDED ) #define 8 6D AFX_MESHCTLR_H-8 BB3 ]-7A6_D OF2-4 3AB_8 DDD-F7 7 DB4 OB C-INCIUDED_ #i-f _MSC-VER >= 1000 #pragma once // _MSc-vER >= 10oo #endif CMeshViewPort; class CoDControffer : public class CMeshControfler { public: * pVi ewpo rt ) ; CI'IeshCont ro I I e r ( CMeshVi ewport private: bool bool AddRectangle (CRects, COLORREF) ; AddCircle (CPoint& ) ; // Attributes publlc: I , / t/ n naraf v F v ! e e + v " v i anq public: / / nrrarri rlaq function generated virtuaf / / CLassfizard overrides / / { {AFX-VIRTUAI (CMeshControIIer ) //\IAFX_VTRTUAT nrnl- onf arl . I / ! v u v g g v g ' : vold virtua] VK LBUTTON); DblHit (UINT, CPoint, 142 int nButton // Implementatj-on protected: -C}4eshController virtual () ; / / Generated message map functions / / { { A F X - M S G( C M e s h C o n t r o } I e r ) witl / / NOTE the ClassWizard ' here functi-ons remove member // ) )AFXj4SG add and DECLARE_},IESSAGE_MAP 0 / / {IAFX_ANSERT*LOCATTON}i addj'tional insert Vfsual C++ will //-Microsoft declarationsimmediatelybeforethepreviousline. // #endif 3AB-8 DDD-F7 ! de f ined (AEX-l'm SHCTLR-H-B BB3 1 7A6-D 0 F2-4 I N C L U D E D ) 7DB4OB86DC 143 DosyaAdr: MeshDoc.h of the // MeshDoc.h : interface // / / / / / / / / / / / / / / / /// / / / / //////// ////////////////// CMeshDoc class // // / / // / // / / /// / / / ! def ined (AFX_MESHDOC_H_C929CEIB_8298_4 F0C_8 0C6_F3 B 9 1 0 0 5 A 1 0 3 T N C L U D E D) #define AFX_MESHDOC_H_C929CF18_B29B_4 F0C_80C6*F3I91005A10 3 -INCLUDED_ #if _Msc_vER > 1000 #pragma once #endif // _uSC_vsR > 1000 #include "MeshMdl.h" class { CRezistivite nri a. rral- : public CObject COLORREFm_clrRef; DWORDm_dwValue; public: CRezistivite O { }; nrr]-' l i n. void virtua] { Serialize (CArchivee ar) if ( ar. IsStoring O i ar << m_clrRef; ar << m dwValue,' l el-se i ar >> m_clrRef; ar >> m dwValuei ] ), t. t44 ) S e t v a l u e ( D W O R Dd w V a l u e ) void { m_dwValue = dwVal-uei t, DWORD GetVal-ueo t return m dwValue; l. t, void { SetColorRef m_clrRef ( C O L O R R E Fc l r R e f ) = clrRef; ); COLORREFGetColorRef ( ) { return m clrRef; t; t. CDocument class Cl{eshDoc : public { protected: // create from serialization CueshDoc ( ) ; DECLARE*DYNCREATE( CMCShDOC) // only Attributes --i.--+^. }JIIVqLE. CObArray m_arRezi stivite void ClearRezisti-vitel,ist COLORREFm clrRef; n y rr n i av n vi avr vl svu. ; O ; . // yne model for the canvas. The model holds al-l information about actually / / the canvas, whiLe the viewport it. displays CllesbMode] m mdl-Canvas ; public: 145 to the model of the canvas ' / / eets a pointer &m md}Canvas; GetModel CMesbModel* O { return ] if the canvas has been // oetermines modified. BOOL IsModifiedO ; vj.rtual () ; void InitNewRezistivitelist i return CobArraye GetRezistivitelistO m arRezistivite,' ); (int) ; void SetCurrentRezistivite () ; C O L O R R E EG e t C u r r e n t R e z i s t i v i t e C o l o r // operations public: /,/ overrides function generated virtual/ / ClassWizard overrides / / { {AFX_YIRTUAI ( CMeshDoc ) public: BOOL OnNewDocument O ; virtual void Serialize (CArchivee ar); virtual void DeleteContents ( ) ; virtual / / I IATX_VIRIUA], // lmplenentation public: -cMeshDoc O ; virtual #ifdef _DEBUG const; void AssertValidO virtual void Dump(CDumpContext& dc) virtual #endif nrnl- // nraJ- anf arl . Generated anf ad const; message map functions . F r v v v v s v v . / / I {Arx_MSG ( CMeshDoc) add and // NOTE - the ClassWizard will here. remove mernber functions DO NOT EDIT what You see in these // g e n e r a t e d code ! blocks of 146 // } }AFX_MSG DECLARE MESSAGE MAP 0 '; / / / / / / / / / / / / / / / / // / // / / / / / / / / / / / / / / / / / / / / /// / / / / i / / / / / / / / //// // / / / / / / / / / / / // / / / { IAFX_INSERT_LOCATIONi } additional Visual C++ wi-ll insert / / uicrosoft line ' before the previous immediately declarations #endit / / I def ined (AI-X-MESHDOC-H-C9 29CEI8 -F298-4 FOC-80C6-F3 8 91005A103 INCI,UDED) 147 DosyaAdr: MeshMdl.h // MeshMdl.h : interface the of Cl4eshModef class #if 3-4 5F5-812 0-8 8 F I def ined (AFX-MESHMDL-H-55988371-D1? 2DCAD845s-INCIUDED_) #define 3-4 5F5-812 0-B I F2DCADB4 55 erx-GsruDl-H-5598E371-D17 -INC],UDED_ # i f _ M S C _ V E R> = 1 0 0 0 #pragma once #Lndi-f / / -usc-vtR >= looo class { CMeshrModel : public CODModeI DECLARE-SERIAI ( C}4EShMOdE1 ) pu-blic: gMeslrModel O ; private: C O L O R R E Fm c r S e l C o l o r ; nrr].rl i n. ysv+rv. ( C O L O R R E F) ; void SetResiztiviteColor () ; C O L O R R E FG e t R e s i z t i v i t e C o l o r public: // overrides function virtual // ClassWizard generated overrides / / I {ATI-VIRTUA.L (CMeshModel ) PubIlc: void Seriafize (CArchivee ar) ; virtual // } }AEX_VIRTUAL // Implemenlation public: -CMeshl'Iodel O ; virtual 148 #ifdcf DEBUG vTrtual void vold virtual const; AssertvalidO D u m p( C D u m p C o n t e x t & d c ) const; #endif / / _osevc / / l{A'K}NSERT_LOCATrON} } additional Vrsual- C++ wiLl insert / / Microsoft l-ine' p revious t h e b e f o r e immediately declarations #end:-f / / 3-4 5F5-812 0-B 8r ! def ined (AFX-MESTMDL-H-5598E371-D1? 2DCAD8455 INCLUDED ) r49 DosyaAdr: MeshView.h // Meshview.h of : interface Q{eshView cfass the / / // / / / / // / / / / / / / / ///////// / / / /l/ ///// ///////////// / / / / // / // / / / / / / / / / / / / / / / / / ! de f i ne d (AEX_MESHv I Ew_H_8 6 BD2 9 C2_L 4 9 B_4 5 FB_B F2 2_E 0 F998DA8F7B INCLUDED ) *riof i na AFX_MESHVIEW_H-8 6BD29C2_L 498_4 5 FB_BF22 _E OF9 9 8 DABF7 B-INCLUDED_ #if _MSc_vER > 1000 #pragma once #endif // _usC_vrR > 1000 #include #include class "MeshVp.h" "Veri.h" CRezistiviteDlg; CView class CMeshView : public { protected: // create from serialization CMeshView O ; ( CMeshVi ew ) DECLARE_DYNCREATE only public: CRezi stiviteDlg / / nrnJ- A|'lri act hrrf arl / / * m _ P R e z D Ig ; oq . Th,is is rpnreqpnfefa i on the viewport tne modef contained Wrapper classes / / are used to extend // object. <nrnlIinn that draws Lhe visual of rnrl 150 in the the document viewport to support / / offscteen bufferlng' > m-vpCanva s'' MvcS c ro I 1Wr appe r-T<CMe shVi ewpo r t public: CMeshDoc* GetDocument O ; CMeshViewPort* GetviewPort () ; m-Veri; CVeri operations // nrr}.l i a. overrides generated virtual / / Classwizatd overrides / / | {AYX-VIRTUAL ( CMeshView) // ^'rl.r1 function i n. // caL:.ed void onlniti-al-UpdateO; virtuaf time after construct first void OnPrepareDc (CDc* pDC' virtual = NULL) i CPrintlnfo* Plnfo '/'/ overridden void OnDraw(CDC* pDC); virtual view to draw this BOOL PreCreateWindow (CREATESTRUCT& virtual cs)t Protected: BOOL OnWndMsg(UINT messaqle' WPABAI"I virtual LRESULT* pResult); wParam' LPARAM lParan, BOOL OnCmdMsg(UINT nID' int nCode' virtual ; AE-X-C14DHAI{DLERINFO*pHandlerlnfo) pExtra, void* ( C P r i n t I n f o * g O O L O n p r e p a r e P r i n t i n g virtual plnfo); void OnBeginPrinting (CDC* pDC' virtual CPrintlnfo* Plnfo); pDC' void onEndPrinting(CDC* virtual CPrintlnfo* Plnfo); void OnPrlnt (CDC* pDC' CPrintlnfo* virtual plnfo) ; / / lIAEX_VTRTUAL // nrr}.l Implernentation i a . 151 virtual #ifdef -CMeshViewO; _DEBUG void virtual void virtual const; AssertvalidO Dump(CDumpContext& dc) const; #endif protected: / / Generated message map functions protected: // i {AFX-MSG(CMeshView) atx-rnsg int OnCreate (LPCREATESTRUCT ); lpCreateStruct int cx' int afx-msg void OnSize (UINT nTlpe' cy) ; *pDC) ; afx-msg BOOL OnEraseBkgnd(CDC O ; afx-rnsg void onFileVeridosyasioku () ; o n E d i t C h e c k l i n e s v o i d n r s q afx () ; afx-msg void OnViewRezistiviteSecimi afx msg void OnDestroYO; // ) lAFxl{sG DECLARE-ME SSAGEI"IAP 0 in MeshView'cpp version #ifndef _DEBUG // debug : G e t D o c ument o C M e s h V i e w : C M e s h D o c * inline } (CMeshDoc*)m-pDocument; return { #endif ////// //// // / ////// // / /////// /// / / / / / / / / / / / / / / / // / / / / / / / / / ///// / // / // / // / / / // i / / t {ATX_TNSERT_LOCATTON} additional insert w ill C + + V i s u a l M i c r o s o f t // declarationslmmediatelybeforethepreviousline. // #endif ! de f ine d (AI'X-ME SHVI EW-H-8 F 9 9 8 D A 8F 7 B - I N C L U D E D _ ) 6BD29 C2-I 4 99 -4 5EB BE22 - ts2 _tu DosyaAdr: MeshVP.h MeshVp.h // of : interface the CMeshviewport class #if 5D-4 6E 5-A2 0 6-7 5EC EO I de f i ne d (AF*{-MESHVP-H-1 C8 61'7 -3't CDE182O3-INCLUDED_) #define 34 6E5 -?r2o 6-7 6ECCDE1 82 0 AFX-ME SHVP-H-1 C8 6 ? 7 E 0-3 7 5 D_INCLUDED#if -MSC-VER >= 1-000 #pragma once // -MSc-vER >: #Lnoit #include looo "views\odRulerWrapper'h" class Cl'IeshViewPort : Public CODBuff eredRulerViewport { public: CMeshViewPort () ; // Attributes public: /,/ Operatrons publi-c: overrides function generated virtual // Classwizard overrides // { {AEX-VIRTUAI (CMeshViewport) O ; BOOL CreateController virtual BOOL OnCreate O ; virtual // / / | IAFX-VTRTUAL // Irnplernentation public: -CXeshViewPort virtuaf t; ts3 O ; / / {IAEX_TNSERT_LOCATTON}i / / llicrosoft declarations lnsert Visual C++ wilf before the immediately #endif // ! de f ined (AFXJ'IE SIIVP-H-1 CDE1B203 INCLUDED ) additional l-ine ' previous g CI 6 7':.EO -3't 5D-4 6E5 t"2 6-1 6EC 154 DosyaAdr: MyCug97.h #include #include "UGrid,/ugctrl . h" "UGrid/ugcteIPs.h" class CMeshDoc; class { MYCug:Public CUGCtrl public: MyCug O ; -Mycug ( ) ; void = pDoc; l; *pDoc) SetDocument (CMeshDoc privale: CMeshDoc *m-PMeshDoc; CUGEIliPsisfYPe { m-pMeshDoc m-elliPsis; public: int rn-iElliPsisIndex; public: // overrides / / CLasswizard qenerated virtual overrides / / {{AEK-VIRTUAL (CMainFrame) / / IJAE?--VIRTUAL function //{{AFx_t"rSG(MYCuq) add and remove will // uote - the Classwizard here. member functions DO NOT EDIT what You see in these // blocks of generated code ! // ) )Arx_MSG DECLARE MESSAGE MAP0 155 //***** virtual virtual Functions ***** Notify Over-ridable void OnSetuP O ; sheetNumber) ; void OnSheetsetup(int //movement and sizing int OnCanMove(int oldcol,long virtual I o ng newrow) ; n e w c o l , i n t oldrow, int onCanViewMove(int oldcol,Iong virtual oldrow, int newcol, long newrow) ; nutnrows, long void OnHitBottom(long virtual rowspast, long rowsfound) ; void OnHitTop (long numrows, long virtual rowspast); virtual virtual virtual virtual virtual *1^^i ^Ir+ \ rrsryrrL/, int OnCanSizeCo1 (int co1) ; *width) ; void OnColSizi-ng(int colrint * w idth); void OnColSized(int col,int r o w ) ; int OnCanSizeRow(long row, int void OnRowSizing(long . virtual row' int void OnRowSized(Iong int int int int int int O n C a n S i z e T o P H d gO ; OnCanSizeSideHdg O ; OnTopHdgSizing (int *heiqht) ; *width); OnSideHdgsizing(int * h e ight) ; onTopHdgsized(int * w idth); OnSideHdgsized(int *h^i ^1ats \ . lrgr9ar u,/ , virtual virtuaf virtual virtuaf virtual virtuaL void virtuaL newcol); void virtual newrow); void virtual newcol, long oldrow, void virtual newcol); void virtual newrow); OnColChange (j-nt oi.dcoL, int O n R o w C h a n g e( l o n g oldrow, long i-nt onCellChange (int oldcof long newrow) ; OnleftColChange (int oLdcoL, int O n T o p R o w C h a n g e( l o n g 156 oldrow, Iong //mouse and keY strokes vold OnLCIicked(int col,long row'1nt virtual processed) * r e c t ,POINT *pointrint updn,RECT row'lnt cof'long O n R C I i c k e d ( i n t v o i d virtual updn, RECT *rect, POINT *point, int processed) ; co}' long row'RECT void OnDClicked(int virtual *rect, POINT *point, BoOL processed) ; v o i d O n l f o u s e M o v e( i n t c o l ' l o n g virtual * p o i n t,UINT nFlags,BOOL processed=0) ; row,POINT col-' long v oid OnTH-LCIicked(int virtual *point,BOOL * r e c t r P O I N T row, int updnrRECT processed=0); col, Iong void OnTH RCIicked(int virtual *point, BOOL * r e c t l P O I N T row, int updn,RECT processed=0); col' Iong void OnTH-DClicked(int virtual *pointrBOOL processed=O) ; * r e c t r P O I N T rowrRECT cof' Iong void OnSH-LClicked(int virtual *point,BOOL * r e c t r P O I N T row, int updn,RECT processed=O); col, Iong void OnSH RClicked(int virtual *point, BOOL * r e c t l P O I N T row, int updnrRECT processed=0); col-, long void onSH-DClj-cked(int virtual * p o i n t , B O O L p r o c e ssed=0) ; * r e c t , P O I N T rowrRECT RECT updn, void OnCB-LCIicked(int virtual *rect, POINT *point, BOOL processed=0) ; void OnCB-RClicked (int updn' RECT virtual *rect, POINT *point, BooL processed:0) ; *rect, POINT void OnCB-DCIicked(RECT virtual *point, BOOL Processed=O) ; virt,ual processed) ; virtual processed) ; void OnKeYDown(UINT *vcKeY, BOOL void OnCharDown (UINT *vcKeY, BOOL notification / / GeLCelllndirect v o i d O n G e t Cell (int col,long virtual * c e l 1 ) ; row,CUGCell notification //SetCetl 157 void virtual *cell); row,CUGCell OnSetCeIl (int col'long / /data source notifications virtualvoidOnDataSourceNoti'fy(intID'long msg, Iong Pararn) ; / /ceLL tlPe notifications ID' int int OnCellTypeNotify(Iong vj-rtual ; col, Iong row, long msgr long Pararn) / /editing long (int cof' int OnEditstart virtuat * * e d i t ) ; rowrCWnd col' Iong int onEditVerify(j'nt virtual * v c K e y ) ; row,CWnd *editrUINT long col' int OnEd'itFinish(int virtual c a n c e LFl-ag); * e d i t , L P C T S T R string,BOOL row, CWnd ( i n t o l d c ol' long int OnEditContinue virtual ; n e w r o w ) l o n g * newcol, oldrow, int* / /menu notifications void OnMenuCommand(int col' long virtuaf row, int section, int item) ; col,1ong row'int OnMenuStart(int int virtual section) ; / /hints row'int col'long int OnHint(int virtual * s t r i n g ) ; section, CStri-ng int OnVScrollHint (fong row'CString virtual *string); col'CString int OnHScroIIHint(int virtual *string); #ifdef -AFXOLE-H- / /oLE must be included / /drag and droP DROPEFFECT virtual pDataObject) ; onDragEnter (ColeDataobject* O n D ragOver (COIeDataObj ect* D R O P E F F E C T virtual pDataOblect, int coI, Iong row) ; 158 ect" D R O P E F F E C TO n D r a g D r o p ( C O l e D a t a O b j virtualpDataObject/ int coI, Iong row) ; #endif / / sorting int OnSortEvaluate (CUGCell virtual *ce112, int flaqs) ; *celll,CUGCelt //DC setuP void virtual section) ; OnScreenDCSetup (CDC *dc' int (RECT void OnAdjustComponentSizes vi-rtual *cnrBtn' * s i d e H d g , * t o p H d g r R E C T R E C T *grid,RECT *hscroll'RECT RECT *vScrollrRECT *tabs); virtual virtual section) ; ID) ; void OnTabSelected(int COLORREFOncetDefBackColor (int //focus virtual rect void setup *dc'RECT OnDrawFocusRect (CDC virtual virtual void void OnSetFocus (int section) ,' OnKillFocus (int section) ; *rect); //colurnn swaPPing BOOL onColswapStart (int col) ; virtual BOOL OnCanCoISwap(int fromCol' int virtuaf toCol) ; window / /trackig void OnTrackingWindowMoved (RECT virtual *origRect, RECT *newRect) ; t; 159 DosyaAdr: Olcum.h #if ^). ^. 2 sED-At2 I A3 z +z ! de f ine d (AFX-OLCUM-H-FB 9F 0 0DC-F 4-l -4 D6DB2C4-INCLUDED_) #deflne 4 8 9F0 0DC-F 4 7 2-4 5ED-AE21-A 32 42D6DB2C air(-oicuu-n-F lNCLUDED_ #if _MSc_vER> 1000 #pragma once #Lndif // -usc-vsR > l-000 // Ot-curn.h: header file / / / // / / // / / / / / / / / / / / / / / / / / / / / / tarset / / / / / / / / / / / / / / /i/, / / /cot'cum command iit t t t t t t / / / / / / / / /// COlcun : Public class { CCmdTarget DECLARE-DYNCREATE( COl cum ) colcurrl0; used bY dlmamic creation // protected constructor // Attributes public: Cstring m-strNO; double rn-dAb2; double m-dMn2; double m-RO; // Operations public: /,/ Overrides // Ctasswizard generated overrides / / | {AFX -YIRTUAI, ( COlcun) //ilAFx_vrRTUAl, // nrnly ! v ImpLementation onl- L v v crl v v s : r 160 virtual function vlrtual- -COlcumO; / / Generated message map functions // { {AFX_MSG(Colcum) // xore - the cLasswizard will here. remove member functions // } }AFX_MSG add and DECI,ARE MESSAGE MAP () j; / / / / / / / / / / / / / / / /// / / / // // / / / // t // / / / / / / / / / / / / / / / / / / / / // / / / /// / / / / / / / / / / / / / / / / / / { {ArA_TNSERT_LOCATTON} } addltional Visual C++ w111 lnsert / / Nlicrosoft line. immediately before the previous declarations #endif. / / ! de f i ne d (AFX_OICUM_H_E I 9 F0 0 DC_E 47 2 _4 5ED AF 2 L A3 2 42 D6DB2C4 INCLUDED ) 161 DosyaAdr: resource.h // { {NO_DEPENDENCTES }} Developer / / Nlicrosoft Studio generated include ! I I E . // Used by Mesh.rc #a"tirr" #def ine #define #dCfine #define #define #define #define #dEfine #dcfine #define #define #define #define #define #define #def ine // IDD-ABOUTBOX IDD_CBCPTEST_DIAIOG IDR MAINFRAME IDR_MESHTYPE IDD_REZISTMTEDLG IDC_COLORPICKER IDC DISABLECOLORPICIGR IDC GETNAME IDC GETVAIUE IDC DEGER IDC-EKLE IDC DEGISTIR IDC GRID rD-SrL fO fff,n_VnRIDOSYASIOKU ID EDIT CHECKLINES f p Vf rW-nnzISTMTESECIMI Next default values for 100 r02 LZ6 129 734 10 0 0 1 00 3 10 0 4 10 0 5 1008 1009 1010 1011 10 1 2 32771 32772 32173 new obiects #ifdef APSTUDIO INVOKED #i.fndef APSTUDIO READONLY - SYMBOLS #define APS 3D COUTnOIS epS-lreXr RESOURCEVAIUE #define #define apsJsxr COMMANDVar,ue #define apS-NrXr CONTROL VAT,UE #define apslsxt SYMED var.us #endi f #endi f 162 1 135 32i18 7OI2 101 DosyaAdr: RezistiviteDlg.h tr! ! dC f iNEd (AFX_REZ I ST IVI TEDLG-H -A9 625 3 4 3_tsAOF_4 BEC_B 4F8 4FOAB63EI662 INCLUDED ) #define AI-{_REZ I STlVI TEDLG_H-Ag 62 63 4 3-BAOF_4BEC_84F8_4 FOAB 6381662 INCLUDED #if _MSc_vER > 1000 #pragma once #endif // _t'tSC_VeR > 1000 : header // RezistiviteDlg.h #include #include file "MyCug97.h" "MeshDoc.h" / /// /// /// // //// / / / / // //// / / /// // / / // / / /l // / /// / / / / / // // / / /// //// / / // / / / / / /// // cgezistiviteDlg dialog CDiaIog : public class CRezistiviteDlg i / / Construction public: (CWnd* pParent = NULL' CRezistlviteDlg (}leshDoc *pDoc = NULL), // standard constructor private: I'r,-it^ r-ryuuy *rtr_9^ + . r l G r i d ; L CMeshDoc *m pDoc; void Initcoloti,i"t f l, public: / / Diar.og Data g) / / t {AFX_DATA ( CRez i s tiviteDL = IDD_REZISTIVITEDLG }; ENUM I IDD // UOfe: the ClassWizard wiLl rnembers here // } }AFX DATA 163 add data /,/ Overrides function virtual // ClassWizard generated overrldes g) ( istiviteDl / / { tAEX-VIRTUAL CRez protected: - ,^n^+-Fv^hanca* virtua}voidDoDataExctrange(CDataExc}range, // DDK/DDV suPPort pDX); / / } }AFX_VIRTUAL // tmplenentation protected: map functions / / Generated message ( C R e z i s t i v i t e Dlg) // { {AFX-MSG O n D e s t r o Y O ; v o i d afx-msg O ; BOOL onlnitDialog virfual afx-msg void OnSil O; afx-msg void OnEkIe O ; afx-msg void OnDegistir O ; // l )AEX-MSG DECI,ARE_MESSAGE_MAP 0 ]; / / { ILEX-TNSERT- LOCATToN} i additional insert C++ will / / tiLctosott visuai line' previous t h e b e f o r e i**"aiately declaratior,u #endIf / / Idcf iNCd (AFX_REZISTIVITEDLG_H_Prg626343 4 F8 4 FOAB$81 662 -]NCLUDED_) r64 BAOF_ABEC B DosyaAdr: stdafx.h for standard svstem // stdafx.h : i-ncl-ude file incLude fi1es, or project // include files specific that are used f rr o vn r r a n l + e asel r I rr + J l-rrrtt are changed infrequently // tar ! de f i n e d (AFX_S TDAFX_H_A3 5 C5 DB2 _ 0BAB_4 E3 2 _9 7 A9_CAE F 5 2 8 9 9 6 9 5 I N C L U D E D) #define AFX_S TDAFX_H_A3 5 C5 DB2_0 BAB_ 4 F 3 2 _9'7 Ag_CAE F5 2 8 9 9 6 9 5_ _INCLUDED_ # i f _ M S C _ V E R> 1 0 0 0 #pragma once #endif // _rISC_VER > 1000 #define _WIN32_IE 0x0500 VC EXTRALEAN #define // used stuff frorn Windows head.ers Exclude rarelv- #incl-ude <afxwi-n.h> / / |"IFC core and standard components #include <afxext.h> // MEC extensions <afxdisp.h> #include // VrtC Automation classes #incLude <afxdtctl.h> // MEC support for Internet Explorer 4 Common Controls # i fnde f _AFX_NO_AIXCMN_SUPPORT <afxcmn.h> #include / / yrtC support for Windows Common Controls #endif / / _erx_No_AFXcI,rN_sUppoRT Views Header Fil-es / / Objective #include "views\odAll_ . h" using narnespace sfl; 165 / / lIAFx_TNSERT_LOCATTON)] additional insert Vfsual C++ wiII 7Z'lti"to"oft decfarationsimmediate}ybeforethepreviousline. / / #endif ! de f i n e d (AFX-S T DAFX-H-A3 52899695-TNCLUDED_) 5 C5 DB2 -0 BAB-4 E3 2 -91 A9-CAE F 166 DosyaAdr: Veri.h gi € I de f ined (AFX-VERI-H-0 0C0E49A-D4 9 6-4 0 3 4-BC4 8-6 BBlBA 1 O6 C 5 C - I N C L U D E D - ) #define A F X _ V E R r _ H _ O 0 C 0 E 49 A _ D 49 6 - 4 0 3 4 - B C 4 8 - 6 8 8 1 B A 1 0 6 C 5 C - r NCLUDED_ #if _MSc_vER > 1000 *nrama nnco // #endif / / veri.h _t',tsc_veR > looo : header file cLass CMeshModel; clas s Cl4estrViewport ; // / / / / // // // ////// / / / // /// // / / / / / / /// / / / // / / / / // / // // / / / // / / / ///// // / / / // / / // / / cveri command target class { CVeri : Public CObject DECI.ARE_DYNCREATE( CVCT i ) CVeriO; used by dlmamic // Protected constructor creation // Attributes public: CObArray m_arVes; double m_dllk; double m_dsoni double m_dSol; double m_dSag; double m_dMesafe; // Operations public: bool ReadData O ; void RemoveAllItems ( ) ; bool Regen (CMeshModeJ- * ) ; boot Addline (CMeshModel *' 167 LPPOINT) ; bool SetVirtualsize // Implenentation nrr}. l i n. virtual -CVeri (CMeshVi-ewport *) ; O ; T; / / / / // // / /// / // / //// ////////// ///// / / / / ////////// // / / // / / / / ///// / / / / / / / / // / // ON} } / / { IAEX_aNSERT_LOCATT / / Microsoft visual- C++ wlfl insert additional declarations immediately before the previous line' #endif / / ! de f ine d (AFX-VERI-H-0 0C0E4 9A-D49 6-4 03 4-BC4 8- 6I B1BA 1O6C5C INCLUDED) 168 DosyaAdr: Ves.h #if 5 6-90SE-DEB 3BAE ! def ined (AFX-VES-H-3A0 9A4 FE-7AD8-4 4 4 6D7B-INCLUDED_) #define 6D7B-IN AFX-VES_H-3AO9A4FE_?AD8_4 4 5 6_90sE_DE83BAE4 CIUDED_ #if _MSc_vER > 1000 #praqma once #endif // _usc-vtR > looo / / ves.h : header file //////// // / / / / // // / // / / / / // / / / / / / / / / / / // // / / / / / / / / / tarset / / / / / / / / / / / / / / / / / / / / cves command class CVes : Public CCmdTarget t DECI,]\RE_DYNCREATE ( CVE S ) // Cves0; used by dlmanic creaLion Protected constructor // Rttributes public: Cstring rn-strID; double m-dX; long n-INDT; CObArraY m arOlcum; // nrr}.] operations 'i n. bool Olcumlerioku ,// overrldes / / Classwizard overrides (CStdioFilee generated / / t $rr.-vIRTUAL lcves ) //\jAEX_vrRTUAr // lmptementation protected: 169 virtual file) ; function virtual -CVes O; / / Generated message map functions // i {AEX_MSG(CVes ) // WOte - the ClassWizard wil] remove member functions here. // l )Arx_MSG add and DECLARE }4ESSAGE MAP 0 / / / / / / / / / / / / / / / / / // / / / /// / / /// // // / / / / / / / / / //// / /// / / / / // / / / / / / / / / // / / /// / / { {AFX_TNSERT_LOCATTON}} Visual C++ wi-1l insert / / Microsoft declarations immediately before the //// additional previous Iine. #endif // ! de f ine d (AFX_VES_H_3A0 9A4 FE_7AD8_4 4 5 5_9 0 5E_DEI 3BAE 46D78 INCLUDED ) t70 DosyaAdr: VeriMeju.h #if ! def ined (AFX-VERIMEJU-H-1D5D9659 -C620-415F-BE 5E-2C 1 1 8 6DFB6 9D-INCLUDED-) #rla f i nc AFX_VER IME JU_H-1 D-INCLUDED_ D5 Dg 6 5 9_C 620-4 1 5 F_BE 5E-2 C1 1 8 6 DFB 6 9 #if _MSc_vER > 1000 #pragrma once #endif // _uSc_vtR > 1000 : header file / / Yeril"leju.h class class CMeshModef; ClleshViewPort; #include #include #include <algorithm> <vector) <cmath> cl-ass COlcu:nMeju : public t CObject (COl cunMej u ) DECLARE_DYNCREATE public: colcwMeju ( ) ; -COlcumMejuO ; virtual public: double GetAb2 O const t return n deb2; ); double GetRoO const { return m RO; I; public: ..clr.ihn double double double m StrNO; n_dAb2; m_dMn2; m Roi L7l t; std: :vector<COlcumMeju*> vecolcumler; vecOlcumlterator; vecOlcumler: : iterator tlpedef typedef nrrlrl : public ClstasyonMeju class i CObject DECLARE-DYNCREATE( CI s tas yor:Me j u ) i n. ClstasYonMej u ( ) ; -CIstasyorMejuO virtual ; public: /v r- c f u r r i n a f :rY m rr!_ 5 l ; f ! 1 double m_dX; long m_INDT; vecOlcumler m vecolcuml-er; public: bool bool OlcumleriOku(CStdioFilea Clearltens O ; COtcunMeju *GetNthItem(unsigned return m_vecolcumler IiNdx] ; ]; file) int ; iNdx) t; veclstasyonlar; typedef std: :vector(ClstasyonMeju*) : iterator veclstasYonlar: typedef veclstasyonlterator; typedef std: :vector<double> vecDerinfikfer; vecDerinlikler: typedef vecDerinl- i kI terator; /////////////////////////////////////////////////// / / / / / / / / / / // / / /// / / // / /// / / / YerlI{eju command target class { CVeriMeju : Public CObject 172 : iterator { ( CVCTiMCJ U ) DECLARE_DYNCREATE public: CVeriMejufl; used by dynamic creatlon constructor -CVeriMeju O ; virtual // Attributes publ ic : vecl stasyonlar vecDerinlikler // Protected m-vecf stasyonlar" m vecDerinlikler; public: double double double double double n-dllk; m_dSon; m-dSol; m-dSag; m-dl'lesafe; /,/ Operations public: bool ReadData O ; bool Clearltems O; long GetltemCount O ; bool DerinlikDonusumu O ; *) ; booJ- Regen(CMeshModel * ' L P P O I N T ); bool Addline{CMeshModel (CMeshViewport *) ; bool SetVirtualsize ); //// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / // / / / / / / / / // / / / / / / / / lIATX_TNSERT_LOCATTON]] additional insert C++ will visual / / Microsoft p r e v i o us line' t h e b e f o r e i m m e d i a t e l y declarations f grlur ! ldefined(AFX VERIMEJU H 1 1 8 6 D F B 6 9 D ] N C L U D E D) 1D5D9659 C62O 4I5E-BE5E-2C r73 6zcncui$ 1972 ylnda Ankara'da dofdu. ilk, orta ve lise ii$enimini Ankara'da tamarnladr. 1989 yrhnda girdigi Hacettepe Universitesi Ankara Meslek Yiiksekokulu Teknik Programlar Bdliimii ingaat Programr'ndan 1991 yrhnda inqaat Teknikeri olarak mezun oldu. 1991 yrhndan 1993 yrhna kadar Autodesk yetkili e$itim merkezinde yetkili esitici (Autodesk firrnasmm Tiirkiye temsilcisinin agttfit srnavl kazanarak) olarak bilgisayar destekli gizim ve tasarrm progranu (AutoCAD) e[itimleri ve Microsoft Yetkili Egitim Merkezi'nde Microsoft programlanmn elitimlerini verdi. 1993 yrhnda girdigi Ankara Universitesi Fen Fakiiltesi Jeofizik Miihendislili Boliimii'nden 1997 yrhnda Jeofizik Mtihendisi olarak mezun oldu. Aym zamanda 1993-1998 yrllan arasrndaT.C. Sanayi Bakanh[r'na baph KOSGEB e$itim merkezinde, O'D.T.U. Mustafa N. Parlar Egitim Vakfr'nda ve ozel kuruluglarda bilgisayar programlama ve kullammr ile ilgili gok geqitli dersler verdi. Aynca bafh Tiirkiye Teknoloji 1994-1996 yrllan arasrnda tUgitAt<'a 250.000$ destek verdiSi Tekstil sektiirii igin geliqtirilen kumaq kesiminde fue minimizasyonu programtnda O.D.T.U. Ogretim Uyesi Dog.Dr. Siiha ORAL ile birlikte bilgisayar Geliqtirme Vakfi'nn programcrsl olarak giirev akmqtn. Bu proje kapsamrnda araqtrma yapmasl igin Fransa ve Aknanya'ya gitmiq oradaki teknolojileri incelemiq ve yurt drqrndaki teknolojilerin yurt igine taErnmasrnda katkrda bulurmuqtur. Bu projede amaglananlar baqan ile tamamlanmrq ve TTGV'ye teslim edilmiqtir. 1998 yrhndan beri Hacettepe Universitesi'nde kadrolu Ofretim Giirevlisi olarak bilgisayar dersleri vermektedfu. 174