Đến nội dung


Hình ảnh
- - - - -

[ Yêu cầu ] Nhờ chỉnh lisp tính diện tích


  • Please log in to reply
6 replies to this topic

#1 hoacomay70

hoacomay70

    biết vẽ circle

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

Đã gửi 04 April 2014 - 08:48 AM

Em có lisp tính diện tích như dưới đây, mỗi lần thực hiện là kích chọn vùng cần tính diện tích và chọn text để lisp ghi kết quả đè vào text đó, nên mỗi lần thực hiện em lại phải tạo text, các bác có thể sửa lisp này giúp em để lisp ghi luôn kết quả thành text không, mỗi lần thực hiện lại phải tạo text mới mất thời gian quá.

Em xin cảm ơn.http://www.cadviet.c...h_va_ghi_so.lsp


  • 0

#2 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 04 April 2014 - 11:09 AM

Em có lisp tính diện tích như dưới đây, mỗi lần thực hiện là kích chọn vùng cần tính diện tích và chọn text để lisp ghi kết quả đè vào text đó, nên mỗi lần thực hiện em lại phải tạo text, các bác có thể sửa lisp này giúp em để lisp ghi luôn kết quả thành text không, mỗi lần thực hiện lại phải tạo text mới mất thời gian quá.

Em xin cảm ơn.http://www.cadviet.c...h_va_ghi_so.lsp

Hề hề hề ,

Dùng thủ cái này coi sao nhé.

Lưu ý rằng lisp vẫn yêu cầu bạn chọn text số đề thay thế , nhưng nếu bạn không muốn chọn tẽt để thay, bạn có thể nhấn enter để lisp ghi text mới . Tuy nhiên bạn sẽ phải chọn điểm đặt cho text này. Lisp sẽ ghi text theo style hiện hành của CAD và style này phải có chiều cáo text là 0. nếu chiều cao text của style hiện hành khác 0 thì bạn cần chuyển nó về 0 bằng cách dùng lệnh style trước khi dùng lisp.

Chúc bạn vui.

http://www.cadviet.c...h_va_ghi_so.lsp


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3 namnhim

namnhim

    biết vẽ polygon

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

Đã gửi 04 April 2014 - 11:11 AM

bạn thử dùng cái này có được không:

(DEFUN C:DT1(/ A)
  (SETQ A (GETPOINT "CHON DIEM : "))
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
 (command "-style" "text" "Times New Roman" 2.5 "1" "0" "n" "n") ;;;;Muon sua Text to hay nho 2.5 ...
  (command "-layer" "m" "Text""c" "White" "" "")
(setq e_lst (entget (tblobjname "style" (getvar 'textstyle))))
(entmod (subst (cons 50 0.261799) (setq old (assoc 50 e_lst)) e_lst))
  (command "text" "j" "tl" A "" (strcat "DT: " (rtos (/ (* (GETVAR "AREA") 10) 10) 2 2) " m²"))
(entmod (subst old (assoc 50 e_lst) e_lst))
  (PRINC "\nDIEN TICH LA : ")(PRINC  (/ (* (GETVAR "AREA") 10) 10))(PRINC" m²")(prompt "\nDA TINH XONG DIEN TICH!")(princ))

  • 0

#4 hoacomay70

hoacomay70

    biết vẽ circle

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

Đã gửi 04 April 2014 - 11:34 AM

Hề hề hề ,

Dùng thủ cái này coi sao nhé.

Lưu ý rằng lisp vẫn yêu cầu bạn chọn text số đề thay thế , nhưng nếu bạn không muốn chọn tẽt để thay, bạn có thể nhấn enter để lisp ghi text mới . Tuy nhiên bạn sẽ phải chọn điểm đặt cho text này. Lisp sẽ ghi text theo style hiện hành của CAD và style này phải có chiều cáo text là 0. nếu chiều cao text của style hiện hành khác 0 thì bạn cần chuyển nó về 0 bằng cách dùng lệnh style trước khi dùng lisp.

Chúc bạn vui.

http://www.cadviet.c...h_va_ghi_so.lsp

Em làm được rồi, cảm ơn bác rất nhiều ạ :D


  • 0

#5 hoacomay70

hoacomay70

    biết vẽ circle

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

Đã gửi 04 April 2014 - 11:36 AM

bạn thử dùng cái này có được không:

(DEFUN C:DT1(/ A)
  (SETQ A (GETPOINT "CHON DIEM : "))
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
 (command "-style" "text" "Times New Roman" 2.5 "1" "0" "n" "n") ;;;;Muon sua Text to hay nho 2.5 ...
  (command "-layer" "m" "Text""c" "White" "" "")
(setq e_lst (entget (tblobjname "style" (getvar 'textstyle))))
(entmod (subst (cons 50 0.261799) (setq old (assoc 50 e_lst)) e_lst))
  (command "text" "j" "tl" A "" (strcat "DT: " (rtos (/ (* (GETVAR "AREA") 10) 10) 2 2) " m²"))
(entmod (subst old (assoc 50 e_lst) e_lst))
  (PRINC "\nDIEN TICH LA : ")(PRINC  (/ (* (GETVAR "AREA") 10) 10))(PRINC" m²")(prompt "\nDA TINH XONG DIEN TICH!")(princ))

Lisp của bác hay quá, cảm ơn bác đã share cho em


  • 0

#6 nguyquangthanh

nguyquangthanh

    Chưa sử dụng CAD

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

Đã gửi 29 May 2015 - 11:45 PM

Mình mới được nhìn một lisp diện tích như sau:

Mỗi lần pick vào một vùng thì vùng đó có một hatch solid và hatch chuyển theo các màu khi ta pick các vùng tiếp theo !  tính tổng và ghi ra text !

Không biết bạn nào có thể giúp mình trong vấn đề này


  • -1

#7 toiyeuvietnam

toiyeuvietnam

    biết vẽ polygon

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

Đã gửi 14 July 2016 - 09:33 AM

 

bạn thử dùng cái này có được không:

(DEFUN C:DT1(/ A)
  (SETQ A (GETPOINT "CHON DIEM : "))
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
 (command "-style" "text" "Times New Roman" 2.5 "1" "0" "n" "n") ;;;;Muon sua Text to hay nho 2.5 ...
  (command "-layer" "m" "Text""c" "White" "" "")
(setq e_lst (entget (tblobjname "style" (getvar 'textstyle))))
(entmod (subst (cons 50 0.261799) (setq old (assoc 50 e_lst)) e_lst))
  (command "text" "j" "tl" A "" (strcat "DT: " (rtos (/ (* (GETVAR "AREA") 10) 10) 2 2) " m²"))
(entmod (subst old (assoc 50 e_lst) e_lst))
  (PRINC "\nDIEN TICH LA : ")(PRINC  (/ (* (GETVAR "AREA") 10) 10))(PRINC" m²")(prompt "\nDA TINH XONG DIEN TICH!")(princ))

Nhờ các bác coi giúp em lỗi em sửa dòng (COMMAND "BOUNDARY" A "") thành (COMMAND "BOUNDARY"  "A" "I" "N" "" "" PAUSE ""  )  để nó bỏ qua không boundary đối tượng là Mtext và Dim, nhưng nó lại phải pick 2 lần mới ra diện tích, em muốn pick chuột 1 cái vào ô cần tính diện tích là hiện diện tích luôn mà không biết lỗi chỗ nào, cảm ơn các bác


  • 0