Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
5 replies to this topic

#1 vantuan18nd

vantuan18nd

    biết vẽ rectang

  • Members
  • PipPip
  • 83 Bài viết
Điểm đánh giá: -3 (bình thường)

Đã gửi 20 August 2013 - 10:17 AM

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


  • 0

#2 vantuan18nd

vantuan18nd

    biết vẽ rectang

  • Members
  • PipPip
  • 83 Bài viết
Điểm đánh giá: -3 (bình thường)

Đã gửi 20 August 2013 - 10:19 AM

Em quên mất, đây là file CAD để tính thử diện tích của lisp trên

http://www.cadviet.c...103675_vd_2.dwg


  • 0

#3 Namvanvo

Namvanvo

    Edu level: li5

  • Members
  • PipPipPipPipPip
  • 386 Bài viết
Điểm đánh giá: 42 (tàm tạm)

Đã gửi 20 August 2013 - 10:59 AM

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.c...103675_vd_2.dwg


  • 0

#4 vantuan18nd

vantuan18nd

    biết vẽ rectang

  • Members
  • PipPip
  • 83 Bài viết
Điểm đánh giá: -3 (bình thường)

Đã gửi 20 August 2013 - 11:39 AM

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.c...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


  • 0

#5 Namvanvo

Namvanvo

    Edu level: li5

  • Members
  • PipPipPipPipPip
  • 386 Bài viết
Điểm đánh giá: 42 (tàm tạm)

Đã gửi 20 August 2013 - 12:04 PM

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


  • 0

#6 phuongcuong

phuongcuong

    biết zoom

  • Members
  • Pip
  • 19 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 26 May 2014 - 03:19 PM

Nhờ anh em giúp sửa lisp tính diện tích, rồi sau đó điền vào block ATT, không phải vào text có sẵn! Thanks mọi người 


  • 0