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

(Nhờ Viết Lisp )Lisp Subtract Đối Tượng 3D Mà Vẫn Giữ Nguyên Đối Tượng

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

Nhờ anh em giúp viết cho mình cái lisp Subtract đối tượng 3d mà vẫn giữ nguyên đối tượng Subtract đó.

Do mình thường hay vẽ hướng dẫn lắp ráp. Mà mối lần như vậy mình cần “ đục lỗ “ đối tượng rất nhiều.

Ví dụ như file cad mình đính kèm. Muốn “đục lỗ “ để thể hiện con vít xuyên qua chân trước  vào mộng đố ngồi trước thì mình phải copy con vit thêm 2 lần.

Sau đó Su nó với chân trước rồi sau đó Su nó với mộng của đố trước mê ngồi .

Còn mộng của đố trước mê ngồi mình cũng phải copy 1 lần Su vào chân trước ngay chỗ con vit đó để thể hiện lỗ mộng.

Vì vậy mình nhờ anh em ai có thể viết cho mình cái lisp mà mình chỉ cần dùng lisp chọn đối tượng thì nó tự động Su các đối tượng xung quanh và vẫn giữ nguyên đối tượng dùng để Su đó.

Cảm ơn anh em trước ^^.http://www.cadviet.com/upfiles/7/152285_1_1.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

Thanks bạn đã giúp,mình thử rồi và thấy như thế này: 

vd:nếu chọn 1 đối tượng A muốn Su rồi chọn 1 đối tượng khác B để Su thì được. 

Còn khi mình chọn đối tượng A và B muốn Su rồi chọn 1 đối tượng C để Su thì nó Su được nhưng A và B dính liền một khối mình dùng lênh slice tách 2 khối ra mới được. Có cách nào cho nó tách rời và không thành 1 khối không bạ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

uh. Đúng là vậy. Mình chỉ hỏi nó bị gộp lại có tách được không thôi có thể làm tắt thêm 1 bước. Dù sao cũng thanks bạn nhiều. ^^

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

Thử cái này xem:

 

Thanks bạn đã giúp,mình thử rồi và thấy như thế này: 

vd:nếu chọn 1 đối tượng A muốn Su rồi chọn 1 đối tượng khác B để Su thì được. 

Còn khi mình chọn đối tượng A và B muốn Su rồi chọn 1 đối tượng C để Su thì nó Su được nhưng A và B dính liền một khối mình dùng lênh slice tách 2 khối ra mới được. Có cách nào cho nó tách rời và không thành 1 khối không bạn.

 

 

(defun c:tt  (/ l->e a b c)
  (defun l->e  (l)
    (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex l)))))
  (vla-startundomark (setq a (vla-get-activedocument (vlax-get-acad-object))))
  (while (and (princ "\nChon cac doi tuong bi cat:")
              (setq b (ssget '((0 . "3DSOLID"))))
              (princ "\nCac doi tuong cat:")
              (setq c (ssget '((0 . "3DSOLID")))))
    (foreach x (l->e b ) (foreach y (l->e c) (vla-Boolean x acsubtraction (vla-copy y)))))
  (vla-endundomark a)
  (princ))

  • 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

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  

×