Jumat, 13 Oktober 2023

Belajar Autolisp dengan Praktek Langsung - 8. Menggambar Ukuran Kertas A4 dengan Perintah Fungsi Command secara Interaktif dengan Fungsi Polar

Menggambar Ukuran Kertas A4 dengan Perintah Fungsi Command 

Interaktif disini maksudnya saat program berjalan pengguna bisa berinteraksi dengan Bricscad/ Autocad. Misal titik awal penggambaran kertasnya adalah diserahkan pengguna, yaitu dengan memilih titik pada layar. 

Untuk memilih titik pada layar fungsi yang digunakan adalah fungsi getpoint

format fungsi getpoint  pada BricsCAD V22 - Developer Reference :

(getpoint  [ refPoint ]  [ prompt ] )

refPoint : (opsional) titik acuan 2d/3d; jika ditentukan, digunakan sebagai titik awal rubberband; jika dihilangkan, '(0 0) digunakan

prompt : (opsional) teks pada command prompt yang akan ditampilkan; jika dihilangkan, prompt standar akan ditampilkan

fungsi getpoint ini akan mengembalikan list berupa koordinat 3D (x y z), setelah data titik awal diperoleh maka data titik-titik berikutnya bisa diperoleh dari ukuran panjang dan lebar ukuran kertas. Fungsi yang paling banyak digunakan (mungkin karena kemudahannya) adalah polar.

Fungsi Polar digunakan untuk mencari titik terhadap suatu titik lain dengan argument titik, sudut dan jarak.

format fungsi polar  pada BricsCAD V22 - Developer Reference :

(polar point angle distance)

point : titik acuan

angle : sudut, dalam radian

distance : jarak

pada fungsi polar satuan sudut tidak menggunakan derajat melain radian, dimana pi rad = 180 derajat.

Untuk kemudahannya fungsi berikut adalah fungsi untuk mengubah dari derajat ke radian:

(defun d2r (derajat) (* pi (/ derajat 180.0)))

berikut kodenya

(defun c:ka4( / oldos d2r panjang lebar ttk1 ttk2 ttk3 ttk4)
(setq oldos (getvar "OSMODE"))
(setvar "OSMODE" 0)
(defun d2r (derajat) (* pi (/ derajat 180.0)))
(setq panjang 297)
(setq lebar 210)
(setq ttk1 (getpoint "Tentukan titik sisip kertas..."))
(setq ttk2 (polar ttk1 (d2r 0) panjang))
(setq ttk3 (polar ttk2 (d2r 90) lebar))
(setq ttk4 (polar ttk3 (d2r 180) panjang))
(command "line" ttk1 ttk2 ttk3 ttk4 ttk1 "")
(setvar "OSMODE" oldos)
(princ)
)


catatan:

- (setq ttk4 (polar ttk3 (d2r 180) panjang)) bisa juga diganti dengan (setq ttk4 (polar ttk1(d2r 90) lebar))

- fungsi d2r bisa juga diletakkan diluar program, tetapi fungsi ini akan tetap ada meskipun program selesai berjalan.



Tidak ada komentar:

Posting Komentar