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

Lisp chọn tất cả các đối tượng thuộc 1 layer !

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

Em muốn có 1 lisp mà khi mình đánh lệnh thì sẽ chọn tất cả các đối tượng của 1 layer đã ngầm định sẵn trong lisp rồi.

Cụ thể:

Command : chon

tất cả các đối tượng thuộc layer "CAD viet" được chọn. Người dùng muốn chọn layer khác thì đổi CODE của Lisp !

Em xin chân thành cảm ơn. Mong các anh giúp đỡ !

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ại sao những việc đó bạn phải cần đến lisp vậy ^^ Các công cụ qselect, fi làm tốt mà. Còn nếu bạn cần thì đây ^^ Mình vídụ chọn layer 0

(defun c:chon()(sssetfirst nil (ssget "x" '((8 . "0")))))

  • Vote tăng 3

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ại sao những việc đó bạn phải cần đến lisp vậy ^^ Các công cụ qselect, fi làm tốt mà. Còn nếu bạn cần thì đây ^^ Mình vídụ chọn layer 0

(defun c:chon()(sssetfirst nil (ssget "x" '((8 . "0")))))

Đúng rồi. Cảm ơn bác nhiều nhé !hii

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

Thực ra cái này không cần dùng đến lisp đâu bạn ạ!

Trong Cad có lệnh Quick Select đấy

Bạn đánh lệnh Qselect -->Enter --> hiện lên ô cửa sổ trong đó có 4 lựa chọn:

1. Apply to: phạm vi áp dụng (nghĩa là lựa chọn toàn bộ hay 1 phần của bản ve);

2. Object type: loại đối tượng (trong đó có rất nhiều kiểu đối tượng như bạn thì bạn có thể chọn layer chẳng hạn);

3. Properties: Các thuộc tính;

4. Operator: cái này hợn khó nói (tự tìm hiểu nhé)

5. value: có thể lựa chọn qua màu sắc...

6. How to apply: cách dùng, cách thức áp dụng:

a. Include: các đối tượng chọn mà thỏa mãn các tiêu chuẩn trên thì được chọn;

b. Exclude: ngược lại với Include.

 

Cái này bạn thử đi nhé!

  • 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

Đúng rồi. Cảm ơn bác nhiều nhé !Nhưng khi e đổi sang Layer khác "2" mà có màu của đối tượng thuộc layer đó = "2" thì ko được. E đã đổi số 8=>2 nhưng kũng ko được. Mong bác giải thịck giúp em.

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

số 8 là mã DXF của Layer, muốn chọn layer "2" thì sửa số "0" => "2"

Theo mình bạn nên tập sử dụng CAD cho rành đi trước khi nghĩ đến xài lisp hay sửa code gì đấy.

Thâ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

anh ket xu oiiiii anh viet cho em 1 lisp chon tat ca cac doi tuong theo ma mauf dc ko, vd em muon chon tat ca cac doi tuong theo mau so 1 thi kich vao doi tuong co ma mau so 1 thi tat ca doi tuong cung ma mau voi doi tuong dc chon thi duoc boi het

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

Em muốn có 1 lisp mà khi mình đánh lệnh thì sẽ chọn tất cả các đối tượng của 1 layer đã ngầm định sẵn trong lisp rồi.

Cụ thể:

Command : chon

tất cả các đối tượng thuộc layer "CAD viet" được chọn. Người dùng muốn chọn layer khác thì đổi CODE của Lisp !

Em xin chân thành cảm ơn. Mong các anh giúp đỡ !

HEHHEH có ước thì ước cho hoành tráng một chút! :) bạn ko nhờ bác Ket viết luôn cái code khi bạn muốn chọn dt layer nào thì tất cả các dt thuộc layer đó được chọn? như vậy phải đỡ tốn công hơn ko hề?

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

anh ket xu oiiiii anh viet cho em 1 lisp chon tat ca cac doi tuong theo ma mauf dc ko, vd em muon chon tat ca cac doi tuong theo mau so 1 thi kich vao doi tuong co ma mau so 1 thi tat ca doi tuong cung ma mau voi doi tuong dc chon thi duoc boi het

 

(defun c:ha () (setq ss (ssget (list (assoc 62 (entget (car (entsel "\nDoi tuong mau :"))))))))

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ác ĐVH k check ByLayer ^^

Tuy nhiên, topic sai quy định từ lâu đã đành, bài viết yêu cầu của congchivo lại k thèm type TV, coi như bỏ qua

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ác ĐVH k check ByLayer ^^

Tuy nhiên, topic sai quy định từ lâu đã đành, bài viết yêu cầu của congchivo lại k thèm type TV, coi như bỏ qua

 

Quên. Mới nhớ, định PS thì Ket nhắc rồ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

ANH KETXU ƠI ANH VIẾT HỘ EM MỘT LISP CHON ĐỐI TƯỢNG THEO MÃ MÀU ĐƯỢC KO, VD: TRONG TẤT CẢ CÁC LAYER CÓ NHIỀU MÀU LỘN XỘN, EM CHI KÍCH CHUỘT VÀO 1 ĐỐI TƯỢNG THUỘC MÀU SỐ 1, THÌ TẤT CẢ CÁC ĐỐI TƯỢNG THUỘC MÀU SỐ 1 ĐƯỢC CHỌN, VÀ MÀU SỐ 1 LÀ MÀU BẤT KỲ. EM CẢM ƠN BÁC NHIỀU.

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

ANH KETXU ƠI ANH VIẾT HỘ EM MỘT LISP CHON ĐỐI TƯỢNG THEO MÃ MÀU ĐƯỢC KO, VD: TRONG TẤT CẢ CÁC LAYER CÓ NHIỀU MÀU LỘN XỘN, EM CHI KÍCH CHUỘT VÀO 1 ĐỐI TƯỢNG THUỘC MÀU SỐ 1, THÌ TẤT CẢ CÁC ĐỐI TƯỢNG THUỘC MÀU SỐ 1 ĐƯỢC CHỌN, VÀ MÀU SỐ 1 LÀ MÀU BẤT KỲ. EM CẢM ƠN BÁC NHIỀU.

Hề hề hề,

Anh Ketxu đi vắng, có em anh ấy giả nhời được không hè???

Cái này trên diễn đàn đã có không ít, bạn hãy chịu khó tìm kiếm nhé. Bạn cũng cần nói rõ yêu cầu củ bạn có tính tời các đối tựong nằm bên trọng các đối tượng là block là xref ... không nhé. Dù có tính tới hay không thì trên diễn đàn cũng đã có các lisp tương ứng rồi đó. Tìm là thấy bạ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

Dù mình chưa thạo lắm nhưng vẫn muốn tí toáy, mong bạn chỉ giúp mình. Mình Down cái lisp kia về rồi sau đó mình load đã báo thành công nhưng lúc mình dùng lệnh /chon(0) enter thì không được. Mong bạn chỉ giúp mình vớ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ại sao những việc đó bạn phải cần đến lisp vậy ^^ Các công cụ qselect, fi làm tốt mà. Còn nếu bạn cần thì đây ^^ Mình vídụ chọn layer 0

(defun c:chon()(sssetfirst nil (ssget "x" '((8 . "0")))))

Bạn ơi bạn chỉ mình cách làm với. Mình đã copy đoạn lisp của bạn về sau đó load đã báo thành công nhưng khi mình gõ lệnh /chon(0) chọn layer o nhưng không được,, mình làm chưa đúng ở chỗ nào hả bạn. Mong bạn giúp mình với.

  • 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

Bạn ơi bạn chỉ mình cách làm với. Mình đã copy đoạn lisp của bạn về sau đó load đã báo thành công nhưng khi mình gõ lệnh /chon(0) chọn layer o nhưng không được,, mình làm chưa đúng ở chỗ nào hả bạn. Mong bạn giúp mình với.

Ketxu hướng dẫn cho bạn nhưng bạn vẫn chưa hiểu. Tôi diễn tả cụ thể như sau:

- Load lisp.

- Đánh lệnh CHON vào command.

- Sau đó chọn đối tượng. Bạn có thể lấy vùng chọn tuỳ ý, nhưng chỉ những layer "0" nằm trong vùng mới được chọn.

- Chọn xong, lisp trả về tên tập hợp chọn, đồng thời grip lên các đối tượng để bạn dễ thấy.

(defun c:chon()
(cadr (sssetfirst nil (ssget '((8 . "0"))))))

  • 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ại sao những việc đó bạn phải cần đến lisp vậy ^^ Các công cụ qselect, fi làm tốt mà. Còn nếu bạn cần thì đây ^^ Mình vídụ chọn layer 0

(defun c:chon()(sssetfirst nil (ssget "x" '((8 . "0")))))

 

Mình đã dùng lisp SCT và lisp CHON để scale tất cả hình tròn thành công và rất cảm ơn các bạn,rất hay và hữu ích..Nhưng cho mình hỏi là Lisp SCT chỉ scale hình tròn theo tâm của nó,vậy để làm tương tự với 1 hình khác như hình mũi tên thì làm thế nào..Bản vẽ của mình có rất nhiều mũi tên nhưng các mũi tên lại hơi to,giờ mình muốn tất cả các mũi tên đều nhỏ đi thì làm thế nào..Bạn nào giúp mình với.. Thanks !

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

Trên CV đã có lisp thu nhỏ kích thước mũi tên mình viết hồi trước, bạn search nhé

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 cao thủ lisp giúp em lisp này với

- Gõ lệnh ko

- Chọn đối tượng thì các đối tượng được chọn về layer defpoint

Thanks!

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 cao thủ lisp giúp em lisp này với

- Gõ lệnh ko

- Chọn đối tượng thì các đối tượng được chọn về layer defpoint

Thanks!

Tôi nhớ đã viết cái này 1 lần cho ai đó, nhưng giờ tìm không ra nên đành viết lại cho bạn.

Lisp chuyển các đối tượng được chọn về lớp "Defpoints".

;----------------------------- Thay tÊt c¶ ®èi t­îng ®­îc chän sang líp "Defpoints".
(defun C:HA()
(if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
(princ "\nChon doi tuong...")
(setq entlst (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget)))))
(foreach ent entlst
 (entmod (subst (cons 8 "Defpoints") (assoc 8 (entget ent)) (entget ent))))
(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ại sao những việc đó bạn phải cần đến lisp vậy ^^ Các công cụ qselect, fi làm tốt mà. Còn nếu bạn cần thì đây ^^ Mình vídụ chọn layer 0

(defun c:chon()(sssetfirst nil (ssget "x" '((8 . "0")))))

Không biết lạ cad mình có vấn đề hay tại lisp, nhưng chỉ làm được 2 3 lần là lần sau có command mấy cũng trơ ra. :wacko:

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 cao thủ lisp giúp em lisp này với

- Gõ lệnh ko

- Chọn đối tượng thì các đối tượng được chọn về layer defpoint

Thanks!

Thực ra bạn có thể chọn đối tượng rồi thay đổi layer trên thanh công cụ cũng là nhanh rồi

Nhưng nếu bạn muốn một LISP như vậy bạn dùng thử xem nhé

@ Mạn phép bác DOAN VAN HA chút nhé, đây chỉ là một cách khác

;;Free lisp code from CADViet.com
(defun c:ko ( / SS )
(prompt "\nChon cac doi tuong muon chuyen ve layer Defpoint: ")
(setq ss (ssget))
(command "CHANGE" "P" "" "PROPERTIES" "LAYER" "DEFPOINTS" "" )
(princ)
);;end defun

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

Thực ra bạn có thể chọn đối tượng rồi thay đổi layer trên thanh công cụ cũng là nhanh rồi

Nhưng nếu bạn muốn một LISP như vậy bạn dùng thử xem nhé

@ Mạn phép bác DOAN VAN HA chút nhé, đây chỉ là một cách khác

Vâng, dùng hàm command thì code ngắn hơn.

Tuy nhiên code của bạn thiếu 1 điều quan trọng: khi bản vẽ không có layer Defpoints thì lisp bị lỗ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

Không bạn :) Vì bạn phải biết bạn định chọn đối tượng nào, mới có định nghĩa GÓC QUAY bạn định nói đế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

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  

×