Rated 5/5 based on 240179 internet user reviews

Đến nội dung


Hình ảnh
- - - - -

Lisp tính giá trị trung bình của các Text !!!!


  • Please log in to reply
60 replies to this topic

#1 hhhhgggg

hhhhgggg

    biết dimedit

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

Đã gửi 01 October 2009 - 08:30 AM

(defun c:tinh()
(vl-load-com)
(if (not ptinh) (setq ptinh "+"))
(if (not ssle) (setq ssle 0))

(initget "+ - * / ~")
(setq ptinh1 (getkword (strcat "Chon phep tinh ( + - * / ~ ) <" ptinh "> :"))
ssle1 (getint (strcat "\nSo so le <" (itoa ssle) ">: ")))
(if ptinh1 (setq ptinh ptinh1))
(if ssle1 (setq ssle ssle1))

(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 "~") ;;; trung binh cong
(prompt "\nChon text de tinh trung binh cong:")
(setq ss (ssget '((0 . "TEXT")))
sl (sslength ss)
kqua 0)
(while (and ss (> (sslength ss) 0))
(setq kqua (+ kqua (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))
(ssdel ent ss))
(setq kqua (/ kqua sl))
(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))
)

(setq obj (vlax-ename->vla-object (car (entsel "\nChon text de ghi ket qua:"))))
(vla-put-TextString obj (rtos kqua 2 ssle))
(princ)
)
  • 0
Hoàng Giang

#2 hai_1401

hai_1401

    biết lệnh rotate

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

Đã gửi 01 October 2009 - 09:44 AM

Chả hiểu mấy :cheers:
  • 0

#3 vminh_ct

vminh_ct

    biết lệnh stretch

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

Đã gửi 01 October 2009 - 09:52 AM

đến dòng chọn text hiển thị kết quả thì em không biết làm thế nào nưa. Bro chỉ giáo kỹ hơn nhé.
  • 0
" Sống trên đời cần có 1 tấm lòng,để gió mãi cuốn đi"

#4 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 01 October 2009 - 10:04 AM

(defun c:tinh()
(vl-load-com)
(if (not ptinh) (setq ptinh "+"))
(if (not ssle) (setq ssle 0))

(initget "+ - * / ~")
(setq ptinh1 (getkword (strcat "Chon phep tinh ( + - * / ~ ) <" ptinh "> :"))
ssle1 (getint (strcat "\nSo so le <" (itoa ssle) ">: ")))
(if ptinh1 (setq ptinh ptinh1))
(if ssle1 (setq ssle ssle1))

(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 "~") ;;; trung binh cong
(prompt "\nChon text de tinh trung binh cong:")
(setq ss (ssget '((0 . "TEXT")))
sl (sslength ss)
kqua 0)
(while (and ss (> (sslength ss) 0))
(setq kqua (+ kqua (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))
(ssdel ent ss))
(setq kqua (/ kqua sl))
(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))
)

(setq obj (vlax-ename->vla-object (car (entsel "\nChon text de ghi ket qua:"))))
(vla-put-TextString obj (rtos kqua 2 ssle))
(princ)
)

Ý bạn là sao ?
Nếu bạn muốn giới thiệu 1 Lisp hay, chỉ cần 1 đuờng Link là đủ.
Hay bạn muốn giới thiệu Lisp của bạn viết ?

Bạn có quyền share các List sưu tầm đuợc.
Nhưng dù sao thì bạn cũng cần tôn trọng nguời viết ra nó, chẳng ở đâu xa, ngay trong diễn đàn này.
Lisp bạn cung cấp thực chất đuợc POST trong diễn đàn này, ở topic lisp cộng trừ nhân chia text, giá trị trung bình cộng của các text
do Q288 viết.
Và nếu bạn muốn giới thiệu 1 Lisp hay có cần thiết phải mở 1 TOPIC mới không ?
  • 0

#5 qh2qa06

qh2qa06

    biết vẽ pline

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

Đã gửi 26 September 2014 - 02:52 PM

Em muốn xin lisp tính giá trị trung bình cộng của các text trong bản vẽ. Định dạng text là Left như trong bản vẽ đính kèm.

http://www.cadviet.c...nh_cua_text.dwg


  • 0

#6 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 369 (khá)

Đã gửi 26 September 2014 - 03:23 PM

nhoc có 1 lsp mót chỉnh sữa lại 1 tí theo ý bạn, bạn xem sao ^^

;;;Dung de tinh tong cac so
(defun C:tbcc()
  (setq ss (ssget '((0 . "TEXT"))))
  (setq c 0 tong 0)
  (if (/= ss nil)
    (while (< c (sslength ss))
      (setq oldob (entget (ssname ss c)))
      (setq txtstr (assoc 1 oldob))
	  (setq realk (assoc 40 oldob))
	(if (/= txtstr nil)
        (progn
		  (setq ctext (cdr realk))
          (setq num (cdr txtstr))
          (setq tam (atof num))
          (setq tong (+ tong tam))
		  (setq tbc (/ tong (sslength ss)))
        );progn
      );if
      (setq c (1+ c))
    );while
  );if
  (while (/= tong 0)
    (setq p (getpoint "\nNhap vi tri xuat ket qua: "))
    (command "TEXT" p ctext 0 (rtos tbc 2 3) "")
    (setq tong 0)
  );while
)
(prompt "ten lenh : tbcc")


  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#7 qh2qa06

qh2qa06

    biết vẽ pline

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

Đã gửi 26 September 2014 - 03:32 PM

nhoc có 1 lsp mót chỉnh sữa lại 1 tí theo ý bạn, bạn xem sao ^^

;;;Dung de tinh tong cac so
(defun C:tbcc()
  (setq ss (ssget '((0 . "TEXT"))))
  (setq c 0 tong 0)
  (if (/= ss nil)
    (while (< c (sslength ss))
      (setq oldob (entget (ssname ss c)))
      (setq txtstr (assoc 1 oldob))
	  (setq realk (assoc 40 oldob))
	(if (/= txtstr nil)
        (progn
		  (setq ctext (cdr realk))
          (setq num (cdr txtstr))
          (setq tam (atof num))
          (setq tong (+ tong tam))
		  (setq tbc (/ tong (sslength ss)))
        );progn
      );if
      (setq c (1+ c))
    );while
  );if
  (while (/= tong 0)
    (setq p (getpoint "\nNhap vi tri xuat ket qua: "))
    (command "TEXT" p ctext 0 (rtos tbc 2 3) "")
    (setq tong 0)
  );while
)
(prompt "ten lenh : tbcc")

Cảm ơn bạn! Lisp của bạn mình dùng tốt rồi. Phản ứng nhanh thật! Không thấy có icon tặng hoa hay vỗ tay gì cả 


  • 0

#8 pphung183

pphung183

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 256 Bài viết
Điểm đánh giá: 266 (khá)

Đã gửi 26 September 2014 - 04:25 PM

nhoclangbat  viết (command "TEXT" p ctext 0 (rtos tbc 2 3) "") thành (command "TEXT" p ctext 0 (rtos tbc 2 3))   để khỏi thấy xuất hiện dòng :

TBCC Unknown command "TBCC".  Press F1 for help.


  • 1

#9 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 369 (khá)

Đã gửi 26 September 2014 - 04:33 PM

- thanks a , cái này nhoc có để ý khi học mà chỉnh vội vàng quên xem xét kỹ ^^


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#10 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 26 September 2014 - 04:40 PM

nhoclangbat  viết (command "TEXT" p ctext 0 (rtos tbc 2 3) "") thành (command "TEXT" p ctext 0 (rtos tbc 2 3))   để khỏi thấy xuất hiện dòng :

TBCC Unknown command "TBCC".  Press F1 for help.

Kể cả 2 cách trên cũng đều có thể bị lỗi, tùy thuộc height của style current là bằng 0 hay khác 0.


  • 0

#11 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1162 Bài viết
Điểm đánh giá: 432 (tốt)

Đã gửi 26 September 2014 - 04:44 PM

Nhóc quên bài cũ nhiều quá ^^

:D :D :D


  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#12 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 369 (khá)

Đã gửi 26 September 2014 - 05:22 PM

-@@ chỉnh có xíu mà bị các bác mổ xẽ ghê thiệt ^^, quick edit mà, các bác thông cảm ^^


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#13 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 369 (khá)

Đã gửi 26 September 2014 - 06:05 PM

-anh Ha pit cách nào tạo text ngắn gọn  mà ko sợ bị ảnh hưởng của thằng style chỉ nhoc với ^^


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#14 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 26 September 2014 - 07:01 PM

Nhoc cứ thử với 2 style: 1 style có height = 0 và 1 style có height /= 0. Từ đó dùng (command "text"...) rồi rút ra kết luận. Sau đó dùng hàm if.

Còn dùng vla(x) thì Nhoc chưa biết mà.


  • 1

#15 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 933 Bài viết
Điểm đánh giá: 462 (tốt)

Đã gửi 26 September 2014 - 07:24 PM

Bạn dùng entmake cũng đc.

(entmake (list (cons 0 "TEXT") (cons 1 (rtos tbc 2 3)) (cons 40 ctext) (cons 10 p) (cons 11 p)))


  • 0

#16 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 369 (khá)

Đã gửi 26 September 2014 - 07:39 PM

- quên nhỉ có thể dùng entmake, nhoc chưa nghĩ ra nhưng nếu dùng if chắc cũng phải đụng đến mã dxf nhỉ


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#17 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 27 September 2014 - 06:02 AM

Trung bình cộng có Trường hợp =0 chứ nhỉ? bạn nhoclangbat


  • 0

#18 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 369 (khá)

Đã gửi 27 September 2014 - 09:03 AM

- hi nhoc quên ko để ý nhỉ, a Tue cho nhoc hỏi thêm , có cách lọc ra trong tập mình chọn ko bao gồm các text có dạng SYM không a, trường hợp mình quét chọn mà trong đó có text toàn chữ thì kết quả trả ra sẽ bị sai mất ^^


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#19 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 27 September 2014 - 09:18 AM

Dùng hàm distof để kiểm tra text có phải là số hay không.


  • 0

#20 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 369 (khá)

Đã gửi 27 September 2014 - 11:49 AM

- nhet cái distof nó vào đâu để kiểm tra anh Ha nhỉ ^^, cái lsp goc của nhoc là tính tổng thui, nếu trong tập chọn có text gồm cả số lẫn chữa thì nó vẫn hiểu chỉ lấy phần số ra tính, còn thêm cái trung bình cộng lại phải dựa trên số lượng của tập chọn ban đầu là bao nhiêu nữa,ý nhoc là khi mình quét mà trong vùng quét  có text toàn chữ ko thì nó loại ra để hàm sslength trả về đúng số lượng


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^