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)
Nhóm AutoLISP Kiến trúc Nội thất
Tham gia nhóm Zalo AutoLISP Kiến trúc nội thất để cùng chia sẻ, kết nối đam mê!
---------------------------------------------------------------------------------------------
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