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

[Yêu cầu] Nhờ giúp lisp hoán đổi vị trí của 2 block

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

Bạn thử định nghĩa khái niệm "hoán đổi vị trí của 2 block" một cách rõ ràng, rành mạch nhất được không?

Xem hình thì thấy khái niệm quá mông lung!

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

Sory về sự cẩu thả của mình. Lisp mình cần giúp dùng để thay thế cho các thao tác trong hình 3 bên dưới:

-Trong hình 1 có 2 block khác nhau (rotation của cả 2 block đều bằng 0) và 1 đường polyline.

-Trong hình 2, mình đã xoay block 1 (nằm bên trái bản vẽ, rotation = 270 độ), block 2 (rotation = 180 độ) rồi đặt lên đường polyline.

-Ở hình 3, mình muốn block 1 có rotation là 180 độ và nằm ở vị trí của block 2 trong hình 2. Còn block 2 thì có rotation là 270 độ và nằm ở vị trí của block 1 trong hình 2 (bình thường thì mình phải rotate 2 block, đánh dấu vị trí 2 block rồi đổi vị trí cho nhau).

 

Hình 1. Block 1 (bên trái, có rotation = 0), block 2 (ở giữa, có rotation = 0) và một đường polyline (bên phải)127110_hoan_doi_block__1_2.jpg

 

 

Hình 2. Xoay block 1 (rotation = 270 độ) và đặt lên phần thẳng đứng của polyline cách góc của polyline 1'6" (1 feet 6 inch), Xoay block 2 (rotation = 180 độ) và đặt lên phần nằm ngang của polyline cách góc của polyline 1'10"

127110_hoan_doi_block__2.jpg

 

 

 

Hình 3. xoay block 2 (rotation = 270 độ) và đặt lên phần thẳng đứng của polyline cách góc của polyline 1'6" (1 feet 6 inch), Xoay block 1 (rotation = 180 độ) và đặt lên phần nằm ngang của polyline cách góc của polyline 1'10". (lisp mình cần giúp chỉ cần chọn 1 lúc 2 block trên rồi enter là từ hình 2 thành hình 3)

127110_hoan_doi_block_3_1.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

Đọc xong đề bài của bạn, thấy các số liệu bạn đưa ra đều cố định. Vì vậy đề xuất:

1). Nếu chỉ có hoán đổi 1 lần thì nên dùng autotay.

2). Nếu hoán đổi cho nhiều hình: hãy autotay 1 hình, sau đó copy ra nhiều hình.

Liệu có cần thiết thuê thợ mộc đẽo 1 cái khuôn chỉ để làm chỉ 1 cái bánh?

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

Sory về sự cẩu thả của mình. Lisp mình cần giúp dùng để thay thế cho các thao tác trong hình 3 bên dưới:

-Trong hình 1 có 2 block khác nhau (rotation của cả 2 block đều bằng 0) và 1 đường polyline.

-Trong hình 2, mình đã xoay block 1 (nằm bên trái bản vẽ, rotation = 270 độ), block 2 (rotation = 180 độ) rồi đặt lên đường polyline.

-Ở hình 3, mình muốn block 1 có rotation là 180 độ và nằm ở vị trí của block 2 trong hình 2. Còn block 2 thì có rotation là 270 độ và nằm ở vị trí của block 1 trong hình 2 (bình thường thì mình phải rotate 2 block, đánh dấu vị trí 2 block rồi đổi vị trí cho nhau).

 

Hình 1. Block 1 (bên trái, có rotation = 0), block 2 (ở giữa, có rotation = 0) và một đường polyline (bên phải)127110_hoan_doi_block__1_2.jpg

 

 

Hình 2. Xoay block 1 (rotation = 270 độ) và đặt lên phần thẳng đứng của polyline cách góc của polyline 1'6" (1 feet 6 inch), Xoay block 2 (rotation = 180 độ) và đặt lên phần nằm ngang của polyline cách góc của polyline 1'10"

127110_hoan_doi_block__2.jpg

 

 

 

Hình 3. xoay block 2 (rotation = 270 độ) và đặt lên phần thẳng đứng của polyline cách góc của polyline 1'6" (1 feet 6 inch), Xoay block 1 (rotation = 180 độ) và đặt lên phần nằm ngang của polyline cách góc của polyline 1'10". (lisp mình cần giúp chỉ cần chọn 1 lúc 2 block trên rồi enter là từ hình 2 thành hình 3)

127110_hoan_doi_block_3_1.jpg

Load sbsp.fas

Có 2 lệnh:

SB: Đổi tên 2 block

SP: Đổi vị trí 2 block

http://www.cadviet.com/upfiles/3/19626_sbsp.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

Vãi, đúng hàng mình cần rồi. Cám ơn ndtnv nhìu nhìu nha. Nếu được, bạn giúp mình tạo thêm sbsp2.fas nữa để dổi 2 block tên 1 và 2 trong file dưới đây nha, tên lệnh vẫn là sb và sp (không hiểu sao 2 block 1 và 3 giống y như nhau, cả trong block editor cũng giống nhau luôn, mà rotation của 2 block lại khác nhau, 1 cái 90 độ, 1 cái 270 độ như hình bên dưới). Mình có nhiều bản vẽ chứa block 1 và 2, và nhiều bản vẽ khác chứa block 2 và 3. Những bản vẽ chứa block 2 và 3 thì file sbsp.fas của ndtnv đã làm được rồi. Còn các bản vẽ chứa block 1 và 2 thì tuy đổi block được nhưng cũng bị đổi rotation luôn (từ 90 độ thành 270 độ).

Load sbsp.fas

Có 2 lệnh:

SB: Đổi tên 2 block

SP: Đổi vị trí 2 block

http://www.cadviet.com/upfiles/3/19626_sbsp.rar

http://www.cadviet.com/upfiles/3/127110_hoan_doi_block_2.dwg

127110_replace_block.jpg

 

127110_replace_block__2.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

Vãi, đúng hàng mình cần rồi. Cám ơn ndtnv nhìu nhìu nha. Nếu được, bạn giúp mình tạo thêm sbsp2.fas nữa để dổi 2 block tên 1 và 2 trong file dưới đây nha, tên lệnh vẫn là sb và sp (không hiểu sao 2 block 1 và 3 giống y như nhau, cả trong block editor cũng giống nhau luôn, mà rotation của 2 block lại khác nhau, 1 cái 90 độ, 1 cái 270 độ như hình bên dưới). Mình có nhiều bản vẽ chứa block 1 và 2, và nhiều bản vẽ khác chứa block 2 và 3. Những bản vẽ chứa block 2 và 3 thì file sbsp.fas của ndtnv đã làm được rồi. Còn các bản vẽ chứa block 1 và 2 thì tuy đổi block được nhưng cũng bị đổi rotation luôn (từ 90 độ thành 270 độ).

Load sbsp.fas

Có 2 lệnh:

SB: Đổi tên 2 block

SP: Đổi vị trí 2 block

http://www.cadviet.com/upfiles/3/19626_sbsp.rar

http://www.cadviet.com/upfiles/3/127110_hoan_doi_block_2.dwg

127110_replace_block.jpg

 

127110_replace_block__2.jpg

Việc hoán đổi vị trí block hầu như ít người dùng nên tôi không viết tổng quát cho tất cả các trường hợp.

Tôi đã sửa lại để chạy đúng cho 2 trường hợp bạn yêu cầu.

http://www.cadviet.com/upfiles/3/19626_sbsp_1.rar

  • Vote tăng 2

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  

×