Kalliomallin lohkotustekniikka

Samankaltaiset tiedostot
Kalliopinnan varmistukset seismisillä linjoilla ja suunnitellun kuilun alueella syksyllä 2002

Datatähti 2019 loppu

Latauspotentiaalimittaukset Olkiluodossa keväällä 2003

Jakopinnat ja liikkuvan keernan pinnat 1, keerna jakopinnan tasalla

Käytettävyys ja käyttäjätutkimus. Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi

Ohjelmoinnin peruskurssi Y1

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Matematiikan tukikurssi

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

CAD/CAM Software with world class precision and control. What s Uusi

Ohjelmoinnin perusteet Y Python

Perusteet 6, lisää pintamallinnusta

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Vapo: Turveauman laskenta 1. Asennusohje

Capacity Utilization

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Malleja ja menetelmiä geometriseen tietokonenäköön

Tietorakenteet ja algoritmit

Teoriatausta. Mallinnuksen vaiheet. CAD työkalut harjoituksessa. Uppokipinätyöstön elektrodi

4. Kylväjä-työkalu Kylväjällä monistetaan enintään viittä erilaista objektia annettuun ruudukkoon säädetyllä hajonnalla.

HB-Harkko-kirjasto asennetaan oletusarvoisesti ArchiCADin kirjastohakemiston alle (C:\Program Files\Graphisoft\ArchiCAD 13\Kirjasto 13).

ASM-kaavio: reset. b c d e f g. 00 abcdef. naytto1. clk. 01 bc. reset. 10 a2. abdeg. 11 a3. abcdg

The CCR Model and Production Correspondence

Luento 6: Tulostusprimitiivien toteutus

Suravage-aineiston tuottaminen tien suunnittelijan näkökulmasta

Operatioanalyysi 2011, Harjoitus 3, viikko 39

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

Rakoverkkomallinnus. Laine & Markovaara-Koivisto KYT2018 seminaari : Kallioperän rikkonaisuuden mallinnus Suomessa

Nykyaikaiset paikkatietoratkaisut. Autodesk AutoCAD Civil 3D 2015 A BIM for infrastructure software solution. Olli Ojala Future Group Oy

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Ohjelmoinnin perusteet Y Python

Luku 6: Grafiikka. 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat

Ohjelmoinnin perusteet Y Python

Jigi - Käyttöohje. Jigi Ohjelman peruskäyttö. A&S Virtual Systems Oy Laivalahdenkatu 2b FIN Helsinki

Efficiency change over time

Perusteet 6, lisää pintamallinnusta

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

ELM GROUP 04. Teemu Laakso Henrik Talarmo

RADAR - RANDOM DATA GENERATOR

Satelliittikuvat osana öljypäästövalvontaa

PAINOVOIMAMITTAUKSET JA KALLIONPINNAN SYVYYSTULKINNAT

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER

Kaivostoiminnan eri vaiheiden kumulatiivisten vaikutusten huomioimisen kehittäminen suomalaisessa luonnonsuojelulainsäädännössä

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

Sanomakuvausten järjestelmäkohtaiset tiedostot

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje

Ympyrä 1/6 Sisältö ESITIEDOT: käyrä, kulma, piste, suora

Läpimurto ms-taudin hoidossa?

KGU kannassa omaisuuden hallinta moduuli on valmiiksi asennettu.

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO

Tietorakenteet ja algoritmit

Ohjelmoinnin perusteet Y Python

7 tapaa mallintaa maasto korkeuskäyristä ja metodien yhdistäminen

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

RANTALA SARI: Sairaanhoitajan eettisten ohjeiden tunnettavuus ja niiden käyttö hoitotyön tukena sisätautien vuodeosastolla

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Perusteet 6, lisää pintamallinnusta

Prosessin reaalisaatioiden tuottaminen

Monikulmiot 1/5 Sisältö ESITIEDOT: kolmio

Luento 2: 2D Katselu. Sisältö

Harjoitus 6 (viikko 42)

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2013

7.4 Variability management

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori

Ohjelmistojen suunnittelu

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

Racket ohjelmointia osa 1. Tiina Partanen Lielahden koulu 2014

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Q 17.1/27/75/2. Risto Puranen GEOLOGINEN TUTKIMUSLAITOS Geofysiikan osasto

SIMULINK S-funktiot. SIMULINK S-funktiot

Testidatan generointi

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

anna minun kertoa let me tell you

Returns to Scale II. S ysteemianalyysin. Laboratorio. Esitelmä 8 Timo Salminen. Teknillinen korkeakoulu

T Vuorovaikutteinen tietokonegrafiikka Tentti

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

Algoritmit 2. Luento 13 Ti Timo Männikkö

812336A C++ -kielen perusteet,

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

C++11 seminaari, kevät Johannes Koskinen

Algoritmi III Vierekkäisten kuvioiden käsittely. Metsätehon tuloskalvosarja 7a/2018 LIITE 3 Timo Melkas Kirsi Riekki Metsäteho Oy

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Kon Konepajojen tuotannonohjaus: ILOG CPLEX Studion käyttö

Toinen harjoitustyö. ASCII-grafiikkaa

Luento 2: Viivan toteutus

Kopio saamasi pelaajatiedosto (.plr) Game01-alikansioon. Valitse pelissä Continue Campaign.

Algoritmit 2. Luento 6 To Timo Männikkö

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Results on the new polydrug use questions in the Finnish TDI data

HYÖDYNNÄ SUBSCRIPTION-ETUSI

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Transkriptio:

Työraportti 98-71 Kalliomallin lohkotustekniikka Jorma Nummela Marraskuu 1998 POSIVA OY Mikonkatu 15 A, FIN-001 00 HELSINKI, FINLAND Tel. +358-9-2280 30 Fax +358-9-2280 3719

------- Työraportti 98-71 Ka II i oma II i n lohkotustekniikka Jorma Nummela Marraskuu 1998

TEKIJÄORGANISAA TIO: Fintact Oy Hopeatie 1 B 00440 Helsinki TILAAJA: Posiva Oy Mikonkatu 15 A 00 1 00 Helsinki TILAUSNUMERO: Fintact Oy 9550/98/ AJH TILAAJAN YHDYSHENKILÖ: Aimo Hautajärvi Posiva Oy TEKIJÄORGANISAATION YHDYSHENKILÖ: Pauli Saksa Fintact Oy TYÖRAPORTTI 98-71 KALLIOMALLIN LOHKOTUSTEKNIIKKA TEKIJÄ: ~\~ Jo~ Nummela TARKASTAJA: Pauli Saksa Fintact Oy

Työ r a p o r t t i 9 8-7 1 Kalliomallin lohkotustekniikka Jorma Nummela Fintact Oy Marraskuu 1998 Pesivan työraporteissa käsitellään käynnissä olevaa tai keskeneräistä työtä. Esitetyt tulokset ovat alustavia. Raportissa esitetyt johtopäätökset ja näkökannat ovat kirjoittajien omia, eivätkä välttämättä vastaa Posiva Oy:n kantaa.

2 TIIVISTELMÄ Nummela, J. 1998. Kalliomallin lohkotustekniikka. Työraportti 98-71. Posiva Oy, Helsinki. 23 s. Lohkot ovat kappaleita, jotka muodostuvat kun tutkittava perustilavuus leikataan levymäisillä rakenteilla. Siten lohkoa voidaan kuvata rikkonaisuusrakenteiden väliin jääväksi ehjäksi osaksi. Perustilavuuden piste voi kuulua vain yhteen lohkoon tai leikkaavaan rakenteeseen, joten lohko voidaan yksilöidä yhden tunnetun pisteen kautta. Ohjelmallinen lohkoihin jakaminen on monivaiheinen prosessi, jossa haluttu lohko haetaan kohdepisteen perusteella. Jokaisen leikkauksen yhteydessä lohkomäärä enintään kaksinkertaistuu. Menetelmässä tiedetään leikkaako kyseinen rakenne lohkoa, mutta valmis lohko ei välttämättä sisällä ko. rakenteen leikkaamaa pintaa. ROCK CAD-mallin muokkaamiseksi lohkoihin kehitettiin ohjelmisto, jonka avulla rakenteiden perustyypit voidaan muuttaa leikkaamiseen sopiviksi kappaleiksi. ROCK -CADobjekteista ovat tärkeimpiä tyypit 'prisma' ja 'polyhedron'. Ne ovat luonteeltaan valmiiksi levymäisiä ja niiden jatkaminen ulottumaan koko leikattavalle alueelle on verrattain yksiselitteistä. Poikkeavat objektit voidaan palauttaa likimääräistämällä näihin tyyppeihin. Lopputuloksena syntyy tilavuusmalli, jota voidaan jatkokäsitellä 3dmallintajalla. A vainsanat: Kalliomalli, lohko jako, tekniikka, atk-ohjelma

------------------------------ - 3 ABSTRACT Nummela, J. 1998. Block decomposition of the bedrock models. Working Report 98-71. Posiva Oy, Helsinki. 23 p. (in Finnish). Rock blocks are bodies formed by sectioning volume ( of interest) with structural plates. Blocks can be described as unbroken bodies lying in space between fracture zones. A point in basic volume can only belong to one block or to sectioning structure thus a block can be identified by one known point. Sectioning with computer program is a multiphase process in which block is seeked through this one known point. Every time volume is sectioned block count is multiplied by two at most. In this method it is known whether a structure is sectioning the block but at the end this block does not necessarily include the faces of this structure any more. Program was made to handle the ROCK-CAD-model, by which the basic types can be converted to bodies suitable for splitting. The most important ROCK-CAD-classes are 'prism' and 'polyhedron'. They are already platelike by their basic character and extenting them to cover whole volume is rather unambiguous. Divergent classes can be simplified to these two. As a result a 3d-model is generated which can be further manipulated and viewed by 3dmodeller. Keywords: Bedrock model, block decomposition, technique, computer software

4 SISÄLLYSLUETTELO TIIVISTELMÄ... 2 ABSTRACT... 3 1 SUUNNITTELU... 5 1.1 LOHKOJEN KÄSITTELYSTÄ... 5 1.2 RAJOITUKSET... 6 2 TOTEUTUS... 9 2.1 RAJAUS... 9 2.2 LOHKOTUKSEN ESIV ALMISTELU... 9 2.3 PUOLIA V ARUUKSIEN LUONTI.... 9 2.4 LOHKOTUKSEN SUORITUS... 10 3 PRISMA... 11 3.1 PRISMAN MÄÄRITTELY... 11 3.2 YHDESSÄ TASOSSA MÄÄRITELTY PRISMA... 11 3.3 YLEINEN PRISMA... 12 3.4 MALLINNUKSESTA... 13 4 POLYHEDRONMALLIT... 14 4.1 POLYHEDRONMALLIEN RAJAAMINEN... 14 4.2 MALLIN LEVYMÄISYYS... 14 4.3 KÄSITTELY TASOSSA... 14 4.4 MALLIN LAAJENNUS... 15 4.5 VOLUMIN MUODOSTAMINEN... 15 5 DISK-MALLIT... 17 5.1 TILANNE... 17 6 OHJELMOINTITEKNIIKKA... 18 6.1 YMPÄRISTÖ... 18 6.2 OHJELMA TIEDOSTOT... 18 6.3 TESTAUS... 18 7 MUUT OSATEHTÄVÄT... 22 7.1 BOOLEAN-T Ä YDENNYS, "BWN"... 22 7.2 RATATIEDOSTON UUDELLEEN GENEROINTI, "RATA.C"... 22 LIITE 1... 23

5 1 SUUNNITTELU 1.1 Lohkojen käsittelystä Lohkoanalyysia varten kalliomalli jaetaan lohkoihin. Lohkoilla tarkoitetaan sulkeutuvia kappaleita, jotka muodostuvat, kun kallion perusmassaa leikataan levymäisillä rakenteilla. Lohkojaon lähtökohtana oli neljän tutkimusalueen sen hetkiset kallion rakennemallit. Tässä raportissa kuvataan työtapa ja sovellusohjelmisto, joka kehitettiin kalliomallin muokkaamiseksi lohkoihin Lohkoihin jako on kallion kannalta yksinkertaistus, jossa kallioperä jaetaan rako- ja rikkonaisuusvyöhykkeiden muodostamiin rakenteisiin ja rakenteiden jakamiin ehjää kalliota sisältäviin lohkoihin, joiden ominaisuuksia voidaan edelleen analysoidaan rakennettavuuden kannalta. Luokitteluperiaatteen käyttäminen lohkoihin sisältää useita olettamuksia. Tärkeimpiä ovat, että a) lohkomalli vastaa todellisuutta ja että b) tarkasteltavien kallio-ominaisuuksien vaihtelu on lohkon tilavuudessa sille tyypillistä ja poikkeaa muista lohkoista tai koko sijoituskallion tilavuudesta. Käytännön kriteerinä on myös, että kustakin lohkosta tulisi olla riittävästi tietoa niiden kallio-ominaisuuksien arvioimiseksi. Lohkot ovat kappaleita, jotka muodostuvat kun perusmassa leikataan tasomaisilla rakenteilla. Jokaisen leikkauksen yhteydessä syntyy enintään kaksi lohkoa, joten lohkojen lukumäärä on m < 2 * n, kun n on leikkaavien rakenteiden määrä Ohjelmallinen lohkoihin jakaminen (kuva 1) edellyttää esikäsittelyä. Leikkaavia rakenteita laajennetaan siten, että niiden reunat ovat perusmassan ulkopuolella (1 b ). Rakennetta "lihotetaan" vuoroin molemmilta puolilta ( c) ylittämään perusmassan jolloin booleanvähennys tuottaa joko yhden tai ei yhtään lohkoa ( d). Jos lohkominen suoritetaan varmuusjärjestyksessä, saadaan loppupäähän lohkot, jotka vaativat manuaalista ohjausta. Epävarmojen rakenteiden vaikutusta voidaan testata suhteellisesti varmempien rakenteiden lohkoihin. Lohkomisen yhteydessä talletetaan sitä leikanneiden rakenteiden nimet, ne voidaan esittää rakenteiden nimessä esim. R5 _ R1_ R3 (kuva 2). Käytännössä listataan leikkaavat rakenteet tiedostoon. Myös leikkauspinnat ovat tässä vaiheessa tiedossa, perusmallintaja

6 ei kuitenkaan kykene ryhmittelemään volumin pintoja eikä tallettamaan niille atribuutteja. Tutkimusreiän osuminen lohkoon voidaan todeta normaalisti boolean-menetelmillä. Jos lohkojen sivut halutaan visualisoida leikkaavan rakenteen mukaan, se olisi tehtävä pintamallintajalla. Pintojen generointi tehtäisiin tällöin omalla rutiinilla. Voxel-malli syntyy tekemällä tarvittava määrä vaakaleikkauksia Medusa viewerillä. Leikkauspintaa pintoja kuvaavien viivojen avulla voidaan voxel-malli muodostaa Medusan ulkopuolella. Edelleen joukko-operaatiot ovat tällöin toteutettavissa. 1.2 Rajoitukset Toistuvat boolean-operaatiot voivat tuottaa menetelmässä ongelmia, uudemmat mallintajat ovat tässä mielessä testaamatta. Kappaleiden tasomaisuus on oltava myös sen verran selkeä, että jatkettavat päät voidaan löytää. Samaan asiaan liittyen kappaleelta löydyttävä kaksi kylkeä, jotka tuottavat lohkoille pinnat. Jos vaaditaan, että lohkon pinnat ovat tunnistettavissa Ieikkaajan mukaan, on käytettävä kahta mallia. Volumia luodessa otetaan leikkaus pinta talteen pintamalliin. Tällöin pintamallia käytetään vain visualisointiin.

,... 0 L-----------~~~~ Kuva 1. Lohkoihinjakamisen vaiheet. 7,... ~ L-----------~~~~

Kuva 2. Havaintokuva lohkosta rajaavine rakenteineen. 8

9 2 TOTEUTUS 2.1 Rajaus Teknisen toteutus edellyttää ongelman rajausta. Oletetaan, että lohkovat kappaleet ovat levymäisiä tai ainakin niiden tulisi olla. Ne voivat olla alkuperältään graafisesti tuotettuja tai parametrein luotuja ns. Rocky-malleja. Graafisten objektien käsittely suoritetaan manuaalisesti, koska objektit on luotu vastaavalla tavalla. Rocky-objektien osuus on rikkonaisuusmallissa hallitsevaa. Niiden käsittelyn automatisointi on sekä toteutettavissa että kannattavaa. Rocky-malleista käsitellään seuraavassa objektityypit prisma, polyhedron ja disk. 2.2 Lohkotuksen esivalmistelu Listataan objektit, joilla lohkominen halutaan suorittaa. Järjestyksellä on merkitys, objekti saattaa 'päästä' leikkaajien listaan, vaikka sen leikkauspinta vielä leikkautuu pois. Valitaan haluttu lohko määrittämällä yksi piste, piste 'lp', lohkon sisältä. 2.3 Puoliavaruuksien luonti Leikkaajaobjektit ulotetaan joka suunnassa tarkasteltavan alueen yli, käytännössä kattamaan vähintään yli ROCK-CAD kalliomallissa määritellyn mallinnusalueen. Yksityiskohtainen menetelmä on tyyppikohtainen ja siihen palataan jäljempänä. Syntyneestä levymäisestä kappaleesta valitaan yksi pinta, toinen pinta korvataan tarkasteltavan alueen yli ulottuvalla rakenteella. Jos piste lp nyt osoittautuu olevan syntyneen leikkaavan kappaleen sisällä, vaihdetaan leikkauspintoja ja kappale luodaan uudelleen (kuva 3).

10 Kuva 3. Puolen valinta, kun piste IP jää leikkaavan kappaleen ulkopuolelle. 2.4 Lohkotuksen suoritus Leikkaajakappaleet ajetaan yksitellen mallintajalla ja suoritetaan boolean-vähennysoperaatio. Syntyneen mallitiedoston kokoa verrataan kokoon ennen operaatiota. Joskoko on muuttunut päätellään, että tapahtui leikkautuminen ja objektin nimi liitetään leikkaajaluetteloon.

11 3 PRISMA 3.1 Prisman määrittely Prisma määritellään kahdella pisteellä, jotka ovat samalla korkeustasolla. Pisteiden välinen jana muodostaa prisman yläreunan. Alareunan pisteet määritellään päätepisteiden kaateilla ja korkeusasemalla. 3.2 Yhdessä tasossa määritelty prisma Malli ulotetaan tutkimusalueen yli venyttämällä prisman päitä (kuva 4 ). z l:v xp I 1 1 1 i 'z 1 t::x xp 1 Kuva 4. Prismamalli yksinkertaisimmillaan. Yläreunaa joudutaan kohottamaan siinä tapauksessa, ettei se ulotu valmiiksi tutkimusalueen yläreunaan. Yläreunan korottaminen on yksiselitteistä, kun segmenttien molemmat kaateet ovat samat (kuva 5).

12 z L::-y --1..1.---J 1 1 1 1 1 1 : 1 pl l h 1 f 1 Kuva 5. Prismamalli korotettuna (maanpintaan). 3.3 Yleinen prisma Kun kaateet poikkeavat toisistaan ovat jatkopalatkin eri kaateisia (kuva 6). Sekä ylä- että alareunaajatketaan määrittelylinjan suunnassa. Kaateen muutos ei siisjatkuvaan kaadejatkuu. pl 1 1 pi 1! '1: ~~x Kuva 6. Prismamalli, kun päissä eri kaateet.

13 Yleisessä tapauksessa prisman kaikkia reunoja jatketaan kuvan 7 mukaisesti. Yläreunan korotuksessa käytetään keskimääräistä kaadetta. Prismamalliin lisätään siten viisi nelinurkkaisista tasoelementtiä. Lisäksi alareuna ulotetaan vastaamaan tutkimusaluetta. -'" 1 \ 1 \ \n'. \\ _PI 1 '\1 1 \ :, 1 X \\ t..:khllaat.u. rala.l 1 1 ~-~-- --t------ /Ii/ ~ L /4/1.P Le.-y --L-------' 1 1 1_ --[3' -- w I I 1 1 PI 1 f X f 1 l ~ J t_::x ' ' 1 Kuva 7. Prismamalli yleisimmillään. 3.4 Mallinnuksesta Prisman mallinnus tapahtuu samoilla rutiineilla, joita käytetään monipuolisemman 'polyhedron'-mallin luomiseen. Mallinnus on käsitelty seuraavassa kappaleessa.

14 4 POL YHEDRONMALLIT 4.1 Polyhedronmallien rajaaminen Polyhedronmalli (monisärmiömalli) eroaa prismamallista vapaamuotoisuudellaan. Pisteiden lukumäärää ei ole rajattu ja levymäisyys toteutuu vain jos kappale on haluttu määritellä ohueksi. Useamman tasoiset määrittelyt on tässä jätetty työn ulkopuolelle, koska niitä ei ole käytetty tarkasteltavissa kalliomalleissa. 4.2 Mallin levymäisyys Määrittely viivan levymäisyys etsitään minimoimaha valittujen pisteparien etäisyyttä. Siten esimerkiksi ensimmäisen pisteen läheisyydestä löytyy todennäköisesti viimeinen, toisen pisteen läheisyydestä toiseksi viimeinen jne (kuva 8). Kuva 8. Polyhedron mallin levymäisyys. 4.3 Käsittely tasossa Levymäisestä viivasta valitaan toinen kylki jatkokäsittelyyn. Viiva projisoidaan halutulle tasolle kehitetyillä rutiineilla. Kaateet määräävät syntyvän muodon. Päiden jatkaminen tapahtuu syntyneen viivan päiden välisessä suunnassa. Voimakkailla kaarevuuksilla ja isoilla kaateilla saadaan ennalta arvaamattomia malleja.

15 Rutiinin 2d-And avulla viiva levitetään tasoalueeksi (kuva 9). Kuva 9. 2d-And operaatio satunnaisilla murtoviivoilla. 4.4 Mallin laajennus Viiva kuvataan mainituilla menetelmillä pisteen lp tasolle. Jälleen tarkastetaan onko puoli oikein valittu ja vaihdetaan tarvittaessa. Viiva projisoidaan ala- ja ylätasolle ja poistolohko kirjoitetaan näiden aluetta kuvaavien viivojen avulla. Samankaltaisten viivojen luomista hankaloittaa se, että poistolohkon ylä-, ala- tai määrittelypintaa kuvaavat viivat poikkeavat toisistaan pisteiden lukumäärän tai vastaavuuden osalta toisistaan. Tilanne syntyy, kun kaade aiheuttaa osarakenteen ajautumisen tutkimusalueen sisä/ulkopuolelle. 4.5 Volumin muodostaminen Koska käsittely tapahtuu pääosin kaupallisen mallintajan ulkopuolella, on oltava olemassa tapa, jolla malli voidaan siirtää mallintajalle.

16 Tässä tapauksessa murtoviivat yhdistetään toisiinsa F ACE-elementein, jotka oikein indeksoituna voidaan siirtää Medusa-mallintajalle volumiksi. Mitään estettä mallintajan vaihtumiselle ei ole asetettu. Kuvassa 10 on murtoviivan esitelty kuvautumista volumina. Ylä ja alapinnan välissä näkyy määrittelytaso. Kuva 10. Murtoviivan mallinnus tilavuudeksi.

17 5 DISK-MALLIT 5.1 Tilanne Disk-kappaleet ovat ympyrämäisiä tai elliptisiä levyjä, joiden kaadesuunta, kaade, isoja pikkuakselin pituudet ja paksuus on määritelty. Tällaisia kappaleita käytetään paikalliseksi tulkittujen tai monista yksittäisistä osista muodostuvien rakenteiden kuvaamiseen. Disk-kappaleiden määrä on kalliomalleissa pieni, suurin se on Olkiluodon ja Hästholmenin kuvauksissa, joissa esiintyy moniosaisia loivakaateisia rakenteita. Aikataulusyistä disk-mallin toteutus jätettiin myöhempään vaiheeseen eikä tätä esitetä tässä raportissa. Ensimmäisenä käsitelty Romuvaaran alue ei sisällä kriittisiä diskejä.

18 6 OHJELMOINTITEKNIIKKA 6.1 Ympäristö Ohjelmointi on suoritettu GNU :n C++ kääntäjällä, versio 2. 7.2.2. Laitealustana oli Sun/Solaris 2.6 ja ohjelmistona Computervision Medusa 14. 6.2 Ohjelmatiedostot Kokonaan lohkotusta varten luodut lähdekoodit löytyvät nimillä 11.cc, 12.cc, prisma.cc, polyhedron.cc ja disk.cc. Vastaavat '.h'-tiedostot sisältävät tarpeelliset määrittelyt. Tiedostojen pääasiallinen sisältö on seuraava: 11.cc Main-funktio ja tulosten kirjoitus. 12.cc Projektikohtaisia luokkia ja funktioita. prisma.cc Prisma-muotoisen 'rocky'-mallin käsittely. polyhedron.cc Polyhedron-muotoisen 'rocky'-mallin käsittely. Kaavio ohjelman toiminnoista on liitteenä 1. 6.3 Testaus Ohjelmointityön aikana suoritettiin normaali koodin testaus.

19 Kuva 12. Kivetyn prismoilla R19B, R19C, R19D, R21, R19A, R1B, R2 on kuvassa lohkotettu piste IP=(3433250 6968750-1 00). Ylemmässä kuvassa on xy-tason projektioja alemmassa aksonometrinen kuva.

20....,.... Kuva 14. Volumin pintojen numeroinliperiaate ja toteutuma, kun n = 6.

Kuva 15. Lohkotuksen eteneminen kuvina. 21

22 7 MUUT OSATEHTÄVÄT 7.1 Beelean-täydennys,.. bwn.. Tilavuuksiin kohdistuvat Boolean-operaatior vaativat lisätoiminnon ohjelmoimista. Medusa:n boolean-operaatio hukkaa objektien nimet. Kun lista objekteja ajetaan esim. 'laatikon sisään' eivät objektit ole enää tunnistettavissa. Rutiini tekee booleanleikkauksen moniobjektisen ja yksiobjektisen mallin välillä hukkaamatta objektinimiä. Tällä rutiinilla voidaan lopullisen lohkon sisälle jäävät kappaleet tunnistaa. Usage:bwn <multiobjectmodel> <singleobjectmodel> <modelout> bwnbwn (1) - create boolean-section of multiobjectmodel against singleobjectmodel 7.2 Ratatiedesten uudelleen genereinti,.. rata.c.. Uncert-ohjelmalle syötettävien tietojen syöttöön tarvitaan kairanreikätiedosto, jossa rata pisteitä on tietyllä välillä. Tehty rutiini interpoloi ratatiedoston halutulla askeleella ja siirtää myös jaksoa. Usage: rata <source> [ <target> [ <step> [ <shift> ]]] source: target: step: target: ratatiedosto tuotettava ratatiedosto etenemän askel siirto

Kaaviokuva ohjelmatoiminnoista env Tarkista parametrit virheet main() Lue 'Rocky' tiedostot virheet N w ReadRockyFile() virheet poisto-osa model in memory ReadPolyHedron() ReadPrisma() {ReadDisk()...} Kirjoita tulokset TempFiles() TempFiles2() ShowlnterestingPoint() Mallinnustiedostot asc-files scripts logs 1--"