Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
vantuan18nd

[Hỏi] lisp tính diện tích

Các bài được khuyến nghị

---------------------------------------tinh dien tich va thay cho tex---------------------ad----------------
(defun c:ad()
(setvar "cmdecho" 0)
(setvar "DIMZIN" 0)
(if (= Ty_le nil) (progn
(setq Ty_le (getreal "\nDrawing scale : "))
(setq He_so (/ 1000 Ty_le))
(setq He_so2 (* He_so He_so))
)
)
(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 He_so2) 2))
(setq en (car (entsel "Thay cho so : ")))
(setq elst (entget en))
(setq elstold (assoc 1 elst))
(setq elstnew (cdr elstold))
(setq len (strlen elstnew))
(if (> len 6)
(progn
(setq len (- len 6))
(setq elstnew (substr elstnew 1 len))
(setq elstnew (cons 1 (strcat elstnew " " (rtos dtl 2 2))))
(setq elst (subst elstnew elstold elst))
(entmod elst)
)
(progn
(setq elstnew (cons 1 (rtos dtl 2 2)))
(setq elst (subst elstnew elstold elst))
(entmod elst)
)
)
(princ)
)

(defun c:tile()
(setvar "cmdecho" 0)
(setvar "DIMZIN" 0)
(setq Ty_le (getreal "\nDrawing scale : "))
(setq He_so (/ 1000 Ty_le))
(setq He_so2 (* He_so He_so))
(princ)
)

 

Lisp tính diện tích trên, khi chạy lệnh nó yêu cầu "Drawing scale : ", em không biết phải nhập số nào để lisp tính đúng diện tích. Nhờ các member chỉ giúp .

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Lisp tính diện tích trên, khi chạy lệnh nó yêu cầu "Drawing scale : ", em không biết phải nhập số nào để lisp tính đúng diện tích.

drawing scale là tỉ lệ của đối tượng bạn vẽ ra và cần lấy diện tích, ví dụ trong file của bạn mình vẽ một hình vuông có chiều dài 2 cạnh là 100 thì dùng lisp mình tính ra được diện tích của nó là 0.01 (m2) và drawing scale mình nhập vào là 1 vì kích thước thực tế và kích thước mình vẽ vào trong file cad là giống nhau. http://www.cadviet.com/upfiles/3/121048_103675_vd_2.dwg

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

drawing scale là tỉ lệ của đối tượng bạn vẽ ra và cần lấy diện tích, ví dụ trong file của bạn mình vẽ một hình vuông có chiều dài 2 cạnh là 100 thì dùng lisp mình tính ra được diện tích của nó là 0.01 (m2) và drawing scale mình nhập vào là 1 vì kích thước thực tế và kích thước mình vẽ vào trong file cad là giống nhau. http://www.cadviet.com/upfiles/3/121048_103675_vd_2.dwg

Vậy với mấy hình của mình, bạn nhập tỉ lệ nào để lisp tính đúng, nhập "1" chỉ đúng với hình của bạn

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nếu những hình của bạn có kích thước thực tế như trong bản vẽ thì bạn cũng nhập là 1. Bạn để ý đơn vị trong bản vẽ của bạn nữa nhé, mình thấy trong bản vẽ đó có kích thước là 1, 2, 3...bạn kiểm tra xem những kích thước đó đơn vị là inch, mét, mmm....? lisp của bạn thì cho kết quả đơn vị là m2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×