Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space XDR and version 6.7

3D-Win / Editointi / Ominaisuudet

Avainsanat: Liikennevirasto, Kooditaulukko

Artikkelin toiminnot 3D-win 6.5.0 alkaen

Julkaistu: 27.11.2018, Mikko Syrjä



Tässä esimerkissä käytetään Editointi / Ominaisuudet / Kooditaulukko -toimintoa muuntamaan alkuperäinen ominaisuuksia sisältävä rumputiedosto muuunnostiedoston avulla Liikenneviraston rumpukoodauksen mukaisiksi koodeiksi. Esimerkkiaineisto ja muunnostiedosto ovat ladattavissa artikkelin lopussa.

Liikenneviraston rumpukoodauksessa käytetään viisimerkkisiä numeerisia koodeja. Ensimmäinen merkki on aina 3, toinen merkki rummun materiaalin indeksi ja kolme viimeistä merkkiä halkaisija senttimetreinä. Materiaalien indeksit ovat alla olevan taulukon mukaisia. Esimerkiksi 20 cm muovirummun LiVi-koodi on 34020.

 0ei selvitetty
 1betoni
 2teräsaaltolevy
 3teräs
 4muovi
 5luonnonkivi
 6puu
 7nelikulmainen betoni

Suoritettaessa muunnosta useamman ominaisuuden kanssa, operaatio kannattaa jakaa erillisiin osioihin. Kun kukin osio suorittaa yksittäisen operaation itsenäisesti molempiin suuntiin, helpottuu muunnostiedoston ylläpito ja laajentaminen myöhemmin.

Toinen muunnosta selkeyttävä toimenpide on väliaikaisten apuominaisuuksien käyttö. Yksi osio voi tallentaa välivaiheen ominaisuuteen, jota seuraava osio sitten käyttää ja poistaa. Väliaikaiset ominaisuudet kannattaa nimetä niin, että ne erottuvat muista, esimerkiksi aloittamalla ne alaviivalla.

Jos alkuperäisessä aineistossa rummuilla on koodi 300, materiaali ominaisuudessa MATERIAL ja halkaisija millimetreinä ominaisuudessa DIAMETER, ne voidaan muuntaa LiVi-koodiksi seuraavalla muunnostiedostolla:


[material]

MATERIAL=;T3=300;_MAT=,* _MAT=30;T3=300
MATERIAL=betoni;T3=300;_MAT=,* _MAT=31;T3=300
MATERIAL=teräsaaltolevy;T3=300;_MAT=,* _MAT=32;T3=300
MATERIAL=teräs;T3=300;_MAT=,* _MAT=33;T3=300
MATERIAL=muovi;T3=300;_MAT=,* _MAT=34;T3=300
MATERIAL=luonnonkivi;T3=300;_MAT=,* _MAT=35;T3=300
MATERIAL=puu;T3=300;_MAT=,* _MAT=36;T3=300
MATERIAL="nelikulmainen betoni";T3=300;_MAT=,* _MAT=37;T3=300
*, *,

[diameter]
DIAMETER=;T3=300 _DIACM=;T3=300
DIAMETER=$_DIACM%e1.0,*;T3=300 _DIACM=$DIAMETER%e-1.0,*;T3=300
*, *,

[field]
_DIACM=*,;_MAT=3?;T3=300 T3=$_MAT;T3=&$_DIACM@3=0;_MAT=;_DIACM=
_DIACM=;_MAT=$T3[:2];T3=300 T3=3?000
_DIACM=$T3[2:]%.0;_MAT=$T3[:2];T3=300 T3=3????
*, *,


Tiedosto haetaan Kooditaulukko-toimintoon ja suoritetaan tiedostolle vasemmalta oikealle.

Ensimmäinen osio [material] muuntaa ominaisuuden MATERIAL väliaikaiseksi ominaisuudeksi _MAT ja toinen osio [diameter] millimetrihalkaisijan ominaisuudesta DIAMETER senttihalkaisijaksi väliaikaiseen ominaisuuteen _DIACM. Kolmas osio [field] sitten yhdistää nämä yhdeksi koodiksi ja poistaa väliaikaiset ominaisuudet. Kahdessa ensimmäisessä osiossa on molemmin puolin lisäehto T3=300, joka varmistaa, että muunnos tehdään vain rumpukoodeille. Muunnosten järjestys on seuraava:


[material]: MATERIAL=muovi -> _MAT=34 

[diameter]: DIAMETER=200 -> _DIACM=20
[field]: _MAT=34,_DIACM=20 -> T3=34020,_MAT=,_DIACM=


Viimeisen osion [field] kolme riviä tarvitaan käsittelemään eri tilanteet molempiin suuntiin. Muunnettaessa vasemmalta oikealle eli ominaisuuksista LiVi-koodiksi ensimmäinen rivi täsmää tilanteeseen, jossa kohteella on koodi 300 ja väliaikainen ominaisuus _MAT. Määrittely *, täsmää kaikkiin _DIACM-ominaisuuden arvoihin, myös puuttuviin. Oikea sarake yhdistää näistä viisimerkkisen maastokoodin ja poistaa väliaikaisen ominaisuuden.

Toinen ja kolmas rivi tarvitaan muuntamaan maastokoodi takaisin ominaisuuksiksi. Muunnettaessa oikealta vasemmalle kohteella ensimmäistä riviä ei koskaan suoriteta, koska lisäysoperaatio T3=&$diameter ei voi täsmätä mihinkään koodiin. Toinen rivi täsmää koodiin, jossa halkaisija on 000. Tällöin ominaisuus _DIACM tyhjätään. Kolmas rivi täsmää sitten muihin halkaisijoihin ja sijoittaa ominaisuuteen _DIACM halkaisijan senttimetreinä. Molemmissa tapauksissa koodin kaksi ensimmäistä merkkiä sijoitetaan väliaikaiseen ominaisuuteen _MAT.

Edelleen oikealta vasemmalle muunnettaessa osio [diameter] muuntaa senttihalkaisijan ominaisuudesta _DIACM millihalkaisijaksi ominaisuuteen DIAMETER ja väliaikaisen ominaisuuden _MAT varsinaiseksi materiaaliksi ominaisuuteen MATERIAL.


Esimerkkiaineisto: livi_rumpu.xy.tdw

Esimerkki: Muunnostiedosto/livi_rumpu.exc

Toiminnon ohjesivu:  Kooditaulukko

Lue lisää: Ominaisuuksien muunnostiedosto

Esimerkkiaineisto:

Attachments
patterns.*tdw,*exc