SALIKTĀ KOORDINĀTU PĀRVEIDOŠANA (1999)

autors:Inga Lējēja


Uzdevuma nostādne


            Sastādīt programmu makrovalodā MicroStation Basic, kas veic koordinātu salikto pārveidošanu plaknē. Programmas izpildei paredzēt divus variantus. Vienu variantu paredzēt teksta datnei, otru paredzēt Bentley Systems CAD programmas MicroStation 95 projekta datnei.

Darba teorētiskais pamatojums


Translācija, mēroga izmaiņa un rotācija ir pamata ģeometriskās transformācijas, kas ir galvenās prasības vizualizācijai ar datoru un manipulēšanai ar kartes datiem. Šo pamata transformāciju kombinācija tiek izšķirta kā afīnā transformācija. Tās ir nepieciešamas, kad tiek mainītas koordinātu sistēmas un kad maina kartē attēloto simbolu novietojumu, orientāciju un izmērus. Iepriekšējā prasība rodas, kad dati tiek attēloti 2D vai 3D kartes tīkla koordinātās un ir jāattēlo uz datora monitora ar to pašu koordinātu sistēmu un datu iegūšanas kontekstā, kad sākumā lokālā mērniecības koordinātu sistēmā ierakstītie dati jātransformē uz standarta kartes lapas tīklu. Ja mērijums ir ticis atzīmēts uz papīra kartes, vēlēkās transformācijas var ietvert kā starpnieku attēlošanai ciparojot tabulas koordinātas.

Translācija


Translācija ar pārvietojumiem Tx=3, Ty=4.
1. attēls. Translācijas transformācija.

2D translācija (1. attēls) pārvieto punktu x, y uz jaunu punktu Tx, Ty, t.i
            x=x+Tx
            y=y+Ty

Mēroga izmaiņa


Lai izmainītu mērogu punktam x, y uz jaunu punktu x’, y’ mēs lietojam divus mēroga reizinātājus Sx un Sy, kas attiecas uz mēroga izmaiņu katrā no divām (vai trijām) dimensijām ( 2. attēls).
(a) mēroga izmaiņa attiecībā pret sākumpunktu.
Objekta mēroga izmaiņa objektam, kas centrēts pret sākumpunktu. Mēroga faktors Sx=2, Sy=3.
Mēroga izmaiņa objektam, kas nav centrēts pret sākumpunktu. Mēroga faktors Sx=2, Sy=3.
(b) mēroga izmaiņa pret fiksētu punktu F (2, 2), lietojot mēroga faktorus Sx=2, Sy=3, kas ir izteikts kā punkta transformāciju rezultāts.
Izejas stāvoklis.
F translācija uz sākumpunktu Tx=-2, Ty=-2.
Mēroga izmaiņa Sx=2, Sy=3.
F translācija atpakaļ uz izejas stāvokli. Tx=2, Ty=2
2. attēls. Mēroga transformācija.

Tādējādi divām dimensijām
x’=x*Sx
y’=y*Sy
Šī mēroga izmaiņa var tikt relatīvi attiecināta pret koordinātu sistēmas sākumpunktu. Kad tā tiek pielietota uz objektu, kas definēts ar noteiktu punktu skaitu, viss objekts tiek pakļauts pārvietošanai saprotot, ka objekta centrs kustas par daudzumu, ko nosaka mēroga reizinātāji. Ir nepieciešams saglabāt fiksētu vienu objekta punktu, tad fiksētais punkts jāpārbīda uz sākumpunktu pirms mēroga izmaiņas, pēc kuras “fiksētais”punkts jāpārbīda atpakaļ uz tā izejas stāvokli. Fiksētam punktam Fx, Fy mēroga izmaiņa tādējādi sastāv no transformācijas (-Fx, -Fy) (Sx, Sy) (Fx, Fy). No šejienes mēs atrodam transformēto punktu x’’’, y’’’, kurus no izejas punkta x, y mēs varam aprēķināt sekojoši:
x’=x-Fx
y’=y-Fy
x’’=x’*Sx=(x-Fx)Sx
y’’=y’*Sy=(y-Fy)Sy
x’’’=x’’+Fx=x*Sx+Fx(1-Sx)
y’’’=y’’+Fy=y*Sy+Fy(1-Sy)

Rotācija


Lai rotētu punktu x, y ap sākumpunktu ar leņķi - uz jauno pozīciju x’, y’ formula ir
x’=xcosq-ysinq
y’=xsinq+ycosq
Rotācija ir virzienā pret pulksteņa rādītāju virzienu, relatīvi pret koordinātu sistēmas sākumpunktu (3. attēls).
a)      Rotācija relatīvi pret sākumpunktu (pozitīva pret pulksteņa rādītāju virzienu)
x’=xcosq-ysinq
y’=xsinq+ycosq
 
Objekta rotācija, kas centrēts pret sākumpunktu q=450.
Objekta orientācija, kas nav centrēts sākumpunktā q=450.
Rotācija ap fiksētu punktu F (2, 2) ar leņķi q=450 izsacīta kā pamata transformāciju sekvence.
Izejas stāvoklis.
 F translācija uz sākumpunktu Tx=-2, Ty=-2.
 
Rotācija q=450.
F translācija atpakaļ uz izejas stāvokli Tx=2, Ty=2.
3. attēls. Rotācijas transformācija.

Lai rotētu objektu ap pieņemtu sākumpunktu ir nepieciešams ievest translācijas pret doto punktu pirms un pēc rotācijas līdzīgā veidā kā ir aprakstīts pie mēroga izmaiņas. Pēdējās vietējās transformācijas ir būtiskas datorkartogrāfijā, kad manipulē ar atsevišķiem kartes simboliem kā bultiņām un teksta izmēriem.

Taisnleņķa koordinātu sistēmu maiņa


Lai mainītu vienu koordinātu sistēmu uz citu, vienai no koordinātu sistēmām ir jābūt definētai attiecībā pret otru. Pieņemot, ka abas koordinātu sistēmas ir taisnleņķa mums vajag zināt kopēju punktu, kas var tikt definēts abās koordinātu sistēmās, katras dimensijas mēroga faktoru (t. i. Cik daudz vienības no vienas koordinātu sistēmas ir prieks katras otras koordinātu sistēmas vienības) un vienas sistēmas asu orientācija relatīvi pret otru.

4. attēls. Koordinātu sistēmu maiņa no sistēmas A uz sistēmu B var tikt sasniegta pielietojot šīs transformācijas koordinātu sistēmas A punktam, kuras ir vajadzīgas, lai līdzinātos B koordinātu sistēma ar A koordinātu sistēmu.

            Pieņemsim , apskatoties 4. zīmējumā, kad mēs vēlamies transformēt punktus no koordinātu sistēmas A uz koordinātu sistēmu B. Situācija ir īpaši vienkārša, ja kopējais punkts ir B koordinātu sistēmas sākumpunkts.
            Transformācija sastāv no tās pielietošanas punktiem, kas pārstāv sākumā sistēmā A šīs transformācijas, kuras tiek prasītas lai līdzinātos B koordinātu sistēma ar A. Atsaucoties uz 4. zīmējumu Ox, Oy ir B koordinātu sistēmas sākumpunkts definēts A koordinātu sistēmā. Bsx, Bsy ir B vienību skaits uz A koordinātu sistēmu vienībām x un y asis un q ir leņķis starp B x asi un A x asi. Soļi tad ir sekojoši:
1.       Jātranslē ar -Ox, -Oy pārbīdot B koordinātu sistēmas sākumpunktu uz A.
2.       Jārotē ar -q ievedot asis līdz līdzībai.
3.       Jāizmaina mērogs ar Bsx, Bsy  padarot katras dimensijas vienības ekvivalentas.
            Ja kopējais punkts, kas tika lietots translācijā 1.solī nav īstens B koordinātu sistēmas sākumpunkts, bet ir kāds punkts koordinātu sistēmā B, mums ir jāievieš ceturtais solis, lai savienotu šīs punkta koordinātas. Papildu solis ir:
4.       Jātranslē bx, by koordinātas pievienojot vietējam sākumpunktam
            Praktisks piemērs šai koordinātu sistēmu maiņai būs, kad koordinātu sistēma B attēlo karšu tīkla sistēmu, kas ir ciparota uz ciparošanas galda pārstāvot koordinātu sistēmu A.
            Ja tas bija gadījums, kad mēroga faktors un leņķis varēja netikt precīzi formulēts, bet varēja tikt iegūts trīs kontrolpunktiem, kurus operatoram tika prasīts projicēt. Šie punkti var būt kartes lapas sākumpunkti un viens punkts katrā no diviem kartes tīkla blakus stūriem.
            Cits piemērs ir koordinātu sistēmas transformācijas pielietojums kad uzzīmētā ciparu kartē ir definēta tās koordinātu sistēma uz grafiskās attēlošanas ierīces. Datorgrafikas terminoloģijā, transformācija var tikt definēta kā logs uz lietotāja koordinātu sistēmu, t.i. taisnstūrveida laukums definē kartes apgabalu, kurš jāattēlo un skatu pieslēgvietu definējot ar atbilstošo taisnstūri uz attēlošanas ierīces grafiskā displeja koordinātu sistēmā.
5. attēls. Loga transformācija uz skata pieslēgvietu datorgrafikā. Koordinātu sistēmu maiņa ir nepieciešama lai attēlotu taisnstūrveida apgabalu lietotāja (pasaules) koordinātu sistēmā, ko definē ar logu attēlošanas ierīces taisnstūrveida apgabala ietvaros, ko definē ar pieslēgvietu.

            Bieži abi taisnstūri ir orientēti paralēli viens otram tā, ka šeit nav vajadzības pēc rotācijas (5. attēls). Sākuma transformācija tiek uzdota ar apakšējo kreiso skata pieslēgvietu. Mēroga izmaiņa tiek iegūta no loga malu un pieslēgvietas  proporcijas un beigu transformācijā tiek dota apakšējā kreisā loga stūra koordinātas.

Paskaidrojumi programmas lietotājam


Ievads


            Programma SALKOPAR ir sarakstīta programmēšanas makrovalodā MicroStation Basic un ir paredzēta saliktai koordinātu pārveidošanai plaknē TM projekcijā LKS-92 koordinātu sistēmā, kā arī vietējās koordinātu sistemās. Datu apstrāde var veikt vai nu izmantojot teksta datni (*.txt), vai arī MicroStation 95 projekta datni (*.dgn).

Programmas uzstādīšana


            Uzstādot programmu SALKOPAR MicroStation kataloga apakškatalogā MACROS jāiekopē datnes salkopar.ba un salkopar.bas, kas satur programmas SALKOPAR moduļa kompilētu kodu.

Programmas palaišana


            Programmu SALKOPAR var palaist:
·         MicroStation KeyIn rindā ievadot komandu macro salkopar;
·         MicroStation KeyIn rindā ievadot komandu macro, un izvēloties Macro Name salkopar, un nospiežot pogu Run (8. un 9. attēls);
·         Izvēļņu rindā izvēloties izvēlni Utilities, zem kuras slēpjas komandkarte, kurā izvēlas Macros, pēc kuras atveras lodziņš Macros, un izvēloties Macro Name salkopar, un nospiežot pogu Run (6.-9. attēls).

6. attēls.
7. attēls.
8. attēls.
9. attēls.
            Pēc programmas palaišanas aktivizējas sekojošs informācijas lodziņš, kāds tas ir parādīts 10. attēlā, kurš ir jāaizver ar pogu OK.
10. attēls.

Programmas lietošana


            Lai varētu lietot programmu, vispirms ir jāiestāda visi nepieciešamie transformācijas parametri - translācija pa x asi xt6, translācija pa y asi yt6, x ass rotācija ex, y ass rotācija ey, mēroga izmaiņa pa x asi mx un mēroga izmaiņa pa y asi my (11.-12. attēls). Šos parametrus lietotājam ir jāapstiprina ar pogu LABI, pretējā gadījumā jānospiež poga ATCELT. Ja lietotājs nebūs ievadījis visus parametrus, vai arī nebūs ievadījis nevienu parametru un gribēs apstiprināt, tad programma atkārtoti pieprasīs parametru ievadi.
11. attēls.
12. attēls.
            Pēc parametru ievades un apstiprināšanas atveras izvēles logs (13. attēls), kurā lietotājam jāizvēlas ar kādu datni strādāt - vai ar *.txt datni, vai ar *.dgn datni. Tas ir izdarāms izvēloties attiecīgo radiopogu un apstiprinot to ar pogu LABI, pretējā gadījumā ATCELT. Ja lietotājs nebūs izvēlējies nevienu datnes tipu un gribēs to apstiprināt, tad atkārtoti parādīsies izvēles logs.
13. attēls.

Darbs ar *.txt datni


            Teksta datnes struktūra jābūt tādai, kā tas ir parādīts 1. tabulā:
1
349732.350
543757.750
2
349563.420
543376.690
3
349376.370
543139.630
1. tabula.
            Pirmā sleja apzīmē punkta nr., otrā tā x koordināti un trešā - tā y koordināti. Rindās ir nepieciešamas atstarpes starp tās elementiem. Rakstot teksta datnē punktu nr. un to koordinātas nedrīkst lietot tabulatoru TAB. Programmas datu ievads ir *.txt datne, bet izvads *.dat datne tajā pašā direktorijā, kur atrodas *.txt datne. Brīdinājums: ja direktorijā jau ir datne ar paplašinājumu *.dat un tās nosaukums sakrīt ar lietotāja izvēlētās datnes vārdu, tad šī datne tiek neatgriezeniski izdzēsta.
            Ja lietotājs grib izvēlēties teksta datni, tad viņam jāaktivizē radiopoga *.txt un  sava izvēle jāapstiprina ar pogu LABI (14. attēls).
14. attēls.
            Pēc tam atvērsies izvēles logs, kurā lietotājam jāizvēlas direktorija un teksta datne, kurai lietotājs grib veikt transformāciju (15.-17. attēls).
15. attēls.
16. attēls.
17. attēls.

            Pēc datnes izvēles parādīsies informācijas logs, kurā parādās teksts ar lietotāja izvēlētās datnes nosaukumu, kurš jāapstiprina ar pogu OK (18. attēls).
18. attēls.
            Nākošajā logā lietotājs redz punktu numurus un to koordinātas savā izvēlētajā datnē (19. attēls).
19. attēls.
            Pēcāk parādās informācijas logs ar tekstu, kurā parādās lietotāja izvēlētās datnes nosaukums ar paplašinājumu *.dat. Tas ir jāapstiprina ar pogu OK (20. attēls).
20. attēls.
                        Turpmākajā logā parādās uz citu koordinātu sistēmu pārtransformētās punktu koordinātas (21. attēls)
21. attēls.
            Skaņas signāls liecina, ka transformācija ir pabeigta.

Darbs ar *.dgn datni


            Darbojoties ar *.dgn datni, tajā esošie dati tiks neatgriezeniski sabojāti, tādēļ ir nepieciešams pirms saliktās koordinātu pārveidošanas noņemt datu rezerves kopiju ar citu datnes nosaukumu.
            Ja lietotājs grib izvēlēties MicroStation projekta datni *.dgn, tad viņam jāaktivizē radiopoga *.dgn un  sava izvēle jāapstiprina ar pogu LABI (22. attēls).
22. attēls.
            Atšķirībā no teksta datnes šeit netiks izdots neviens lodziņš, kurus vajadzēs apstiprināt. Skaņas signāls liecina, ka transformācija ir pabeigta.

Kontrolpiemēra analīze


            Programmas darbības pārbaudei kā kontrolpiemērs tika izmantoti sekojoši punkti un to koordinātas (2. tabula):
nr.
x
y
1
149732.350
943757.750
2
149563.420
943376.690
3
149376.370
943139.630
2. tabula.
            Transformācijas parametri šajā kontrolpiemērā tika pieņemti sekojoši (3. tabula):
xt6
0.5
yt6
0.8
ex
30
ey
30
mx
0.3
my
0.5
3. tabula.

Praktiskie rezultāti, izmantojot *.txt datni


nr.
x
y
1
471772.418
37298.996
2
471576.351
37319.679
3
471450.584
37356.839
4. tabula.
            Pēc rezultātiem var redzēt, ka šī transformācija veiksmīgi nostrādā.

Praktiskie rezultāti, izmantojot *.dgn datni


nr.
x
y
1
35919.465
283127.175
2
35868.786
283012.857
3
35812.671
282941.739
5. tabula.
            Šis transformācijas veids nostrādā, bet rezultāti atšķiras no *.txt faila. Tas liecina par to, ka nenostrādā kāda no koordinātu transformācijām: vai nu translācija, vai pārbīde vai arī rotācija.

Secinājumi


Programmas darbībā sastopami sekojoši trūkumi:
·      Ja lietotājs nospiež Cancel vai NĒ, tad programma lietotājam piedāvā nākošo izvēles logu.
·      Nav pilnībā realizēta *. dgn datnes transformācija.
·      Programma netransformē *. txt  datni ar negatīvām ievadkoordinātu vērtībām.
·      *.dgn datnes transformācija neveic afīno (sešparametru) transformāciju, jo netika atrasts atbilstošs teorētiskais pamatojums.
Kā programmas darbības priekšrocības varētu minēt:
·      *.txt transformācijā programma no ievaddatnes izveido izvaddatni, kā arī parāda rezultātus uz ekrāna.
·      Programma atvieglo lietotājam direktorijas un tajā esošās ievaddatnes izvēli.
Pēc kontrolpiemērā redzamiem rezultātiem ir redzams, ka rezultāti atšķiras. Visticamākais, ka kļūdas ir *.dgn datnes transformēšanā. Grūti ir spriest par to, kura transformācija ir vistuvāk pareizajiem rezultātiem tādēļ, kad netika salīdzināti teorētiski iespējamie rezultātu ar praktiskajiem.
Darba rakstīšanas gaitā bija grūtības, kuras galvenokārt bija saistītas ar programmēšanas atkārtošanu, kā arī ar darba teorētiskā materiāla studēšanu un tukošanu no angļu valodas. Vēl interesanti bija atkārtot, kā pareizi ir jāzīmē algoritmu blokshēmas.
Darbs parādīja, ka rezultātus ar automatizētās projektēšanas programmu MicroStation ir iespējams iegūt dažādos veidos un kā viens no iespējamiem veidiem ir programmēšana makrovalodā MicroStation BASIC. 

Pielikums

Algoritma galvenā moduļa blokshēma



 

 





Programmas teksts


'Saliktā koordinātu pārveidošana
'
'-------------------------------------------------------------------------------------------------------------------------
'Autori: Salvis Bošs & Inga Lējēja
'-------------------------------------------------------------------------------------------------------------------------
Public filter$
Public tx6$
Public ty6$
Public xe$
Public ye$
Public xm$
Public ym$
Public filename$
Public Radio as Integer
'-------------------------------------------------------------------------------------------------------------------------
Sub Parametri
    tx6$ = ""
    ty6$ = ""
    xe$ = ""
    ye$ = ""
    xm$ = ""
    ym$ = ""
    ’Transformācijas parametru ievadīšana
    actionButton = mbeOpenModalDialog (3)
    While actionButton = Mbe_Button_OK and ((tx6$=null)or (ty6$=null) or (ye$=null) or (xm$=null) or (ym$=null))
        actionButton = mbeOpenModalDialog (3)
    Wend
End Sub
'-------------------------------------------------------------------------------------------------------------------------
Sub Datne
    const suggest$ = ""
    Dim button as long
    Dim Status as long
    Dim text$ as String
    ’Direktorijas un datnes izvēle, kurai vajag veikt transformāciju
    actionButton = mbeOpenModalDialog (1)
    Select Case actionButton
        Case 1001
            directory$ = "m:\"
            title$ = "Mārupe"
        Case 1002
            directory$ = "s:\"
            title$ = "Sabile"
        Case Mbe_Button_Ok
            directory$ = "v:\"
            title$ = "Salacgrīva"
        Case 1004
            directory$ = "o:\"
            title$ = "Ogre"
        Case Mbe_Button_Cancel
            directory$ = "r:\"
            title$ = "Rīga"
        Case 1006
            directory$ = "i:\"
            title$ = "Inženieru"
        Case 1007
            directory$ = "x:\"
            title$ = "Citi"
        Case 1010
            directory$ = "c:\"
            title$ = "C:\"
        Case 1013
            If filter$ = "*.txt, teksta faili [*.txt]" then
                MbeMessageBox ("Šī izvēle pagaidām nav iespējama ar *.txt failiem.")
            else
                MbeSendKeyin "dialog openfile"
                if mbedgninfo.dgnfilereadonly=0 then
                Else
                MbeMessageBox "Darbības nevar izpildīt. Datne ir atvērta kā read_only."
                end if
            End If
            exit sub
        Case 1014
            If filter$ = "*.txt, teksta faili [*.txt]" then
                MbeMessageBox ("Šī izvēle pagaidām nav iespējama ar *.txt failiem.")
            else
                MbeSendKeyin "create drawing"
            End If
            exit sub
        Case 1003
            MbeMessageBox ("Jūs nospiedāt ATCELT.")
            exit sub
    End Select
    filename$ = ""
    status = MbeFileOpen (filename$, suggest$, filter$, directory$, title$)
    If filter$ = "*.dgn, Microstation projekta faili [*.dgn]" then
        If status = MBE_Success Then
             MbeSendKeyin "rd=" + filename$
        Else
             button = MbeMessageBox ("Lietotājs nospieda CANCEL.")
        End If
        if mbedgninfo.dgnfilereadonly=0 then
        else
             MbeMessageBox " Darbības nevar izpildīt. Datne ir atvērta kā read_only."
        end if
    end if
End Sub
'-------------------------------------------------------------------------------------------------------------------------
Sub Tips
const na$ = "dat"
’Transformācijas veikšana, atkarībā no tā, vai datne ir *.txt vai *.dgn
    Select Case Radio
        Case 1
            ’*.txt datnes transformācija
            xt6# = val(tx6$)
            yt6# = val(ty6$)
            ex#= val(xe$)
            ey#= val(ye$)
            mx#= val(xm$)
            my#= val(ym$)
            open fileName$ for input as #1
            n = len(filename$)
            name$ = Left$(FileName$,n-3)
            nam$ = name$&na$
            open nam$ for output as #2
            close #2
            kill nam$
            open nam$ for append as #3
            while not eof(1)
                line input #1,lin$
                rn$ = word$(lin$,1)
                x1$ = word$(lin$,2)
                x2$ = word$(lin$,3)
                y1$ = word$(lin$,4)
                y2$ = word$(lin$,5)
                teksts$ = teksts$+chr$(10)+lin$
                nr# = val (rn$)
                x6# = val(x1$+ chr$(46)+x2$)
                y6# = val(y1$+chr$(46)+y2$)
                rm11#=cos(ex#)*mx#
                rm21#=sin(ex#)*mx#
                rm12#=-sin(ey#)*my#
                rm22#=cos(ey#)*my#
                x5# = xt6#+(rm11#*x6#)+(rm12#*y6#)
                y5# = yt6#+(rm21#*x6#)+(rm22#*y6#)
                x$ = str$(x5#)
                x$ = format$(x$,"#######.000")
                y$ = str$(y5#)
                y$ = format$(y$,"#######.000")
                li$ = rn$+chr$(32)+x$+chr$(32)+y$
                tekst$ = tekst$+chr$(10)+li$
            wend
            print #3,tekst$
            close #1
            close #3
            MbeMessageBox "Teksta datnes "+filename$+" saturs"
            MbeMessageBox teksts$
            MbeMessageBox "Teksta datnes "+nam$+" saturs"
            MbeMessageBox tekst$
        Case 2
        ’*.dgn datnes transformācija
        MbeSendKeyIn "place fence universe"
        MbeSendKeyIn "xy=0,0"
        Parbide
        Rotacija
        MerogaIzmaina
    End Select
End Sub
'-------------------------------------------------------------------------------------------------------------------------
Sub Parbide
    ’Pārbīdes transformācija *.dgn datnei
    MbeSendCommand "FENCE ICON "
    MbeSetAppVariable "", "msToolSettings.fence.contentsMode", 1&
    MbeSendCommand "FENCE ICON "
    MbeSendCommand "LOCK FENCE INSIDE "
    MbeSendKeyin "xy=0,0"
    bidit$ = "xy=-"+tx6$+chr$(44)+chr$(45)+ty6$
    MbeSendKeyin bidit$
End Sub
'-------------------------------------------------------------------------------------------------------------------------
Sub Rotacija
    ’Rotācijas transformācija *.dgn datnei
    MbeSendCommand "FENCE ICON "
    MbeSetAppVariable "", "msToolSettings.fence.contentsMode", 3&
    MbeSendCommand "FENCE ICON "
    MbeSendCommand "LOCK FENCE INSIDE "
    rotet$ = "aa="+xe$
    MbeSendKeyin rotet$
    MbeSendReset
End Sub
'-------------------------------------------------------------------------------------------------------------------------
Sub MerogaIzmaina
    ’Mēroga izmaiņas  transformācija *.dgn datnei
    MbeSendCommand "FENCE ICON "
    MbeSetAppVariable "", "msToolSettings.fence.contentsMode", 3&
    MbeSendCommand "FENCE ICON "
    MbeSendCommand "LOCK FENCE INSIDE "
    merogs$ = "as="+xm$+chr$(44)+ym$
    MbeSendKeyin merogs$
    MbeSendKeyin "xy=0,0"
    MbeSendReset
End Sub
'-------------------------------------------------------------------------------------------------------------------------
Sub Main
    Dim button as Long
    ’Programmas sākums
    button = MbeMessageBox ("Programma veic salikto koordinātu pārveidošanu", MBE_OKBox or MBE_InfoIcon)
    Parametri
    Radio = 0
    ’*.txt vai *.dgn datnes izvēle
    ActionButton = mbeOpenModalDialog (2)
    While actionButton = Mbe_Button_OK and Radio=0
        actionButton = mbeOpenModalDialog (2)
    Wend
    filter$ = ""
    Select Case Radio
        Case 1
            filter$ = "*.txt, teksta faili [*.txt]"
        Case 2
            filter$ = "*.dgn, Microstation projekta faili [*.dgn]"
    End Select
    Datne
    Tips
    ’Skaņas signāls, kas liecina, ka transformācija ir pabeigta
    Beep
End Sub

Literatūras saraksts


1.      Christopher B. Jones Geographical Information Systems and Computer Cartography - Harlow: Longman, 1997 - 320 pp.
2.      MicroStation 95.Microstation BASIC Guide.
3.      Datorgrafika. Lekciju kurss
4.      Augstākā ģeodēzija. Lekciju kurss
5.      Programma ĢED. Apraksts


Nav komentāru:

Ierakstīt komentāru