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

[Yêu cầu]Lisp edit hatch không đè lên Text

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

Trước khi dùng Lisp, các text bị các hatch đè lên

TruocLisp.png

Sau khi dùng Lisp, các text không bị hatch đè lên

SauLisp.png

 

Yêu cầu:

1. Tên lệnh HAT

2. Thao tác nhập dữ liệu: Chỉ chọn các Text

3. Kết quả:

+ Hatch không đè lên text như hình vẽ

+ Không vẽ lại các đối tượng đường biên và đối tượng Hatch (Bí quá thì đành phải vẽ lại thôi, nhưng nếu vẽ lại thì nhất thiết phải giống hệt property)

 

Gởi file dwg đính kèm: http://www.cadviet.com/upfiles/3/40108_yeucaulisphat.dwg

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

Theo như bản vẽ bạn đính kèm thì thấy rằng: bạn hatch sau khi trên bản vẽ đã có 3 hình kín và 2 text. Vậy sao bạn không chọn cách hatch bằng cách pick điểm vào trong hình kín (chứ không phải pick trực tiếp trên đường bao của hình)?

Còn nếu bạn muốn đặt bài toán như vậy thì để ngâm cứu xem sao, hy vọng có thể được đấy.

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 HHVD thử cái này nhé.Code đơn giản n k public, bác HH dịch là ra ngay. Có thể bật bật Selectable Group để đạt hiệu ứng Associative sau khi chạy lisp bác nhé ^^ Lệnh HHVD

FIle fas

http://www.cadviet.com/upfiles/3/24067_hhvd_1.rar

  • 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ác HHVD thử cái này nhé.Code đơn giản n k public, bác HH dịch là ra ngay. Có thể bật bật Selectable Group để đạt hiệu ứng Associative sau khi chạy lisp bác nhé ^^ Lệnh HHVD

http://www.cadviet.c.../24067_hhvd.rar

 

Lỗi:

Trích dẫn:

Command:

HHVD _.wipeout Specify first point or [Frames/Polyline] <Polyline>: _frame

Enter mode [ON/OFF] <OFF>: _off

Command:

Select objects: Specify opposite corner: 1 found

 

Select objects:

"no function definition: ACET-SS-TO-LIST"

Với lại: code ngắn thì chơi đẹp public luôn cho vui cửa vui nhà Ket ơ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

 

Lỗi:

Trích dẫn:

Command:

HHVD _.wipeout Specify first point or [Frames/Polyline] <Polyline>: _frame

Enter mode [ON/OFF] <OFF>: _off

Command:

Select objects: Specify opposite corner: 1 found

 

Select objects:

"no function definition: ACET-SS-TO-LIST"

Với lại: code ngắn thì chơi đẹp public luôn cho vui cửa vui nhà Ket ơi!

 

E để để bác HHVD chọc ngoáy thôi. Open thì e đã Open rùi, hok liên quan gì đến xấu mí đẹp cả ^^

Lỗi như kia trong file VLX thì bác dịch ngược ra Fas là nhé ^^ (link trên e sửa thành fas 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

:) Bác HHVD thử cái này nhé.Code đơn giản n k public, bác HH dịch là ra ngay. Có thể bật bật Selectable Group để đạt hiệu ứng Associative sau khi chạy lisp bác nhé ^^ Lệnh HHVD

FIle fas

http://www.cadviet.c...4067_hhvd_1.rar

 

Cảm ơn bác ketxu nhé.

Bác đến La Mã bằng đường chim bay thông minh thật.

Trước đây mình cũng từng nghĩ đến wipeout, nhưng sợ hắn che luôn biên, Không ngờ bác kết hợp luôn thằng draworder nũa.

Cái group hiểu quả như Associative thiệt --->độc

Có bác nào đi đường chính mà đến đích chưa nhỉ?

 

- Ketxu xem thử mặc dù thấy bác khóa biến osmode rồi, nhung khi mình bật chế độ Osnap All thì Lisp không chạy, còn Osnap No thì chạy ầm ầm (Luc đầu chạy không đc tưởng lisp bị lỗi chứ)

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ó bác nào đi đường chính mà đến đích chưa nhỉ?

Bạn thử Hatch 1 hình kín -> (entget(entlast))

thêm text vào -> Hatch lại hình kín đó + text -> (entget(entlast))

so sánh 2 cái đó coi có dc ý tưởng nào ko. chú ý cái mã 330 nhe

Good luck!

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ác ketxu nhé.

Bác đến La Mã bằng đường chim bay thông minh thật.

Trước đây mình cũng từng nghĩ đến wipeout, nhưng sợ hắn che luôn biên, Không ngờ bác kết hợp luôn thằng draworder nũa.

Cái group hiểu quả như Associative thiệt --->độc

Có bác nào đi đường chính mà đến đích chưa nhỉ?

 

- Ketxu xem thử mặc dù thấy bác khóa biến osmode rồi, nhung khi mình bật chế độ Osnap All thì Lisp không chạy, còn Osnap No thì chạy ầm ầm (Luc đầu chạy không đc tưởng lisp bị lỗi chứ)

Đường đó là đường gây ít lỗi đó bác, vì mình không phải tạo lại đối tượng phức tạp như Hatch ^^

Trong code Ket viết nhanh để lấy hướng, còn bác hoàn toàn có thể xử lý nó thuần code mình viết, thậm chí k dùng acet textmask hoặc command draworder chi cho mệt, Ket liệt ra đây :

1 - Viết hàm lấy Boundingbox list của *Text (chú ý text nghiêng theo UCS : cái này khó nhất, nếu ngại có thể xoay UCS trước khi lấy)

2 - List ename Text

3 - Duyệt qua từng objText

- Nếu ssget "cp" Bounding box của objText không chứa đối tượng nào hoặc có nhưng không chứa Hatch thì bỏ qua

- Nếu có ssget này => đặt ssBien = tập chọn ss không chứa Hatch

+ Dùng hàm entmake WipeOut tạo theo bounding box của objText

+ Nếu có ssBien : Duyệt qua từng vlaObject objBien trong ssBien + Text : (vla-copy objBien)(vla-delete objBien) => chú ý bước này, khi copy đối tượng ta đã lấy toàn bộ thông tin của đối tượng (có thể bao gồm các dữ liệu mở rộng). Đồng thời đối tượng vừa copy được tạo sau WipeOut nên mặc định CAD sẽ coi nó có thứ tự front so với WipeOut

 

Phần osnap e cũng lấy hàm của ACET cho nhanh, bác tự chỉnh bằng tay chắc k còn vấn đề gì

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  

×