modul autolisp

Upload: yudhirieza88

Post on 04-Jun-2018

368 views

Category:

Documents


21 download

TRANSCRIPT

  • 8/13/2019 Modul Autolisp

    1/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 :

  • 8/13/2019 Modul Autolisp

    2/21

    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 :

    Selection Set. Type data ini digunakan untuk pendifinisan objek terpilih.

    Contoh :

  • 8/13/2019 Modul Autolisp

    3/21

    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.

  • 8/13/2019 Modul Autolisp

    4/21

    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

  • 8/13/2019 Modul Autolisp

    5/21

    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:))

  • 8/13/2019 Modul Autolisp

    6/21

    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 :

  • 8/13/2019 Modul Autolisp

    7/21

    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

  • 8/13/2019 Modul Autolisp

    8/21

    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

  • 8/13/2019 Modul Autolisp

    9/21

    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 varame 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))

  • 8/13/2019 Modul Autolisp

    10/21

    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 :

  • 8/13/2019 Modul Autolisp

    11/21

    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

  • 8/13/2019 Modul Autolisp

    12/21

    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)

  • 8/13/2019 Modul Autolisp

    13/21

    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 :

    1Scientific

    2Decimal

    3Engineering (feet and decimal inches)

    4Architectural (feet and fractional inches)

    5Fractional

    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 :

  • 8/13/2019 Modul Autolisp

    14/21

    (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

  • 8/13/2019 Modul Autolisp

    15/21

    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

  • 8/13/2019 Modul Autolisp

    16/21

    :

    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

  • 8/13/2019 Modul Autolisp

    17/21

    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 flagterdapat 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

  • 8/13/2019 Modul Autolisp

    18/21

    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

    ( (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

    variable diatas digunakan untuk memilih semua objek line yang berada pada

    area gambar.

    Perhatikan contoh program dibawah ini :

  • 8/13/2019 Modul Autolisp

    19/21

    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 entityame) | (ssadd entityame SS)

    entityameadalah variable yang dihasilkan dari fungsi ssname atau entselSSadalah variable yang dihasilkan dari fungsi ssget

    contoh :

    (setq ss (ssadd)) hasil

    ssdel

    ssdel digunakan untuk membuang objek pemilihan atau kebalikan dari fungsi

    ssadd

    Syntax : (ssdel entityame SS)

  • 8/13/2019 Modul Autolisp

    20/21

    sslength

    sslength digunakan untuk menghitung jumlah pemilihan objek dari fungsi

    ssget.

    Syntax : (sslengthss)

    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

    (setq ename (ssname ss 0)) hasil

    Berikut contoh pemrograman gabungan antara selecting entities dengan selection set

    untuk memeriksa dimensi yang sudah diganti (override).

  • 8/13/2019 Modul Autolisp

    21/21

    2.8.