lampiran f

23
Lampiran F Algoritma Tabel Kode Simbol Litologi No Kode Simbol Litologi Fungsi Litologi 1 plpl Perselingan Batupasir-Batulempung 2 glgl Batugamping-Batulempung 3 pbpb Batupasir-Breksi 4 pkpk Batupasir-Konglomerat 5 pgpg Batupasir-Batugamping 6 plp Sisipan Batupasir-Batulempung 7 lpl Batulempung-Batupasir 8 bpb Breksi-Batupasir 9 pbp Batupasir-Breksi 10 glg Batugamping-Batulempung 11 lgl Batulempung-Batugamping 12 pkp Batupasir-Konglomerat 13 kpk Konglomerat-Batupasir 14 pb Dua litologi mempunyai kedudukan Batupasir-Breksi 15 bp Breksi-Batupasir 16 pl Batupasir-Batulempung 17 lp Batulempung-Batupasir 18 gl Batugamping-Batulempung 19 lg Batulempung-Batugamping 20 pg Batupasir-Batugamping 21 gp Batugamping-Batupasir 22 pk Batupasir-Konglomerat 23 kp Konglomerat-Batupasir 24 pbm Dua litologi tidak mempunyai kedudukan Batupasir-Breksi 25 bpm Breksi-Batupasir 26 plm Batupasir-Batulempung 27 lpm Batulempung-Batupasir 28 glm Batugamping-Batulempung 29 lgm Batulempung-Batugamping 30 pgm Batupasir-Batugamping 31 gpm Batugamping-Batupasir 32 pkm Batupasir-Konglomerat 33 kpm Konglomerat-Batupasir 34 pp Satulitologi Berlapis Batupasir 35 bb Breksi 36 gg Batugamping 37 kk Konglomerat 38 ll Batulempung

Upload: okky-warman

Post on 10-Dec-2015

28 views

Category:

Documents


1 download

DESCRIPTION

tutorial litologi

TRANSCRIPT

Lampiran F Algoritma

Tabel Kode Simbol Litologi

No

Kode

Simbol

Litologi

Fungsi Litologi

1 plpl

Per

seli

ng

an Batupasir-Batulempung

2 glgl Batugamping-Batulempung

3 pbpb Batupasir-Breksi

4 pkpk Batupasir-Konglomerat

5 pgpg Batupasir-Batugamping

6 plp

Sis

ipan

Batupasir-Batulempung

7 lpl Batulempung-Batupasir

8 bpb Breksi-Batupasir

9 pbp Batupasir-Breksi

10 glg Batugamping-Batulempung

11 lgl Batulempung-Batugamping

12 pkp Batupasir-Konglomerat

13 kpk Konglomerat-Batupasir

14 pb

Dua

lito

logi

mem

punyai

ked

udukan

Batupasir-Breksi

15 bp Breksi-Batupasir

16 pl Batupasir-Batulempung

17 lp Batulempung-Batupasir

18 gl Batugamping-Batulempung

19 lg Batulempung-Batugamping

20 pg Batupasir-Batugamping

21 gp Batugamping-Batupasir

22 pk Batupasir-Konglomerat

23 kp Konglomerat-Batupasir

24 pbm

Du

a li

tolo

gi

tidak

mem

punyai

ked

udukan

Batupasir-Breksi

25 bpm Breksi-Batupasir

26 plm Batupasir-Batulempung

27 lpm Batulempung-Batupasir

28 glm Batugamping-Batulempung

29 lgm Batulempung-Batugamping

30 pgm Batupasir-Batugamping

31 gpm Batugamping-Batupasir

32 pkm Batupasir-Konglomerat

33 kpm Konglomerat-Batupasir

34 pp

Sat

uli

tolo

gi

Ber

lap

is

Batupasir

35 bb Breksi

36 gg Batugamping

37 kk Konglomerat

38 ll Batulempung

Lampiran F Algoritma

No

Kode

Simbol

Litologi

Fungsi Litologi

39 p

Sat

uli

tolo

gi

mas

if

Batupasir

40 b Breksi

41 g Batugamping

42 k Konglomerat

43 l Batulempung

44 f Filit

45 gn Gneiss

46 al Aluvial

47 la Lanau

48 lv Lava

49 di Diorit

Contoh Format Database Peta Lintasan:

Catatan : Untuk menjalankan program, kolom yang ditandai dengan warna kuning wajib diisi

dengan posisi kolom dan baris awal sesuai database diatas. Selebihnya boleh tidak

diisi.

Lampiran F Algoritma

Daftar Simbol Litologi

Lampiran F Algoritma

Algoritma pembuatan peta lintasan:

Dim ExcelApp As Object

Dim ms As AcadModelSpace

Dim batu As AcadHatch

Dim pt(14) As Double

Dim kotak(0) As AcadEntity

Dim ktk(0) As AcadEntity

Dim var As Integer

Dim p, p2, p3, p4, t As Double

Function ExcelConnect()

' This function connects excel with autocad

On Error Resume Next

Set ExcelApp = GetObject(, "Excel.Application")

If Err Then

Err.Clear

Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.Visible = True

If Err Then

MsgBox Err.Description

Exit Function

End If

End If

End Function

Function ExcelClose()

' This function closes the connection between excel ana Autocad

Set ExcelApp = Nothing

End Function

Function GetCellValue(row As Integer, column As Integer) As Variant

' This function returns the value of a given cell in excel.

GetCellValue = ExcelApp.ActiveSheet.Cells(row, column).Value

End Function

Sub QuickExample()

Dim MyString As String 'Create string variable

Dim Point(2) As Double 'koordinat singkapan

Dim SPoint(2) As Double 'koordinat ujung garis strike

Dim EPoint(2) As Double 'koordinat ujung garis strike2

Dim DPoint(2) As Double 'koordinat ujung garis dip

Dim TextHeight As Double 'tinggi huruf

Dim Strike As Integer

Dim DIP As Integer

Dim Pjng As Integer 'panjang garis strike

Dim z As Integer

Dim o(2) As Double 'koordinat angka dip

Dim C As String

Dim circlea As AcadCircle

Dim w As Double

Dim simlit As String

Dim kolok As String

Dim tampil As String

w = 30

Pjng = 125

Point(2) = 0

TextHeight = 20

For z = 3 To 194 Step 1

Lampiran F Algoritma

Call ExcelToAcad(Point(), Strike, z, DIP, C, simlit, kolok, tampil) 'nginput data dari

excel

If Not tampil = "x" Then

If C = "v" Then

Call kodelokasi(Point(), kolok) 'bikin kodelokasi

Call GetCoord(Point(), Strike, Pjng, SPoint(), EPoint(), DPoint()) 'ngitung koordinat

garis-garis kedudukan

Call simbolbatu(EPoint(), SPoint(), Strike, C, Point(), simlit) 'gambar simbol litologi

Dim lineObj As AcadLine

Set lineObj = ThisDrawing.ModelSpace.AddLine(SPoint, EPoint)

lineObj.Lineweight = acLnWt025 'tebal garis

Set lineObj = ThisDrawing.ModelSpace.AddLine(Point, DPoint)

lineObj.Lineweight = acLnWt025

If (Strike > 90) And (Strike < 180) Then

o(0) = DPoint(0) - 20

o(1) = DPoint(1) - 30

ThisDrawing.ModelSpace.AddText DIP, o, TextHeight

Else

ThisDrawing.ModelSpace.AddText DIP, DPoint, TextHeight

End If

ElseIf C = "x" Then

Call kodelokasi(Point(), kolok)

Call simbolbatu(EPoint(), SPoint(), Strike, C, Point(), simlit)

End If

End If

Next

End Sub

Sub ExcelToAcad(A() As Double, S As Integer, z As Integer, D As Integer, x As String, lit As

String, kod As String, tampil As String)

ExcelConnect

x = GetCellValue(z, 9)

A(0) = GetCellValue(z, 4) ' Ax

A(1) = GetCellValue(z, 5) ' Ay

lit = GetCellValue(z, 11)

kod = GetCellValue(z, 3)

tampil = GetCellValue(z, 13)

If x = "v" Then

S = GetCellValue(z, 7)

D = GetCellValue(z, 8)

End If

' Closing the excel-autocad link

ExcelClose

End Sub

Sub GetCoord(TtkPus() As Double, STRnya, Pjn, SS() As Double, ES() As Double, DIP() As Double)

Dim Phi As Single

Phi = 22 / 7

Dim DumSP(2) As Double

Dim SdtRad As Single

SdtRad = (90 - STRnya) * Phi / 180

'x’ = xr + (x – xr) cos a – (y – yr) sin a

'y’ = yr + (y – yr) cos a + (x – xr) sin a

DumSP(0) = TtkPus(0) - Pjn * 0.5: DumSP(1) = TtkPus(1): DumSP(2) = TtkPus(2)

SS(0) = TtkPus(0) + ((DumSP(0) - TtkPus(0)) * Cos(SdtRad)) - ((DumSP(1) - TtkPus(1)) *

Sin(SdtRad))

SS(1) = TtkPus(1) + ((DumSP(1) - TtkPus(1)) * Cos(SdtRad)) + ((DumSP(0) - TtkPus(0)) *

Sin(SdtRad))

SS(2) = 0

Lampiran F Algoritma

ES(0) = TtkPus(0) - (((DumSP(0) - TtkPus(0)) * Cos(SdtRad)) - ((DumSP(1) - TtkPus(1)) *

Sin(SdtRad)))

ES(1) = TtkPus(1) - (((DumSP(1) - TtkPus(1)) * Cos(SdtRad)) + ((DumSP(0) - TtkPus(0)) *

Sin(SdtRad)))

ES(2) = 0

DumSP(0) = TtkPus(0) - Pjn * 0.3: DumSP(1) = TtkPus(1): DumSP(2) = TtkPus(2)

DIP(0) = TtkPus(0) + (((DumSP(0) - TtkPus(0)) * Cos(SdtRad + Phi / 2)) - ((DumSP(1) -

TtkPus(1)) * Sin(SdtRad + Phi / 2)))

DIP(1) = TtkPus(1) + (((DumSP(1) - TtkPus(1)) * Cos(SdtRad + Phi / 2)) + ((DumSP(0) -

TtkPus(0)) * Sin(SdtRad + Phi / 2)))

DIP(2) = 0

End Sub

Sub simbolbatu(kn() As Double, kr() As Double, jurus As Integer, cekdip As String, pusat() As

Double, simb As String)

If simb = "plpl" Then

dualitperselingan pusat(), kn(), kr(), jurus, acYellow, acGreen, "dots", "dash", 200, 50

ElseIf simb = "glgl" Then

dualitperselingan pusat(), kn(), kr(), jurus, acBlue, acCyan, "brick", "dash", 75, 100

ElseIf simb = "pbpb" Then

dualitperselingan pusat(), kn(), kr(), jurus, acYellow, 30, "dots", "triang", 200, 75

ElseIf simb = "pkpk" Then

dualitperselingan pusat(), kn(), kr(), jurus, acYellow, 32, "dots", "gravel", 200, 75

ElseIf simb = "pgpg" Then

dualitperselingan pusat(), kn(), kr(), jurus, acYellow, acBlue, "dots", "brick", 200, 75

ElseIf simb = "plp" Then

dualitsisipan pusat(), kn(), kr(), jurus, acYellow, acGreen, "dots", "dash", 200, 50

ElseIf simb = "lpl" Then

dualitsisipan pusat(), kn(), kr(), jurus, acGreen, acYellow, "dash", "dots", 75, 100

ElseIf simb = "bpb" Then

dualitsisipan pusat(), kn(), kr(), jurus, 30, acYellow, "triang", "dots", 37.5, 100

ElseIf simb = "pbp" Then

dualitsisipan pusat(), kn(), kr(), jurus, acYellow, 30, "dots", "triang", 100, 37.5

ElseIf simb = "glg" Then

dualitsisipan pusat(), kn(), kr(), jurus, acBlue, acGreen, "brick", "dash", 75, 100

ElseIf simb = "lgl" Then

dualitsisipan pusat(), kn(), kr(), jurus, acGreen, acBlue, "dash", "brick", 100, 75

ElseIf simb = "pkp" Then

dualitsisipan pusat(), kn(), kr(), jurus, acYellow, 32, "dots", "gravel", 200, 75

ElseIf simb = "kpk" Then

dualitsisipan pusat(), kn(), kr(), jurus, 32, acYellow, "gravel", "dots", 75, 200

ElseIf simb = "pb" Then

dualit pusat(), kn(), kr(), jurus, acYellow, 30, "dots", "triang", 200, 50

ElseIf simb = "bp" Then

dualit pusat(), kn(), kr(), jurus, 30, acYellow, "triang", "dots", 50, 200

ElseIf simb = "pl" Then

dualit pusat(), kn(), kr(), jurus, acYellow, acGreen, "dots", "dash", 200, 100

ElseIf simb = "lp" Then

dualit pusat(), kn(), kr(), jurus, acGreen, acYellow, "dash", "dots", 100, 200

Lampiran F Algoritma

ElseIf simb = "pg" Then

dualit pusat(), kn(), kr(), jurus, acYellow, acGreen, "dots", "brick", 200, 75

ElseIf simb = "gp" Then

dualit pusat(), kn(), kr(), jurus, acGreen, acYellow, "brick", "dots", 75, 200

ElseIf simb = "pk" Then

dualit pusat(), kn(), kr(), jurus, acYellow, 32, "dots", "gravel", 200, 50

ElseIf simb = "kp" Then

dualit pusat(), kn(), kr(), jurus, 32, acYellow, gravel, "dots", 50, 200

ElseIf simb = "pbm" Then

dualitmasif pusat(), kn(), kr(), jurus, acYellow, 30, "dots", "triang", 200, 50

ElseIf simb = "bpm" Then

dualitmasif pusat(), kn(), kr(), jurus, 30, acYellow, "triang", "dots", 50, 200

ElseIf simb = "plm" Then

dualitmasif pusat(), kn(), kr(), jurus, acYellow, acGreen, "dots", "dash", 200, 100

ElseIf simb = "lpm" Then

dualitmasif pusat(), kn(), kr(), jurus, acGreen, acYellow, "dash", "dots", 100, 200

ElseIf simb = "pgm" Then

dualitmasif pusat(), kn(), kr(), jurus, acYellow, acGreen, "dots", "brick", 200, 75

ElseIf simb = "gpm" Then

dualitmasif pusat(), kn(), kr(), jurus, acGreen, acYellow, "brick", "dots", 75, 200

ElseIf simb = "pkm" Then

dualitmasif pusat(), kn(), kr(), jurus, acYellow, 32, "dots", "gravel", 200, 50

ElseIf simb = "kpm" Then

dualitmasif pusat(), kn(), kr(), jurus, 32, acYellow, gravel, "dots", 50, 200

ElseIf simb = "pp" Then

dualitberlapis pusat(), kn(), kr(), jurus, acYellow, "dots", 200

ElseIf simb = "gg" Then

dualitberlapis pusat(), kn(), kr(), jurus, acBlue, "brick", 75

ElseIf simb = "bb" Then

dualitberlapis pusat(), kn(), kr(), jurus, 30, "triang", 75

ElseIf simb = "kk" Then

dualitberlapis pusat(), kn(), kr(), jurus, 32, "gravel", 50

ElseIf simb = "ll" Then

dualitberlapis pusat(), kn(), kr(), jurus, acGreen, "dash", 100

ElseIf simb = "p" Then

satulit pusat(), kn(), kr(), acYellow, "dots", 200

ElseIf simb = "b" Then

satulit pusat(), kn(), kr(), 30, "triang", 100

ElseIf simb = "l" Then

satulit pusat(), kn(), kr(), acGreen, "dash", 100

ElseIf simb = "g" Then

satulit pusat(), kn(), kr(), acBlue, "brick", 75

ElseIf simb = "k" Then

satulit pusat(), kn(), kr(), 32, "gravel", 50

ElseIf simb = "f" Then

satulit pusat(), kn(), kr(), 241, "schist", 75

ElseIf simb = "gn" Then

satulit pusat(), kn(), kr(), 241, "gneiss", 1

Lampiran F Algoritma

ElseIf simb = "al" Then

satulit pusat(), kn(), kr(), 253, "gravel", 50

ElseIf simb = "la" Then

satulit pusat(), kn(), kr(), acGreen, "mudst", 100

ElseIf simb = "lv" Then

satulit pusat(), kn(), kr(), acRed, "clayst", 100

ElseIf simb = "di" Then

satulit pusat(), kn(), kr(), acRed, "diorit", 100

ElseIf simb = "kbl" Then

dualit pusat(), kn(), kr(), jurus, acGreen, 20, "dash", "triang", 75, 75

ElseIf simb = "plbpl" Then

litabcab pusat(), kn(), kr(), jurus, acYellow, acGreen, 13, "dots", "dash", "triang", 50, 50,

25

ElseIf simb = "pbm" Then

dualitmasif pusat(), kn(), kr(), jurus, acYellow, 13, "dots", "triang", 200, 50

ElseIf simb = "bplpb" Then

litabcba pusat(), kn(), kr(), jurus, 13, acYellow, acGreen, "triang", "dots", "dash", 25, 200,

50

ElseIf simb = "plpb" Then

litabcab pusat(), kn(), kr(), jurus, acYellow, acGreen, 13, "dots", "dash", "triang", 200, 50,

25

End If

End Sub

Sub kodelokasi(A() As Double, klok As String)

Dim B(2) As Double

Dim C(2) As Double

Dim D(2) As Double

Dim E(2) As Double

Dim F(2) As Double

Dim radius As Double

Dim panjang As Double

Dim garis As AcadLine

Dim ling As AcadCircle

Dim g(8) As Double

Dim wrn(1) As AcadEntity

panjang = 350

radius = 55

B(0) = A(0) - panjang: B(1) = A(1)

C(0) = B(0) + radius: C(1) = B(1)

D(0) = B(0) + 19: D(1) = B(1) + 5

E(0) = C(0) - (radius * Cos(22 / 7 * (1 / 3))): E(1) = C(1) - (radius * Sin(22 / 7 * (1 / 3)))

F(0) = C(0) + (radius * Cos(22 / 7 * (1 / 3))): F(1) = C(1) - (radius * Sin(22 / 7 * (1 / 3)))

g(0) = B(0): g(1) = B(1): g(2) = 0

g(3) = C(0): g(4) = C(1): g(5) = 0

g(6) = E(0): g(7) = E(1): g(8) = 0

Set garis = ThisDrawing.ModelSpace.AddLine(A(), B())

Set ling = ThisDrawing.ModelSpace.AddCircle(C(), radius)

ThisDrawing.ModelSpace.AddLine C(), E()

ThisDrawing.ModelSpace.AddLine C(), F()

ThisDrawing.ModelSpace.AddText klok, D(), 20

End Sub

Function hatchwarnakotak(warna As Integer, pt() As Double)

Lampiran F Algoritma

Set kotak(0) = ThisDrawing.ModelSpace.AddPolyline(pt)

Set batu = ThisDrawing.ModelSpace.AddHatch(acHatchPatternTypePreDefined, "solid", True)

batu.AppendOuterLoop (kotak)

kotak(0).Delete

batu.Color = warna

batu.Evaluate

batu.Update

End Function

Function hatchpolakotaksatu(pola As String, skalapola As Integer, pt() As Double)

Set kotak(0) = ThisDrawing.ModelSpace.AddPolyline(pt)

Set batu = ThisDrawing.ModelSpace.AddHatch(acHatchPatternTypePreDefined, pola, True)

batu.AppendOuterLoop (kotak)

kotak(0).Delete

batu.Color = warna

batu.PatternScale = skalapola

batu.Evaluate

batu.Update

End Function

Function hatchpolakotak(pola As String, skalapola As Integer, jurus As Integer, pt() As Double)

Set kotak(0) = ThisDrawing.ModelSpace.AddPolyline(pt)

Set batu = ThisDrawing.ModelSpace.AddHatch(acHatchPatternTypePreDefined, pola, True)

batu.AppendOuterLoop (kotak)

kotak(0).Delete

batu.Color = warna

batu.PatternScale = skalapola

batu.PatternAngle = (90 - jurus) * (22 / 7) / 180

batu.Evaluate

batu.Update

End Function

Function satulit(pusat() As Double, kn() As Double, kr() As Double, warna As Integer, pola As

String, skalapola As Integer)

p = 12.5

p2 = 25

p3 = 37.5

p4 = 62.5

t = 35

t2 = 25

pt(0) = pusat(0) - p4: pt(1) = pusat(1) - t: pt(2) = 0

pt(3) = pusat(0) + p4: pt(4) = pusat(1) - t: pt(5) = 0

pt(6) = pusat(0) + p4: pt(7) = pusat(1) + t: pt(8) = 0

pt(9) = pusat(0) - p4: pt(10) = pusat(1) + t: pt(11) = 0

pt(12) = pusat(0) - p4: pt(13) = pusat(1) - t: pt(14) = 0

hatchwarnakotak warna, pt()

hatchpolakotaksatu pola, skalapola, pt()

End Function

Function dualitperselingan(pusat() As Double, kn() As Double, kr() As Double, jurus As Integer,

warnasatu As Integer, warnadua As Integer, polasatu As String, poladua As String, skalapolasatu

As Integer, skalapoladua As Integer)

p = 17.5

p2 = 25

p3 = 37.5

p4 = 62.5

t = 25

t2 = 25

For var = 0 To 3 Step 1

pt(0) = kr(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(1) = kr(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(2) = 0

pt(3) = kn(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(4) = kn(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(5) = 0

pt(6) = kn(0) - (p * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(7) = kn(1) + (p * (var

+ 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(8) = 0

pt(9) = kr(0) - (p * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(10) = kr(1) + (p *

(var + 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(11) = 0

pt(12) = kr(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(13) = kr(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(14) = 0

If var = 0 Or var = 2 Then

hatchwarnakotak warnasatu, pt()

hatchpolakotak polasatu, skalapolasatu, jurus, pt()

ElseIf var = 1 Or var = 3 Then

Lampiran F Algoritma

hatchwarnakotak warnadua, pt()

hatchpolakotak poladua, skalapoladua, jurus, pt()

End If

Next

End Function

Function dualitberlapis(pusat() As Double, kn() As Double, kr() As Double, jurus As Integer,

warna As Integer, pola As String, skalapola As Integer)

p = 12.5

p2 = 40

p3 = 37.5

p4 = 62.5

t = 25

t2 = 25

For var = 0 To 1 Step 1

pt(0) = kr(0) - (p2 * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(1) = kr(1) + (p2 * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(2) = 0

pt(3) = kn(0) - (p2 * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(4) = kn(1) + (p2 * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(5) = 0

pt(6) = kn(0) - (p2 * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(7) = kn(1) + (p2 *

(var + 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(8) = 0

pt(9) = kr(0) - (p2 * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(10) = kr(1) + (p2 *

(var + 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(11) = 0

pt(12) = kr(0) - (p2 * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(13) = kr(1) + (p2 * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(14) = 0

hatchwarnakotak warna, pt()

hatchpolakotak pola, skalapola, jurus, pt()

Next

End Function

Function dualitsisipan(pusat() As Double, kn() As Double, kr() As Double, jurus As Integer,

warnasatu As Integer, warnadua As Integer, polasatu As String, poladua As String, skalapolasatu

As Integer, skalapoladua As Integer)

p = 25

For var = 0 To 3 Step 1

pt(0) = kr(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(1) = kr(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(2) = 0

pt(3) = kn(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(4) = kn(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(5) = 0

pt(6) = kn(0) - (p * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(7) = kn(1) + (p * (var

+ 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(8) = 0

pt(9) = kr(0) - (p * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(10) = kr(1) + (p *

(var + 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(11) = 0

pt(12) = kr(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(13) = kr(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(14) = 0

If var = 0 Or var = 2 Then

hatchwarnakotak warnasatu, pt()

hatchpolakotak polasatu, skalapolasatu, jurus, pt()

ElseIf var = 1 Then

hatchwarnakotak warnadua, pt()

hatchpolakotak poladua, skalapoladua, jurus, pt()

End If

Next

End Function

Function dualit(pusat() As Double, kn() As Double, kr() As Double, jurus As Integer, warnasatu

As Integer, warnadua As Integer, polasatu As String, poladua As String, skalapolasatu As Integer,

skalapoladua As Integer)

p = 12.5

p2 = 40

p3 = 37.5

p4 = 62.5

t = 25

t2 = 25

For var = 0 To 1 Step 1

pt(0) = kr(0) - (p2 * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(1) = kr(1) + (p2 * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(2) = 0

pt(3) = kn(0) - (p2 * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(4) = kn(1) + (p2 * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(5) = 0

pt(6) = kn(0) - (p2 * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(7) = kn(1) + (p2 *

(var + 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(8) = 0

Lampiran F Algoritma

pt(9) = kr(0) - (p2 * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(10) = kr(1) + (p2 *

(var + 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(11) = 0

pt(12) = kr(0) - (p2 * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(13) = kr(1) + (p2 * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(14) = 0

If var = 0 Then

hatchwarnakotak warnasatu, pt()

hatchpolakotak polasatu, skalapolasatu, jurus, pt()

ElseIf var = 1 Then

hatchwarnakotak warnadua, pt()

hatchpolakotak poladua, skalapoladua, jurus, pt()

End If

Next

End Function

Function dualitmasif(pusat() As Double, kn() As Double, kr() As Double, jurus As Integer,

warnasatu As Integer, warnadua As Integer, polasatu As String, poladua As String, skalapolasatu

As Integer, skalapoladua As Integer)

p = 12.5

p2 = 25

p3 = 37.5

p4 = 62.5

t = 25

t2 = 40

pt(0) = pusat(0) - p4: pt(1) = pusat(1): pt(2) = 0

pt(3) = pusat(0) + p4: pt(4) = pusat(1): pt(5) = 0

pt(6) = pusat(0) + p4: pt(7) = pusat(1) + t2: pt(8) = 0

pt(9) = pusat(0) - p4: pt(10) = pusat(1) + t2: pt(11) = 0

pt(12) = pusat(0) - p4: pt(13) = pusat(1): pt(14) = 0

hatchwarnakotak warnasatu, pt()

hatchpolakotaksatu polasatu, skalapolasatu, pt()

pt(0) = pusat(0) - p4: pt(1) = pusat(1): pt(2) = 0

pt(3) = pusat(0) + p4: pt(4) = pusat(1): pt(5) = 0

pt(6) = pusat(0) + p4: pt(7) = pusat(1) - t2: pt(8) = 0

pt(9) = pusat(0) - p4: pt(10) = pusat(1) - t2: pt(11) = 0

pt(12) = pusat(0) - p4: pt(13) = pusat(1): pt(14) = 0

hatchwarnakotak warnadua, pt()

hatchpolakotaksatu poladua, skalapoladua, pt()

End Function

Function litabcab(pusat() As Double, kn() As Double, kr() As Double, jurus As Integer, warnasatu

As Integer, warnadua As Integer, warnatiga As Integer, polasatu As String, poladua As String,

polatiga As String, skalapolasatu As Integer, skalapoladua As Integer, skalapolatiga As Integer)

p = 20

p2 = 25

p3 = 37.5

p4 = 62.5

t = 25

t2 = 25

For var = 0 To 4 Step 1

pt(0) = kr(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(1) = kr(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(2) = 0

pt(3) = kn(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(4) = kn(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(5) = 0

pt(6) = kn(0) - (p * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(7) = kn(1) + (p * (var

+ 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(8) = 0

pt(9) = kr(0) - (p * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(10) = kr(1) + (p *

(var + 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(11) = 0

pt(12) = kr(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(13) = kr(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(14) = 0

If var = 0 Or var = 3 Then

hatchwarnakotak warnasatu, pt()

hatchpolakotak polasatu, skalapolasatu, jurus, pt()

ElseIf var = 2 Then

hatchwarnakotak warnatiga, pt()

hatchpolakotak polatiga, skalapolatiga, jurus, pt()

ElseIf var = 1 Or var = 4 Then

hatchwarnakotak warnadua, pt()

hatchpolakotak poladua, skalapoladua, jurus, pt()

End If

Next

End Function

Lampiran F Algoritma

Function litabcba(pusat() As Double, kn() As Double, kr() As Double, jurus As Integer, warnasatu

As Integer, warnadua As Integer, warnatiga As Integer, polasatu As String, poladua As String,

polatiga As String, skalapolasatu As Integer, skalapoladua As Integer, skalapolatiga As Integer)

p = 12.5

p2 = 25

p3 = 37.5

p4 = 62.5

t = 25

t2 = 25

For var = 0 To 4 Step 1

pt(0) = kr(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(1) = kr(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(2) = 0

pt(3) = kn(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(4) = kn(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(5) = 0

pt(6) = kn(0) - (p * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(7) = kn(1) + (p * (var

+ 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(8) = 0

pt(9) = kr(0) - (p * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(10) = kr(1) + (p *

(var + 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(11) = 0

pt(12) = kr(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(13) = kr(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(14) = 0

If var = 0 Or var = 4 Then

hatchwarnakotak warnasatu, pt()

hatchpolakotak polasatu, skalapolasatu, jurus, pt()

ElseIf var = 2 Then

hatchwarnakotak warnatiga, pt()

hatchpolakotak polatiga, skalapolatiga, jurus, pt()

ElseIf var = 1 Or var = 3 Then

hatchwarnakotak warnadua, pt()

hatchpolakotak poladua, skalapoladua, jurus, pt()

End If

Next

End Function

Function liatabac(pusat() As Double, kn() As Double, kr() As Double, jurus As Integer, warnasatu

As Integer, warnadua As Integer, warnatiga As Integer, polasatu As String, poladua As String,

polatiga As String, skalapolasatu As Integer, skalapoladua As Integer, skalapolatiga As Integer)

p = 12.5

p2 = 25

p3 = 37.5

p4 = 62.5

t = 25

t2 = 25

For var = 0 To 4 Step 1

pt(0) = kr(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(1) = kr(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(2) = 0

pt(3) = kn(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(4) = kn(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(5) = 0

pt(6) = kn(0) - (p * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(7) = kn(1) + (p * (var

+ 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(8) = 0

pt(9) = kr(0) - (p * (var + 1) * Sin((90 - jurus) * (22 / 7 / 180))): pt(10) = kr(1) + (p *

(var + 1) * Cos((90 - jurus) * (22 / 7 / 180))): pt(11) = 0

pt(12) = kr(0) - (p * var * Sin((90 - jurus) * (22 / 7 / 180))): pt(13) = kr(1) + (p * var *

Cos((90 - jurus) * (22 / 7 / 180))): pt(14) = 0

If var = 0 Or var = 2 Then

hatchwarnakotak warnasatu, pt()

hatchpolakotak polasatu, skalapolasatu, jurus, pt()

ElseIf var = 1 Then

hatchwarnakotak warnadua, pt()

hatchpolakotak poladua, skalapoladua, jurus, pt()

ElseIf var = 3 Then

hatchwarnakotak warnatiga, pt()

hatchpolakotak polatiga, skalapolatiga, jurus, pt()

End If

Next

End Function

Lampiran F Algoritma

Contoh format database perhitungan ketebalan:

Lampiran F Algoritma

Algoritma perhitungan ketebalan:

Dim ExcelApp As Object

Dim ms As AcadModelSpace

Dim kotak(0) As AcadEntity

Dim batu As AcadHatch

Function ExcelConnect()

' This function connects excel with autocad

On Error Resume Next

Set ExcelApp = GetObject(, "Excel.Application")

If Err Then

Err.Clear

Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.Visible = True

If Err Then

MsgBox Err.Description

Exit Function

End If

End If

End Function

Function ExcelClose()

' This function closes the connection between excel ana Autocad

Set ExcelApp = Nothing

End Function

Function GetCellValue(row As Integer, column As Integer) As Variant

' This function returns the value of a given cell in excel.

GetCellValue = ExcelApp.ActiveSheet.Cells(row, column).Value

End Function

Sub kolom()

Dim beta As Double 'sudut antara strike dan bearing

Dim jarak As Double

Dim sdtbr As Double

Dim alpha As Double 'sudut antara 0 dan bearing

Dim tebal As Double

Dim t1 As Double

Dim t2 As Double

Dim phi As Double

Dim a As Integer

Dim strike As Double

Dim dip As Double

Dim x(2) As Double

Dim y(2) As Double

Dim z(2) As Double

Dim dx As Double

Dim dy As Double

Dim dz As Double

Dim dxperdy As Double

Dim pos1(2) As Double

Dim pos2(2) As Double

Dim pos3(2) As Double

Dim pos4(2) As Double

Dim kolok As String

Dim kode(2) As String

Dim warna As Integer

Dim tb(2) As Double

Dim thc As Double

Dim hubungan As String

Dim m As Double

Dim n As Double

Dim jumdat As Integer

ExcelConnect

jumdat = GetCellValue(1, 2)

ExcelClose

jumdat = jumdat + 2

Lampiran F Algoritma

m = 1

n = 100

pos3(0) = 0: pos3(1) = 0: pos3(2) = 0

For a = 4 To jumdat Step 1

Call ExcelToAcad(a, x(), y(), z(), strike, dip, kolok)

dx = x(1) - x(0)

dy = y(1) - y(0)

jarak = ((dx ^ 2) + (dy ^ 2)) ^ 0.5

phi = (22 / 7) / 180

dxperdy = (dy / dx)

alpha = Atn(dxperdy)

sdtbr = alpha - ((90 - strike) * phi)

t1 = jarak * Sin(sdtbr) * Sin(dip * phi)

dz = z(1) - z(0)

t2 = dz * Cos(dip * phi)

tebal = (t1 + t2) * m

pos1(0) = pos3(0): pos1(1) = pos3(1): pos1(2) = 0

pos2(0) = pos1(0): pos2(1) = pos1(1) + tebal: pos2(2) = 0

pos4(0) = pos1(0) + n: pos4(1) = pos1(1)

Call bikinskala(pos1, pos2, tebal, kolok)

ThisDrawing.ModelSpace.AddLine pos1, pos2

ThisDrawing.ModelSpace.AddLine pos1, pos4

'Call gambarlito(thc, tb(), pos3(0), pos3(1), hubungan, kode())

ThisDrawing.ModelSpace.AddText kolok, pos4, 12

pos3(0) = pos2(0): pos3(1) = pos2(1): pos3(2) = 0

Next

ExcelConnect

kolok = GetCellValue(a, 1)

ExcelClose

pos4(0) = pos3(0) + n: pos4(1) = pos3(1)

ThisDrawing.ModelSpace.AddLine pos3, pos4

ThisDrawing.ModelSpace.AddText kolok, pos4, 12

End Sub

Function bikinskala(pos1() As Double, pos2() As Double, tebal As Double, kode As String)

Dim p(2) As Double

Dim q(2) As Double

Dim r(2) As Double

Dim s(2) As Double

Dim t(2) As Double

Dim u(2) As Double

Dim v(2) As Double

Dim w(2) As Double

Dim o As Integer

Dim h As Double

Dim i As Double

o = Abs(tebal)

h = 10

i = 10

p(0) = pos1(0) - h: p(1) = pos1(1): p(2) = 0

q(0) = p(0) - i: q(1) = p(1): q(2) = 0

r(0) = q(0) + (i / 2): r(1) = q(1): r(2) = 0

t(0) = pos2(0) - h: t(1) = pos2(1): t(2) = 0

u(0) = t(0) - i: u(1) = t(1): u(2) = 0

s(0) = u(0) + (i / 2): s(1) = t(1): s(2) = 0

ThisDrawing.ModelSpace.AddLine p, q

ThisDrawing.ModelSpace.AddLine r, s

ThisDrawing.ModelSpace.AddLine t, u

v(0) = q(0) - 50: v(1) = p(1) + (tebal / 2): v(2) = 0

w(0) = v(0) + 30: w(1) = v(1): w(2) = 0

ThisDrawing.ModelSpace.AddText o, v, 12

Lampiran F Algoritma

ThisDrawing.ModelSpace.AddText "m", w, 12

End Function

Sub ExcelToAcad(z As Integer, b() As Double, c() As Double, d() As Double, str As Double, dp

As Double, klk As String)

' declaration of variables

Dim r As Integer

Dim p As Integer

Dim q As Integer

ExcelConnect

b(0) = GetCellValue(z, 2)

b(1) = GetCellValue(z + 1, 2)

c(0) = GetCellValue(z, 3)

c(1) = GetCellValue(z + 1, 3)

d(0) = GetCellValue(z, 4)

d(1) = GetCellValue(z + 1, 4)

str = GetCellValue(z, 5)

dp = GetCellValue(z, 6)

klk = GetCellValue(z, 1)

' Closing the excel-autocad link

ExcelClose

End Sub

Function bikinkotak(x As Double, krx As Double, kry As Double, warna As Integer, pola As

String)

Dim pt(14) As Double

pt(0) = krx: pt(1) = kry: pt(2) = 0

pt(3) = krx + 500: pt(4) = kry: pt(5) = 0

pt(6) = krx + 500: pt(7) = kry + x: pt(8) = 0

pt(9) = krx: pt(10) = kry + x: pt(11) = 0

pt(12) = krx: pt(13) = kry: pt(14) = 0

Set kotak(0) = ThisDrawing.ModelSpace.AddPolyline(pt)

Set batu = ThisDrawing.ModelSpace.AddHatch(acHatchPatternTypePreDefined, "solid", True)

batu.AppendOuterLoop (kotak)

batu.Color = warna

batu.Evaluate

batu.Update

End Function

Lampiran F Algoritma

Contoh format database penggambaran profil stratigrafi:

Tabel kode simbol litologi dalam pembuatan profil:

Litologi kode

Batupasir ss

batulempung cl

breksi bx

batugamping cal

Tabel kode ukuran butir:

ukuran butir kode

lempung cl

lanau st

pasir s.halus vfs

pasir halus fs

pasir sedang ms

pasir kasar cs

pasir sangat kasar vcs

kerikil gr

kerakal pb

berangkal cb

bongkah bl

Lampiran F Algoritma

Algoritma penggambaran profil stratigrafi:

Dim ExcelApp As Object

Dim ms As AcadModelSpace

Dim kotak(0) As AcadEntity

Dim batu As AcadHatch

Function ExcelConnect()

' This function connects excel with autocad

On Error Resume Next

Set ExcelApp = GetObject(, "Excel.Application")

If Err Then

Err.Clear

Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.Visible = True

If Err Then

MsgBox Err.Description

Exit Function

End If

End If

End Function

Function ExcelClose()

' This function closes the connection between excel ana Autocad

Set ExcelApp = Nothing

End Function

Function GetCellValue(row As Integer, column As Integer) As Variant

' This function returns the value of a given cell in excel.

GetCellValue = ExcelApp.ActiveSheet.Cells(row, column).Value

End Function

Sub profil()

Dim tebal As Double

Dim umin As String

Dim umax As String

Dim bmin As Double

Dim bmax As Double

Dim litologi As String

Dim kodelokasi As String

Dim krx As Double

Dim kry As Double

Dim ptr As String

Dim clr As Integer

Dim awal As Double

Dim jumdat As Integer

ExcelConnect

jumdat = GetCellValue(2, 2) + 4

ExcelClose

krx = 0: kry = 0

awal = kry

Dim a As Integer

For a = 5 To jumdat

Call ExcelToAcad(a, tebal, umin, umax, litologi, kodelokasi)

Call kbtr(umin, umax, bmin, bmax)

Call simbol(litologi, clr, ptr)

Call gambar(tebal, bmin, bmax, krx, kry, clr, ptr)

Next

bikintabel krx, kry, awal, kodelokasi

End Sub

Sub ExcelToAcad(z As Integer, t As Double, min As String, max As String, lito As String, kolok

As String)

ExcelConnect

t = GetCellValue(z, 1)

min = GetCellValue(z, 3)

max = GetCellValue(z, 4)

lito = GetCellValue(z, 2)

Lampiran F Algoritma

kolok = GetCellValue(1, 2)

' Closing the excel-autocad link

ExcelClose

End Sub

Sub kbtr(imin As String, imax As String, omin As Double, omax As Double)

Dim m As Integer

Dim n As Integer

m = 7

n = 7

If imin = "cl" Then

omin = (0 * m) + n

ElseIf imin = "st" Then

omin = (1 * m) + n

ElseIf imin = "vfs" Then

omin = (2 * m) + n

ElseIf imin = "fs" Then

omin = (2.5 * m) + n

ElseIf imin = "ms" Then

omin = (3 * m) + n

ElseIf imin = "cs" Then

omin = (3.5 * m) + n

ElseIf imin = "vcs" Then

omin = (4 * m) + n

ElseIf imin = "gr" Then

omin = (5 * m) + n

ElseIf imin = "pb" Then

omin = (6 * m) + n

ElseIf imin = "cb" Then

omin = (7 * m) + n

ElseIf imin = "bl" Then

omin = (8 * m) + n

End If

If imax = "cl" Then

omax = (0 * m) + n

ElseIf imax = "st" Then

omax = (1 * m) + n

ElseIf imax = "vfs" Then

omax = (2 * m) + n

ElseIf imax = "fs" Then

omax = (2.5 * m) + n

ElseIf imax = "ms" Then

omax = (3 * m) + n

ElseIf imax = "cs" Then

omax = (3.5 * m) + n

ElseIf imax = "vcs" Then

omax = (4 * m) + n

ElseIf imax = "gr" Then

omax = (5 * m) + n

ElseIf imax = "pb" Then

omax = (6 * m) + n

ElseIf imax = "cb" Then

omax = (7 * m) + n

ElseIf imax = "bl" Then

omax = (8 * m) + n

End If

End Sub

Sub gambar(tbl As Double, mn As Double, mx As Double, kx As Double, ky As Double, col As

Integer, prn As String)

Dim pt(14) As Double

Call ekspresitopo(kx, ky, mn, mx, tbl, prn, col)

pt(0) = kx: pt(1) = ky: pt(2) = 0

pt(3) = kx - mn: pt(4) = ky: pt(5) = 0

pt(6) = kx - mx: pt(7) = ky + tbl: pt(8) = 0

pt(9) = kx: pt(10) = ky + tbl: pt(11) = 0

pt(12) = kx: pt(13) = ky: pt(14) = 0

Set kotak(0) = ThisDrawing.ModelSpace.AddPolyline(pt)

ky = ky + tbl

End Sub

Function ekspresitopo(kx, ky, bt, tp, kandel, pola, warna)

Dim ps(11) As Double

Dim pm(5) As Double

Lampiran F Algoritma

Dim pn(2) As Double

Dim po(2) As Double

Dim garis(1) As AcadEntity

ps(0) = kx + bt: ps(1) = ky: ps(2) = 0

ps(3) = kx: ps(4) = ky: ps(5) = 0

ps(6) = kx: ps(7) = ky + kandel: ps(8) = 0

ps(9) = kx + tp: ps(10) = ky + kandel: ps(11) = 0

pm(0) = ps(0): pm(1) = ps(1): pm(2) = ps(2)

pm(3) = ps(9): pm(4) = ps(10): pm(5) = ps(11)

If kandel >= 6 And Not pola = "dash" And Not bt = tp Then

pn(0) = pm(0): pn(1) = pm(1): pn(2) = 0

po(0) = pm(3): po(1) = pm(4): po(2) = 0

Set garis(1) = ThisDrawing.ModelSpace.AddSpline(pm, pn, po)

Set garis(0) = ThisDrawing.ModelSpace.AddPolyline(ps)

ElseIf kandel >= 6 And Not pola = "dash" And bt = tp Then

pn(0) = 1: pn(1) = 2: pn(2) = 0

po(0) = -1: po(1) = 2: po(2) = 0

Set garis(1) = ThisDrawing.ModelSpace.AddSpline(pm, pn, po)

Set garis(0) = ThisDrawing.ModelSpace.AddPolyline(ps)

ElseIf kandel < 6 And Not pola = "dash" Then

pn(0) = 1: pn(1) = 2: pn(2) = 0

po(0) = -1: po(1) = 2: po(2) = 0

Set garis(1) = ThisDrawing.ModelSpace.AddSpline(pm, pn, po)

Set garis(0) = ThisDrawing.ModelSpace.AddPolyline(ps)

ElseIf pola = "dash" Then

ps(0) = kx + bt + 9: ps(1) = ky: ps(2) = 0

ps(3) = kx: ps(4) = ky: ps(5) = 0

ps(6) = kx: ps(7) = ky + kandel: ps(8) = 0

ps(9) = kx + tp + 9: ps(10) = ky + kandel: ps(11) = 0

pm(0) = ps(0): pm(1) = ps(1): pm(2) = ps(2)

pm(3) = ps(9): pm(4) = ps(10): pm(5) = ps(11)

pn(0) = -1: pn(1) = 1 * kandel / 25: pn(2) = 0

po(0) = 1: po(1) = 1 * kandel / 25: po(2) = 0

Set garis(1) = ThisDrawing.ModelSpace.AddSpline(pm, pn, po)

Set garis(0) = ThisDrawing.ModelSpace.AddPolyline(ps)

End If

Set batu = ThisDrawing.ModelSpace.AddHatch(acHatchPatternTypePreDefined, "solid", True)

batu.AppendOuterLoop (garis)

batu.Color = warna

batu.Evaluate

batu.Update

Set batu = ThisDrawing.ModelSpace.AddHatch(acHatchPatternTypePreDefined, pola, True)

batu.AppendOuterLoop (garis)

batu.Evaluate

batu.Update

End Function

Sub simbol(kodes As String, warna As Integer, pola As String)

If kodes = "ss" Then

warna = acYellow

pola = "dots"

ElseIf kodes = "cl" Then

warna = acGreen

pola = "dash"

ElseIf kodes = "bx" Then

warna = 20

pola = "triang"

ElseIf kodes = "ml" Then

warna = 130

pola = "dash"

ElseIf kodes = "cal" Then

warna = acBlue

pola = "brick"

Lampiran F Algoritma

End If

End Sub

Function hatchpolakotak(pola As String, pt() As Double)

Set batu = ThisDrawing.ModelSpace.AddHatch(acHatchPatternTypePreDefined, pola, True)

batu.AppendOuterLoop (pt)

batu.Evaluate

batu.Update

End Function

Function bikintabel(x As Double, y As Double, yawal As Double, kolok As String)

Dim pn(14) As Double

Dim pl(14) As Double

Dim pm(2) As Double

Dim po(2) As Double

Dim pp(2) As Double

Dim e As Double

Dim f As Double

Dim g As Double

Dim h As Double

Dim i As Integer

e = 125

f = 15

g = 425

h = 70

i = 7

Dim lineobj As AcadLine

Dim ket As AcadText

pn(0) = x - e: pn(1) = y + f: pn(2) = 0

pn(3) = x + g: pn(4) = y + f: pn(5) = 0

pn(6) = x + g: pn(7) = yawal - f: pn(8) = 0

pn(9) = x - e: pn(10) = yawal - f: pn(11) = 0

pn(12) = x - e: pn(13) = y + f: pn(14) = 0

Set kotak(0) = ThisDrawing.ModelSpace.AddPolyline(pn)

pl(0) = x - e: pl(1) = y + f: pl(2) = 0

pl(3) = x + g: pl(4) = y + f: pl(5) = 0

pl(6) = x + g: pl(7) = y + h: pl(8) = 0

pl(9) = x - e: pl(10) = y + h: pl(11) = 0

pl(12) = x - e: pl(13) = y + f: pl(14) = 0

Set kotak(0) = ThisDrawing.ModelSpace.AddPolyline(pl)

pp(o) = pn(o) + 15: pp(1) = pn(1) + 5: pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("Skala (m)", pp, 7)

ket.Rotate pp, 22 / 14

pm(0) = x - (e - 25): pm(1) = y + h: pm(2) = 0

po(0) = pm(0): po(1) = yawal - f: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 9: pp(1) = pn(1) + 25: pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("Ukuran Butir", pp, 7)

pm(0) = x: pm(1) = y + h: pm(2) = 0

po(0) = pm(0): po(1) = yawal - f: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 13: pp(1) = pn(1) + 27: pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("Ekspresi", pp, 7)

pp(o) = pm(o) + 15: pp(1) = pn(1) + 15: pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("Topografi", pp, 7)

pm(0) = x + 100: pm(1) = y + h: pm(2) = 0

po(0) = pm(0): po(1) = yawal - f: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 25: pp(1) = pn(1) + 25: pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("Deskripsi", pp, 7)

pm(0) = x + 250: pm(1) = y + h: pm(2) = 0

po(0) = pm(0): po(1) = yawal - f: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 35: pp(1) = pn(1) + 25: pp(2) = 0

Lampiran F Algoritma

Set ket = ThisDrawing.ModelSpace.AddText("Foto", pp, 7)

pm(0) = x + 400: pm(1) = y + h: pm(2) = 0

po(0) = pm(0): po(1) = yawal - f: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 7: pp(1) = pn(1) + 5: pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("Lingkungan", pp, 5)

ket.Rotate pp, 22 / 14

pp(o) = pm(o) + 17: pp(1) = pn(1) + 3: pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("Pengendapan", pp, 5)

ket.Rotate pp, 22 / 14

'garis skala

y = y + f

x = x - 7

e = 2

g = 3

pm(0) = x: pm(1) = y + e: pm(2) = 0

po(0) = pm(0): po(1) = y - e: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 1: pp(1) = pm(1): pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("cl", pp, g)

ket.Rotate pp, 22 / 14

pm(0) = x - i: pm(1) = y + e: pm(2) = 0

po(0) = pm(0): po(1) = y - e: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 1: pp(1) = pm(1): pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("st", pp, g)

ket.Rotate pp, 22 / 14

pm(0) = x - i * 2: pm(1) = y + e: pm(2) = 0

po(0) = pm(0): po(1) = y - e: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 1: pp(1) = pm(1): pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("vf", pp, g)

ket.Rotate pp, 22 / 14

pm(0) = x - i * 2.5: pm(1) = y + e: pm(2) = 0

po(0) = pm(0): po(1) = y - e: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 1: pp(1) = pm(1): pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("f", pp, g)

ket.Rotate pp, 22 / 14

pm(0) = x - i * 3: pm(1) = y + e: pm(2) = 0

po(0) = pm(0): po(1) = y - e: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 1: pp(1) = pm(1): pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("m", pp, g)

ket.Rotate pp, 22 / 14

pm(0) = x - i * 3.5: pm(1) = y + e: pm(2) = 0

po(0) = pm(0): po(1) = y - e: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 1: pp(1) = pm(1): pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("c", pp, g)

ket.Rotate pp, 22 / 14

pm(0) = x - i * 4: pm(1) = y + e: pm(2) = 0

po(0) = pm(0): po(1) = y - e: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 1: pp(1) = pm(1): pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("vc", pp, g)

ket.Rotate pp, 22 / 14

pm(0) = x - i * 5: pm(1) = y + e: pm(2) = 0

po(0) = pm(0): po(1) = y - e: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 1: pp(1) = pm(1): pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("gr", pp, g)

ket.Rotate pp, 22 / 14

pm(0) = x - i * 6: pm(1) = y + e: pm(2) = 0

po(0) = pm(0): po(1) = y - e: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 1: pp(1) = pm(1): pp(2) = 0

Lampiran F Algoritma

Set ket = ThisDrawing.ModelSpace.AddText("pbl", pp, g)

ket.Rotate pp, 22 / 14

pm(0) = x - i * 7: pm(1) = y + e: pm(2) = 0

po(0) = pm(0): po(1) = y - e: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 1: pp(1) = pm(1): pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("cbl", pp, g)

ket.Rotate pp, 22 / 14

pm(0) = x - i * 8: pm(1) = y + e: pm(2) = 0

po(0) = pm(0): po(1) = y - e: po(2) = 0

Set lineobj = ThisDrawing.ModelSpace.AddLine(pm, po)

pp(o) = pm(o) + 1: pp(1) = pm(1): pp(2) = 0

Set ket = ThisDrawing.ModelSpace.AddText("bld", pp, g)

ket.Rotate pp, 22 / 14

'skala

Dim per As Integer

Dim s As Integer

Dim ber As Integer

If y > 70 Then

per = y / 50

e = 50

Else

per = y / 10

e = 10

End If

For s = 0 To per - 1

pm(0) = -102: pm(1) = yawal + (s * e): pm(2) = 0

po(0) = pm(0) + 4: po(1) = pm(1): po(2) = 0

pp(0) = pm(0) - 15: pp(1) = pm(1) - 3: pp(2) = 0

ber = s * e

ThisDrawing.ModelSpace.AddText ber, pp, 5

ThisDrawing.ModelSpace.AddLine pm, po

Next

pp(0) = x - 115: pp(1) = y + h + 7: pp(2) = 0

ThisDrawing.ModelSpace.AddText kolok, pp, 9

End Function