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

Làm thế nào để truy xuất dữ liệu của đối tượng trong block khi Pick vào đối tượng đó

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

Mình muốn một lisp đại khái như sau :

Khi Pick vào một đối tượng trong block, hàm sẽ xử lý y như khi pick vào đối tượng ngoài block. có nghĩa là mình có thể dùng hàm entsel, entget (hay có thể là hàm khác) để lấy tên và truy xuất dữ liệu của chúng. Mục đích là mình có thể vẽ một số text có thuộc tính giống y text vừa chọn, hay khi chọn line mình có thể vẽ text song song với chúng... nhưng mình chưa biết bắt đầu như thế nào. Cán bạn giúp đỡ gợi ý cho mình 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
Mình muốn một lisp đại khái như sau :

Khi Pick vào một đối tượng trong block, hàm sẽ xử lý y như khi pick vào đối tượng ngoài block. có nghĩa là mình có thể dùng hàm entsel, entget (hay có thể là hàm khác) để lấy tên và truy xuất dữ liệu của chúng. Mục đích là mình có thể vẽ một số text có thuộc tính giống y text vừa chọn, hay khi chọn line mình có thể vẽ text song song với chúng... nhưng mình chưa biết bắt đầu như thế nào. Cán bạn giúp đỡ gợi ý cho mình nhé. Cám ơn

Đối với các đối tượng khối hoặc đa tuyến, ta có thể dùng hàm nensel hoặc nentselp để lấy ename của các đối tuợng con

Mình nhớ không nhầm thì các giá trị DXF code 10 và 11 của đối tuợng con là ở hệ toạ độ OCS, muốn chuyển về UCS ta cần fải lấy thêm toạ độ diểm chèn của block để chuyển đổi. mang máng thế :cheers:

  • 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
Đối với các đối tượng khối hoặc đa tuyến, ta có thể dùng hàm nensel hoặc nentselp để lấy ename của các đối tuợng con

Mình nhớ không nhầm thì các giá trị DXF code 10 và 11 của đối tuợng con là ở hệ toạ độ OCS, muốn chuyển về UCS ta cần fải lấy thêm toạ độ diểm chèn của block để chuyển đổi. mang máng thế :cheers:

Cám ơn bạn, mình đã hiểu rồi. Mình có suy nghĩ như vậy, kg biết có thực hiện đc kg. Sau khi đã lấy đc ename của đối tượng trong block, mình có thể chĩnh sửa chúng đc kg. Ví dụ thay đổi độ cao text chẳng hạn (thay vì phải dùng refedit) hoặc có thể xóa hay thêm đối tượng vào block mà kg dùng "refedit". Mong đc hướng dẫn. Xin cám ơn rất 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
Cám ơn bạn, mình đã hiểu rồi. Mình có suy nghĩ như vậy, kg biết có thực hiện đc kg. Sau khi đã lấy đc ename của đối tượng trong block, mình có thể chĩnh sửa chúng đc kg. Ví dụ thay đổi độ cao text chẳng hạn (thay vì phải dùng refedit) hoặc có thể xóa hay thêm đối tượng vào block mà kg dùng "refedit". Mong đc hướng dẫn. Xin cám ơn rất nhiều

Khi đã lấy được record của đối tượng bạn hoàn toàn có thể chỉnh sửa các thông tin trong đó bằng cách kết hợp hàm SubstEntmod bình thường giống như các đối tượng khác. cách thức sử dụng như thế nào chắc bạn đã biết, nếu không bạn có thể search 2 hàm này sẽ ra rất nhiều kết quả cho bạn tham khảo.

Với Block và đa tuyến, sau khi đã chỉnh sửa record 1 đối tượng con, đối tượng chỉnh sửa sẽ chưa được cập nhật ngay những thay đổi, ta phải regen bản vẽ để cập nhật. cách này sẽ làm chậm quá trình chạy lisp nếu số đối tượng của bản vẽ quá lớn vì lệnh regen sẽ cập nhật cho tất cả mọi đối tượng của bản vẽ. Ta có thể sử dụng cách khác là dùng thêm hàm Entupd. hàm này chỉ cập nhật lại cho duy nhất 1 đối tượng ename được chỉ đị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

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  

×