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

[ Nhờ giúp ] lisp lọc các đối tượng trên bản vẽ.

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

Đây là bản vẽ Drawing2.dwg

Em chào tất cả các ANH ,em đang làm bản đồ có vấn đề mong các anh giúp em.Trên bản  vẽ của em có các txt cùng một lớp, cùng màu giờ em muốn tự động chọn tất cả chúng, rồi đưa về các lớp theo yêu cầu. Các đối tượng trên có cùng một cấu trúc như sau(không phải là khối):
35
52
 TrÇn V¨n Trµ
219/20/8A §­êng TrÇn H­ng §¹o
ý nghĩa 
35 :là số thửa                                                                                                               
52: là số tờ
TrÇn V¨n Trµ :  là họ tên người sử dụng đất
219/20/8A §­êng TrÇn H­ng §¹o   : là địa chỉ                                                                                  

Em muốn có được cái lisp có thể phân 4 loại như trên mỗi loại một layer ạ, mong các anh giúp em , em cảm ơn.

  • 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

Cái này dùng lệnh fiters cũng lọc được ra.

B1: Tạo trước các layers

B2: Đánh lệnh Fiters (fi). Chọn đối tượng mẫu. Rồi quét và đưa vào layer hiện hành

 

  • 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

Bạn à

Muốn tách thì phải có quy luật

Muốn có quy luật thì phải xem bản vẽ

Muốn xem bản vẽ thì bạn phải post lên ...

  • 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
8 giờ trước, ketxu đã nói:

Bạn à

Muốn tách thì phải có quy luật

Muốn có quy luật thì phải xem bản vẽ

Muốn xem bản vẽ thì bạn phải post lên ...

mình có post lên đó bạn ngay dòng đầu tiên 

Drawing2.dwg

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
8 giờ trước, ketxu đã nói:

Bạn à

Muốn tách thì phải có quy luật

Muốn có quy luật thì phải xem bản vẽ

Muốn xem bản vẽ thì bạn phải post lên ...

bạn xem giúp mình nhé mình cảm ơ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
13 giờ trước, batitus đã nói:

Thấy trên diễn đàn có lisp này. bạn xem có dùng đc không

lisp_loc_layer.lsp

 

Cảm ơn bạn nhiều nha, bạn có thể cho mình cái topic của cái lisp để mình biết lệnh cụ thể của lisp 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
9 giờ trước, ketxu đã nói:

Bạn à

Muốn tách thì phải có quy luật

Muốn có quy luật thì phải xem bản vẽ

Muốn xem bản vẽ thì bạn phải post lên ...

Chắc do mình để không không nên ít ai để ý, lỗi của mình, mình đã sữa lại bài, cảm ơn bạn đã góp ý nha.

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 phải tạo trước 4 layer và khai báo vào trong lisp, mỗi lần chọn các đối tượng lisp sẽ thay đổi tối đa cho 4 đối tượng theo thứ tự từ trên xuống

(defun c:tal (/ ss lslay)		;tach layer cho cac text
  (setq lslay '("1" "2" "3" "4"))	;ten cac layer da co
  (while (setq ss (ssget '((0 . "TEXT"))))
    (setq ss (mapcar 'vlax-ename->vla-object
		     (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
	     ) ;_ end of mapcar
    ) ;_ end of setq
    (setq ss (vl-sort ss
		      '(lambda (e1 e2)
			 (> (cadr (vlax-get e1 'InsertionPoint))
			    (cadr (vlax-get e2 'InsertionPoint))
			 ) ;_ end of >
		       ) ;_ end of lambda
	     ) ;_ end of vl-sort
    ) ;_ end of setq
    (mapcar '(lambda (x y) (vla-put-layer x y)) ss lslay)
  ) ;_ end of while
  (princ)
) ;_ end of defun

 

  • 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
7 phút trước, tien2005 đã nói:

Bạn phải tạo trước 4 layer và khai báo vào trong lisp, mỗi lần chọn các đối tượng lisp sẽ thay đổi tối đa cho 4 đối tượng theo thứ tự từ trên xuống


(defun c:tal (/ ss lslay)		;tach layer cho cac text
  (setq lslay '("1" "2" "3" "4"))	;ten cac layer da co
  (while (setq ss (ssget '((0 . "TEXT"))))
    (setq ss (mapcar 'vlax-ename->vla-object
		     (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
	     ) ;_ end of mapcar
    ) ;_ end of setq
    (setq ss (vl-sort ss
		      '(lambda (e1 e2)
			 (> (cadr (vlax-get e1 'InsertionPoint))
			    (cadr (vlax-get e2 'InsertionPoint))
			 ) ;_ end of >
		       ) ;_ end of lambda
	     ) ;_ end of vl-sort
    ) ;_ end of setq
    (mapcar '(lambda (x y) (vla-put-layer x y)) ss lslay)
  ) ;_ end of while
  (princ)
) ;_ end of defun

 


Cảm ơn bạn đã dành thời gian viết lisp cho mình nhưng mình sài nó lại không ra được bạn ơi. Kết quả là mình cần tách mỗi hàng là một layer ý ví dụ như số thửa thì nó sẽ là hàng đầu tiên.

và số tờ là hàng thứ 2 và mỗi hàng là một layer ý. mình cảm ơ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

Bạn phải tạo 4 layer tương ứng và khai báo vào trong lisp (trong lisp mình khai báo các layer là 1 2 3 4)

Chọn các đối tượng cần chuyển vào các lớp đó rồi enter

 

GIF.gif

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
1 giờ} trướ}c, tien2005 đã nói:

Bạn phải tạo 4 layer tương ứng và khai báo vào trong lisp (trong lisp mình khai báo các layer là 1 2 3 4)

Chọn các đối tượng cần chuyển vào các lớp đó rồi enter

 

GIF.gif

mình hiểu rồi nhưng mà mình có rất nhiều dữ liệu như vậy, lisp của bạn quét chọn có một đối tượng à, có cách nào làm một lúc nhiều không, mình cảm ơ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
25 phút trước, Black_Cat_ đã nói:

À số tờ thì mặc định là 52 vs 41 , còn số thửa thì không có quy luật bạn 

Dốt thì phải uốn lưỡi 7 lần trước khi hỏi. Chứ hỏi mà ko dùng não thì chỉ làm người khác biết bạn ko có não luô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
1 giờ trước, Danh Cong đã nói:

Dốt thì phải uốn lưỡi 7 lần trước khi hỏi. Chứ hỏi mà ko dùng não thì chỉ làm người khác biết bạn ko có não luôn. !

nó cùng là text và cùng layer thì làm gì có quy luật, mình nói cái số tờ là 41,52 để bạn đấy viết lisp chỉ lấy số 52 và 42 thôi còn cái sô tờ thì mình không biết quy luật.

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ứ bạn nghĩ hai số trên dưới thì lam gì có quy luật gì, mình mới biết cad vs lisp ít lâu nên không có khôn như bạn đâu nên bạn ra nói chuyện với người khôn nhé, và đính chính là lúc nãy mình đang trả lời chứ không pahir hỏi nhé, bạn nhìn và đọc kĩ chứ đừng thấy ng khác không giỏi hơn bạn vào phán đạ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
Đăng nhập để thực hiện theo  

×