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

Nhờ Khắc phục Block động bị thay đổi mã "Name" khi thao tác Action Move

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

Chào các các anh em

Mình đang viết lisp cần chọn đối tượng Block lọc theo thuộc tính của đối tượng với câu lệnh:

(setq lst (acet-ss-to-list (ssget (list (0 . "INSERT")(2 . "TENBLOCK" )))))

Đối với Block thường thì không sao, nhưng đối với với Block động (cụ thể có Action Move) thì sau khi thao tác ActionMove trên block  thì mã Name trong Entity của block đó bị thay đổi, dẫn đến câu lệnh trên không thể chọn đối tượng đó nữa mặc dù khi click vào properties thì tên block vẫn là tên ban đầu.

Nhờ các anh em xem có các nào khắc phục không. Xin cảm ơn.

Ảnh đính kèm là mã Entity của đối tượng trước và sau khi có thao tác ActionMove

 

Screenshot 2023-04-20 135936.jpg

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 thể lựa chọn trực tiếp được, bạn phải lọc 2 lần.

Lần đầu lấy (2 . "`*U*") để chọn dynamic block.

Lọc trong đống dynamic block đó lấy ra cái có effectivename mình muốn.

https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/ssget-dynamic-blocks/td-p/3699376

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

Không thể lựa chọn trực tiếp được, bạn phải lọc 2 lần.

Lần đầu lấy (2 . "`*U*") để chọn dynamic block.

Lọc trong đống dynamic block đó lấy ra cái có effectivename mình muốn.

https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/ssget-dynamic-blocks/td-p/3699376

Cảm ơn anh nhiều. Nhân tiện anh có biết tại sao hàm  ACET-SS-TO-LIST cứ Combine lisp thành file .vlx nó lại phát sinh lỗi "No funcition definition" ? Trong khi để dạng .lsp thì lại được, đầu  lisp đã có hàm (vl-load-com)

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
4 giờ trước, Duong Nhat Duy đã nói:

Mình hay dùng hàm này thay cho ACET-SS-TO-LIST:

(setq elst (vl-remove-if 'listp (mapcar 'cadr (if (ssget) (ssnamex (ssget "_P"))))))

Cảm ơn bạn, để tôi thử xem sao

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  

×