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

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

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

- nhoc thấy chắc chỉ có dùng entmake mới né đc thằng style nhỉ ^^, tuy nhiên mấy bản vẽ chuyên nghiệp nhoc ko kể đến, chỗ nhoc thì chỉ tạo các style cần dùng và height lun = 0 để dễ tùy biến ^^

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

@nhoc:

- Nguyên đoạn (if ename ...) trong vòng while là thừa, nên để ngoài vòng while

- đoạn (if ename ...) đó luôn luôn lấy phần tử cuối cùng trong tập chọn

  • 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

Em xin thưa là em mù Lisp nên trong một biển các lisp tính trung bình cộng ở trên, các bác có thể cho em xin một file chuẩn cuối cùng không ạ?

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

- hihi chào mừng bạn trở lại ^^, bạn mún 1 lsp chuẩn theo ý bạn, trước hết nhoc mún pit yêu cầu và mục đích cụ thể của bạn là gì

- 1 tính trung bình cộng các số ok vấn đề đã đc giải quyết

- 2 phần râu ria ^^

 + bạn mún tính các số trong đó có bao gồm các text có chứa chữ trong đó ko (chắc là ko ^^)

 + phần quét chọn bạn có lọc ra riêng các text số cần tính không như file ví dụ bạn đưa, hay trên bản vẽ có vô vàn đối tượng và các text cao độ nằm rãi rác và bạn mún quét toàn bộ bản vẽ

 + các text cao độ bạn chọn có cùng chung 1 layer, 1 kiểu textstyle, chung độ cao chữ ko

 + text xuất kết quả bạn mún nó có thuộc tính như thế nào nào có chung thuộc tính với các text đã  chọn đó ko, hay bạn mún nó thuộc 1 layer riêng, 1 style riêng, 1 chiều cao khác, 1 màu khác, hay edit vào text có sẵn, hay đơn giản hơn sao cũng đc chỉ cần ra đúng kết quả để kiểm tra gì đó

- dựa trên mục đích của bạn nhoc sẽ cố gắng gôm lại 1 cục cuối cùng ^^

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

- hihi chào mừng bạn trở lại ^^, bạn mún 1 lsp chuẩn theo ý bạn, trước hết nhoc mún pit yêu cầu và mục đích cụ thể của bạn là gì

- 1 tính trung bình cộng các số ok vấn đề đã đc giải quyết

- 2 phần râu ria ^^

 + bạn mún tính các số trong đó có bao gồm các text có chứa chữ trong đó ko (chắc là ko ^^)

 + phần quét chọn bạn có lọc ra riêng các text số cần tính không như file ví dụ bạn đưa, hay trên bản vẽ có vô vàn đối tượng và các text cao độ nằm rãi rác và bạn mún quét toàn bộ bản vẽ

 + các text cao độ bạn chọn có cùng chung 1 layer, 1 kiểu textstyle, chung độ cao chữ ko

 + text xuất kết quả bạn mún nó có thuộc tính như thế nào nào có chung thuộc tính với các text đã  chọn đó ko, hay bạn mún nó thuộc 1 layer riêng, 1 style riêng, 1 chiều cao khác, 1 màu khác, hay edit vào text có sẵn, hay đơn giản hơn sao cũng đc chỉ cần ra đúng kết quả để kiểm tra gì đó

- dựa trên mục đích của bạn nhoc sẽ cố gắng gôm lại 1 cục cuối cùng ^^

 

- Phần quét chọn mình sẽ quét duy nhất số, nếu có lẫn chữ hãy báo lỗi cho mình.

- Các text cao độ mình chọn chưa chắc đã có chung 1 layer, 1 kiểu textstyle, 1 độ cao. Theo mình lisp sẽ tính cho tất cả các đối tượng lựa chọn có dạng là text số.

- Text xuất ra có thuộc tính là Layer, Textstyle đang hiện hành là được.

 

 Phức tạp quá nhỉ. Hôm nay hứng lên vào diễn đàn xem, thấy topic tăng thêm 2 trang, giật cả mình :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

- Phần quét chọn mình sẽ quét duy nhất số, nếu có lẫn chữ hãy báo lỗi cho mình.

- Các text cao độ mình chọn chưa chắc đã có chung 1 layer, 1 kiểu textstyle, 1 độ cao. Theo mình lisp sẽ tính cho tất cả các đối tượng lựa chọn có dạng là text số.

- Text xuất ra có thuộc tính là Layer, Textstyle đang hiện hành là được.

 

 Phức tạp quá nhỉ. Hôm nay hứng lên vào diễn đàn xem, thấy topic tăng thêm 2 trang, giật cả mình :D

- phần quét bạn yên tâm nó sẽ loại chữ ra, nếu các text cao độ cùng 1 layer nhoc co thể thêm điều kiện chỉ chọn layer đó tránh nhầm các text khác ở layer khác, như bạn nêu thì việc quét do bạn cẩn thận trong lúc chọn hen ^^

- ok sẽ lấy thuộc tính hiện hành ^^, nhoc sẽ chỉnh cao text = với file mẫu bạn đưa còn màu lấy màu đỏ cho nổi hen ^^

- bạn ko vội chờ nhoc xíu nhoc chỉnh lạ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

- bạn cứ test thử nhiều trường hợp có lỗi pm nhoc hen ^^

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/13750-lisp-tinh-gia-tri-trung-binh-cua-cac-text/page-3
(defun mktext (point height string justify style  mau / lst)
(setq lst (list '(0 . "TEXT")
                              (cons 10 point)
							  (cons 40 height)
							  (cons 7 style)
							  (cons 1 string)
							  (cons 62 mau)
			)
			justify (strcase justify))
		(cond   ((= justify "L") (setq Lst (append Lst (list (cons 72 0) (cons 11 point)))))
		        ((= justify "C") (setq Lst (append Lst (list (cons 72 1) (cons 11 point)))))
				((= justify "R") (setq Lst (append Lst (list (cons 72 2) (cons 11 point)))))
				((= justify "M") (setq Lst (append Lst (list (cons 72 4) (cons 11 point)))))
				)
	(entmakex Lst)
  )	;end mktext
;;;;
(prompt "Lenh tinh trung binh cong cac so: TBCC")
(defun C:tbcc(/ c tong mstbc num ss pt ctext kq old sty)
(setq old (getvar "osmode"))
(setq sty (getvar "textstyle"))
(setq c -1 tong 0 mstbc 0)
(if (setq ss (ssget '((0 . "TEXT"))))
 (progn
    (while (setq ename (ssname ss (setq c (1+ c))))
      (if (setq num (distof (cdr (assoc 1 (entget ename)))))
	      
          (setq tong (+ tong num) mstbc (1+ mstbc))
      );if
	  (if ename
	  (progn
	  (setq ctext (cdr (assoc 40 (entget ename))))
	  ;(setq glayer (cdr (assoc 8 (entget ename))))
	  ;(setq gstyle (cdr (assoc 7 (entget ename))))
	  )
	  )
	  
    );while
	
	
	(if (null (zerop mstbc))
	(progn
	(setq kq (/ tong mstbc))
	(setvar "osmode" 0)
	(setq pt (getpoint "\nchon diem dat ket qua:"))
    (mktext pt ctext (rtos kq 2 3) "L" sty 1)
     );progn
    );if	 
	
  );progn
  (alert "\nChua co doi tuong dc chon hoac ban chi chon toan text chu ^^")
);if    
(setvar "osmode" old)
(princ)
)

 

  • Vote tăng 2

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

Khá khen các học trò của thầy Ket. Hiepttr thì nhanh như sóc, Nhoc thì cần như kiến, tiến chút nữa là ra nghề. Vote động viên!

  • 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

 

- bạn cứ test thử nhiều trường hợp có lỗi pm nhoc hen ^^

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/13750-lisp-tinh-gia-tri-trung-binh-cua-cac-text/page-3
(defun mktext (point height string justify style  mau / lst)
(setq lst (list '(0 . "TEXT")
                              (cons 10 point)
							  (cons 40 height)
							  (cons 7 style)
							  (cons 1 string)
							  (cons 62 mau)
			)
			justify (strcase justify))
		(cond   ((= justify "L") (setq Lst (append Lst (list (cons 72 0) (cons 11 point)))))
		        ((= justify "C") (setq Lst (append Lst (list (cons 72 1) (cons 11 point)))))
				((= justify "R") (setq Lst (append Lst (list (cons 72 2) (cons 11 point)))))
				((= justify "M") (setq Lst (append Lst (list (cons 72 4) (cons 11 point)))))
				)
	(entmakex Lst)
  )	;end mktext
;;;;
(prompt "Lenh tinh trung binh cong cac so: TBCC")
(defun C:tbcc(/ c tong mstbc num ss pt ctext kq old sty)
(setq old (getvar "osmode"))
(setq sty (getvar "textstyle"))
(setq c -1 tong 0 mstbc 0)
(if (setq ss (ssget '((0 . "TEXT"))))
 (progn
    (while (setq ename (ssname ss (setq c (1+ c))))
      (if (setq num (distof (cdr (assoc 1 (entget ename)))))
	      
          (setq tong (+ tong num) mstbc (1+ mstbc))
      );if
	  (if ename
	  (progn
	  (setq ctext (cdr (assoc 40 (entget ename))))
	  ;(setq glayer (cdr (assoc 8 (entget ename))))
	  ;(setq gstyle (cdr (assoc 7 (entget ename))))
	  )
	  )
	  
    );while
	
	
	(if (null (zerop mstbc))
	(progn
	(setq kq (/ tong mstbc))
	(setvar "osmode" 0)
	(setq pt (getpoint "\nchon diem dat ket qua:"))
    (mktext pt ctext (rtos kq 2 3) "L" sty 1)
     );progn
    );if	 
	
  );progn
  (alert "\nChua co doi tuong dc chon hoac ban chi chon toan text chu ^^")
);if    
(setvar "osmode" old)
(princ)
)

Cảm ơn bạn! Mình kiểm tra sơ bộ thấy kết quả tốt rồ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ạ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

×