1.  A2F Lisp là gì ?

    Chương trình này cho phép người dùng tạo ra một đối tượng MText có chứa một vùng diễn tả biểu thức diện tích, hoặc tổng các diện tích của một hoặc nhiều đối tượng được chọn. Khi khởi tạo cú pháp lệnh A2F tại dòng lệnh AutoCAD, người dùng được nhắc lựa chọn các đối tượng để lấy diện tích.
    Nếu nhiều hơn một đối tượng được chọn, tổng diện tích các đối tượng sẽ được hiển thị bởi vùng kết quả của Mtext. Sau khi lựa chọn đối tượng, người sử dụng được nhắc nhở chọn một điểm để vùng MText.
    Nếu điểm quy định nằm trong một ô của AutoCAD, chương trình sẽ điền vào ô của bảng với diên tích thích hợp. Trường sẽ hiển thị tổng các diện tích của các đối tượng đã chọn, được định dạng bằng mã định dạng vùng được chỉ định ở đầu chương trình, mã định dạng này có thể được thay đổi cho phù hợp với yêu cầu của người dùng và được mô tả chi tiết hơn bên dưới.

  2. Code A2F Lisp

    (defun c:ss() ; 2 c0 F/ l/ c0 x& I  h” V2 W
    (setvar “cmdecho” 0)
    (setvar “DIMZIN” 0)7 a’ W# {0 D  U/ ~
    (if (= Ty_le nil)
    (progn1 r! ?7 r8 m; C- k: _$ _1 d1 p
    (setq Ty_le (getreal “\Nnhap ti le <1000>:”))/ Q7 j% c+ c7 W2 \” S5 b( |
    (if (= Ty_le nil)(setq Ty_le 1000.00)); \2 L. b3 x- H* a. S
    )‘ ]2 N8 e0 y1 j
    (progn
    (setq khaibaoTy_le (getstring (strcat “\nti le = ” (rtos Ty_le 2 0) ” CO MUON THAY DOI KHONG <K>,C:”)))* f  a+ t& i2 k: k
    (if (= (strlen khaibaoTy_le) 0) (setq khaibaoTy_le “K”))
    (if (or (= khaibaoTy_le “k”) (= khaibaoTy_le “K”))  P1 }. Y/ b+ u% T4 S
    (progn0 O# p* h( s2 c: p* Y
    (princ (strcat “\nti le = ” (rtos Ty_le 2 0)))
    ): T1 g$ t/ h, r. c2 w, a
    (if (or (= khaibaoTy_le “c”) (= khaibaoTy_le “C”))
    (progn
    (setq Ty_le (getreal “\nnhap ti le <1000>:”))
    (if (= Ty_le nil)(setq Ty_le 1000.00))4 E3 R( _- M6 l( ^2 h/ ^# ?’ K
    )
    )
    )2 ~$ j’ C, r+ ]- `; v) F( C( v” _7 W
    )
    ); U6 c% l- k” F! V- X
    (if (= So_Le nil)
    (progn5 A” X! g: q/ N1 u/ W: \$ Y
    (setq So_Le (getint “\nnhap so le dien tich <2>:”))
    (if (= So_Le nil)(setq So_Le 2))( K6 T$ c2 G2 ~/ y% b3 E8 Q6 o) V
    ); O9 r8 M6 h1 {
    (progn
    (setq khaibaoSo_Le (getstring (strcat “\nso le dien tich = ” (rtos So_Le 2 0) ” co muon thay doi khong <K>,C:”)))1 [5 x& f1 T2 A3 H0 D3 T& A
    (if (= (strlen khaibaoSo_Le) 0) (setq khaibaoSo_Le “K”))
    (if (or (= khaibaoSo_Le “k”) (= khaibaoSo_Le “K”))6 z+ D2 l1 H/ W, x
    (progn8 C6 d5 G% o* n( Z% E9 Z
    (princ (strcat “\nso le dien tich = ” (rtos So_Le 2 0)))+ q0 H” Y+ L6 F” f0 D/ Z” b
    )+ Q3 }. g9 E, m* W1 r
    (if (or (= khaibaoSo_Le “c”) (= khaibaoSo_Le “C”))% @; V# p: J. ?3 Q% x
    (progn
    (setq So_Le (getint “\nnhap so le dien tich <2>:”)): `” t8 Q’ N) ]) K/ w/ K: }2 N
    (if (= So_Le nil)(setq So_Le 2))$ A$ u& ~5 P4 ?0 ~0 B/ G
    )6 g0 `2 _& O6 x  O’ ?+ K
    )
    )/ S; e# s  \+ P0 d. z) W9 {
    )/ x$ ^, G; x5 }, ^
    )
    (setq He_so (/ 1000 Ty_le))
    (setq He_so2 (* He_so He_so)) . Q’ i6 C# ]( F) E
    (setq dtl 0)
    (setq ss (ssadd))& s6 U% E9 d+ o
    (setq oslast (getvar “OSMODE”))! c4 V6 {0 M# `- H; I$ \
    (command “osnap” “”)0 l” t) B! H’ w4 Z
    (print)
    (print)0 L9 k” b$ R# l% z
    (setq pt1 (getpoint “\nChon Vung Kin Tinh Dien Tich : “)), ~/ q’ J  B8 W  G
    (while (/= pt1 nil)
    (command “-boundary” pt1 “”). R( z* w( ]7 K1 B, ^
    (setq et (entlast))
    (ssadd et ss)  ^’ c4 g( Z- d# _! C& v
    (command “area” “e” “last”)
    (setq vsize ( /(getvar “VIEWSIZE”) 50 ))
    (command “hatch” “ANSI31” vsize “0” “last” “”)
    (setq et (entlast))
    (ssadd et ss)
    (setq dtcon (getvar “AREA”))
    (setq dtl (+ dtcon dtl))7 H9 B% i6 b( g’ }1 {
    (print)
    (print)
    (setq pt1 (getpoint “\nChon Vung Kin Tinh Dien Tich : “))
    )
    (command “setvar” “OSMODE” oslast)
    (command “erase” ss “”)
    (setq ss nil)
    (command “redraw”)
    (setq dtl (/ (/ dtl He_so2) 1)) ‘ d1 _: [/ j. p& h  B
    (setq en (car (entsel “Thay cho so : “)))
    (while (= en nil)
    (setq en (car (entsel “Thay cho so : “)))
    )
    (setq elst (entget en))* E! U1 {1 P7 i2 s
    (setq elstold (assoc 1 elst))
    (setq elstnew (cons 1 (rtos dtl 2 So_Le)))
    (setq elst (subst elstnew elstold elst)). g2 ~& z3 K/ L/ p# {” m, _
    (entmod elst)” c/ C” C- U2 c
    (setq elst nil)5 I4 ~: t+ @2 o1 C3 z” b  }
    (setq dtl nil)& C3 e3 a) y. g  j! ?/ Z
    (command “_change” en “” “p” “c” “1” “”)
    (princ “\nhttp:\\doanduyhung.googlepages.com”)2 d5 y$ G% _; D+ F
    )

  3. Download A2F lisp (đuôi Lsp)

Download file tại đây: Areas2Field

password: elsoft.vn