Anda di halaman 1dari 78

BAB I PENGENALAN VISUAL LISP

1.1 Bahasa Pemrograman LISP

1.2

AutoLISP atau Visual LISP

1.3 Editor Auto LISP

BAB II OPERASI ARTIMATIKA, TRIGONOMETRI, DAN SENARAI


Operasi aritmatika, trigonometri, dan senarai (list) langsung dari command promt AutoCAD dapat memberikan pemahaman bahwa AutoCAD memiliki kemampuan bukan sekedar menjadi alat bantu gambar. Kemampuan ini dalam pemrograman Visual LISP dapat langsng dieksekusi setelah menuliskan sintaknya dalam kode program.

2.1 Operasi Aritmatika dan Trigonometri

Penulisan perintah aritmatika pada command prompt AutoCAD menggunakan cara pre order atau prefix, yaitu operator disusul dengan operan. Oleh karena itu kita harus mengubah bentuk inorder atau infix menjadi pre order atau prefix. Berikut adalah contohnya: Tabel 2.1 Sintak operasi aritmatik Bentuk infix Bentuk prefix 125 + 50 (+ 125 50) 85 17 (- 85 17) 9x6 (* 9 6) 12 / 3 (/ 12 3) 16 (sqrt 16) ingat squareroot sin 30o ( sin (* pi (/ 30 180.0))) ingat 30o = 30/180* (radian) o cos 30 ( cos (* pi (/ 30 180.0))) Selanjutnya pengoperasian dari aritmatika dan trigonometri di atas dapat dilakukan sebagai berikut:

Gambar 2.1 Luaran operasi artimatik dan trigonometri

2.2 Operasi Senarai


Senarai merupakan himpunan yang memiliki sejumlah elemen/anggota. Lihat contoh himpunan di bawah ini, a. Himpunan x memiliki elemen a b c d (e f g) good b. Himpunan y memiliki anggota 1 2 3 (100 200 300) 666 x y Jika digambarkan c sebagai diagram venn2menjadi: 3 b

a e f g good

100 200 300 666

Gambar 2.2 Diagram ven dari senarai Mendefinisikan senarai pada LISP dilakukan dengan: Command : (setq x(list a b c d (e f g) good)) Command : (setq y(list 1 2 3 (100 200 300) 666)) Sintaks setq merupakan gabungan dari set dan quote, berfungsi untuk mendefinisikan variabel beserta harganya. Selengkapnya pedoman penulisan fungsi-fungsi Visual LISP dapat dilihat pada apendiks A. Mengoperasikan list dapat dilakukan dengan memberi perintah-perintah seperti berikut: car = untuk mengambil elemen senarai terdepan (head) cdr = untuk mengambil elemen senarai selain terdepan, yaitu ekor (tail) car cdr = cadr = mengambil elemen terdepan dari ekor atau elemen kedua car cdr cdr = caddr = mengambil elemen terdepan dari ekor kedua = elemen ketiga (nth 0 x) = mengambil elemen terdepan dari list x (head = 0th) (nth 1 x) = mengambil elemen kedua dari list x (1th) (nth 2 x) = mengambil elemen ketiga dari list x (2th) Tabel 2.2 menunjukkan contoh mendefinisikan sebuah senarai yang dapat dilanjutkan dengan operasi terhadap senarai yang telah didefinisikan. Sedangkan luaran hasilnya dapat dilihat pada gambar 2.3. Secara lengkap jenis sintak, arti, dan cara menuliskannya dapat dilihat pada apendik A.
4

Tabel 2.2 Menulis sintak dan mengoperasikan senarai Sintaks: Hasil: (setq x(list a b c d (e f g) (A B C D (E F G) GOOD) good)) (car x) A (cdr x) (B C D (E F G) GOOD) (cadr x) atau (car (cdr x)) B (cddr x) = (cdr (cdr x)) ( C D (E F G) GOOD) (caddr x) = (car (cdr (cdr x))) C (cdddr x) = (cdr(cdr(cdr x))) ( D (E F G) GOOD) (cadddr x) = (car(cdr(cdr(cdr D x)))) (cddddr x) ((E F G) GOOD) (nth 0 x) A (anggota list dihitung dari kiri 0,1,2,dst) (nth 1 x) B (nth 2 x) C (nth 3 x) D (nth 0 (nth 4 x)) E (anggota list ke-0 dari sublist (E F G) (nth 2 (nth 4 x)) G Sintaks: Hasil : (setq y(list 1 2 3 (100 200 (1 2 3 (100 200 300) 300) 666)) 666) (car y) 1 (cdr y) (2 3 (100 200 300) 666)) (cadr y) atau (car (cdr y)) 2 (nth 0 y) 1 (nth 1 y) 2 (nth 1 (nth 3 y)) 200 (nth 2 (nth 3 y)) 300
5

(setq z(list 8 9 12 17) (* (nth 2 y) (nth 3 z)) (/ (nth 1 (nth 3 y)) (nth 3 z))

(8 9 12 17) 51 (hasil dari 3 x 17) 11 (hasil 200/17 tanpa desimal)

Gambar 2.3 Hasil operasi senarai

BAB III MEMULAI PROGAM SEDERHANA


Dalam menggambar menggunakan AutoCAD dikenal dua pendekatan, yaitu berdasarkan pendekatan koordinat polar dan koordinat cartesian. Pendekatan ini berlaku pula dalam menyusun program Visual LISP, yaitu program yang dapat melakukan otomasi penggambaran.

3.1 Editor Visual LISP untuk Membuat Kode Program


Struktur kode program Visual LISP selalu diawali dengan ( sebagai tanda begin atau awal program dan diakhiri dengan ) sebagai tanda end atau akhir program. Penulisan begin dan end ini dapat dilakukan tersarang, artinya terdapat beginend di dalam begin-end. Lihat contoh berikut (defun c: () ) Dan (defun c: () ( ) )

Langkah untuk memulai membuat program adalah dengan membuka Visual LISP Editor melalui menu Manage.

(a) Menu Manage dan klik Visula LISP Editor

(b) Tampilan console untuk hasil kompilasi

(c) Membuka editor denganCtrl+N Gambar 3.1 Membuka editor Visual LISP Editor tempat menuliskan kode program Visual LISP adalah pada lembar <Untitled-1>, selanjutnya file ini dapat disimpan dengan nama sesuai kehendak anda.

Gambar 3.2 Editor Visual LISP yang belum diberi nama

3.2

Kode Program Visual Koordinat Polar

LISP

dengan

Prinsip dari koordinat polar adalah membuat garis dari sebuah titik awal menuju arah/kutub (pole) tertentu dengan panjang garis tertentu. Perintah AutoCAD untuk membuat garis mendatar dengan koordinat polar melalui command prompt adalah: Command :line Specify first point: 100,100 Specify next point or undo :@100<0 Specify next point or undo : Titik awal gambar adalahtitik (100,100) dilanjutkan dengan garis sepanjang 100 mm dengan sudut 0o. Sedangkan untuk membuat garis tegak lurus dapat dilakukan dengan perintah: Command :line Specify first point: 100,100 Specify next point or undo :@100<0 Specify next point or undo :@75<90 Specify next point or undo : Kedua perintah menggambar garis di atas dapat disusun menjadi sebuah program yang sewaktuwaktu dapat dijalankan untuk menghasilkan gambar garis lainnya. Selanjutnya kita akan berlatih menyusun kode program beberapa bentuk geometri sederhana.

3.2.1 Membuat program garis tunggal dengan sudut 0o dan panjang 100 mm
10

Langkah 1: menulis kode program pada editor

Gambar 3.3 Kode program membuat garis tunggal Penjelasan: - defun c: sintak untuk membuat fungsi baru dan memberi nama panggilan sub rutin - garis1, nama file dan nama fungsi yang akan dipanggil - rad (a) (* pi(/ a 180.0)), membuat variabel a sebagai konversi sudut ke radian - getpoint, meminta variabel titik koordinat x,y - titik1 (polar awal (rad 0) 100), membuat variabel titik1 berupa koordinat dengan sudut 0o dan panjang 100 mm - "line" awal titik1, membuat garis dari koordinat awal menuju koordinat titik1 - perintah cariage return atau Langkah 2: Menyimpan dengan nama garis1.lsp

11

Gambar 3.4 Menyimpan program Langkah 3: Lakukan kompilasi terhadap program untuk mengetahui apakah ada kesalahan, dengan menekan menu (Load Active Edit Window)

Gambar 3.5 Mengkompilasi program Bila tidak terdapat kesalahan maka pada lembar console maka akan muncul pesan seperti gambar 3.6

12

Gambar 3.6 Kompilasi program tanpa pesan kesalahan Langkah 4: Mengaktifkan AutoCAD dengan menekan menu .

Gambar 3.7 Mengaktifkan AutoCAD sebelum menjalankan program Langkah 5: Untuk menjalankan program tulis garis1 pada command prompt dan tekan enter. Maka akan muncul tulisan titik awal gambar:

13

Gambar 3.8 Kompilasi program tanpa pesan kesalahan Langkah 6 : Klik sembarang titik pada permukaan lembar kerja. Maka akan tampil sebuah garis yang dihasilkan oleh program.

14

Gambar 3.9 Tampilan hasil dan perintah mejalankan program pada command prompt

3.2.2 Membuat program garis tunggal dengan sudut 0o dengan panjang 100 mm dan sudut 90o dengan panjang 75 mm
Langkah 1: Membuka berkas kosong pada Visual LISP Editor dan tulis kode program seperti pada kotak di bawah ini.

Gambar 3.10 Kode program garis2.lsp Penjelasan : - defun c:, untuk membuat fungsi baru dan memberi nama panggilan sub rutin - garis1, nama file dan nama fungsi yang akan dipanggil - rad (a) (* pi(/ a 180.0)), membuat variabel a sebagai konversi sudut ke radian - getpoint, meminta variabel titik koordinat x,y - titik1 (polar awal (rad 0) 100), membuat variabel titik1 berupa koordinat dengan sudut 0o dan panjang 100 mm

15

titik2 (polar awal (rad 90) 75), membuat variabel titik2 berupa koordinat dengan sudut 90o dan panjang 75 mm "line" awal titik1 titik2, membuat gari dari koordinat awal menuju koordinat titik1 dan diakhiri pada koordinat titik2 , perintah cariage return atau

Langkah 2: Menyimpan dengan nama file garis2. Langkah 3: Mengkompolasi program sampai tidak terdapat kesalahan

Gambar 3.11. Hasil kompilasi program gris2.lsp Langkah 4: Menjalankan program dengan menulis garis2 pada command propt

16

Gambar 3.11 Tampilan hasil program garis2.lsp

3.2.3 Membuat program segitiga


Langkah 1: Membuka berkas kosong pada Visual LISP Editor dan tulis kode program seperti pada kotak di bawah ini. Langkah 2: Menyimpan dengan nama file segitiga. Langkah 3: Mengkompolasi program sampai tidak terdapat kesalahan Langkah 4: Menjalankan program dengan menulis segitiga pada command propt

17

Gambar 3.12. Kode program segitiga.lsp

Gambar 3.13 Hasil dari program segitiga.lsp


18

3.2.4 Membuat program segiempat


Langkah 1: Membuka berkas kosong pada Visual LISP Editor dan tulis kode program seperti pada kotak di bawah ini.

Gambar 3.14 Kode program segiempat.lsp Langkah 2: Menyimpan dengan nama file segiempat. Langkah 3: Mengkompolasi program sampai tidak terdapat kesalahan Langkah 4: Menjalankan program dengan menulis segiempat pada command propt

3.2

Kode Program Visual Koordinat Cartesian

LISP

dengan

Otomasi penggambaran dengan koordinat cartesian berarti harus mementukan nilai koordinat setiap titik yang akan dihubungkan dengan garis. Koordinat (x,y) harus ditulis dalam bentuk senarai (list). Anggota senarai berturut-turut dibaca dari koordinat dengan nth, ingat 1st, 2nd, 3rd, 4th, 5th, ... nth, jadi nth artinya ke- . Misalnya anggap suatu senarai P={100,125), nilai 100 adalah ordinat dan
19

125 adalah absis. Maka pembacaan ordinat adalah list (nth 0 P) dan pembacaan absis adalah list (nth 1 P). Karena pembacaan anggota senarai dimulai dengan 0,1,2,3, dst.

Gambar 3.15 Hasil program segiempat.lsp

3.2.1 Membuat program garis tunggal ke kanan dengan sudut 0o dan panjang 200 mm
Langkah 1: Menulis program pada editor Langkah 2: Menyimpan dengan nama file grskanan

20

Langkah 3: Mengkompolasi program sampai tidak terdapat kesalahan Langkah 4: Menjalankan program dengan menulis grskanan pada command propt

Gambar 3.16 Kode program grskanan.lsp

Gambar 3.17 Hasil program grskanan.lsp

3.2.2 Membuat program garis tunggal ke kiri dengan sudut 0o dan panjang 200 mm
Langkah 1: Menulis program pada editor Langkah 2: Menyimpan dengan nama file grskiri
21

Langkah 3: Mengkompolasi program sampai tidak terdapat kesalahan Langkah 4: Menjalankan program dengan menulis grskiripada command propt

Gambar 3.18 kode program grskiri.lsp

Gambar 3.19 Hasil program grskiri.lsp

3.2.3 Membuat program garis tunggal ke atas dengan sudut 90o dan panjang 200 mm
Langkah 1: Menulis program pada editor
22

Langkah 2: Menyimpan dengan nama file grstegak Langkah 3: Mengkompolasi program sampai tidak terdapat kesalahan Langkah 4: Menjalankan program dengan menulis grstegak pada command propt

Gambar 3.20 Kode program grstegak.lsp

Gambar 3.20 Hasil program grstegak.lsp


23

3.2.4 Membuat program garis tunggal miring ke kiri dengan sudut 30o dan panjang 100 mm
Langkah 1: Menulis program pada editor Langkah 2: Menyimpan dengan nama file grsmiring Langkah 3: Mengkompolasi program sampai tidak terdapat kesalahan Langkah 4: Menjalankan program dengan menulis segitiga pada command propt

Gambar 3.21Kode program grsmiring.lsp

3.2.5 Membuat program dua buah garis lurus membentuk sudut tertentu dengan panjang garis tertentu
Langkah 1: Menulis program pada editor Langkah 2: Menyimpan dengan nama file duagrs Langkah 3: Mengkompolasi program sampai tidak terdapat kesalahan Langkah 4: Menjalankan program dengan menulis duagrs pada command propt
24

Gambar 3.22 Hasil program grsmiring.lsp

Gambar 3.23 Kode program duagrs.lsp


25

Gambar 3.24 Hasil program duagrs.lsp

3.2.6 Membuat program segitiga dengan lingkaran pada tiap sudut


Langkah 1: Menulis program pada editor Langkah 2: Menyimpan dengan nama file segi3 Langkah 3: Mengkompolasi program sampai tidak terdapat kesalahan Langkah 4: Menjalankan program dengan menulis segi3 pada command propt
26

Gambar 3.25 Kode program segi3.lsp

3.3

Kode Program Visual Geometri Lebih Rumit

LISP

Bentuk

Dalam sub bab ini akan disusun kode program Visual LISP untuk menggambarkan bentuk geometri bintang lima beraturan dan segilima beraturan. Selanjutnya penyusunan bentuk kubus. Bentukbentuk ini dapat memberikan gambaran rumitnya menentukan sudut-sudutnya dan harus menuangkannya kedalam kode program dengan benar. Kode program disusun baik dengan koordinat polar maupun koordinat cartesian.

27

Gambar 3.26 Hasil program segi3.lsp

3.3.1 Membuat program bintang dengan koordinat polar


Program otomasi penggambaran berdasarkan koordinat polar & cartesian bintang

28

29

3.3.1

Membuat program bintang dengan koordinat polar

30

3.3.1

Membuat program bintang dengan koordinat cartesian

31

3.3.1

Membuat program segi-5 dengan koordinat polar

Koordinat Cartesian (defun c:segi5() (setq a (getpoint "\n titik awal gambar segi-5: ")) (setq s (getreal "\n panjang sisi:"))

(setq b (list (+ (nth 0 a) s) (nth 1 a))) (setq c (list (+ (nth 0 b) (* (cos(* pi(/ 72 180.0))) s)) (+ (nth 1 b) (* s)))) (setq d (list (- (nth 0 c) (* (cos(* pi(/ 36 180.0))) s)) (+ (nth 1 c) (* ( s)))) (setq e (list (- (nth 0 a) (* (cos(* pi(/ 72 180.0))) s)) (+ (nth 1 a) (* ( s)))) (command "line" a b "" "line" b c "" "line" c d "" "line" d e "" "line" e a "") ) ; (nth 0 a) dapat digantikan dengan (car a) ; (nth 1 a) dapat digantikan dengan (cadr a)

3.3.1

Membuat program bintang dengan koordinat polar

Program otomasi penggambaran kubus berdasarkan koordinat polar & cartesian Koordinat polar (defun c:kubus() (defun rad (r) (* pi(/ r 180.0))) (setq a (getpoint "\n titik awal gambar: ")) (setq x (getreal "\n panjang kotak (x):"))
32

(setq y (getreal "\n panjang tinggi(y):")) (setq z (getreal "\n panjang lebar (z):")) (setq b (polar a (rad 150) z) c (polar a (rad 90) y) e (polar a (rad 30) x) g (polar e (rad 90) y) d (polar b (rad 90) y) f (polar b (rad 30) x) h (polar f (rad 90) y)) (command "line" a b "" "line" a c "" "line" a e "" "line" e g "" "line" b d "" "line" b f "" "line" e f "" "line" f h "" "line" d h "" "line" g h "" "line" d c "" "line" c g "" ) )

3.3.1

Membuat program bintang dengan koordinat polar

Koordinat Cartesian (defun c:kubus() (setq a (getpoint "\n titik awal gambar: "))
33

(setq x (getreal "\n panjang kotak (x):")) (setq y (getreal "\n panjang tinggi(y):")) (setq z (getreal "\n panjang lebar (z):")) (setq b (list(- (nth 0 a) (* (cos(* pi(/ 30 180.0))) z)) (+ (nth 1 a) (* (sin(* pi(/ 30 180.0))) z)))) (setq c (list (nth 0 a) (+ (nth 1 a) y))) (setq e (list(+ (nth 0 a) (* (cos(* pi(/ 30 180.0))) x)) (+ (nth 1 a) (* (sin(* pi(/ 30 180.0))) x)))) (setq d (list (nth 0 b) (+ (nth 1 b) y))) (setq g (list (nth 0 e) (+ (nth 1 e) y))) (setq f (list(- (nth 0 e) (* (cos(* pi(/ 30 180.0))) z)) (+ (nth 1 e) (* (sin(* pi(/ 30 180.0))) z)))) (setq h (list(- (nth 0 g) (* (cos(* pi(/ 30 180.0))) z)) (+ (nth 1 g) (* (sin(* pi(/ 30 180.0))) z)))) (command "line" a b "" "line" a c "" "line" a e "" "line" b d "" "line" e g "" "line" d c "" "line" c g "" "line" b f "" "line" e f "" "line" f h "" "line" d h "" "line" h g "" ) )

34

2. Strategi pembelajaran Membuat bintang 5 Beraturan dengan koordinat polar: 1. Dosen mendemokan program membuat bintang 5 beraturan 2 hingga 3 kali 2. Mahasiswa diminta mengulangi menjalankan program yang sama, setelah dipinjami disket berisi file) program 3. Dosen mendemokan program garis tunggal 2 hingga 3 kali namun dengan mengaktifkan animate & break on error pada menu debug. Layar di atur agar terdiri dari layar AutoCAD dan layar Visual LISP agar proses menggambar pada layar dapat di amati 4. Mahasiswa diminta mengulangi menjalankan program seperti butir 3 5. Dosen menjelaskan logika program baris demi baris seperti yang didemokan pada butir 3 dengan langkah-langkah: Menggambar bintang 5 beraturan dan menghitung besar sudut tiap garis yang berhubungan. Sudut luar adalah 3600 / 5 = 720 Sudut dalam adalah 1800 720 = 1080 Sudut pembentuk segi-3 adalah (36001080)/2=360 Sudut dalam dibagi menjadi 3 bagian masingmasing 360

35

3 aw 60 al

10 80

1 3 60 7 10 0 2 8
0

252
o

324
o

180
o

aw al

36
o

72 0 108
o

Urutan penggambaran dimulai dari awal menuju 1-23-4-5(awal) Besar sudut garis awal-1 =360; 1-2=1800; 2-3=3600 360 =3240; 3-4=720+360=1080; 4-5(awal)=2700(360 / 2)=2520 Menyusun langkah penggambaran dan mengubah menjadi sintaks Visual LISP
36

Langkah - Menentukan nama pemanggil program - Membuat rumus pengubah sudut menjadi radian - Mengambil titik awal penggambaran dan meminta panjang sisi bintang - Menentukan titik 1 thdp awal sejauh L - Menentukan titik 2 thdp 1 sejauh L - Menentukan titik 3 thdp 2 sejauh L - Menentukan titik 4 thdp 3 sejauh L - Menentukan titik 5 thdp 4 sejauh L - Membuat perintah menggaris polyline dari awal-5

Sintaks (defun c:bintang () (defun rad (a) (* pi (/ a 180.0))) (setq awal (getpoint \n titik awal gbr : ) L (getreal \n Panjang Sisi : )) (setq titik1 (polar awal (raf 36) L) titik2 (polar titik1 (rad 180) L) titik3 (polar titik2 (rad 324) L) titik4 (polar titik3 (rad 108) L) titik5 (polar titik4 (rad 252) L)) (command pline awal titik1 titik2 titik3 titik4 titik5 )

6. Mahasiswa di minta untuk analisis dan diskusi 7. Mahasiswa di minta menuliskan alternatif logika/penalaran lain namun untuk menghasilkan keluaran program yang sama 8. Mahasiswa diminta menuliskan program alternative pada Visual LISP dan di jalankan hingga memberikan hasil yang benar dan sama dengan program yang sudah ada. Membuat bintang 5 Beraturan dengan koordinat Cartesian:
37

1. Dosen mendemokan program membuat bintang 5 beraturan 2 hingga 3 kali 2. Mahasiswa di minta mengulangi menjalankan program yang sama, setelah dipinjami disket berisi file program 3. Dosen mendemokan program garis tunggal 2 hingga 3 kali namun dengan mengaktifkan animate & break on error pada menu debug. Layar di atur agar terdiri dari layar AutoCAD dan layar Visual LISP agar proses menggambar pada layar dapat diamati 4. Mahasiswa di minta mengulangi menjalankan program seperti butir 3 5. Dosen menjelaskan logika program baris demi baris seperti yang di demokan pada butir 3 dengan langkah-langkah: Menggambar bintang 5 beraturan dan menghitung besar sudut tiap garis yang berhubungan

00 b

720 a 36
0

360

38 d

Menyusun langkah penggambaran dan mengubah menjadi sintaks Visual LISP - Menentukan nama pemanggil program (defun c:bnt5() - Menentukan titik a sebagai titik awal penggambaran (setq a (getpoint \n titik awal gambar bintang: )) - Meminta panjang sisi bintang (setq s (getreal \n panjang sisi: )) - Menentukan titik b (Xb,Yb) sejauh L dengan sudut 360 terhadap titik a(Xa,Ya) maka Xb=L cos 360 dan Yb=L sin 360 (setq b (list (+ (nth 0 a) (* (cos(* pi(/ 36 180.0))) s)) (+ (nth 1 a) (* (sin(* pi(/ 36 180.0))) s)))) - Menentukan titik c(Xc,Yc) sejauh L dengan sudut 00 terhadap titik b(Xb,Yb) maka Xc=Xb-L dan Yc=Yb (setq c (list (- (nth 0 b) s) (nth 1 b))) - Menentukan titik c(Xd,Yd) sejauh L dengan sudut 360 terhadap titik c(Xc,Yc) maka Xd=Xc-L cos 360 dan Yd=Yc-L sin 360 (setq d (list (+ (nth 0 c) (*(cos(* pi(/ 36 180.0))) s)) (- (nth 1 c) (* (sin(* pi(/ 36 180.0))) s))))
39

Menentukan titik e(Xe,Ye) sejauh L dengan sudut 720 terhadap titik d(Xd,Yd) maka Xe=XdL cos 720 dan Ye=Yd+L sin 720 (setq e (list (- (nth 0 d) (*(cos(* pi(/ 72 180.0))) s)) (+ (nth 1 d) (* (sin(* pi(/ 72 180.0))) s)))) - Perintah membuat garis polyline a-b-c-d-e-a (command pline a b c d e a ) ) 6. Mahasiswa diminta melakukan analisis dan diskusi 7. Mahasiswa diminta menuliskan alternative logika/penalaran lain namun untuk menghasilkan keluaran program yang sama 8. Mahasiswa diminta menuliskan program alternatif pada Visual LISP dan dijalankan hingga memberikan hasil yang benar dan sama dengan program yang sudah ada
-

40

BAB IV PEMROGRAMAN MODULAR

Rencana Pembelajaran 5 Mata Kuliah Pokok Bahasan Sub Pokok Bahasan Semester Alokasi Waktu Pertemuan ke: CAD 2&3 D (AutoCAD) :

: Menyusun program Visual LISP untuk geometris secara modular berdasark Cartesian : IV : 4x50 menit :3

Pemrograman modular terdiri dari program utama dan prosedur. Program utama dijalankan pertama kali oleh interpreter, kemudian satu per satu prosedur dipanggil dan dijalankan. Setiap prosedur berisi suatu fungsi tertentu. Pada progrm di bawah ini prosedur satu, prosedur dua, dan prosedur tiga dipanggil satu demi satu oleh program utama pilih.
41

Demikian pula progam untuk menghitung volume di bawah ini. ; program modular dengan pencabangan IF-THEN pada program uta

(defun C:pilih() ;(setvar "cmdecho" 0) (initget 1 "A a b B C c") (setq pilihan (getkword "\nPilihan Anda Apa? ( [a] satu / [b] d (if (= pilihan "A") (satu) (if (= pilihan "B") (dua) (tiga))) ; IF pilihan=A then prosedur satu ELSEIF pilihan=B THEN dua ELS (defun satu() (princ "ini yang pertama") (princ) ) (defun dua() (princ "ini yang kedua") (princ) ) (defun tiga() (princ "ini yang tiga") (princ) )

42

; program modular degan pencabangan COND pada program utama (defun c:pilih()

(initget 1 "A a b B C c") (setq pilihan (getkword "\nPilihan Anda Apa? ( [a] satu / [b] d (cond ((= pilihan "A") (progn ; lompat ke fungsi/prosedur satu (satu) )) ((= pilihan "B") (progn (dua) )) ((= pilihan "C") (progn (tiga) )) ) ) (defun satu() (princ "ini yang pertama") (princ) ) (defun dua() (princ "ini yang kedua") (princ) ) (defun tiga() (princ "ini yang tiga") (princ) )

43

; Program modular untuk menghitung volume silinder, volume kubu (defun volsil() (princ "Menghitung Volume Silinder") (setq g (getreal "\n tinggi silinder = ")) (setq d (getreal "\n diameter silinder = ")) (setq vs (* g d (/ pi 4))) (princ "Volume Silinder (VS)= ") (float vs) (princ vs) (princ " mm^3") (princ "\n") (princ) ) (defun volkub() (princ "Menghitung Volume Kubus") (setq s (getreal "\n sisi kubus = ")) (setq vk (* s s s)) (princ "Volume Kubus (VK)= ") (princ vk) (princ " mm^3") (princ) )
44

(defun c:vol() (setvar "cmdecho" 0) (initget 1 "A a b B") (princ "\npilihan: a. Volume Silinder \n (setq pilihan (getkword "\nPilihan: ")) (if (or (= pilihan "a") (= pilihan "A") (progn (volsil) )) (or (= pilihan "b") (= pilihan "A") (progn (volkub) )) ) ; akhir dari cond )

b. Volume Kubus "

Mata Kuliah Pokok Bahasan Sub Pokok Bahasan Semester Alokasi Waktu Pertemuan ke-

: CAD 2&3 D (AutoCAD) : Prinsip pemrograman Visual LISP untuk menggunakan perintah perintah yang ad : Menyusun program Visual LISP untuk menggunakan perintah perintah: fillet, a : IV : 4x50 menit :4

1. Mahasiswa dapat menyusun program Visual LISP untuk perintah: fillet 2. Mahasiswa dapat menyusun program Visual LISP untuk perintah: arc 3. Mahasiswa dapat menyusun program Visual LISP untuk perintah: trim
45

4. Mahasiswa dapat menyusun program Visual LISP untuk perintah: mirror 5. Mahasiswa dapat menyusun program Visual LISP untuk perintah: entlast Materi Program menggunakan perintah fillet dan arc pada sebuah kotak (defun gambar() (setq a (getpoint "\n titik awal gambar: ")) (setq x (getreal "\n panjang kotak (x): ")) (setq y (getreal "\n lebar kotak (y): ")) (setq b (list (+ (car a) x) (cadr a))) (setq c (list (car b) (+ (cadr b) y))) (setq d (list (- (car c) x) (cadr c ))) (command "line" a b "" (setq grs1(entlast)) "line" b c "" (setq grs2(entlast)) "line" d a "" (setq grs3(entlast)) "fillet" "r" (* 0.1 x) "fillet" grs1 grs2 "" "fillet" "r" (* 0.1 x) "fillet" grs1 grs3 "" ) ) (defun lingkaran() (setq x1(/ x 2)) (setq r(/ y 3)) (setq e(list (- (car c) x1) (cadr c ))) (setq f(list (- (car e) r) (cadr e ))) (setq g(list (+ (car e) r) (cadr e ))) (command "line" c g "" "line" f d "") (command "arc" "ce" e f g)
46

) (defun c:kotak() (gambar) (lingkaran) (titik_dimensi) (command "zoom" "w" "") )

; perintah (car) dan (cadr) dapat diganti dengan (nth 0) dan (nth 1) Program menggunakan perintah trim dan mirror (defun c:gambar() (kepala) (mata) (hidung) (mulut) (telinga) ;(topi) (command "zoom" "e" "") ) (defun kepala() (setq a(getpoint "\n Titik awal gambar : ")) (command "circle" a 150 "" ); titik a pusat lingkaran (setq lingk1(entlast)) ) (defun telinga() (setq b(list (- (car a) 150) (cadr a ))) (setq c(list (+ (car a) 150) (cadr a))); center of telinga kanan (setq x(list (car a)(+ (cadr a) 150) )); titik puncak lingkaran
47

(command "circle" c 40 "" ) (setq lingk3(entlast)) (command "trim" lingk1 "" lingk3 "") (setq arc3(entlast)) (command "mirror" arc3 "" a x "") ) (defun mata() (setq d (list (- (car a) 75) (cadr a ))) (command "circle" d 30 "") (setq e (list (+ (car a) 75) (cadr a ))) (command "circle" e 30 "") (setq d1 (list (- (car d) 35) (+ (cadr d) 35))) (setq d2 (list (+ (car d) 35) (+ (cadr d) 35))) (setq e1 (list (- (car e) 35) (+ (cadr e) 35))) (setq e2 (list (+ (car e) 35) (+ (cadr d) 35))) (command "arc" "ce" d d2 d1 "") (command "arc" "ce" e e2 e1 "") ) (defun hidung() (setq f (list (car a) (- (cadr a) 75))) (command "circle" f 30 "") ) (defun mulut() (setq g1(list (- (car a) 90) (- (cadr a) 90))) (setq g2(list (+ (car a) 90) (- (cadr a) 90))) (command "arc" "ce" a g1 g2 "") )

Program penggambaran kotak menggunakan perintah fillet dan arc :


48

Menggambar kotak yang terdapat fillet dan arc seperti gambar di bawah ini beserta ukurannya. Menjelaskan urutan urutan penggambarannya.

Menuntun mahasiswa menyusun logika sintaks

- Memberi nama pemanggil prosedur (defun gambar()) - Menentukan titik a sebagai titik awal gambar (setq a (getreal \n titik awal gambar: )) - Meminta masukan variable panjang kotak (x) (setq x (getreal \n panjang kotak (x): )) - Meminta masukan variable tinggi kotak (y) (setq y (getreal \n lebar kotak (y): ))
49

- Menentukan koordinat titik b sejauh x terhadap titik a (setq b (list (+ (car a)x) (cadr a))) - Menentukan koordinat titik c sejauh y terhadap titik b (setq c(list (car b) (+(cadr b) y))) - Menentukan koordinat titik d sejauh x terhadap titik c (setq d (list (- (car c) x) (cadr c ))) - Memberi perintah membuat garis a b dan hasilnya dinamai grs1 (command line a b (setq grs1(enlist)) - Memberi perintah membuat garis b c dan hasilnya dinamai grs2 line b c (setq grs29enlast)) - Memberi perintah membuat garis d a dan hasilnya dinamai grs3 grs3(entlast)) - Memberi perintah membuat fillet (jari jari 900) antara grs1 terhadap grs2 fillet r (* 0.1 x) fillet grs1 grs2 - Memberi perintah membuat fillet (jari jari) antara grs1 terhadap grs3 fillet r (* 0.1 x) fillet grs1 grs3 )) - Memberi nama pemanggil prosedur pembuat busur (defun busur() - Menentukan X1=X/2 (setq x1(/ x 2)) - Menentukan r=y/3 (setq r(/ y 3)) - Menentukan titik e sejauh X1 sebelah kiri titik c (setq e (list (- (car c) x1) (cadr c))) - Menentukan titik f sejauh r disebelah kiri titik e (setq f(list (- (car e) r) (cadr e)))
50

- Menentukan titik g sejauh r disebelah kanan titik e (setq g(list (+ (car e) r) (cadr e))) - Perintah membuat garis c-g dan f-d (command line c g line f d ) - Perintah membuat busur f-g dengan pusat titik e (commad arc ce e f g)) - Membuat program utama pemanggil prosedur (defun c:kotak() (gambar) (lingkaran) (command zoom w ))

Meminta mahasiswa mempraktekanya hingga berhasil Program menggunakan perintah trim dan mirror : Menggambar bentuk yang dapat untuk mengaplikasikan perintah trim dan mirror seperti gambar di bawah ini beserta ukuranya

51

seperti berikut : kepala 300 Menggambar kepala boneka300 telinga 40 150 mata 30 75 75 hidung 30 titik pusat alis = titik pusat mata titik pusat mulut = titik pusat kepala

35 80 150 37,5 37,5 90 90


Menjelaskan urutan langkah menggambar kepala boneka terdiri dari prosedur: - Menggambar kepala - Menggambar hidung - Menggambar mulut - Menggambar telinga Menjelaskan prosedur menggambar boneka terdiri dari langkah: kepala

75

52

Menentukan titik sembarang, titik a, sebagai titik awal penggambaran lingkar kepala Membuat lingkaran jari-jari 150 Hasil penggambaran diberi nama lingk1

Menjelaskan prosedur menggambar telinga boneka terdiri dari langkah: - Menentukan titik b sebagai ttk pusat lingkaran telinga kanan pd posisi (150,0) thdi a - Menentukan titik c sebagai titik pusat lingkaran telinga kiri pada posisi (150,0) thd a (namun titik ini tidak harus ada) - Menentukan titik x pada pubcak kepala yang akan digunakan titik bantu pencerminan telinga. Yaitu pada posisi (0,150) terhadap a - Membuat lingkaran jari-jari 40 pada titik c, dan hasilnya diberi nama lingk3 - Melakukan pengirisan (trim) lingk3 menggunakan lingk1, dan hasilnya diberi nama arc3 - Busur arc3 dicerminkan terjadap titik a-x agar menjadi telinga kiri.

Menjelaskan prosedur menggambar mata boneka terdiri dari langkah: - Menentukan titik d sebagai ttk pusat lingkaran mata kiri pd posisi (-75,0) thd a - Membuat lingkaran mata dengan jari-jari 30 pada titik d - Menentukan titik e sebagai ttk pusat lingkaran mata kanan pd posisi (+75,0) thd a - Membuat lingkaran mata dengan jari-jari 30 pada titik e
53

Menentukan titik d1 sebagai ttk akhir alis kiri pd posisi (-35,+35) thd d Menentukan titik d2 sebagai ttk awal alis kiri pd posisi (+35,+35) thd d Menentukan titik e1 sebagai ttk akhir alis kiri pd posisi (-35,+35) thd e Menentukan titik e2 sebagai ttk awal alis kiri pd posisi (+35,+35) thd e Membuat busur alis kiri dari d2 menuju d1 dengan pusat d Membuat busur alis kanan dari e2 menuju e1 dengan pusat e

Menjelaskan prosedur menggambar hidung boneka terdiri dari langkah: - Menentukan titik f sebagai ttk pusat lingkaran hidung pd posisi (0, -75) thd a - Membuat lingkaran jari-jari 30 dengan pusat f Menjelaskan prosedur menggambar mulut boneka terdiri dari langkah: - Menentukan titik g1 sebagai awal gambar mulut pd posisi (-90, -90) thd a - Menentukan titik g2 sebagai akhir gambar mulut pd posisi (+90, -90) thd a - Membuat busurg1 g2 dengan pusat a Selanjutnya menuntun mahasiswa untuk mengubah setiap langkah pada masing-masing prosedur menjadi sintaks program dan menulis program utama dan menjalankannya hingga diperoleh hasil yang benar.

54

Rencana Pembelajaran 7 Mata Kuliah Pokok Bahasan Sub Pokok Bahasan Semester Alokasi Waktu Pertemuan ke: CAD 2&3 D (AutoCAD) : Prinsip pemrograman Visual LISP untuk komponen mesin : Menyusun program Visual LISP untuk komponen mesin sederhana : IV : 4x50 menit :5

1. Mahasiswa dapat menyusun program Visual LISP untuk otomasi penggambaran komponen mesin sederhana berupa mur 2. Mahasiswa dapat menyusun program Visual LISP untuk otomasi penggambaran komponen mesin sederhana berupa baut

Materi Mahasiswa latihan memprogram membuat program otomasi untuk mengambar mur.

; defun-defun dibawah ini merupakan defun masukan utama (defun angl (ap) ; konversi sudut dari radian ke derajat (* pi (/ ap 180.0)) )
55

(defun masukan () ; menentukan masukan diameter nominal ulir y (setq d (getreal "\nTentukan diameter nominal (M) : ")) ) (defun tebmur () ; menentukan tebal dari mur (setq tebal (* 0.8 d)) ) (defun jarak2 () ; menentukan jarak pada mur (setq P (polar Ps (angl 90) (* 2 d))) ) ; sub-sub program untuk membuat garis center (defun center1 () ; menentukan garis center pand depan mur (setq cen1 (polar Ps (angl 90) d)) (setq cen2 (polar Ps (angl 270) d)) (setq cen3 (polar Ps (angl 180) (+ (* 0.27 d) d))) (setq cen4 (polar Ps (angl 0) (+ (* 0.27 d) d))) (command "line" cen1 cen2 "")(setq cena (entlast)) (command "line" cen3 cen4 "")(setq cenb (entlast)) (command "change" cena cenb "" "p" "lt" "center" "s" (* 0.3 (command "change" cena cenb "" "p" "c" "blue" "") )

(defun center2 () ; menentukan garis center pand atas mur (setq cent1 (polar P (angl 90) d)) (setq cent2 (polar P (angl 270) (* d 0.2))) (command "line" cent1 cent2 "")(setq centa (entlast)) (command "change" centa "" "p" "c" "blue" "") (command "change" centa "" "p" "lt" "center" "s" (* 0.3 d) "") )

; sub-sub program untuk menentukan titik-titik penggamba


56

(defun perintah1 () ; menentukan titik-titik penggambaran pandang (setq point1 (polar Ps (angl 60) d)) (setq point2 (polar Ps (angl 120) d)) (setq point3 (polar Ps (angl 180) d)) (setq point4 (polar Ps (angl 240) d)) (setq point5 (polar Ps (angl 300) d)) (setq point6 (polar Ps (angl 0) d)) (setq pointa (polar Ps (angl 255) (/ d 2))) (setq rp (* (cos (angl 30)) d)) (setq dd (/ d 2)) (setq tinggi_ulir (/ d 8)) (setq dl (- dd tinggi_ulir)) )

(defun perintah2 () ; menentukan titik-titik penggambaran pandang (setq pnt1 (polar P (angl 180) (/ d 2))) (setq pnt2 (polar P (angl 180) d)) (setq pnt3 (polar pnt2 (angl 90) tebal)) (setq pnt4 (polar pnt3 (angl 0) (/ d 2))) (setq pnt5 (polar pnt4 (angl 0) d)) (setq pnt6 (polar pnt5 (angl 0) (/ d 2))) (setq pnt7 (polar pnt6 (angl 270) tebal)) (setq pnt8 (polar pnt7 (angl 180) (/ d 2))) (setq pnt9 (polar pnt3 (angl 0) (/ d 4))) (setq pnt10 (polar pnt5 (angl 0) (/ d 4))) (setq pnta (polar pnt3 (angl 300) (* d 2))) (setq pntb (polar pnt3 (angl 300) (/ d 2))) (setq pntc (polar pnt6 (angl 240) (/ d 2))) (setq pnti11 (polar pntb (angl 54.8) (* (/ d 2) (cos (angl 30)))) (setq pnti12 (polar pntc (angl 54.8) (* (/ d 2) (cos (angl 30)))) (setq pnti15 (polar pntb (angl 180) (* (/ d 2) (cos (angl 30)))) (setq pnti16 (polar pntc (angl 180) (* (/ d 2) (cos (angl 30))))) (setq rb (* (* 2 d) (cos (angl 30)))) (setq pnti13 (polar pnta (angl 120) rb)) (setq pnti14 (polar pnta (angl 60) rb))
57

(setq rk (* (cos (angl 30)) (/ d 2))) (setq pnt30 (polar pnt4 (angl 0) (/ d 2))) (setq pnt31 (polar pnt3 (angl 270) (/ (- (/ d 2) rk) (cos (angl 3 (setq pnt32 (polar pnt31 (angl 0) (/ d 2))) (setq pnt33 (polar pnt32 (angl 0) d)) (setq pnt34 (polar pnt33 (angl 0) (/ d 2))) (setq tr4 (polar pnta (angl 130) rb)) (setq tr5 (polar pnta (angl 270) rb)) (setq tr6 (polar pnta (angl 50) rb)) ) ; sub-sub program untuk kalkulasi penggambaran

(defun kalkulasi_gambar1 () ; kalkulasi menggambar pand atas mu (command "line" pnt2 pnt31 "") (command "arc" pnt32 pnt9 pnt31) (command "line" pnt32 pnt1 "") (command "arc" pnt33 pnt30 pnt32) (command "line" pnt33 pnt8 "") (command "arc" pnt34 pnt10 pnt33) (command "line" pnt34 pnt7 "") (command "line" pnt9 pnt10 "") (command "line" pnt2 pnt7 "") )

(defun gambar1_mur () ; proses menggambar pandangan depan d (command "pline" point1 point2 point3 point4 point5 point6 (command "zoom" "e") (command "circle" Ps rp) (command "circle" Ps dl) (command "arc" "c" Ps pointa "a" "300")(setq asu (entlast)) (command "zoom" "e") (command "change" asu "" "p" "color" "red" "") (command "zoom" "a") )
58

(defun gambar2_mur () ; proses menggambar pandangan atas dari (kalkulasi_gambar1) )

; merupakan program utama dari proses penggambaran mu (defun c:mur () (masukan) (mskan) (perintah1) (gambar1_mur) (center1) (jarak2) (tebmur) (perintah2) (gambar2_mur) (center2) (command "zoom" "e") (command "regen") )

Rencana Pembelajaran 8 Mata Kuliah Pokok Bahasan Sub Pokok Bahasan Semester Alokasi Waktu Pertemuan keSasaran Pendidikan:
59

: CAD 2&3 D (AutoCAD) : Prinsip pemrograman Visual LISP untu ukuran pada gambar teknik : Menyusun program Visual LISP untuk otom pada gambar teknik : IV : 4x50 menit :6

Mahasiswa akan dapat menyusun program Visual LISP untuk otomasi penunjukan ukuran pada gambar teknik Sasaran Pembelajaran 1. Mahasiswa dapat menyusun program Visual LISP untuk otomasi penunjukan ukuran linier 2. Mahasiswa dapat menyusun program Visual LISP untuk otomasi penunjukan ukuran angular

Materi: Melengkapi materi penunjukan ukuran

pembelajaran

dengan

Program penunjukan ukuran pada gambar kotak dari materi pembelajaran 5 (defun gambar() (setq a (getpoint "\n titik awal gambar: ")) (setq x (getreal "\n panjang kotak (x): ")) (setq y (getreal "\n lebar kotak (y): ")) (setq b (list (+ (car a) x) (cadr a))) (setq c (list (car b) (+ (cadr b) y))) (setq d (list (- (car c) x) (cadr c ))) (command "line" a b "" (setq grs1(entlast)) "line" b c "" (setq grs2(entlast)) "line" d a "" (setq grs3(entlast)) "fillet" "r" (* 0.1 x) "fillet" grs1 grs2 "" "fillet" "r" (* 0.1 x) "fillet" grs1 grs3 "" ) )
60

(defun lingkaran() (setq x1(/ x 2)) (setq r(/ y 3)) (setq e(list (- (car c) x1) (cadr c ))) (setq f(list (- (car e) r) (cadr e ))) (setq g(list (+ (car e) r) (cadr e ))) (command "line" c g "" "line" f d "") (command "arc" "ce" e f g) ) (defun titik_dimensi() (defun rad (a) (* pi(/ a 180.0))) (setq b (list (+ (car a) x) (nth 1 a))) (setq c (list (car b) (+ (nth 1 b) y))) (setq d (list (- (car c) x) (nth 1 c ))) (command "dimlinear" b c "v" (polar b (rad 0) 10 )) (command "dimlinear" c e "h" (polar c (rad 90) 10 )) (command "dimlinear" c d "h" (polar c (rad 90) 20 )) ) (defun c:kotak() (gambar) (lingkaran) (titik_dimensi) (command "zoom" "w" "") )

; perintah (car) dan (cadr) dapat diganti dengan (nth 0) dan (nth 1)

61

Rencana Pembelajaran 9 Mata Kuliah Pokok Bahasan Sub Pokok Bahasan Semester Alokasi Waktu Pertemuan ke-

: CAD 2&3 D (AutoCAD) : Pemrograman Visual LISP untuk gambar pandangan atas, pandangan muka, pan dilengkapi dengan ukuran menggunakan : Menyusun program Visual LISP untuk gam dari pandangan atas, pandangan muka, dan dilengkapi dengan ukuran mengguna : IV : 2x50 menit :7

Sasaran Pendidikan: Mahasiswa mampu menyusun program otomasi gambar teknik yang terdiri dari pandangan atas, pandangan muka, pandangan sisi kanan, dan dilengkapi dengan ukuran menggunakan koordinat polar Sasaran Pembelajaran 1. Mahasiswa dapat menyusun program Visual LISP untuk otomasi pandangan atas dari gambar yang diberikan menggunakan koordinat polar 2. Mahasiswa dapat menyusun program Visual LISP untuk otomasi pandangan muka dari gambar yang diberikan menggunakan koordinat polar 3. Mahasiswa dapat menyusun program Visual LISP untuk otomasi pandangan sisi kanan dari gambar yang diberikan menggunakan koordinat polar 4. Mahasiswa dapat menyusun program Visual LISP untuk otomasi penulisan ukuran dari
62

pandangan atas, pandangan muka, dan pandangan sisi kanan dari gambar yang diberikan menggunakan koordinat polar Materi :

Dari gambar isometric di atas (diambilkan dari soal R pada soal pretes) harus disusun program otomasi penggambaran pandangan atas, disusul pandangan muka, lalu pandangan sisi kanan. Bila kketiga gambar telah selesai, selanjutnya gambar kerja harus dilengkapi dengan ukuran. Untuk mempermudah penyusunan program, maka tiap titik pada gambar diberi nomor. Pandangan atas penomoran dimulai dari 1, 2, 3 dst. Pandangan muka penomoran dimulai dari 11, 12, 13, dst. Pandangan sisi kanan dimulai dari 21,22,23,dst. Maka akan diperoleh gambar seperti berikut : (kunci jawaban soal R adalah gambar 13)

63

10 9 8 11 7 12 14 13 18 17 15 16

4 5 6 21 22

20 23
26 27

29

28

25

24

Penyusunan program utama penampilan seluruh gambar


64

(defun c:tigabls() (pandatas) (pandmuka) (pandkanan) (dim1) (dim2) (command "zoom" "e" "") ) Penyusunan program otomasi gambar pandangan atas: ; PANDANGAN ATAS (defun pandatas() (defun rad (a) (* pi (/ a 180.0))) (setq t1(getpoint "\n Titik Pandangan Atas: "))

Awal

Gambar

; PANDANGAN ATAS (setq t2 (polar t1 (rad 0) 28) t3 (polar t2 (rad 0) 15) t4 (polar t3 (rad 270) 10) t5 (polar t4 (rad 270) 15) t6 (polar t5 (rad 270) 10) t7 (polar t6 (rad 180) 15) t8 (polar t7 (rad 180) 28) t9 (polar t8 (rad 90) 10) t10 (polar t9 (rad 90) 15)) (Command "pline" t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t1 "") (command "line" t2 t7 "") (command "line" t10 t4 "")(setq putus1(entlast)) (command "line" t9 t5 "")(setq putus2(entlast)) )

65

Penambahan putus1 dan putus2 diperlukan untuk mengubah garis menjadi garis putus-putus melalui progam utama. Untuk mendapatkan hasil jalankan program utama.

Penyusunan program otomasi gambar pandangan muka: ; PANDANGAN MUKA (defun pandmuka() (defun rad (a) (* pi (/ a 180.0))) (setq t11(list (car t1) (- (cadr t1) 55))); jarak antara t1 terhadap t11 adalah 55 (setq t12 (polar t11 (rad 0) 28) t13 (polar t12 (rad 270) 15) t14 (polar t13 (rad 0) 15) t15 (polar t14 (rad 270) 10) t16 (polar t15 (rad 270) 10) t17 (polar t16 (rad 180) 43) t18 (polar t17 (rad 90) 10)) (Command "pline" t11 t12 t13 t14 t15 t16 t17 t18 t11 "") (command "line" t18 t15 "")(setq putus3(entlast)) )

66

Penambahan putus3 diperlukan untuk mengubah garis menjadi garis putus-putus melalui progam utama. Untuk mendapatkan hasil jalankan program utama. Penyusunan program otomasi gambar pandangan sisi kanan: ; PANDANGAN SISI KANAN (defun pandkanan() (defun rad (a) (* pi (/ a 180.0))) (setq t21(list (+ (car t11) 63) (cadr t11))) ; jarak antara t11 terhadap t21 adalah 63 (setq t22 (polar t21 (rad 0) 35) t23 (polar t22 (rad 270) 15) t24 (polar t23 (rad 270) 20) t25 (polar t24 (rad 180) 10) t26 (polar t25 (rad 90) 10) t27 (polar t26 (rad 180) 15) t28 (polar t27 (rad 270) 10) t29 (polar t28 (rad 180) 10) t20 (polar t29 (rad 90) 20)) (Command "pline" t21 t22 t23 t24 t25 t26 t27 t28 t29 t20 t21 "") (command "line" t20 t23 "") ) Untuk mendapatkan utama. hasil jalankan program

67

Penyusunan program untuk menampilkan dimensi (ukuran) dim1 untuk penunjukan ukuran pada pandangan muka dan dim2 untuk penunjukan ukuran pada pandangan sisi kanan. ; DIMENSI PANDANGAN MUKA (defun dim1(); (setq t11(list (car t1) (- (cadr t1) 55))) (setq t17(list (car t11) (- (cadr t11) 35))) (setq t16(list (+ (car t17) 43) (cadr t17))) (command "dimlinear" t16 t17 "h" (polar t17 (rad 90) -10 )) (command "dimlinear" t11 t17 "v" (polar t17 (rad 180) 10 )) (setq t13(list (+ (car t11) 28) (- (cadr t11) 15))) (setq t14(list (+ (car t11) 43) (- (cadr t11) 15))) (command "dimlinear" t13 t14 "h" (polar t13 (rad 90) 25)) ) ; DIMENSI PANDANGAN SISI KANAN (defun dim2() (setq t22(list (+ (car t11) 98) (cadr t11))) (setq t23(list (car t22) (- (cadr t22) 15))) (command "dimlinear" t22 t23 "v" (polar t22 (rad 180) -10 )) (setq t25(list (+ (car t15) 45) (cadr t15))) (setq t26(list (+ (car t16) 45) (cadr t16))) (command "dimlinear" t25 t26 "v" (polar t25 (rad 180) -20)) (setq t24(list (+ (car t25) 10) (cadr t25)))
68

(command "dimlinear" t24 t25 "h" (polar t25 (rad 90) -20)) (setq t28(list (- (car t25) 15) (cadr t25))) (setq t29(list (- (car t28) 10) (cadr t25))) (command "dimlinear" t28 t29 "h" (polar t28 (rad 90) -20)) ) Selanjutnya tambahkan sintask (dim1) dan (dim2) pada program utama, dan jalankan programnya untuk melihat hasil dari seluruh gambar beserta dengan ukurannya.

Untuk mendapatkan garis putus putus perlu ditambahkan dua baris pada bagian akhir program utama, sehingga menjadi: (defun c:tigabls() (pandatas) (pandmuka) (pandkanan) (dim1) (dim2) (command "zoom" "e" "") (command "regen") (command "change" putus1 putus2 putus3 "" "p" "LType" "ACAD_ISO02W100" "c" "") )

69

Rencana Pembelajaran 10 Mata Kuliah Pokok Bahasan Sub Pokok Bahasan

Semester Alokasi Waktu Pertemuan ke-

: CAD 2&3 D (AutoCAD) : Pemrograman Visual LISP untuk gambar pandangan atas, pandangan muka, pan dilengkapi dengan ukuran menggunakan : Menyusun program Visual LISP untuk gam dari pandangan atas, pandangan muka, dan dilengkapi dengan ukuran m Cartesian : IV : 2x50 menit :8

Sasaran Pendidikan: Mahasiswa mampu menyusun program otomasi gambar teknik yang terdiri dari pandangan atas, pandangan muka, pandangan sisi kanan, dan dilengkapi dengan ukuran menggunakan koordinat cartesian Sasaran Pembelajaran 1. Mahasiswa dapat menyusun program Visual LISP untuk otomasi pandangan atas dari gambar yang diberikan menggunakan koordinat cartesian 2. Mahasiswa dapat menyusun program Visual LISP untuk otomasi pandangan muka dari gambar yang diberikan menggunakan koordinat cartesian 3. Mahasiswa dapat menyusun program Visual LISP untuk otomasi pandangan sisi kanan dari gambar yang diberikan menggunakan koordinat cartesian 4. Mahasiswa dapat menyusun program Visual LISP untuk otomasi penulisan ukuran dari pandangan atas, pandangan muka, dan pandangan sisi kanan
70

dari gambar yang koordinat cartesian Materi :

diberikan

menggunakan

Dari gambar isometric di atas (diambilkan dari soal R pada soal pretes) harus disusun program otomasi penggambaran pandangan atas, disusul 1 2 3 pandangan muka, lalu pandangan sisi kanan. Bila kketiga gambar telah selesai, selanjutnya gambar kerja harus dilengkapi dengan ukuran.
10 4

Untuk mempermudah penyusunan program, maka tiap titik pada gambar diberi nomor. Pandangan 9 5 atas penomoran dimulai dari 1, 2, 3 dst. Pandangan muka penomoran dimulai dari 11, 12, 6 13, 8 dst. Pandangan sisi kanan dimulai dari 21 22 21,22,23,dst. Maka akan diperoleh gambar 7 11 seperti berikut : (kunci jawaban soal R adalah 12 gambar 13)
14 13 18 17 15 16 29 28 25
26 27

20 23 71 24

Penyusunan program utama otomasi : (defun c:tgblscart() (pandatas) (pandmuka) (pandkanan) (defun rad (a) (* pi (/ a 180.0))) (dimensi) (command "zoom" "e" "") ) Penyusunan program otomasi pandangan atas :: ;PANDANGAN ATAS
72

(defun pandatas() (setq t1(getpoint "\n Titik awal Penggambaran : ")) (setq t2(list (+ (car t1) 28) (cadr t1)) t3(list (+ (car t1) 43) (cadr t1)) t4(list (+ (car t1) 43) (- (cadr t1) 10)) t5(list (+ (car t1) 43) (- (cadr t1) 25)) t6(list (+ (car t1) 43) (- (cadr t1) 35)) t7(list (+ (car t1) 28) (- (cadr t1) 35)) t8(list (car t1) (- (cadr t1) 35)) t9(list (car t1) (- (cadr t1) 25)) t10(list (car t1) (- (cadr t1) 10)) t11(list (+ (car t1) 28) (- (cadr t1) 10)) t12(list (+ (car t1) 28) (- (cadr t1) 25))) (command "pline" t1 t3 t6 t8 t1 "") (command "line" t2 t7 "") (command "line" t10 t4 "")(setq putus1(entlast)) (command "line" t9 t5 "")(setq putus2(entlast)) ) Untuk mendapatkan utama. hasil, jalankan program

Penyusunan program otomasi pandangan muka: ;PANDANGAN MUKA (defun pandmuka() (setq t21(list (car t1) (- (cadr t1) 55))) (setq t22(list (+ (car t21) 28) (cadr t21)) t23(list (+ (car t21) 28) (- (cadr t21) 15)) t24(list (+ (car t21) 43) (- (cadr t21) 15))
73

t25(list (+ (car t21) 43) (- (cadr t21) 25)) t26(list (+ (car t21) 43) (- (cadr t21) 35)) t27(list (car t21) (- (cadr t21) 35)) t28(list (car t21) (- (cadr t21) 25))) (command "pline" t21 t22 t23 t24 t26 t27 t21 "") (command "line" t28 t25 "")(setq putus3(entlast)) ) Untuk mendapatkan utama. hasil, jalankan program

Penyusunan program otomasi pandangan sisi kanan: ;PANDANGAN SISI KANAN (defun pandkanan() (setq t31(list (+ (car t21) 65) (cadr t21))) (setq t32(list (+ (car t31) 35) (cadr t31)) t33(list (+ (car t31) 35) (- (cadr t31) 15)) t34(list (+ (car t31) 35) (- (cadr t31) 35)) t35(list (+ (car t31) 25) (- (cadr t31) 35)) t36(list (+ (car t31) 25) (- (cadr t31) 25)) t37(list (+ (car t31) 10) (- (cadr t31) 25)) t38(list (+ (car t31) 10) (- (cadr t31) 35)) t39(list (car t31) (- (cadr t31) 35)) t30(list (car t31) (- (cadr t31) 15))) (command "pline" t31 t32 t34 t35 t36 t37 t38 t39 t31 "") (command "line" t30 t33 "") ) Untuk mendapatkan utama. hasil, jalankan program

74

Penyusunan program ukuran/dimensi:

otomasi

penunjukan

(defun dimensi() ; PANDANGAN MUKA (command "dimlinear" t21 t27 "v" 180) 10)) (command "dimlinear" t23 t24 "h" 90) 25)) (command "dimlinear" t27 t26 "h" 270) 10)) ; PANDANGAN SAMP KANAN (command "dimlinear" t32 t33 "v" 0) 10)) (command "dimlinear" t35 t36 "v" 0) 20)) (command "dimlinear" t39 t38 "h" 270) 10)) (command "dimlinear" t35 t34 "h" 270) 10)) )

(polar t21 (rad (polar t23 (rad (polar t27 (rad (polar t32 (rad (polar t36 (rad (polar t39 (rad (polar t35 (rad

Untuk mendapatkan hasil, jalankan program utama. Untuk mendapatkan garis putus putus perlu ditambahkan dua baris pada bagian akhir program utama, sehingga menjadi (defun c:tgblscart() (pandatas)
75

(pandmuka) (pandkanan) (defun rad (a) (* pi (/ a 180.0))) (dimensi) (command "zoom" "e" "") (command "regen") (command "change" putus1 putus2 putus3 "" "p" "LType" "ACAD_ISO02W100" "c" "") ) Strategi pembelajaran: 1. Menjalankan program 2. Menampilkan gambar isometrik (soal R) dan membahas gambar proyeksinya (pandangan atas, pandangan muka, pandangan sisi kanan) beserta dengan ukurannya 3. menjelaskan penyusunan program otomasi penggambaran tiap pandangannya 4. menjelaskan program utama untuk mejalankan program 5. menjelaskan programpenggambaran ukuran 6. menugaskan mahasiswa untuk menyusun program hingga berhasil

76

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
77

6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

78

Anda mungkin juga menyukai