Chuyển đến nội dung
Diễn đàn CADViet
Duong Nhat Duy

Lisp Match Block thuộc tính và Block động

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

Chưa biết trên diễn đàn có lisp này chưa nhưng mình cứ viết vì gần đây công việc của mình gặp khá nhiều vấn đề về block thuộc tính và block động.

Công dụng của Lisp: Match 1 hoặc tất cả giá trị attribute hoặc dynamic của 1 block gốc ra các block khác.

Lệnh:

         Q1 - Copy giá trị 1 giá trị atrribute từ block này sang các block khác (có thể làm với text, dim, text trong xref)

         Q2 - Copy giá trị tất cả giá trị atrribute từ block này sang các block khác

         Q3 - Match 1 thuộc tính dynamic

         Q4 - Match tất cả thuộc tính dynamic

         Q5 - Match scale

         Q6 - Match rotation (góc xoay của block - khác với cái xoay động: ví dụ Angle1, Angle2, đã có thể dùng bằng các lệnh mm3, mm4)

1448282969_5_10.Matchprop(Q1Q2).gif.c3d05cb093561f4bb07f2756ae7806d1.gif580657249_5_10.Matchprop(Q3Q4).gif.474a1db86f82a711ae7a7a17d29d9065.gif

 

Matchprop+.LSP

  • Like 9
  • 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

mình chưa thử lisp của bạn, nhưng chắc ai đó sẽ cần :) 
Và rất trân trọng những người như bạn share lisp của chính mình. Theo mình việc viết lisp quan trọng nhất không phải là trình độ coding cao cỡ nào, mà quan trọng là cái ý tưởng viết 1 lisp để ứng dụng vào thực tế....

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

mình cũng thử lisp này chạy được MM1, MM2, MM4 rồi riêng với lệnh MM3 thì 

+ đối với block có 1 thuộc tính dynamic thì cũng dùng đc rồi

+ đối với block có nhiều thuộc tính dynamic và thuộc tính khác nữa như Angle, Flipstate thì chưa đượ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
Vào lúc 10/5/2019 tại 17:04, hoquangvinh đã nói:

mình cũng thử lisp này chạy được MM1, MM2, MM4 rồi riêng với lệnh MM3 thì 

+ đối với block có 1 thuộc tính dynamic thì cũng dùng đc rồi

+ đối với block có nhiều thuộc tính dynamic và thuộc tính khác nữa như Angle, Flipstate thì chưa được

Hề, lâu lắm mới mò lại vào đây, cái này mình test ko có lỗi gì cả, bạn thử chụp ảnh hoặc up file lên coi.

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
39 phút trước, tamky đã nói:

Lisp anh đúng tuyệt vời nhưng trường hợp đỗi xứng của em không được. Nhờ anh giúp cho. Em cảm ơn anh

Nut (sn mat).rar

Mình test thử thấy vẫn oke mà bạn, k biết bạn bảo lỗi ở lệnh nào? 

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
6 phút trước, tamky đã nói:

Minhf dùng lệnh mm4 nhưng vẫn không giống đối tượng gốc, chỉ nhảy xuống chứ không qua hướng bên trái.

Bởi vì lisp chỉ Matchprop thuộc tính dynamic, còn hướng như bạn nói là theo tỷ lệ scalefactor, nếu muốn giống nữa thì phải thêm vài dòng

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
21 giờ trước, tamky đã nói:

Minhf dùng lệnh mm4 nhưng vẫn không giống đối tượng gốc, chỉ nhảy xuống chứ không qua hướng bên trái.

Block của bạn lỗi tùm lum, nguyên tắc là làm block động thì đừng bao giờ mirror, chắc chắn sẽ xảy ra lỗi.

Block chỉ định của bạn (trong file) đã bị mirror (scale X=-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
4 giờ trước, tamky đã nói:

Cảm ơn bạn. Vì đối tượng dính với nhau nên phải miror chứ kéo lên, xuống vẫn dính nhau.

Bạn chịu khó nhập scale X block cần match = scale block gốc nhé (giả sử trường hợp của bạn là -1).

Mà đã chơi block động thì bạn thêm luôn phần động mirror, rotation đi cho tiện, dùng lisp ko bị lỗi. Lisp của mình mình ko muốn nó can thiệp vào các giá trị Rotation và Scale của block nên dùng cho block của bạn kiểu gì cũng sẽ bị lỗi.

Hiện mình đang ko rảnh lắm nên ko sửa được, bạn có thể nhờ ace trên diễn đà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
12 giờ trước, tamky đã nói:

Cảm ơn bạn nhiều.

 

11 giờ trước, ngokiet đã nói:

Viết thêm lệnh MM5 Match scale luôn..

Mình đã thêm 2 lệnh mm5 và mm6 vào bài đăng r 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

Cảm ơn anh nhiều. Hay quá.

Anh cho em hỏi, mm6 sao em dùng trong trường hợp bản vẽ của em ở trên không có động tĩnh gì cả. Nhờ anh cho luôn trường hợp đối xứng được không ạ.

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ào lúc 25/5/2019 tại 22:02, tamky đã nói:

Cảm ơn anh nhiều. Hay quá.

Anh cho em hỏi, mm6 sao em dùng trong trường hợp bản vẽ của em ở trên không có động tĩnh gì cả. Nhờ anh cho luôn trường hợp đối xứng được không ạ.

MM6 chỉ match rotation của 2 block, 2 block trong file của bạn đều có rotation là 328 độ.

Block gốc của bạn bị lỗi, scaleX = -1 nên cũng khó mà can thiệp vào được (bạn thử chỉnh về 1 sẽ thấy lỗi ngay). Lời khuyên của mình là đừng bao giờ mirror block động/thuộc tính.

Nếu bí quá thì bạn có thể copy block gốc đến chỗ các block gần gán, sau đó dừng mm2, rồi xóa các block vừa gán xong đi.

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

×