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

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

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

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.com/upfiles/3/125447_tinh_dien_tich_va_ghi_so.lsp

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

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.com/upfiles/3/125447_tinh_dien_tich_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.com/upfiles/3/5194_125447_tinh_dien_tich_va_ghi_so.lsp

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

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

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

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.com/upfiles/3/5194_125447_tinh_dien_tich_va_ghi_so.lsp

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

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

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

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

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

  • Vote giảm 1

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

 

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

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  

×