Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] lisp tính tổng các số (VERY EASY)


  • Please log in to reply
15 replies to this topic

#1 victor85

victor85

    biết lệnh stretch

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

Đã gửi 17 March 2011 - 01:06 PM

lisp tc.lsp
Lệnh tc:
Các bro viết dùm em:
select object: các text cần cộng -> enter
select object: các text cần trừ -> enter
Xuất kết quả thành 1 text mới là tổng tất cả các text vừa chọn.

Tiện thể các bro có lisp ngược của copy smart: nhảy số ngược từ n -> (n-1) -> ... -> 1 viết dùm em luôn với ạ!
Em cảm ơn các bro nhiều nhiều (biểu tượng cụng ly ăn mừng)
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 17 March 2011 - 01:42 PM

Sao cực dễ mà bạn hiền không mần :">
Select các text cần trừ tức là sao :o
  • 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


#3 victor85

victor85

    biết lệnh stretch

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

Đã gửi 17 March 2011 - 01:56 PM

Sao cực dễ mà bạn hiền không mần :">
Select các text cần trừ tức là sao :o


Mình ko biết ngôn ngữ lập trình viết lisp. hic hic.
Còn các text cần trừ là mình chọn thêm các đối tượng text một lần nữa thì các số trong các text ý sẽ trừ đi trong cái phép tính tổng cộng đó.
  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 17 March 2011 - 02:38 PM

Lisp đầu :

;free lisp from CadViet.com @ketxu
(defun dxf (dxf ent) (cdr (assoc dxf (entget ent))))
(defun wtxt_l(txt p / sty d h1 h2 wf h) ;;;Write txt on graphic screen at p
(setq sty (getvar "textstyle")
d (tblsearch "style" sty)
h1 (cdr (assoc 40 d))
h2 (cdr (assoc 42 d))
wf (cdr (assoc 41 d)))
(if (> h1 0) (setq h h1) (setq h h2))
(entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 40 h) (cons 41 wf)(cons 72 1)(cons 11 p) (cons 1 txt) (cons 10 p))))
(defun c:ct(/ sum ssc sst)
(setq ssc (acet-ss-to-list (ssget '((0 . "*TEXT"))))
sst (acet-ss-to-list (ssget '((0 . "*TEXT"))))
sum 0)
(foreach x ssc
(setq sum (+ sum (atof (dxf 1 x))))
)
(foreach x sst
(setq sum (- sum (atof (dxf 1 x))))
)
(wtxt_l (rtos sum 2 2) (getpoint "\n Diem chen ket qua"))
)

  • 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


#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 17 March 2011 - 02:57 PM

Lisp đầu :


;free lisp from CadViet.com @ketxu
(defun dxf (dxf ent) (cdr (assoc dxf (entget ent))))
(defun wtxt_l(txt p / sty d h1 h2 wf h) ;;;Write txt on graphic screen at p
(setq sty (getvar "textstyle")
d (tblsearch "style" sty)
h1 (cdr (assoc 40 d))
h2 (cdr (assoc 42 d))
wf (cdr (assoc 41 d)))
(if (> h1 0) (setq h h1) (setq h h2))
(entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 40 h) (cons 41 wf)(cons 72 1)(cons 11 p) (cons 1 txt) (cons 10 p))))
(defun c:ct(/ sum ssc sst)
(setq ssc (acet-ss-to-list (ssget '((0 . "*TEXT"))))
sst (acet-ss-to-list (ssget '((0 . "*TEXT"))))
sum 0)
(foreach x ssc
(setq sum (+ sum (atof (dxf 1 x))))
)
(foreach x sst
(setq sum (- sum (atof (dxf 1 x))))
)
(wtxt_l (rtos sum 2 2) (getpoint "\n Diem chen ket qua"))
)

Biến và hàm trung tên liệu có sao không hè (cùng dxf)?
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#6 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 17 March 2011 - 03:09 PM

Biến và hàm trung tên liệu có sao không hè (cùng dxf)?

Không sao đâu bạn.
  • 0

#7 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 17 March 2011 - 03:12 PM

Không sao đâu bác hè, vì lisp nhận nó là hàm khi ngay trước tên hàm là dấu (. Nếu ở code trên mình viết là assoc (dxf...) thì toi ngay ^^.^^ Dù sao thì như vậy cũng rất tránh, rất cảm ơn bác đã phát hiện ^^
  • 1

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


#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 17 March 2011 - 03:31 PM

Không sao đâu bạn.

Bác Tue_NV cho hỏi xíu: trong trường hợp này của bác ketxu thì có lẽ không sao, nhưng tôi đã từng "chết" vì vụ này rồi (biến trùng hàm). Bác trả lời "không sao đâu bạn" khiến tôi hơi ngại nên muốn hỏi bác: trường hợp nào thì "không sao" còn trường hợp nào thì "có sao". Bác biết xin chỉ giùm.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#9 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 17 March 2011 - 04:26 PM

Bác Tue_NV cho hỏi xíu: trong trường hợp này của bác ketxu thì có lẽ không sao, nhưng tôi đã từng "chết" vì vụ này rồi (biến trùng hàm). Bác trả lời "không sao đâu bạn" khiến tôi hơi ngại nên muốn hỏi bác: trường hợp nào thì "không sao" còn trường hợp nào thì "có sao". Bác biết xin chỉ giùm.

Hề, hề, mình trả lời bạn không có sao vì bạn hỏi là : có sao không? Như bạn đã thấy đấy code của Ketxu có vấn đề chi đâu, phải không hè?
Và nếu bạn hỏi là Có tránh không? thì mình trả lời là : Nên tránh :rolleyes: Để tránh được sự nhầm lẫn.
Hề, hề, phải không bạn?

PS: Nên sử dụng Visual Lisp Editor để viết code thay vì sử dụng Notepat
  • 0

#10 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 17 March 2011 - 04:54 PM

Hề, hề, mình trả lời bạn không có sao vì bạn hỏi là : có sao không? Như bạn đã thấy đấy code của Ketxu có vấn đề chi đâu, phải không hè?
Và nếu bạn hỏi là Có tránh không? thì mình trả lời là : Nên tránh :rolleyes: Để tránh được sự nhầm lẫn.
Hề, hề, phải không bạn?

PS: Nên sử dụng Visual Lisp Editor để viết code thay vì sử dụng Notepat

Hề, hề. Không sao đâu bác!
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#11 victor85

victor85

    biết lệnh stretch

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

Đã gửi 17 March 2011 - 05:54 PM

Bác ketxu ơi, sao load lisp về đánh lệnh ct hay tc đều ko nhận lệnh. ko hiểu tại sao. bác bắt đc bệnh dùm ko với??
  • 0

#12 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 17 March 2011 - 07:02 PM

Bạn reply bài viết đó của mình để lấy code, hoặc down ở đây. Lệnh ct, srr vì quên mất đặt ngược lại, bạn có thể tự sửa.
ct

P/S : Bác Hoành lâu sửa lỗi download lisp của diễn đàn quá :|
  • 1

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


#13 victor85

victor85

    biết lệnh stretch

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

Đã gửi 18 March 2011 - 09:34 AM

Cảm ơn bác ketxu nhé. lisp chạy ngon. Thanks bác cho bác thành dân chơi cái nào! :)
  • 0

#14 nguoixalaxd

nguoixalaxd

    Chưa sử dụng CAD

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

Đã gửi 11 July 2011 - 01:37 AM

Lisp đầu :


;free lisp from CadViet.com @ketxu
(defun dxf (dxf ent) (cdr (assoc dxf (entget ent))))
(defun wtxt_l(txt p / sty d h1 h2 wf h) ;;;Write txt on graphic screen at p
(setq sty (getvar "textstyle")
d (tblsearch "style" sty)
h1 (cdr (assoc 40 d))
h2 (cdr (assoc 42 d))
wf (cdr (assoc 41 d)))
(if (> h1 0) (setq h h1) (setq h h2))
(entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 40 h) (cons 41 wf)(cons 72 1)(cons 11 p) (cons 1 txt) (cons 10 p))))
(defun c:ct(/ sum ssc sst)
(setq ssc (acet-ss-to-list (ssget '((0 . "*TEXT"))))
sst (acet-ss-to-list (ssget '((0 . "*TEXT"))))
sum 0)
(foreach x ssc
(setq sum (+ sum (atof (dxf 1 x))))
)
(foreach x sst
(setq sum (- sum (atof (dxf 1 x))))
)
(wtxt_l (rtos sum 2 2) (getpoint "\n Diem chen ket qua"))
)

Tuyệt vời. cảm ơn bạn. Qua nhiều lisp hay !!!
  • 0

#15 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 11 July 2011 - 08:56 AM

Không biết Cadviet dạo này thế nào mà nhiều lần vào toàn bị lỗi. Thứ 2 là lisp post lên chẳng có theo dòng gì cả. Viết theo kiểu hỗn độn như thế khó kiểm soát và không logic lắm. Mong Admin xem lại dùm.
  • 1



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#16 thienha.haui

thienha.haui

    biết vẽ line

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

Đã gửi 22 February 2014 - 11:09 AM

chào mọi người.minh thấy lisp này hay nhưng khi tính khối lượng người ta yêu cầu phải có cả công thức.mong mọi người kiểm tra xem có sửa được không

vd : 4.3+4.3=8.6. thì lisp này chỉ hiển thị được kết quả.mình muốn nó hiển thị cả công thức.mong mọi người giúp đỡ.


  • 0