Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
hochoaivandot

[Hỏi]+[Yêu cầu]:Lấy thông tin các entity thành phần của Block

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

hochoaivandot    108

Tôi có Entity1 : là 1 line

Tôi có Entity2 : là 1 text

Tôi có Entity3 : là 1 circle

- Tôi tạo 1 block A từ 3 entity trên.

- Tôi insert block A vào bản vẽ : được entity4

 

* Đầu vào: Chọn entity4

* Đầu ra : (entget của Entity1, Entity2, Entity3)

 

Có thể không các bác?

Vì tôi nghĩ khi explode entity4 ra sẽ tạo ra các entity có cùng thuộc tính entity1 2 3

---> Thuộc tính này cad đã lưu ở đâu đó ---> Lấy ra có thể được

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
Doan Van Ha    2.678

Tôi có Entity1 : là 1 line

Tôi có Entity2 : là 1 text

Tôi có Entity3 : là 1 circle

- Tôi tạo 1 block A từ 3 entity trên.

- Tôi insert block A vào bản vẽ : được entity4

 

* Đầu vào: Chọn entity4

* Đầu ra : (entget của Entity1, Entity2, Entity3)

 

Có thể không các bác?

Vì tôi nghĩ khi explode entity4 ra sẽ tạo ra các entity có cùng thuộc tính entity1 2 3

---> Thuộc tính này cad đã lưu ở đâu đó ---> Lấy ra có thể được

Được! Bạn dùng hàm entnext.

  • 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
phamthanhbinh    3.123

Được! Bạn dùng hàm entnext.

Hề hề hề,

Hình như bác DoanVanHa có chút nhầm lẫn chỗ này.

Việc dùng hàm entnext với đối tượng block thường là để tìm các đối tượng con cấu thành block đó. Khi ấy bác phải dùng tới cái block gốc khi tạo ra nó bằng hàm (setq en (cdr (assoc -2 (tblsearch "block" (cdr (assoc 2 (entget (car (entsel))))))))).

Sau đó (entnext) thì nó sẽ lần lượt trả về các đối tượng gốc đã được dùng để cấu thành block đó .

Kết quả này có khác với yêu cầu của bạn hochoaivandot là muốn lấy các đối tượng mới được đưa vào khi insert block lên bản vẽ.

 

Theo thiển ý của mình bạn Hochoaivandot có thể lấy được các thông số của các đối tượng này như sau:

1/- Tạo biến lưu đối tượng cuối cùng có trên bản vẽ.

2/- Tạo mốc đánh dấu điểm bắt đầu cho hàm undo.

3/- Explode cái block muốn xem xét.

4/- Tạo danh sách các đối tượng có trong tập chọn bao gồm các đối tượng phát sinh ra sau biến đối tượng cuối đã lưu ở trên.

5/- Tạo vòng lặp để lấy các thông số của các đối tượng có trong tập chọn kể trên và lưu trữ nó theo ý bạn để tham khảo sau này.

6/- Tạo mốc kết thức hàm undo/

7/- Thực hiện undo để trả bản vẽ về như cũ (trước khi explode).

Hy vọng bạn có thể giải quyết tốt vấn đề này. Chúc bạn thành công

  • 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
Doan Van Ha    2.678

Hề hề hề,

Hình như bác DoanVanHa có chút nhầm lẫn chỗ này.

Việc dùng hàm entnext với đối tượng block thường là để tìm các đối tượng con cấu thành block đó. Khi ấy bác phải dùng tới cái block gốc khi tạo ra nó bằng hàm (setq en (cdr (assoc -2 (tblsearch "block" (cdr (assoc 2 (entget (car (entsel))))))))).

Sau đó (entnext) thì nó sẽ lần lượt trả về các đối tượng gốc đã được dùng để cấu thành block đó .

Kết quả này có khác với yêu cầu của bạn hochoaivandot là muốn lấy các đối tượng mới được đưa vào khi insert block lên bản vẽ.

 

Theo thiển ý của mình bạn Hochoaivandot có thể lấy được các thông số của các đối tượng này như sau:

1/- Tạo biến lưu đối tượng cuối cùng có trên bản vẽ.

2/- Tạo mốc đánh dấu điểm bắt đầu cho hàm undo.

3/- Explode cái block muốn xem xét.

4/- Tạo danh sách các đối tượng có trong tập chọn bao gồm các đối tượng phát sinh ra sau biến đối tượng cuối đã lưu ở trên.

5/- Tạo vòng lặp để lấy các thông số của các đối tượng có trong tập chọn kể trên và lưu trữ nó theo ý bạn để tham khảo sau này.

6/- Tạo mốc kết thức hàm undo/

7/- Thực hiện undo để trả bản vẽ về như cũ (trước khi explode).

Hy vọng bạn có thể giải quyết tốt vấn đề này. Chúc bạn thành công

Tôi đọc đi đọc lại thì vẫn không biết mình nhầm chỗ nào bác Bình ơi! Trong đề bài có chọn block mà.

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  

×