Đến nội dung


Hình ảnh
- - - - -

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 đó


  • Please log in to reply
3 replies to this topic

#1 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 27 June 2010 - 10:31 AM

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
  • 0

#2 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 27 June 2010 - 04:48 PM

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:
  • 1

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#3 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 28 June 2010 - 02:18 AM

Đố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
  • 0

#4 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 28 June 2010 - 02:44 AM

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.
  • 1

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD