ö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

Benzer belgeler