Training AutoLISP bekasi

Admin kai-bekasi

AutoLISP adalah dialek bahasa pemrograman Lisp yang dibuat khusus untuk digunakan dengan versi lengkap AutoCAD dan turunannya, yang meliputi AutoCAD Map 3D, AutoCAD Architecture dan AutoCAD Mechanical. [1] Baik antarmuka pemrograman aplikasi (API) maupun interpreter untuk mengeksekusi kode AutoLISP tidak termasuk dalam lini produk AutoCAD LT. [2]

AutoLISP adalah dialek bahasa Lisp kecil, dengan cakupan dinamis, diketik secara dinamis dengan pengumpulan sampah, struktur daftar yang tidak dapat diubah, dan simbol yang dapat diatur, kurang memiliki fitur Lisp biasa seperti sistem makro, fasilitas definisi catatan, array, fungsi dengan jumlah argumen yang bervariasi atau membiarkan ikatan . Selain bahasa inti, sebagian besar fungsi primitif adalah untuk geometri, mengakses database DWG internal AutoCAD, atau memanipulasi entitas grafis dalam AutoCAD. Properti entitas grafis ini terungkap ke AutoLISP sebagai daftar asosiasi di mana nilai dipasangkan dengan kode grup AutoCAD yang menunjukkan properti seperti titik definisi, jari-jari, warna, layer, linetypes, dll. AutoCAD memuat kode AutoLISP dari file .LSP. [ 3]

Kode AutoLISP dapat berinteraksi dengan pengguna melalui editor grafis AutoCAD dengan menggunakan fungsi primitif yang memungkinkan pengguna untuk memilih titik, memilih objek di layar, dan memasukkan angka dan data lainnya. AutoLisp juga memiliki built-in graphical user interface (GUI) bahasa mini atau domain-specific (DSL), Dialog Control Language, untuk membuat kotak dialog modal dengan tata letak otomatis, dalam AutoCAD. [3]
Program Hello world sederhana di AutoLISP adalah:
(defun hello ( )
2     (princ "\nHello World!")
3     (princ)
4 )

Perhatikan baris terakhir di dalam definisi fungsi: ketika dievaluasi tanpa argumen, fungsi prinsip mengembalikan simbol nol, yang tidak ditampilkan oleh antarmuka baris perintah AutoCAD. Karena baris perintah AutoCAD berfungsi sebagai loop baca-eval-cetak (REPL), ini biasanya akan mencetak "Hello World!" ke baris perintah, segera diikuti oleh nilai kembali panggilan ke princ. Oleh karena itu, tanpa panggilan terakhir ke fungsi Pangeran, hasil dari ini adalah:

Halo Dunia! "\ NHalo World!"
Fungsi prin1 juga dapat digunakan untuk mencapai hasil yang sama.

Contoh yang lebih kompleks mungkin:
(defun c:pointlabel ( / pnt )
 2     (if (setq pnt (getpoint "\nSpecify point: "))
 3         (progn
 4             (entmake
 5                 (list
 6                    '(0 . "POINT")
 7                     (cons 10 (trans pnt 1 0))
 8                 )
 9             )
10             (entmake
11                 (list
12                    '(0 . "TEXT")
13                     (cons 10 (trans (cons (+ (car pnt) 0.6) (cdr pnt)) 1 0))
14                     (cons 40 (getvar 'textsize))
15                     (cons  1 (strcat "X:" (rtos (car pnt)) " Y:" (rtos (cadr pnt))))
16                 )
17             )
18         )
19     )
20     (princ)
21 )

Kode di atas mendefinisikan fungsi baru yang menghasilkan objek titik AutoCAD pada titik tertentu, dengan objek teks satu baris menampilkan koordinat X dan Y di sampingnya. Nama fungsi termasuk awalan khusus 'c:', yang menyebabkan AutoCAD mengenali fungsi sebagai perintah biasa. Pengguna, saat mengetik 'pointlabel' di baris perintah AutoCAD, akan diminta untuk memilih titik, baik dengan mengetikkan koordinat X dan Y, atau mengklik lokasi pada gambar. Fungsi kemudian akan menempatkan penanda pada titik itu, dan membuat objek teks satu-baris di sebelahnya, yang berisi koordinat X dan Y dari titik yang dinyatakan relatif terhadap Sistem Koordinasi Pengguna (UCS) yang aktif. Fungsi ini tidak memerlukan parameter, dan berisi satu variabel lokal ('pnt').

Contoh di atas juga dapat ditulis menggunakan perintah AutoCAD bawaan untuk mencapai hasil yang sama, namun pendekatan ini rentan terhadap perubahan pada perintah yang diminta di antara rilis AutoCAD.




Informasi Lanjut :
1. Iput Setiawan ( autodesk Inventor )
+62-8576-9545-560
2. Beni Ginting ( Solidworks )
+62 857-2207-7673
3. Jamil Diana ( Autocad & Skecthup )
+62 813-9455-0308

Comments