Đến nội dung


Hình ảnh

Tìm Block bên trong Block


  • Please log in to reply
8 replies to this topic

#1 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 29 September 2013 - 02:04 PM

Sau khi đã Purge bản vẽ, mình ra lệnh Insert thì thấy có một số Block lạ trong danh sách.

Dùng lệnh câu lệnh (ssget "X" '((2 . "BlockName"))) thì không thu được kết quả nào.

Vậy chỉ còn khả năng là Block đó đã nằm bên trong Block nào đó.

 

Nhờ các bác chỉ giúp cách tìm xem nó đã nằm bên trong (những) Block nào. Xin trân trọng cám ơn!


  • 0

#2 Tranha_haui

Tranha_haui

    biết zoom

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

Đã gửi 29 September 2013 - 02:49 PM

mình muốn đăng bài lên thì đăng chỗ nào hả các mem. tìm hoài mà chẳng thấy


  • 0

trưởng phòng thiết kế

cty cổ phần bất động sản xây dựng Địa Long

dt: 0973572809


#3 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 30 September 2013 - 12:05 PM

Mình dùng Cad2007, lệnh QSELECT không cho phép tìm kiếm bên trong Block. Không biết các phiên bản CAD sau này có hỗ trợ hay không.


  • 0

#4 chauphico

chauphico

    Chưa sử dụng CAD

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

Đã gửi 30 September 2013 - 12:57 PM

Không biết


  • -1

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 30 September 2013 - 01:10 PM

Mình dùng Cad2007, lệnh QSELECT không cho phép tìm kiếm bên trong Block. Không biết các phiên bản CAD sau này có hỗ trợ hay không.

Thử gởi bản vẽ còn lại 1 block đó lên xem thử sao.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#6 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 30 September 2013 - 01:27 PM

Nó đây bạn:

http://www.cadviet.c...8851_sample.dwg

Mình cần tìm xem Block "A$C557B3409" đang nằm trong Block nào.


  • 0

#7 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 30 September 2013 - 02:11 PM

Polyline biết Lisp, dùng ssget được mà.

 

(ssget "_A" (list (cons 0 "Insert") (cons 2 blkName)))

(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 2 "A$C557B3409"))))
 
(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 2 "A$C557B3409"))))
 
(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 2 "A$C557B3409"))))
  (vl-cmdf "erase" ss ""))
(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 2 "A$C557B3409"))))
  (vl-cmdf "erase" ss ""))
(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 2 "A$C557B3409"))))
 
(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 2 "A$C557B3409"))))
 
(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 2 "A$C557B3409"))))
  (vl-cmdf "erase" ss ""))
(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 2 "A$C557B3409"))))
  (vl-cmdf "erase" ss ""))
(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 2 "A$C557B3409"))))
  (vl-cmdf "erase" ss ""))
(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 2 "A$C557B3409"))))
  (vl-cmdf "erase" ss ""))
(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 2 "A$C557B3409"))))
  (vl-cmdf "erase" ss ""))
(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 2 "A$C557B3409"))))
  (vl-cmdf "erase" ss ""))

  • 1

#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 30 September 2013 - 02:15 PM

Nó nằm ngay dưới block "Cross..." đấy thôi.


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#9 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 30 September 2013 - 02:35 PM

Dễ thấy là nó nằm ngay trên Model, và ssget lấy được

 

((lambda(x / lstAll lst tab notAnon)
	(defun notAnon(x)(not (wcmatch x "`**")))
	(vlax-for blk_def x
		(cond ((notAnon (setq tab (vla-get-Name blk_def)))
			(vlax-for e blk_def
				(cond  
					((and	(= (vla-get-ObjectName  e) "AcDbBlockReference")(notAnon (setq name (vla-get-EffectiveName e))))
						(or (vl-position name lst) (setq lst (cons name lst)))
					)
				)
			)
			(if lst (setq lstAll (append lstAll (list (list tab lst)))))
			(setq lst nil)
		))
	)
	lstAll	
)  
(vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
)

 

((lambda(x / lstAll lst tab notAnon)
(defun notAnon(x)(not (wcmatch x "`**")))
(vlax-for blk_def x
(cond ((notAnon (setq tab (vla-get-Name blk_def)))
(vlax-for e blk_def
(cond  
((and (= (vla-get-ObjectName  e) "AcDbBlockReference")(notAnon (setq name (vla-get-EffectiveName e))))
(or (vl-position name lst) (setq lst (cons name lst)))
)
)
)
(if lst (setq lstAll (append lstAll (list (list tab lst)))))
(setq lst nil)
))
)
lstAll
)  
(vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
 
((lambda(x / lstAll lst tab notAnon)
(defun notAnon(x)(not (wcmatch x "`**")))
(vlax-for blk_def x
(cond ((notAnon (setq tab (vla-get-Name blk_def)))
(vlax-for e blk_def
(cond  
((and (= (vla-get-ObjectName  e) "AcDbBlockReference")(notAnon (setq name (vla-get-EffectiveName e))))
(or (vl-position name lst) (setq lst (cons name lst)))
)
)
)
(if lst (setq lstAll (append lstAll (list (list tab lst)))))
(setq lst nil)
))
)
lstAll
)  
(vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
 
((lambda(x / lstAll lst tab notAnon)
(defun notAnon(x)(not (wcmatch x "`**")))
(vlax-for blk_def x
(cond ((notAnon (setq tab (vla-get-Name blk_def)))
(vlax-for e blk_def
(cond  
((and (= (vla-get-ObjectName  e) "AcDbBlockReference")(notAnon (setq name (vla-get-EffectiveName e))))
(or (vl-position name lst) (setq lst (cons name lst)))
)
)
)
(if lst (setq lstAll (append lstAll (list (list tab lst)))))
(setq lst nil)
))
)
lstAll
)  
(vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))

  • 0

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