Đến nội dung


Hình ảnh
- - - - -

[ yêu cầu ] Lisp số học để kiểm tra san nền !


  • Please log in to reply
8 replies to this topic

#1 hanam1210

hanam1210

    biết vẽ pline

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

Đã gửi 15 October 2011 - 02:00 AM

Em hay làm san nền, nhiều khi phải làm hoặc kiểm tra lại thủ công.EM đang rất cần 1 lisp làm được việc như sau:
- Lisp sẽ lấy giá trị từ các text sẵn có, và xuất kết quả vào 1 text sẵn có ( số chữ số sau dấu phẩy = 2, luôn có số 0 đằng trước dấu phẩy vì nhiều bản vẽ nó bị mất số 0), khi xuất xong kết quả thì text đó được đổi màu thành màu 6, thuộc layer "TINH"
Khi chạy lisp xảy ra 4 trường hợp như sau ạ :

TH1:
Command : SN
chon text: ( 1 text được chọn, giá trị là a, )
Dien tich: ( chọn vào text diện tích, giá trị là s )
Ket qua: ( Chọn text chứa kết quả, kết quả = a*s/3)

TH2:
Command : SN
chon text: ( 2 text được chọn, giá trị là a,b )
Dien tich: ( chọn vào text diện tích, giá trị là s )
Ket qua: ( Chọn text chứa kết quả, kết quả =( a + b ) * s/4)

TH3:
Command : SN
chon text: ( 3 text được chọn, giá trị là a,b, c )
Dien tich: ( chọn vào text diện tích, giá trị là s )
Ket qua: ( Chọn text chứa kết quả, kết quả =( a + b + c)*s/5)

TH4:
Command : SN
chon text: ( 4 text được chọn, giá trị là a,b,c,d )
Dien tich: ( chọn vào text diện tích, giá trị là s )
Ket qua: ( Chọn text chứa kết quả, kết quả =( a + b + c +d)*s/4)

Tức là ở đây thì chỉ có 1 lệnh thôi nhưng mà tự động lisp hiểu được các trường hợp xảy ra. Lúc báo Chon text, e chọn 1 text rồi enter thì nó sẽ tình theo trường hợp 1. Rất mong các anh chị trên diễn đàn giúp đỡ . Em xin chân thành cảm ơn.
  • 0

#2 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 15 October 2011 - 06:54 AM

Nếu để kiểm tra kết quả,sao bạn không dùng nhiều phần mềm để kiểm tra nhỉ.
  • 0

#3 redsea_tq

redsea_tq

    biết lệnh erase

  • Members
  • PipPipPip
  • 107 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 15 October 2011 - 07:03 AM

Có thể bạn ấy muốn kiểm tra một ô bất kỳ chú Tuấn ah, nhưng anh nghĩ cái này chỉ đúng khi người làm tính toán thủ công thôi, còn nếu làm bằng phần mềm thì có thể có trường hợp không đúng nữa.
  • 0

#4 redsea_tq

redsea_tq

    biết lệnh erase

  • Members
  • PipPipPip
  • 107 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 15 October 2011 - 07:47 AM

Của bạn đây:
http://www.cadviet.c...inhklsannen.rar
Bạn giải nén rồi upload 2 file sn.dvb+sn.lsp lên nhé, sau đó sử dụng lệnh SN
  • 1

#5 hanam1210

hanam1210

    biết vẽ pline

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

Đã gửi 15 October 2011 - 01:42 PM

Của bạn đây:
http://www.cadviet.c...inhklsannen.rar
Bạn giải nén rồi upload 2 file sn.dvb+sn.lsp lên nhé, sau đó sử dụng lệnh SN


Cảm ơn anh REDSE_TQ, lisp chạy đúng yêu cầu nhưng thừa mất cái đơn vị m3, Thực ra là san nền thì em dùng HS rồi. Nhưng mà có nhiều cái bắt buộc phải làm thủ công nên cần lisp để tính ạ. Phiền anh bỏ giúp em cái đơn vị m3 đằng sau đi với ạ. Vì file .DVB nên em chịu ko chỉnh sửa được. Mong anh thông cảm. Chúc anh một ngày tốt lành !
  • 0

#6 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 15 October 2011 - 03:50 PM


(defun c:sn (/ ss tDt tKq dt len hs)
(defun dxf (code en)(cdr(assoc code (entget en))))
(defun chdxf (code val en) (entmod (subst (cons code val) (assoc code (entget en)) (entget en))))
(if
(and
(setq ss (ssget (list (cons 0 "TEXT,MTEXT"))))
(setq tDt (car (entsel "\nText DT :")))
(wcmatch (dxf 0 tDt) "TEXT,MTEXT")
(setq dt (distof (dxf 1 tDt)))
(setq tkQ (car (entsel "\nText kQ :")))
(wcmatch (dxf 0 tkQ) "TEXT,MTEXT")
)
(progn
(setq len (sslength ss) hs
(cond ((= len 1)3)((= len 2)4)((= len 3)5)((= len 4)4)(T 1)) ;gia tri he so
)
(chdxf 1 (rtos (/ (* (apply '+ (mapcar '(lambda(x)(distof (acet-dxf 1 (entget x))))(acet-ss-to-list ss))) dt) hs) 2 2) tkq)
(chdxf 8 "0" tKq) ;Thay 0 bang Layer khac
)
))

  • 2

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#7 redsea_tq

redsea_tq

    biết lệnh erase

  • Members
  • PipPipPip
  • 107 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 15 October 2011 - 04:32 PM

bạn nhấn alt+f11 là thấy ngay code, bạn tìm thấy chỗ nào có "M3" thì bạn bỏ là được bạn ah!
của bạn đây nhé:
http://www.cadviet.c...hklsannen_1.rar
  • 1

#8 hanam1210

hanam1210

    biết vẽ pline

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

Đã gửi 15 October 2011 - 04:37 PM


(defun c:sn (/ ss tDt tKq dt len hs)
(defun dxf (code en)(cdr(assoc code (entget en))))
(defun chdxf (code val en) (entmod (subst (cons code val) (assoc code (entget en)) (entget en))))
(if
(and
(setq ss (ssget (list (cons 0 "TEXT,MTEXT"))))
(setq tDt (car (entsel "\nText DT :")))
(wcmatch (dxf 0 tDt) "TEXT,MTEXT")
(setq dt (distof (dxf 1 tDt)))
(setq tkQ (car (entsel "\nText kQ :")))
(wcmatch (dxf 0 tkQ) "TEXT,MTEXT")
)
(progn
(setq len (sslength ss) hs
(cond ((= len 1)3)((= len 2)4)((= len 3)5)((= len 4)4)(T 1)) ;gia tri he so
)
(chdxf 1 (rtos (/ (* (apply '+ (mapcar '(lambda(x)(distof (acet-dxf 1 (entget x))))(acet-ss-to-list ss))) dt) hs) 2 2) tkq)
(chdxf 8 "0" tKq) ;Thay 0 bang Layer khac
)
))


Chuẩn không cần chỉnh. Cảm ơn bác KETXU nhé.hii. Lisp của bác thay cả 4 cái lisp em viết !
  • 0

#9 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 28 October 2011 - 10:25 AM

Nếu trong trường hợp có từ 5 điễm trở lên thì bạn làm sao ???? Mình sử dụng gặp trở ngại việc này rối đó.
Mong được các anh giúp đở.
Và mong được viết lisp bổ sung : Trong trường họp chỉ tính cao độ bình quân thôi, phải chỉnh Lisp như thế nào ? và hàm nào chọn điểm đặt kết quả và làm cho thay đổi màu ? và nên cho chuyển sang một lớp khác luôn ?

Bạn đặt câu hỏi cho người viết nhưng chưa tự hỏi mình những câu hỏi đó, cũng không đọc đề bài chủ topic đưa ra luôn.
Hàng sản xuất riêng cho ông A thì ông A dùng, cớ chi ông B hỏi "sao chưa vừa ý tôi ?"
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC