Anda di halaman 1dari 21

PEMBAHASAN I

PENGENALAN

AutoLISP merupakan salah satu API (Application Programming Interface) yang terdapat pada
AutoCAD. Bahasa pemrograman yang satu ini sangat dikenal oleh para pengguna AutoCAD pada
khususnya dikarenakan ukuran file yang dihasilkan tergolong kecil. Dimana bahasa ini terdiri dari
beberapa list untuk membentuk sebuah objek. Sehingga LISP dikatakan sebagai List Processing
ataupun List Programming. Untuk mempelajari AutoLISP ada beberapa hal dasar yang harus
diketahui dimana didalam pemrograman AutoLISP akan selalu terdapat :
1. Tanda buka kurang atau parenthesis ( )
(defun c:hi ()
(alert "Apa Kabar")
(princ)
)
2. Variables. Dimana variable merupakan sebuah penamaan atau pendefinisian dari sebuah
data. Contoh :
(setq udaaf Afrizanirman)
3. Functions. Dimana function ini berfungsi untuk pendefinisian satu function baru atau
command baru yang dapat dijalankan di AutoCAD. Penulisan dapat dibagi menjadi
beberapa bagian. Contoh : (defun ATC () atau (defun c:ATC (). Berikut contoh
penulisannya :
(defun ATC ()
(princ "Authorized Training Center")
(Princ)
)
Maka di command harus kita ketik seperti terlihat pada gambar dibawah ini :

dan kita pun dapat menuliskan seperti ini :


(defun C:ATC ()
(princ "Authorized Training Center")
(Princ)
)
Maka di command prompt kita ketik seperti terlihat pada gambar dibawah ini :

Jadi yang membedakannya adalah perintah masukan untuk mengeksekusi functions


4. Data Types. AutoLISP membagai data menjadi beberapa tipe antara lain :
String. Type data ini terdiri dari karakter alphanumeric yang terdapat dalam tanda quote
. Contoh : Afrizanirman iDraf 17 Agustus 1945
Integers. Type data ini terdiri dari angka yang tidak terdapat tanda koma
dibelakangnnya.
Contoh : 1

23

456

-1

-23

-456

Real. Type data ini terdiri dari angka yang terdapat tanda koma dibelakangnnya.
Contoh : 1.1 1.2345

-21.0679

-1.02345

List. Type data ini merupakan kombinasi dari beberapa data yang terdapat dalam tanda
buka kurung/parenthesis.
Contoh : (410 . "Model")

(11 2870.68 1103.34 0.0)

(2870.68 1103.34 0.0)

File Descriptor. Type data ini digunakan untuk mengakses data file luar baik digunakan
untuk membaca atau menulis data.
Contoh : <File: a620>
Selection Set. Type data ini digunakan untuk pendifinisan objek terpilih.
Contoh : <Selection set: c>

Untuk program pertama kita akan mencoba membuat sebuah program sederhana dengan contoh
code seperti keterangan dibawah ini :

Gunakan CTRL+A untuk memilih seluruh code. Dan gunakan CTRL+SHIFT+E untuk me-load
code. Kemudian ketikan pakabar pada command prompt.

PEMBAHASAN II
FUNCTION

Pada pemrograman AutoLISP banyak sekali functions yang bisa digunakan. Akan tetapi untuk
materi kali ini kita hanya membahas functions dasar yang seringkali digunakan pada saat
pembuatan program. Adapun function yang akan dipelajari adalah :
1. User input functions
2. List Function
3. Number functions
4. Math functions
5. String functions
6. Selecting Entities
7. Selection Set Functions
8. Entity Functions
9. File Functions
10. Group Codes/Associated List
11. DXF Group Code Table
2.1.

User Input functions


Ada beberapa function yang digunakan sebagai input masukan data diantaranya getint,
getkword, getorient, getpoint, getreal dan getstring

getint
getint berfungsi untuk mengambil input data berupa nilai interger
syntax(cara penulisan) sebagai berikut : (getint [msg]) contoh :
(setq nilai (getint \nSilahkan Masukan 'ilai Integer:))

getkword

getkword berfungsi untuk membuat pilihan menggunakan kata kunci. Dan


syntax(cara penulisan) sebagai berikut : (getkword [msg]) contoh :
(initget 1 "Radius Diameter")
(setq x (getkword "Pilih Input Masukan? (Radius or Diameter) "))

getpoint
getpoint berfungsi untuk mendapatkan nilai koordinat dari titik pemilihan.
syntax(cara penulisan) sebagai berikut : (getpoint [msg]) contoh :
(setq pt (getpoint "\nTentukan titik pemilihan: "))

getorient
getorient berfungsi mendapatkan nilai sudut dalam satuan radian berdasarkan 2
buah point atau titik.
syntax(cara penulisan) sebagai berikut : (getorient [pt] [msg]) contoh :
(setq pt1 (getpoint "\nTentukan Titik Pertama:")
sudut (getorient pt1 "\nTentukan Titik Kedua:")
)
(alert (strcat "sudut yang tebentuk adalah" " "(angtos sudut 3 3) " " "radian"))

getreal
getreal berfungsi untuk mengambil input data berupa nilai real
syntax(cara penulisan) sebagai berikut : (getreal [msg]) contoh :
(setq nilai (getreal \nSilahkan Masukan 'ilai Real:))

getstring
getstring berfungsi untuk mengambil input data berupa nilai string
syntax(cara penulisan) sebagai berikut : (getrstring [msg]) contoh :
(setq nama (getstring \nSilahkan Masukan 'ama Anda:))

Setelah kita mempelajari fungsi diatas maka kita akan mencoba membuat sebuah
program sederhana untuk membuat sebuah flange seperti tampak pada gambar
dibawah ini :

Kalau kita perhatikan disana terdapat 8 data yang kita butuhkan. Antara lain :
Dia.dalam, Dia. Luar, PCD, Sudut awal, Jumlah Lubang, Diameter lubang, titik
peletakan center flange dan titik peletakan lubang. Hampir secara keseluruhan
program yang akan kita buat adalah menggunakan input masukan hanya titik
peletakan lubang yang memerlukan sedikit pengolahan data. Maka code yang akan
kita buat seperti tampak pada keterangan dibawah ini :

2.2.

List Function
Fungsi ini digunakan untuk mengolah data variable berupa list. Berikut beberapa fungsi
List yang sering digunakan.

Car
Car digunakan untuk mengambil data pertama dari sebuah list. Contoh
(setq L1 (list 1 2 3))
(setq X (car L1))
Pada varibale L1 akan terbentuk menjadi sebuah list yaitu (1 2 3). Dan pada

variable X akan menghasilkan nilai 1. Karena nilai pertama dari L1 adalah 1

Cdr
Cdr digunakan untuk mengambil semua data dari sebuah list kecuali data
pertama. Contoh
(setq L1 (list 1 2 3))
(setq X (cdr L1))
Pada varibale L1 akan terbentuk menjadi sebuah list yaitu (1 2 3). Maka variable
X akan menghasilkan nilai (2 3)

Cadr
Cadr digunakan untuk mengambil data kedua dari sebuah list. Contoh
(setq L1 (list 1 2 3))
(setq X (cadr L1))
Pada varibale L1 akan terbentuk menjadi sebuah list yaitu (1 2 3). Maka variable
X akan menghasilkan nilai (2)

Caddr
Caddr digunakan untuk mengambil data ketiga dari sebuah list. Contoh
(setq L1 (list 1 2 3))
(setq X (caddr L1))
Pada varibale L1 akan terbentuk menjadi sebuah list yaitu (1 2 3). Maka variable
X akan menghasilkan nilai (3)

Caar
Caar digunakan untuk mengambil data pertama di list pertama dari beberapa list.
Contoh
(setq L1 (list '(4 5 6) '(1 2 3)))
(setq X (caar L1))
Pada varibale L1 akan terbentuk menjadi sebuah list yaitu ((4 5 6) (1 2 3)). Maka

variable X akan menghasilkan nilai (4)

Cddr
Cddr digunakan untuk mengambil semua list setelah list kedua dari beberapa list.
Contoh
(setq L1 (list '("Af" "RI") '("ZA" "'IR") '("M" "A" "'") '(21 06 79)))
(setq X (cddr L1))
Pada varibale L1 akan terbentuk menjadi sebuah list yaitu (("Af" "RI") ("ZA"
"NIR") ("M" "A" "N") (21 6 79)) . Maka variable X akan menghasilkan nilai
(("M" "A" "N") (21 6 79))

Foreach
Foreach digunakan untuk mengevaluasi nilai dari list yang ada akan tetapi nilai
yang dihasilkan adalah evaluasi terakhir dari list yang ada.
Syntax sebagai berikut (foreach var'ame list [expr...])
Contoh
(foreach afri '(1 2 3) (setq x afri))
afri sebagai nama variable.
'(1 2 3) adalah list yang akan dievaluasi
nilai x adalah 3 karena merupakan nilai terakhir dari list yang dievaluasi

List
List digunakan untuk membuat sebuah list
Syntax sebagai berikut (list [expr...])
Contoh
(list 1 2 3) akan menghasilkan (2 3 4)
(list Af ri) akan menghasilkan ("Af" "ri")
(list (1'(2 3))) akan menghasilkan (1 (2 3))

Cons
Cons digunakan untuk membuat sebuah list dengan mengambil element pertama
untuk membuat list atau membuat list yang terdapat tanda titik (dot list)
Syntax sebagai berikut (cons new-first-element list-or-atom)
Contoh
(cons 0 "Line") akan menghasilkan (0 . "Line")
(cons 'a '(b c d)) akan menghasilkan (A B C D)
(cons 'a 2) akan menghasilkan (A . 2)

Nth
Nth digunakan untuk mencari nilai ke n dari sebuah list. Hitungan n dimulai dari
nilai 0
Syntax sebagai berikut (nth n lst)
Contoh
(nth 0 (list 1 2 3 4 5 6)) akan menghasilkan 1
(nth 4 (list "Af" "Ri" "Za" "'ir" "Man")) akan menghasilkan Man

Di sub penjelasan kali ini kita akan coba membuat sebuat program sederhana untuk
membuat kotak seperti tampak pada gambar dibawah ini :

Kalau kita lihat dari gambar kotak yang ada maka kita memerlukan data berupa panjang
dan lebar kotak. Dari data tersebut nantinya akan diolah hingga mendapatkan nilai untuk
point PT1, PT2, PT3 dan PT4. Data-data point akan kita olah menggunakan fungsi list
kecuali data PT1 menggunakan fungsi user-input. Maka code pemrograman akan tampat
seperti keterangan dibawah ini :

2.3.

Number Function
Fungsi ini digunakan untuk mengolah data numeric untuk di convert ke jenis data yang

lain.

Abs
abs berfungsi untuk merubah nilai menjadi absolute atau selalu bernilai positif.
Syntax : (abs number)
contoh :
(abs -234) akan menghasilkan nilai 234

atoi
atoi berfungsi untuk merubah nilai string menjadi integer
Syntax : (atoi string)
Contoh :
(atoi 2.34) akan menghasilkan nilai 2
(atoi ) akan menghasilkan nilai 0

itoa
itoa berfungsi untuk merubah nilai integer menjadi string
Syntax : (itoa integer)
Contoh :
(itoa 234) akan menghasilkan nilai 234
(itoa 5) akan menghasilkan nilai 5

atof
atof berfungsi untuk merubah nilai string menjadi real
Syntax : (atof string)
Contoh :
(atof 30) akan menghasilkan nilai 30.0

fix
fix berfungsi untuk merubah nilai real menjadi integer
Syntax : (fix real)

Contoh :
(fix 10.9) akan menghasilkan nilai 10

float
float berfungsi untuk merubah nilai real atau integer menjadi real
Syntax : (float real) (float integer)

Rtos
rtos befungsi untuk merubah nilai real menjadi string
Syntax : (rtos number [mode [precision]])
Mode :
1 Scientific
2 Decimal
3 Engineering (feet and decimal inches)
4 Architectural (feet and fractional inches)
5 Fractional
Contoh :
(rtos 30.12345 2 3) maka akan menghasilkan "30.123"

angtos
angtos befungsi untuk merubah nilai sudut dalam radian menjadi string
Syntax : (angtos angle [unit [precision]])
unit :
0 -- Degrees
1 -- Degrees/minutes/seconds
2 -- Grads
3 -- Radians
4 -- Surveyor's units
Contoh :

(angtos 0.785398 0 2) maka akan menghasilkan "45"

2.4.

Math Function
Fungsi ini digunakan untuk mengolah data numeric dengan rumus matematika.

+ (addition)
addition berfungsi untuk melakukan fungsi penjumlahan
Syntax : (+ number number)
contoh :
(+ 2 3 4) akan menghasilkan nilai 9

- (substraction)
subsctraction berfungsi untuk melakukan fungsi pengurangan
Syntax : (- number number)
contoh :
(- 2 3 ) akan menghasilkan nilai -1

/ (division)
division berfungsi untuk melakukan fungsi pembagian
Syntax : (/ number number)
contoh :
(/ 4 2 ) akan menghasilkan nilai 2

* (multiplication)
multiplication berfungsi untuk melakukan fungsi pengalian
Syntax : (* number number)
contoh :
(* 4 2 ) akan menghasilkan nilai 8

* (multiplication)
multiplication berfungsi untuk melakukan fungsi pengalian

Syntax : (* number number)


contoh :
(* 4 2 ) akan menghasilkan nilai 8

cos
cos berfungsi untuk menghasilkan nilai cosine dari sebuah sudut bersatuan radian
Syntax : (cos number)
contoh :
(cos 0 ) akan menghasilkan nilai 1.0

sin
sin berfungsi untuk menghasilkan nilai sinus dari sebuah sudut bersatuan radian
Syntax : (sin number)
contoh :
(cos 0 ) akan menghasilkan nilai 0.0

sqrt
sqrt berfungsi untuk melakukan fungsi pengakaran
Syntax : (sqrt number)
contoh :
(sqrt 4 ) akan menghasilkan nilai 2.0

expt
expt berfungsi untuk melakukan fungsi pangkat
Syntax : (expt number power)
contoh :
(expt 2 2 ) akan menghasilkan nilai 4
(expt 2 3) akan menghasilkan nilai 8

Berikut sebuah contoh hasil pengolahan number function dan math function. Misal kita
ingin menghitung sisi diagonal dari sebuah segitiga seperti tampak pada gambar dibawah ini

Maka code yang kita tuliskan adalah seperti tampak pada keterangan dibawah ini :

2.5.

String Function
Fungsi ini digunakan untuk mengolah data string. Berikut beberapa fungsi string yang
sering digunakan. Berikut beberapa fungsi string

Substr
substr berfungsi untuk mengambil sebagian data dari sebuah string
Syntax : (substr string start [length])
contoh :
(substr "Afrizanirman" 1 4) akan menghasilkan Afri

Strcase
strcase berfungsi untuk mengubah string menjadi huruf besar atau huruf kecil
Syntax : (strcase string flag)
untuk flag terdapat dunia nila jika kita pilih T maka semua string akan
berubah menjadi huruf kecil. Kalau nil akan berubah menjadi huruf besar
contoh :
(strcase "AfriZanirmaN" T) akan menghasilkan "afrizanirman"
(strcase "AfriZanirmaN" nil) akan menghasilkan "AFRIZANIRMAN"

Strlen
strlen berfungsi untuk menghitung jumlah huruf pada sebuah string
Syntax : (streln string)
contoh :
(strlen "AfriZanirmaN") akan menghasilkan nilai 12
(strlen "AfriZanirmaN") akan menghasilkan nilai 14

Strcat
strcat berfungsi untuk menggabungkan beberapa string menjadi satu string
Syntax : ((strcat [string[string]...])
contoh :
(strcat "Afri" "Zanir" "maN") akan menghasilkan "AfriZanirmaN"

2.6.

Selecting Entities

Fungsi ini berguna untuk memilih entity di area gambar. Baik pemilihan satu persatu
ataupun secara berkelompok. Berikut beberapa fungsi pemilihan object

entsel
entsel digunakan untuk memilih satu objek pada area gambar
Syntax : (entsel)
Contoh :
(entsel \nSilahkan Pilih Objeck:) maka akan menghasilkan
(<Entity name: 7ef03540> (2064.41 1253.42 0.0))

ssget
ssget digunakan untuk mengambil lebih dari satu objek pada area gambar
Syntax : (ssget)
Syntax : (ssget sel-methode)
sel-methode :
W = pemilihan dengan cara windows selection
C = pemilihan objek dengan cara cross selection
L = pemilihan objek yang terakhir kali dibuat
P = memilih kembali objek yang terakhir kali dipilih
X = untuk memilih semua entity
Syntax : (ssget filter_List) atau (ssget mode filter_List)
Contoh :
(setq edat (ssget "X" (list (cons 0 "LINE")))) hasil <Selection set: 16>
variable diatas digunakan untuk memilih semua objek line yang berada pada
area gambar.

Perhatikan contoh program dibawah ini :

2.7.

Selection Set Functions


Fungsi ini digunakan untuk mengolah lebih lanjut data hasil dari fungsi selecting
entities. Berikut berbagai fungsi dari Selection Set Functions

ssadd
ssadd digunakan untuk mencatat/mengambil data pemilihan dari fungsi
selecting entities dan data tersebut dapat dibuatkan variable baru.
Syntax : (ssadd) | (ssadd entity'ame) | (ssadd entity'ame SS)
entity'ame adalah variable yang dihasilkan dari fungsi ssname atau entsel
SS adalah variable yang dihasilkan dari fungsi ssget
contoh :
(setq ss (ssadd)) hasil <Selection set: 3>

ssdel
ssdel digunakan untuk membuang objek pemilihan atau kebalikan dari fungsi
ssadd
Syntax : (ssdel entity'ame SS)

sslength
sslength digunakan untuk menghitung jumlah pemilihan objek dari fungsi
ssget.
Syntax : (sslength ss)
contoh :
(setq ss (ssget "X")) ; misal objek yang terdapat didalam gambar 1
(setq entQty (sslength ss)) ; menghasilkan nilai 1

ssname
ssname digunakan untuk mengambil nama entity dari hasil pemilihan objek
menggunakan ssget
Syntax : (ssname ss index)
contoh :
(setq ss (ssget "_X")) hasil <Selection set: 11>
(setq ename (ssname ss 0)) hasil <Entity name: 7ef03548>

Berikut contoh pemrograman gabungan antara selecting entities dengan selection set
untuk memeriksa dimensi yang sudah diganti (override).

2.8.

Anda mungkin juga menyukai