Thứ Tư, 19 tháng 2, 2025

Lisp tổng Diện tích Chiều dài [AA] [LL] trong AutoCAD | Free lisp get Area and Length in AutoCAD | 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: 👉👉👉

AALL.VLX – TÍNH TỔNG DIỆN TÍCH & CHIỀU DÀI 🚀

AutoLISP AALL.VLX là một ứng dụng nhỏ gọn nhưng vô cùng hữu ích dành cho người dùng AutoCAD. Ứng dụng giúp tự động hóa việc tính tổng diện tíchtổng chiều dài chỉ bằng cách pick điểm, giúp tiết kiệm thời gian và tăng độ chính xác trong quá trình thiết kế. 🏗️✨

Kết quả được Copy trực tiếp vào Clipboard và cho phép Ghi giá trị vào 1 Text hoặc Attribute trong bản vẽ.

🔥 TÍNH NĂNG CHÍNH

🔹 Lệnh AA – Tính tổng diện tích cộng dồn dựa trên các điểm được chọn.
🔹 Lệnh LL – Tính tổng chiều dài giữa các cặp điểm do người dùng chọn.
🔹 Tùy chọn Scale – Cho phép nhân kết quả tính toán theo một tỷ lệ bất kỳ để phù hợp với bản vẽ. (Có trong bản nâng cao, link tải dưới cùng).

Ứng dụng được thiết kế để đơn giản, dễ sử dụng nhưng lại cực kỳ hiệu quả, đặc biệt hữu ích trong các lĩnh vực như quy hoạch, đo đạc, xây dựng và thiết kế kỹ thuật. 📏🏗️


🎯 LỢI ÍCH KHI SỬ DỤNG

Nhanh chóng – Không cần đo thủ công, chỉ cần pick điểm.
Chính xác – Giảm sai sót khi tính toán.
Miễn phí – Được chia sẻ hoàn toàn miễn phí trong nhóm AutoLISP Trải Nghiệm.
Nhỏ gọn & Tiện lợi – Chạy trực tiếp trên AutoCAD mà không cần cài đặt phức tạp.


🚀 CÀI ĐẶT & SỬ DỤNG

1️⃣ Nạp ứng dụng vào AutoCAD bằng lệnh APPLOAD.
2️⃣ Gõ AA để tính tổng diện tích hoặc LL để tính tổng chiều dài.
3️⃣ Pick các điểm mong muốn theo hướng dẫn.
4️⃣ Xem kết quả hiển thị ngay lập tức trên màn hình! 🎯

AALL.VLX là công cụ không thể thiếu cho những ai muốn tối ưu hóa quy trình làm việc trên AutoCAD. Hãy tham gia AutoLISP Trải Nghiệm để tải về ngay và trải nghiệm sự tiện lợi mà ứng dụng mang lại! 🚀🔧


Tính tổng diện tích AA

1 Thêm Code AA.lsp

Lưu mã sau dưới dạng tệp tin AA.lsp
Code:
;-------------------------------------------Do dien tich-----------------------------------
(defun C:AA (/ M ent ss area str C_text O_text N_text N_text1 Text olderr)
    (princ (strcat "\nGet Total Area by lisp.vn"))
	(defun SetClipText (str / html result)
		(if (= 'STR (type str))
			(progn
				(setq html (vlax-create-object "htmlfile")
					result (vlax-invoke (vlax-get (vlax-get html 'ParentWindow) 'ClipBoardData) 'setData "Text" str))
				(vlax-release-object html)
			   str
			)
		)
	)
	
	(defun ssnewer (ent / ss ent1)
		(if ent
			(progn
				(setq ent1 ent)
				(while (setq ent1 (entnext ent1))
					(if ent1
						(progn
							(if (NULL ss) (setq ss (ssadd)))
							(setq ss (ssadd ent1 ss))
						)
					)
				)
				ss
			)
			nil
		)	
	)
	
	(defun sleep_osnap ()(setvar "OSMODE" (logior (getvar "OSMODE") 16384)))
	(defun wake_osnap ()(setvar "OSMODE" (logand (getvar "OSMODE") -16385)))
	(defun toggle_osnap ()(setvar "OSMODE" (boole 6 (getvar "OSMODE") 16384)))
	
	(setvar "CMDECHO" 0)
	(setvar "DIMZIN" 0)
	(setq ent_1_command (entlast))	
	(setq olderr *error*)
	(setq *error* 1error)
	
	(setq ent (entlast))
	(setq str "\nSpecify a point: ")
	(setq area 0.0)
	
	(sleep_osnap)
	
	(while (setq pt (getpoint str))
		(Command ".Bpoly" "a" "o" "r" "" pt "")
		(if (setq ss (ssnewer ent))
			(progn
				(Command "Union" ss "")
				(Command ".Area" "o" (entlast))
				(if area
					(setq area (abs (- (getvar "AREA") area)))
					(setq area (getvar "AREA"))
				)
				(princ (strcat "\nTotal: " (rtos (getvar "AREA") 2 (getvar "LUPREC")) "/  Area: " (rtos area 2 (getvar "LUPREC"))))					
			)			
		)
		(setq str "\nSpecify next point: ")
	)
	
	(wake_osnap)
	(setq C_text (strcat "" (rtos (getvar "AREA") 2 (getvar "LUPREC")) ""))	;Bien can thay vao text
	(setq *error* olderr)
	
	(if (setq ss (ssnewer ent)) (Command ".Erase" ss ""))
	
	(setcliptext C_text)
	(princ "Data was copied to the Clipboard")
	
	;Thay doi noi dung text
	(if (setq O-Text (nentsel (strcat "\nSelect Area-Text object: ")))
		(progn
			
			(setq Text (car O-Text)
			N-Text (cons 1 C_text))
			(setq N-Text1 (subst N-Text (assoc 1 (entget Text)) (entget Text)))
			(entmod N-Text1)
			
		);Close Progn
	);Close IF
		
	(princ)
)

Tính tổng chiều dài LL

1 Thêm Code LL.lsp

Lưu mã sau dưới dạng tệp tin LL.lsp
Code:
;-------------------------------------------Do chieu dai-----------------------------------
(defun c:LL ( / pt1 pt2 C_text O-Text N-text d i)
    (princ (strcat "\nGet Total Length by lisp.vn"))
    (defun SetClipText (str / html result)
		(if (= 'STR (type str))
			(progn
				(setq html (vlax-create-object "htmlfile")
					result (vlax-invoke (vlax-get (vlax-get html 'ParentWindow) 'ClipBoardData) 'setData "Text" str))
				(vlax-release-object html)
			   str
			)
		)
	)
(setq d 0 i 0) (while (setq pt1 (getpoint "\nSpecify first point: ")) (if (setq pt2 (getpoint pt1 "Specify second point: ")) (progn (setq d (+ d (distance pt1 pt2))) (princ (strcat "\nDelta X" (itoa (setq i (1+ i))) " = " (rtos (abs (- (car pt1) (car pt2))) 2 (getvar "LUPREC")) " Delta Y" (itoa i) " = " (rtos (abs (- (cadr pt1) (cadr pt2))) 2 (getvar "LUPREC")) " Total = " (rtos d 2 (getvar "LUPREC")))) ) ) ) (setq C_text (rtos d 2 (getvar "LUPREC"))) (setcliptext C_text) (princ (strcat "\nTotal " (itoa i))) (if (setq Text (car (entsel (strcat "\nChon Text ghi ket qua [L = " C_text "]:")))) (progn ; (setq N-Text (cons 1 C_text)) (setq N-Text1 (subst N-Text (assoc 1 (entget Text)) (entget Text))) (entmod N-Text1) (setcliptext C_text) ) ) (princ "\nCreat by AJS www.lisp.vn") (princ) )


Bản nâng cao VLX (Có tỉ lệ Scale)

📥 Download 🚀



---------------------------------------------------------------------------------------------
Ứ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

IFC và AutoCAD dotNet | Ứng dụng AutoCAD dotNet và IFC format | AutoCAD dotNet

Ứ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: 👉👉👉