Upload
okky-warman
View
28
Download
1
Embed Size (px)
DESCRIPTION
tutorial litologi
Citation preview
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
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
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