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

[Hỏi] Lựa chọn tất cả các block có tên giống nhau trong bản vẽ

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

các anh cho e hỏi có nhung cách nào để lựa chọn tất cả các block có tên giống nhau trong bản vẽ không.hình như có lisp vệ việc này,có lisp chắc sẽ nhanh hơn so với dùng lệnh Qselect.hy vọng đc các anh chia sẻ.thanks everybody.^__^

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 anh cho e hỏi có nhung cách nào để lựa chọn tất cả các block có tên giống nhau trong bản vẽ không.hình như có lisp vệ việc này,có lisp chắc sẽ nhanh hơn so với dùng lệnh Qselect.hy vọng đc các anh chia sẻ.thanks everybody.^__^

Lisp này Tue_NV mới viết ngày hôm qua

Đây : http://www.cadviet.com/forum/index.php?sho...amp;#entry66554

  • 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

Lisp này Tue_NV mới viết ngày hôm qua

Đây : http://www.cadviet.com/forum/index.php?sho...amp;#entry66554

Link bị hỏng rồi bác ơi! mà em cũng nhờ các bác với mong muốn như trên nhưng sẽ thực hiện như sau:

1. Gõ lệnh: aaa

2. Xuất hiện hộp thoại có chứa các tên block (giống hộp thoại của lệnh BEDIT trong cad)

3. Chọn tên Block (giống hộp thoại của lệnh BEDIT trong cad) (pick đúp hoặc pick 1 lần rồi ấn Oke) (ví dụ mình chọn Block tên Huong)

4. Quét chọn vùng mong muốn (có thể quét đi, quét lại mà không bị tính lại đối tượng được chọn)

5. Toàn bộ các Block tên Huong trong vùng chọn mong muốn (4) sẽ được chọn

6. Đồng thời xuất hiện dòng thông báo dưới thanh Comand: So Block ten Huong là: 6 cai (giả sử có 6 Block tên Huong)

Cảm ơn các bác trướ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

Quick and dirty code - quick test - chưa khử biến luôn vì đến giờ e đi làm rồi.

Đếm cả Block động

 


(defun c:test ()
(vl-load-com) 
(defun table (s / d r)
(while (setq d (tblnext s (null d)))
(setq r (cons (cdr (assoc 2 d)) r))
)
)
(defun DCL(Title @ ThongTin lstVal / fl ret)   
(setq fl (vl-filename-mktemp "mip" nil ".dcl"))
(setq  ret (open fl "w"))
(mapcar
'(lambda (x) (write-line x ret))
(list 
"mip_msg : dialog { "
(strcat "label=\"" title "\"; width = 40;fixed_width = true;")  ; 
":popup_list {label = \"Block : \";key=\"kLst\";}" 
": column {"
": row {"
"    fixed_width = true;"
"    alignment = centered;"
":button {label = \"\U+0110\U+1ED3ng \U+00FD\"; is_cancel = true;fixed_width = true;width = 1;}"
"    : spacer { width = 2; }"
":button {label = \"Th\U+00F4ng tin\";fixed_width = true;width = 1;key = \"kThongTin\";}" 
"}"
"}"
" :text_part {alignment=centered;"
(strcat "label=\"" @ "\";")
"}}"
)    
) ;_ end of mapcar
(setq ret (close ret))
(if (and (not (minusp (setq dcl_id (load_dialog fl))))
 (new_dialog "mip_msg" dcl_id)
) ;_ end of and
(progn 
(start_list "kLst" 3)
(mapcar '(lambda(x)(add_list x)) lstVal)
(end_list)
(action_tile "kLst" "(setq ret (nth (atoi $value) lstVal))")
(start_dialog) 
) ;_ end of progn
) ;_ end of if
(unload_dialog dcl_id)  
(vl-file-delete fl)
ret 
)
(setq lstBlk (vl-remove-if '(lambda(x)(wcmatch x "`**"))(acad_strlsort (table "Block")))) 
(cond ((setq nm (DCL "Select block :" "@Ketxu" "Counting choiced block @Ketxu" lstBlk))
(setq  ss  (ssget (list (cons 0 "INSERT")(cons 2 (strcat nm ",`**"))))
tol (length (setq tmp (vl-remove-if-not '(lambda(x)(= (vla-get-EffectiveName (vlax-ename->vla-object x)) nm)) (acet-ss-to-list ss))))
)
))
(cond ((> tol 0)
(sssetfirst nil (acet-list-to-ss tmp))
(princ (strcat "So block " nm " tim thay trong vung chon la : " (itoa tol) ))
)(T (princ "K co cai nao trong vung chon nhe"))
)
(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

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  

×