Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] lisp cộng trừ nhân chia text


  • Please log in to reply
30 replies to this topic

#1 vankiemquytong

vankiemquytong

    biết zoom

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

Đã gửi 30 May 2008 - 01:14 PM

Tớ hay phải vẽ, liệt kế chi tiết các đường ống, trên bản vẽ có rất nhiều số, tớ muốn "+,-,x,:" ngay khi kick chuột vào 2 hay nhiều số với nhau. Bạn nào làm được giúp tớ với.
  • 0

#2 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 30 May 2008 - 01:46 PM

Tớ hay phải vẽ, liệt kế chi tiết các đường ống, trên bản vẽ có rất nhiều số, tớ muốn "+,-,x,:" ngay khi kick chuột vào 2 hay nhiều số với nhau. Bạn nào làm được giúp tớ với.


Công với nhân thì trên diễn đàn đã có, bạn xem sự tổng hợp ở đây: http://www.cadviet.c...nuoc-t1616.html

Bạn muốn trừ với chia sẽ như thế nào? chọn 2 số hay nhiều số?
  • 0

#3 Phương Anh

Phương Anh

    biết vẽ line

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

Đã gửi 21 June 2009 - 09:31 AM

Công với nhân thì trên diễn đàn đã có, bạn xem sự tổng hợp ở đây: http://www.cadviet.c...nuoc-t1616.html

Bạn muốn trừ với chia sẽ như thế nào? chọn 2 số hay nhiều số?

Sao em chỉ tìm thấy lisp công các text là số thôi, không thấy lisp nhân?
Trường hợp trừ thì Chọn số bị trừ trước, chọn số trừ sau, chia thì cũng tương tự, chọn số bị chia trước, số chia chọn sau.
Các anh viết giúp được không ạ.
Cảm ơn các anh nhiều.
  • 0

#4 q288

q288

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 209 Bài viết
Điểm đánh giá: 164 (tàm tạm)

Đã gửi 21 June 2009 - 07:46 PM

Sao em chỉ tìm thấy lisp công các text là số thôi, không thấy lisp nhân?
Trường hợp trừ thì Chọn số bị trừ trước, chọn số trừ sau, chia thì cũng tương tự, chọn số bị chia trước, số chia chọn sau.
Các anh viết giúp được không ạ.
Cảm ơn các anh nhiều.


Bạn thử cái này xem sao.
Đối với phép + và * bạn có thể chọn 1 lúc nhiều số, còn - và / thì chỉ có 2 số thôi.


(defun c:tinh()
(initget 1 "+ - * /")
(setq ptinh (getkword "Chon phep tinh <+ - * />: "))

(cond ((= ptinh "+") ;;; cong
(prompt "\nChon text de cong:")
(setq ss (ssget '((0 . "TEXT")))
tong 0)
(while (and ss (> (sslength ss) 0))
(setq tong (+ tong (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))
(ssdel ent ss))
(princ tong))

((= ptinh "*") ;;;nhan
(prompt "\nChon text de nhan:")
(setq ss (ssget '((0 . "TEXT")))
tong 1)
(while (and ss (> (sslength ss) 0))
(setq tong (* tong (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))
(ssdel ent ss))
(princ tong))

((= ptinh "-") ;;;tru
(setq sobitru (car (entsel "\nChon so bi tru:"))
sotru (car (entsel "\nChon so tru:\n"))
kq (- (atof (cdr (assoc 1 (entget sobitru))))
(atof (cdr (assoc 1 (entget sotru))))))
(princ kq))

((= ptinh "/") ;;;chia
(setq sobichia (car (entsel "\nChon so bi chia:"))
sochia (car (entsel "\nChon so chia:\n"))
kq (/ (atof (cdr (assoc 1 (entget sobichia))))
(atof (cdr (assoc 1 (entget sochia))))))
(princ kq))
)
(princ)
)

  • 2

#5 q288

q288

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 209 Bài viết
Điểm đánh giá: 164 (tàm tạm)

Đã gửi 21 June 2009 - 08:39 PM

Cái này bổ sung thêm phần ghi kết quả vào 1 text có sẵn .

(defun c:tinh()
(vl-load-com)
(initget 1 "+ - * /")
(setq ptinh (getkword "Chon phep tinh <+ - * />: "))

(cond ((= ptinh "+") ;;; cong
(prompt "\nChon text de cong:")
(setq ss (ssget '((0 . "TEXT")))
kqua 0)
(while (and ss (> (sslength ss) 0))
(setq kqua (+ kqua (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))
(ssdel ent ss))
(princ kqua))

((= ptinh "*") ;;;nhan
(prompt "\nChon text de nhan:")
(setq ss (ssget '((0 . "TEXT")))
kqua 1)
(while (and ss (> (sslength ss) 0))
(setq kqua (* kqua (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))
(ssdel ent ss))
(princ kqua))

((= ptinh "-") ;;;tru
(setq sobitru (car (entsel "\nChon so bi tru:"))
sotru (car (entsel "\nChon so tru:\n"))
kqua (- (atof (cdr (assoc 1 (entget sobitru))))
(atof (cdr (assoc 1 (entget sotru))))))
(princ kqua))

((= ptinh "/") ;;;chia
(setq sobichia (car (entsel "\nChon so bi chia:"))
sochia (car (entsel "\nChon so chia:\n"))
kqua (/ (atof (cdr (assoc 1 (entget sobichia))))
(atof (cdr (assoc 1 (entget sochia))))))
(princ kqua))
)
(if (not ssle) (setq ssle 0))
(setq obj (vlax-ename->vla-object (car (entsel "\nChon text de ghi ket qua:")))
ssle1 (getint (strcat "\nSo so le <" (itoa ssle) ">: ")))
(if ssle1 (setq ssle ssle1))
(vla-put-TextString obj (rtos kqua 2 ssle))
(princ)
)

  • 5

#6 thvinh

thvinh

    Chưa sử dụng CAD

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

Đã gửi 10 February 2010 - 10:07 AM

Cái này bổ sung thêm phần ghi kết quả vào 1 text có sẵn .


(defun c:tinh()
(vl-load-com)
(initget 1 "+ - * /")
(setq ptinh (getkword "Chon phep tinh <+ - * />: "))

(cond ((= ptinh "+") ;;; cong
(prompt "\nChon text de cong:")
(setq ss (ssget '((0 . "TEXT")))
kqua 0)
(while (and ss (> (sslength ss) 0))
(setq kqua (+ kqua (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))
(ssdel ent ss))
(princ kqua))

((= ptinh "*") ;;;nhan
(prompt "\nChon text de nhan:")
(setq ss (ssget '((0 . "TEXT")))
kqua 1)
(while (and ss (> (sslength ss) 0))
(setq kqua (* kqua (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))
(ssdel ent ss))
(princ kqua))

((= ptinh "-") ;;;tru
(setq sobitru (car (entsel "\nChon so bi tru:"))
sotru (car (entsel "\nChon so tru:\n"))
kqua (- (atof (cdr (assoc 1 (entget sobitru))))
(atof (cdr (assoc 1 (entget sotru))))))
(princ kqua))

((= ptinh "/") ;;;chia
(setq sobichia (car (entsel "\nChon so bi chia:"))
sochia (car (entsel "\nChon so chia:\n"))
kqua (/ (atof (cdr (assoc 1 (entget sobichia))))
(atof (cdr (assoc 1 (entget sochia))))))
(princ kqua))
)
(if (not ssle) (setq ssle 0))
(setq obj (vlax-ename->vla-object (car (entsel "\nChon text de ghi ket qua:")))
ssle1 (getint (strcat "\nSo so le <" (itoa ssle) ">: ")))
(if ssle1 (setq ssle ssle1))
(vla-put-TextString obj (rtos kqua 2 ssle))
(princ)
)

Sao chọn text k được vậy?
  • 0

#7 phvinhhpc

phvinhhpc

    biết vẽ arc

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

Đã gửi 10 February 2010 - 10:30 AM

Sao chọn text k được vậy? http://www.cadviet.c...iles/2/ctnc.lsp

dùng con này xem: http://www.cadviet.c...iles/2/ctnc.lsp
muốn cộng : +
trừ: -
nhân: *
chia: /
(lưu ý: trước khi load lisp thì đặt mặc định cỡ text : vd là 2)
  • 1
Soichiro Honda: Không thất bại sẽ không bao giờ thành công

#8 meilivn

meilivn

    biết pan

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

Đã gửi 08 March 2010 - 11:39 PM

dùng con này xem: http://www.cadviet.c...iles/2/ctnc.lsp
muốn cộng : +
trừ: -
nhân: *
chia: /
(lưu ý: trước khi load lisp thì đặt mặc định cỡ text : vd là 2)

Mình dùng lisp này thấy rất tiện. Bạn có thể thêm tính năng ghi kết quả thay thế 1 text sẵn có được không?
Thanks!
  • 0

#9 tranhungdao12a3

tranhungdao12a3

    biết pan

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

Đã gửi 26 May 2011 - 12:35 PM

dùng con này xem: http://www.cadviet.c...iles/2/ctnc.lsp
muốn cộng : +
trừ: -
nhân: *
chia: /
(lưu ý: trước khi load lisp thì đặt mặc định cỡ text : vd là 2)



Cám ơn nhiều, mình tìm mãi mới thấy lisp có tính năng trừ (-) hai giá trị text, xuất màn hình như thế này.
  • 0

#10 dangxuandung

dangxuandung

    biết vẽ circle

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

Đã gửi 01 July 2011 - 09:33 AM

Cái này bổ sung thêm phần ghi kết quả vào 1 text có sẵn .


(defun c:tinh()
(vl-load-com)
(initget 1 "+ - * /")
(setq ptinh (getkword "Chon phep tinh <+ - * />: "))

(cond ((= ptinh "+") ;;; cong
(prompt "\nChon text de cong:")
(setq ss (ssget '((0 . "TEXT")))
kqua 0)
(while (and ss (> (sslength ss) 0))
(setq kqua (+ kqua (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))
(ssdel ent ss))
(princ kqua))

((= ptinh "*") ;;;nhan
(prompt "\nChon text de nhan:")
(setq ss (ssget '((0 . "TEXT")))
kqua 1)
(while (and ss (> (sslength ss) 0))
(setq kqua (* kqua (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))
(ssdel ent ss))
(princ kqua))

((= ptinh "-") ;;;tru
(setq sobitru (car (entsel "\nChon so bi tru:"))
sotru (car (entsel "\nChon so tru:\n"))
kqua (- (atof (cdr (assoc 1 (entget sobitru))))
(atof (cdr (assoc 1 (entget sotru))))))
(princ kqua))

((= ptinh "/") ;;;chia
(setq sobichia (car (entsel "\nChon so bi chia:"))
sochia (car (entsel "\nChon so chia:\n"))
kqua (/ (atof (cdr (assoc 1 (entget sobichia))))
(atof (cdr (assoc 1 (entget sochia))))))
(princ kqua))
)
(if (not ssle) (setq ssle 0))
(setq obj (vlax-ename->vla-object (car (entsel "\nChon text de ghi ket qua:")))
ssle1 (getint (strcat "\nSo so le <" (itoa ssle) ">: ")))
(if ssle1 (setq ssle ssle1))
(vla-put-TextString obj (rtos kqua 2 ssle))
(princ)
)

lips rất hay thank nhe
  • 0

#11 thinhtutn

thinhtutn

    biết zoom

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

Đã gửi 28 February 2012 - 04:48 PM

Các bác có thể bổ xung thêm phần nếu không chọn số có sẵn trong bản vẽ thì nhập số từ bàn phím được không?
  • 0

#12 bach1212

bach1212

    biết lệnh trim

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

Đã gửi 07 March 2012 - 03:35 PM

Các bác có thể biến đổi thêm thế này giúp e với: Chọn text A trừ đi 1 số nhập từ bàn phím (và có lưu giá trị này cho các lần lặp lại sau) rồi điền kết quả phép trừ vào text B.
VD: text A=5, số nhập vào: 2.
Text B ban đầu = 1, sau khi thay B sẽ = 3
Tiếp tục lệnh: số 2 được lưu để không phải gõ lại nếu vẫn giữ nguyên số cần nhập, nếu không có thể nhập số khác
  • 0

Một môn tập luyện mang lại vô vàn lợi ích sức khỏe cho mọi người, nhiều bệnh tật nan y đều được chữa khỏi, hoàn toàn miễn phí. Hiệu quả chữa khỏi bệnh tật của nó lên đến hơn 90%.
Tài liệu tại đây: http://phapluan.org/

Rất vui được làm quen với mọi người trên facebook:
https://www.facebook...67946371&type=1

 

 


#13 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1359 (rất tốt)

Đã gửi 07 March 2012 - 04:10 PM

Các bác có thể biến đổi thêm thế này giúp e với: Chọn text A trừ đi 1 số nhập từ bàn phím (và có lưu giá trị này cho các lần lặp lại sau) rồi điền kết quả phép trừ vào text B.
VD: text A=5, số nhập vào: 2.
Text B ban đầu = 1, sau khi thay B sẽ = 3
Tiếp tục lệnh: số 2 được lưu để không phải gõ lại nếu vẫn giữ nguyên số cần nhập, nếu không có thể nhập số khác

Tên lệnh: THS.
 
(defun c:ths (/ Ename Elist Msg Oldtext Oldlist Newtext Newlist)
(command "undo" "be")
(setq donvi (/ (getvar "viewsize") 40))
(setq ddd (entsel "\nChon text bi tru"))
(while
(or
(null ddd)
(/= "TEXT" (cdr (assoc 0 (entget (car ddd)))))
)
(princ "\nDoi tuong khong phai la text! Chon lai")
(setq ddd (entsel "\nChon text bi tru"))
)

(setq DTDTT (car ddd))
(setq DTTT (entget DTDTT))
(setq NDTTT (cdr (assoc 1 DTTT)))
(setq NDTTT (atof NDTTT))
(setq DIEMVIETTEXT (cdr (assoc 10 DTTT)))
(setq diemvt1 (polar DIEMVIETTEXT pi donvi))
(setq diemvt2 (polar DIEMVIETTEXT (* 2 pi) donvi))
(setq diemvt3 (polar DIEMVIETTEXT (/ pi 2) donvi))
(setq diemvt4 (polar DIEMVIETTEXT (- 0 (/ pi 2)) donvi))
(grdraw diemvt1 diemvt2 3)
(grdraw diemvt3 diemvt4 3)
(if (= droffln nil)
(setq droffln1 2.00)
(setq droffln1 droffln)
)
(setq
droffln (GETREAL (strcat "\nNhap hang so tru: <" (rtos droffln1 2 2) ">"))
)
(if (= droffln nil)
(setq droffln droffln1)
)

(setq ketquaxuat (- NDTTT droffln))
(setq ketquaxuat (rtos ketquaxuat 2 2))
(setq dddsn (entsel "\nChon text xuat ket qua"))
(while
(or
(null dddsn)
(/= "TEXT" (cdr (assoc 0 (entget (car dddsn)))))
)
(princ "\nDoi tuong khong phai la text! Chon lai")
(setq dddsn (entsel "\nChon text tru"))
)

(setq DTDTTsn (car dddsn))
(setq DTMs (entget DTDTTsn))
(setq DTMs (subst (cons 1 ketquaxuat) (assoc 1 DTMs) DTMs))
(entmod DTMs)

(command "undo" "end")
(Princ))


  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#14 bach1212

bach1212

    biết lệnh trim

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

Đã gửi 07 March 2012 - 04:44 PM

Còn gì tốt hơn và nhanh hơn cadviet nữa được không nhỉ????? :D Cám ơn bác duy782006 nhìu nhìu ah
  • 0

Một môn tập luyện mang lại vô vàn lợi ích sức khỏe cho mọi người, nhiều bệnh tật nan y đều được chữa khỏi, hoàn toàn miễn phí. Hiệu quả chữa khỏi bệnh tật của nó lên đến hơn 90%.
Tài liệu tại đây: http://phapluan.org/

Rất vui được làm quen với mọi người trên facebook:
https://www.facebook...67946371&type=1

 

 


#15 hotanphi

hotanphi

    biết vẽ polygon

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

Đã gửi 10 April 2012 - 09:38 PM

Cái này bổ sung thêm phần ghi kết quả vào 1 text có sẵn .

(defun c:tinh() (vl-load-com) (initget 1 "+ - * /") (setq ptinh (getkword "Chon phep tinh <+ - * />: ")) (cond ((= ptinh "+") ;;; cong (prompt "\nChon text de cong:") (setq ss (ssget '((0 . "TEXT"))) kqua 0) (while (and ss (> (sslength ss) 0)) (setq kqua (+ kqua (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0)))))))) (ssdel ent ss)) (princ kqua)) ((= ptinh "*") ;;;nhan (prompt "\nChon text de nhan:") (setq ss (ssget '((0 . "TEXT"))) kqua 1) (while (and ss (> (sslength ss) 0)) (setq kqua (* kqua (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0)))))))) (ssdel ent ss)) (princ kqua)) ((= ptinh "-") ;;;tru (setq sobitru (car (entsel "\nChon so bi tru:")) sotru (car (entsel "\nChon so tru:\n")) kqua (- (atof (cdr (assoc 1 (entget sobitru)))) (atof (cdr (assoc 1 (entget sotru)))))) (princ kqua)) ((= ptinh "/") ;;;chia (setq sobichia (car (entsel "\nChon so bi chia:")) sochia (car (entsel "\nChon so chia:\n")) kqua (/ (atof (cdr (assoc 1 (entget sobichia)))) (atof (cdr (assoc 1 (entget sochia)))))) (princ kqua)) ) (if (not ssle) (setq ssle 0)) (setq obj (vlax-ename->vla-object (car (entsel "\nChon text de ghi ket qua:"))) ssle1 (getint (strcat "\nSo so le <" (itoa ssle) ">: "))) (if ssle1 (setq ssle ssle1)) (vla-put-TextString obj (rtos kqua 2 ssle)) (princ) )




Nhờ anh Duy và mọi người tích hợp cái lisp TINH.lsp của anh q228 và lisp THS.lsp của anh Duy giúp mình với tại công việc của mình cần tích hợp 2 lisp trên.
Đồng thời viết thêm giúp mình đoạn code hỏi mình cần lấy sau dầu phẩy (,) mấy số thập phân nữa. và tất cả các bước mình thực hiện lệnh kể cả việc chọn phép tính (+,-,*,/) đểu có lưu giá trị này cho các lần lặp lại sau.
  • 0

#16 huunhantvxdts

huunhantvxdts

    biết dimbaseline

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

Đã gửi 12 April 2012 - 09:13 PM

Bạn thử cái này xem sao.
Đối với phép + và * bạn có thể chọn 1 lúc nhiều số, còn - và / thì chỉ có 2 số thôi.

(defun c:tinh()  (initget 1 "+ - * /")  (setq ptinh (getkword "Chon phep tinh <+ - * />: "))    (cond ((= ptinh "+")  ;;; cong     (prompt "\nChon text de cong:")     (setq ss (ssget '((0 . "TEXT")))           tong 0)     (while (and ss (> (sslength ss) 0))       (setq tong (+ tong (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))       (ssdel ent ss))     (princ tong))		((= ptinh "*")  ;;;nhan     (prompt "\nChon text de nhan:")     (setq ss (ssget '((0 . "TEXT")))           tong 1)     (while (and ss (> (sslength ss) 0))       (setq tong (* tong (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))       (ssdel ent ss))     (princ tong))	((= ptinh "-")  ;;;tru     (setq sobitru (car (entsel "\nChon so bi tru:"))           sotru (car (entsel "\nChon so tru:\n"))           kq (- (atof (cdr (assoc 1 (entget sobitru))))	         (atof (cdr (assoc 1 (entget sotru))))))  	     (princ kq))	((= ptinh "/")  ;;;chia     (setq sobichia (car (entsel "\nChon so bi chia:"))           sochia (car (entsel "\nChon so chia:\n"))           kq (/ (atof (cdr (assoc 1 (entget sobichia))))	         (atof (cdr (assoc 1 (entget sochia))))))  	     (princ kq))  	)    (princ)           )

Lisp rất hay bạn có thể bổ sung thêm các đối tượng text có thể chọn từ bản vẽ hoặc cũng có thể nhập từ bàn phím
  • 0

#17 longbyoongho

longbyoongho

    biết vẽ pline

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

Đã gửi 16 April 2012 - 05:12 PM

Bạn có thể bổ sung phần đặt tên text ghi kết quả theo ý muốn k.
Hình đã gửi
Như hình vẽ, sau khi thực hiện phép cộng (1+10) ta sẽ xuất ra 1 text với kết quả là 11. Vậy mình muốn text xuất ra đó sẽ là "layer 11" và text layer được lưu lại mỗi lần thực hiện lệnh hoặc thay đổi tùy ý. Thanks:D
  • 0
Đã 18 mùa cây lúa trổ bông,
Chưa 1 lần sờ mông con gái
Cũng từng ấy mùa khoai sọ,
Chưa 1 lần này nọ với ai.

#18 whatcholingon

whatcholingon

    biết lệnh break

  • Members
  • PipPipPipPip
  • 222 Bài viết
Điểm đánh giá: 37 (tàm tạm)

Đã gửi 19 September 2012 - 02:48 PM

Tên lệnh: THS.


(defun c:ths (/ Ename Elist Msg Oldtext Oldlist Newtext Newlist)
(command "undo" "be")
(setq donvi (/ (getvar "viewsize") 40))
(setq ddd (entsel "\nChon text bi tru"))
(while
(or
(null ddd)
(/= "TEXT" (cdr (assoc 0 (entget (car ddd)))))
)
(princ "\nDoi tuong khong phai la text! Chon lai")
(setq ddd (entsel "\nChon text bi tru"))
)

(setq DTDTT (car ddd))
(setq DTTT (entget DTDTT))
(setq NDTTT (cdr (assoc 1 DTTT)))
(setq NDTTT (atof NDTTT))
(setq DIEMVIETTEXT (cdr (assoc 10 DTTT)))
(setq diemvt1 (polar DIEMVIETTEXT pi donvi))
(setq diemvt2 (polar DIEMVIETTEXT (* 2 pi) donvi))
(setq diemvt3 (polar DIEMVIETTEXT (/ pi 2) donvi))
(setq diemvt4 (polar DIEMVIETTEXT (- 0 (/ pi 2)) donvi))
(grdraw diemvt1 diemvt2 3)
(grdraw diemvt3 diemvt4 3)
(if (= droffln nil)
(setq droffln1 2.00)
(setq droffln1 droffln)
)
(setq
droffln (GETREAL (strcat "\nNhap hang so tru: <" (rtos droffln1 2 2) ">"))
)
(if (= droffln nil)
(setq droffln droffln1)
)

(setq ketquaxuat (- NDTTT droffln))
(setq ketquaxuat (rtos ketquaxuat 2 2))
(setq dddsn (entsel "\nChon text xuat ket qua"))
(while
(or
(null dddsn)
(/= "TEXT" (cdr (assoc 0 (entget (car dddsn)))))
)
(princ "\nDoi tuong khong phai la text! Chon lai")
(setq dddsn (entsel "\nChon text tru"))
)

(setq DTDTTsn (car dddsn))
(setq DTMs (entget DTDTTsn))
(setq DTMs (subst (cons 1 ketquaxuat) (assoc 1 DTMs) DTMs))
(entmod DTMs)

(command "undo" "end")
(Princ))

Nhờ mọi người sửa giúp mình bổ sung cho Lisp trên thêm cộng, nhân, chia, với. (hiện tại chỉ có trừ thôi).
Thanks!
  • 0

#19 thinhtutn

thinhtutn

    biết zoom

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

Đã gửi 18 April 2013 - 10:26 AM

Không bác nào trả lời em sao.


  • 0

#20 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 18 April 2013 - 11:37 AM

Bạn đọc kỹ lại topic xem nào :o 

Ngoài ra, cộng cũng là trừ, chia cũng là nhân mà :)


  • 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