Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
7 replies to this topic

#1 soiconkthn

soiconkthn

    biết zoom

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

Đã gửi 09 July 2009 - 04:16 PM

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.^__^
  • 0

#2 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 09 July 2009 - 04:36 PM

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.c...amp;#entry66554
  • 2

#3 soiconkthn

soiconkthn

    biết zoom

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

Đã gửi 09 July 2009 - 08:54 PM

không ngờ câu lệnh lại ngắn vậy,thanks anh rất nhiều
  • 0

#4 SoftvnBin

SoftvnBin

    biết vẽ ellipse

  • Advance Member
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 14 August 2012 - 11:29 AM

Lisp này Tue_NV mới viết ngày hôm qua
Đây : http://www.cadviet.c...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!
  • 0

#5 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5679 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 14 August 2012 - 12:35 PM

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

  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#6 envirtech2002

envirtech2002

    biết vẽ polygon

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

Đã gửi 14 August 2012 - 12:40 PM

Bác xài thử lệnh filter xem, e hay dùng lệnh này!
  • 1
thered

#7 dexoso123

dexoso123

    biết lệnh erase

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

Đã gửi 14 August 2012 - 07:29 PM

Không cần thiết phải dùng Lisp, bạn dùng FI đi (ko biết sài thì kêu mọi người chỉ nhé)
  • 0

#8 SoftvnBin

SoftvnBin

    biết vẽ ellipse

  • Advance Member
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 14 August 2012 - 07:29 PM

Cảm ơn Ketxu và envirtech2002 nhé! cảm ơn thêm lần nữa nhé!, hihi

  • 0