Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
thanhdatx2bk

NHỜ GIÚP ĐỠ VIẾT LISP CHỌN KÝ TỰ SỐ TRONG TEXT

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

Chào các bác ! Em đang cần hỗ trợ viết lisp để chọn được ký tự số trong 1 dòng text. Mục đích là thống kê số lượng thanh thép theo từng loại tên A,B,C,A',B'. Em đã có lisp cộng các text ký tự số rồi ạ. Vấn đề là không chọn được số ( khung viền đỏ) mà chọn nguyên luôn cả 1 text ( khung viền xanh) theo ảnh đính kèm. Mong các bác giúp đỡ. Trân trọng và cảm ơn ! 

NHO VIET LISP CAD.png

  • 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

Chọn khơi khơi vậy rồi thôi à?

Chọn nhiều text, hoặc chọn 1 text mà có nhiều số rồi làm gì?

Câu hỏi của bạn không rõ ràng.

  • 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

Vâng bác, em đang muốn thống kê số lượng thép đai ấy , theo từng loại A,B,C,A',B' ấy. Và đã có lisp cộng các text là số. Vấn đề giờ em muốn chọn từng ký tự số trong text ấy. VÍ dụ như hình tên muốn thống kê số lượng thép đai A sẽ bằng 12 +7 =29 . Nhưng không chọn riêng được số 12 và số 7 trong 2 text ấy bác 

  • 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

ý bạn này là bạn ý có lisp cộng các text rồi nhưng vì text của bạn ý có kèm ký tự chữ nữa nên không cộng được. giờ bạn ý muốn xin lisp cộng text mà nó tự động nhận đc các ký tự số, loại bỏ các ký tự chữ để có thể cộng đc ạ. theo em hiểu là mục đích bạn ý yêu cầu là như vậy bác hà ơi. ^^

  • Like 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

Hầu như những người có khả năng giúp chủ thớt đều đoán hòm hòm ý của thớt. Nghẹt cái là thớt lại không biết mình muốn gì:

-Tui phân tích nghe:

+Thớt có lisp cộng các text rồi.

+Thớt có text như sau 3A+2B+12A' theo yêu cầu của thớt thì lọc lấy các text là số thì có các trường hợp kết quả như sau:

1. Ra text : 3212.

2. Ra text 3 2 12.

3. Ra 3 text: 3 và 2 và 12.

-Đó ra kết quả như thớt yêu cầu rồi đó xong rồi ngó hử chứ cộng theo A B A' kiểu gì.

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âu hỏi khá hời hợt nên chỉ làm cho bạn đến đây (lệnh "HA", bấm F2 để xem kết quả). Mọi y/c thêm đều không đáp ứng.


; Nhom list text tren ban ve thanh tung nhom theo so luong ten trung nhau, 28/06/2019. 
; Yeu cau cac ky tu trong 1 text phai viet lien nhau.
; VD tren ban ve co cac Texxt: 12A+23B+34C ; 1A+2B+3C' ; 2B+3A'+4C ; 2B ; 2A'+23B'+34C ; 12C1+3B'+4C' >> nhom thanh: (("A" 13) ("A'" 15) ("B" 29) ("B'" 26) ("C" 72) ("C'" 7) ("C1" 12))
(defun C:HA(/ lst1 lst2 lst3)
 (princ "\nChon cac Text can cong...")
 (setq lst1 (Ss->Lst (ssget '((0 . "*Text"))) nil))
 (setq lst2 (apply 'append (mapcar '(lambda(e) (String->ListString (cdr (assoc 1 (entget e))) "+")) lst1)))
 (setq lst3 (mapcar '(lambda(x) (setq so(atoi x) sostr (itoa so) loai (substr x (1+ (strlen sostr)) (strlen x))) (list loai so)) lst2))
 (vl-sort (mapcar '(lambda(x) (setq loai (car x) sl (apply '+ (mapcar 'cadr (cdr x)))) (list loai sl)) (GroupBy 'car lst3)) '(lambda(x y) (< (car x) (car y)))))
(defun String->ListString(str del / pos lst)
 (while (setq pos (vl-string-search del str)) (setq lst (cons (substr str 1 pos) lst) str (substr str (+ pos 1 (strlen del))))) (reverse (cons str lst)))
(defun Ss->Lst (ss flag / lst)
 (and ss (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))) (if flag (setq lst (mapcar 'vlax-ename->vla-object lst)))) lst)
(defun GroupBy (fun lst / key sub res)
 (setq fun (eval fun))
 (mapcar '(lambda (l) (cons (car l) (reverse (cdr l)))) (foreach l lst (setq res (if (setq sub (assoc (setq key (fun l)) res)) (subst (vl-list* key l (cdr sub)) sub res) (cons (list key l) res))))))

  • Like 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

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
Đăng nhập để thực hiện theo  

×