Tải lisp
1 Thêm class VeNha.lsp
Lưu mã sau dưới dạng tệp tin AJS_VeNha.lsp
Code:
(defun C:VeNha (/ p1 p2 N D H rect pt_center pt_wc pt_water txt_height) (vl-load-com) (setvar "CMDECHO" 0) ; Bước 1: Nhập dữ liệu từ người dùng (initget 1) (setq N (getint "\nNhập số lượng hình chữ nhật (N): ")) (initget 1) (setq D (getreal "\nNhập chiều dài hình chữ nhật (D): ")) (initget 1) (setq H (getreal "\nNhập chiều cao hình chữ nhật (H): ")) ; Bước 2: Chọn điểm gốc để vẽ hình chữ nhật đầu tiên (while (not (setq p1 (getpoint "\nChọn điểm gốc để vẽ hình chữ nhật: "))) (princ "\nVui lòng chọn điểm gốc!")) ; Bước 3: Vẽ hình chữ nhật đầu tiên (setq p2 (list (+ (car p1) D) (+ (cadr p1) H))) (command "_RECTANG" p1 p2) (setq rect (entlast)) ; Bước 4: Array hình chữ nhật theo phương thẳng đứng (command "_ARRAY" rect "" "_R" N 1 (* H 1) "") ; Khoảng cách giữa các hình là 2H ; Bước 5: Thêm text ghi chú cho từng hình chữ nhật (setq txt_height (/ H 10.0)) ; Chiều cao text dựa trên chiều cao H (if (< txt_height 2.5) (setq txt_height 2.5)) ; Đảm bảo text không quá nhỏ (setq i 0) (while (< i N) ; Tính toán điểm giữa của hình chữ nhật thứ i (setq pt_center (list (+ (car p1) (/ D 2.0)) (+ (cadr p1) (* i (* H 1)) (/ H 2.0)))) ; Tính toán điểm góc phải (cho "WC") (setq pt_wc (list (- (+ (car p1) D) txt_height) (+ (cadr p1) (* i (* H 1)) (- H txt_height)))) ; Tính toán điểm phía dưới "WC" (cho "Nước ra") (setq pt_water (list (car pt_wc) (- (cadr pt_wc) (* txt_height 1.5)))) ; Thêm text "DxH" ở giữa hình chữ nhật (command "_TEXT" "_J" "_MC" pt_center txt_height 0 (strcat (rtos D 2 0) "x" (rtos H 2 0))) ; Thêm text "WC" ở góc phải (command "_TEXT" "_J" "_TR" pt_wc txt_height 0 "WC") ; Vẽ rectangle bao quanh "WC" (setq wc_rect_p1 (list (- (car pt_wc) (* txt_height 0.5)) (- (cadr pt_wc) (* txt_height 0.5)))) (setq wc_rect_p2 (list (+ (car pt_wc) (* txt_height 2.5)) (+ (cadr pt_wc) (* txt_height 1.5)))) (command "_RECTANG" wc_rect_p1 wc_rect_p2) ; Thêm text "Nước ra" phía dưới "WC" (command "_TEXT" "_J" "_TL" wc_rect_p2 txt_height 0 "Nước ra") (setq i (1+ i)) ) (setvar "CMDECHO" 1) (princ "\nAJS - www.lisp.vn") (princ) ) (princ "\nGõ RECTARRAY để chạy chương trình!")
Link tải (MediaFire)
---------------------------------------------------------------------------------------------
Mọi thông tin xin liên hệ Fanpage AutoLISP Thật là đơn giản!
Cảm ơn bạn đã theo dõi!
Không có nhận xét nào:
Đăng nhận xét