Thứ Hai, 10 tháng 3, 2025

Lisp vẽ nhà siêu tốc | Lisp vui vẻ | AutoLISP Reviewer

Ứng dụng được phát triển/Sưu tầm bởi đội ngũ AutoLISP Thật là đơn giản
   

Thông tin thêm: 👉👉👉

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)




---------------------------------------------------------------------------------------------
Ứng dụng được phát triển bởi đội ngũ AutoLISP Thật là đơn giản - Tác giả ứng dụng in D2P

    

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

[QD] LISP DIM CỰC NHANH trong Autocad | Hướng dẫn sử dụng QD1 QD2 QD3 QDA | AutoLISP Reviewer

Ứng dụng được phát triển/Sưu tầm bởi đội ngũ AutoLISP Thật là đơn giản     Thông tin thêm: 👉👉👉