Chuyển đến nội dung
Diễn đàn CADViet
vankiemquytong

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

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

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.

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ớ 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.com/forum/Tap-hop-cac-l...nuoc-t1616.html

 

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

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
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.com/forum/Tap-hop-cac-l...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.

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

  • Vote tăng 2
  • 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

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

  • Like 1
  • Vote tăng 5

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

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
Sao chọn text k được vậy? http://www.cadviet.com/upfiles/2/ctnc.lsp

dùng con này xem: http://www.cadviet.com/upfiles/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)

  • Vote tăng 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
dùng con này xem: http://www.cadviet.com/upfiles/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!

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

dùng con này xem: http://www.cadviet.com/upfiles/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.

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

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

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

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

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

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

  • Vote tăng 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

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

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

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.

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

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 có thể bổ sung phần đặt tên text ghi kết quả theo ý muốn k.

99830_untitled_2.jpg

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

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ê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!

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 đọ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à :)

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

 

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

cái này chắc đã update lại kết quả sửa lisp rồi chứ mình thấy dùng ổn mà

thanks

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

ah nhân đây cho mình hỏi mình có cái lisp này dùng để trừ text (lệnh ta) nhưng cho kết quả là 1 số có 2 chữ số thập phân, vậy mình muốn sửa về 3 số thì sửa chỗ nào, cảm ơn mọi người nhiều ạ. (nếu đc xin chỉ mình tự sửa để lần sau những cái tương tự ko mắc công đi nhờ nữa ạ :) )

http://www.cadviet.com/upfiles/3/47977_tatru_text_cho_text.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 up code dạng này ko tải để xem đc, nhưng nhoc đoán mò là, bạn xem trong lsp dòng nào có hàm (rtos (.....) 2 2) thì cứ chuyển số 2 cuối thành 3 là đc =>

(rtos (....) 2 3)

  • Vote tăng 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

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


×