Lisp điền diện tích trong Cad
Bạn lưu lại đoạn code bên dưới dạng đuôi file .LSP rồi load nó.
(defun c:rt()
(setvar "CMDECHO" 0) (setvar "DIMZIN" 0)
(if (= Hs_dc nil)
(progn
(setq Hs_dc (getreal "\nInput scale factor <1>: "))
(if (= Hs_dc nil)(setq Hs_dc 1))))
(setq dtl 0)
(setq ss (ssadd))
(setq oslast (getvar "OSMODE"))
(command "osnap" "")
(print)
(print)
(setq pt1 (getpoint "\nPick internal point: "))
(while (/= pt1 nil)
(command "-boundary" pt1 "")
(setq et (entlast))
(ssadd et ss)
(command "area" "e" "last")
(setq vsize ( /(getvar "VIEWSIZE") 300 ))
(command "hatch" "ANSI31" vsize "0" "last" "")
(setq et (entlast))
(ssadd et ss)
(setq dtcon (getvar "AREA"))
(setq dtl (+ dtcon dtl))
(print)
(print)
(setq pt1 (getpoint "\nPick internal point: ")))
(command "setvar" "OSMODE" oslast)
(command "erase" ss "")
(setq ss nil)
(command "redraw")
(setq dtl (* dtl Hs_dc))
(setq en (car (entsel "\nReplace for number: ")))
(setq elst (entget en))
(setq elstold (assoc 1 elst))
(setq elstnew (cdr elstold))
(setq len (strlen elstnew))
(setq elstnew (cons 1 (rtos dtl 2 (getvar "DIMDEC"))))
(setq elst (subst elstnew elstold elst))
(entmod elst)
(prompt "\nDownload lisp: www.migotip.blogspot.com ")
(princ))
Tại Command lệnh gõ lệnh RT <Replace Text>
Input scale factor <1>: Nhập hệ số điều chỉnh < Mặc định là 1 > ( Hệ số này sẽ nhân vào giá trị diện tích thực tế đo được )
Pick internal point: Click vào các khu vực cần tính diện tích ( Các khu vực đó phải là các miền kín ) rồi enter.
Replace for number: Chọn text cần điền giá trị. (Bạn cần tạo text có nội dung bất kỳ trước đó)
Lưu ý: Để chọn số lẻ cần lấy ( số thập phân ). Dùng lệnh DIMDEC sau đó nhập số thập phân cần lấy.
Một số ứng dụng điển hình : Tính diện tích trắc ngang chi tiết trong Nova. Phân chia lớp phục vụ thi công. Tính diện tích vỉa hè, diện tích vuốt nối phục vụ hoàn thiện bình đồ thiết kế ...
Keywords : Lisp tính diện tích trong autocad, tính tổng diện tích các miền kín, Tải lisp miễn phí, Lisp sum areas in autocad.