Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
- - - - -

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


  • Please log in to reply
6 replies to this topic

#1 zutum

zutum

    biết zoom

  • Members
  • Pip
  • 13 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 20 May 2017 - 09:38 AM

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.c.../152285_1_1.dwg


  • 0

#2 cuongtk2

cuongtk2

    biết lệnh rotate

  • Members
  • PipPipPip
  • 138 Bài viết
Điểm đánh giá: 34 (tàm tạm)

Đã gửi 20 May 2017 - 11:53 AM

Thử cái này coi

http://www.cadviet.c...4301_test_1.lsp


  • 1

#3 zutum

zutum

    biết zoom

  • Members
  • Pip
  • 13 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 20 May 2017 - 02:31 PM

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.


  • 0

#4 cuongtk2

cuongtk2

    biết lệnh rotate

  • Members
  • PipPipPip
  • 138 Bài viết
Điểm đánh giá: 34 (tàm tạm)

Đã gửi 20 May 2017 - 04:12 PM

Vậy sao bạn không làm A-C rồi B-C. C vẫn được copy lại sau khi SU mà. OK?


  • 0

#5 zutum

zutum

    biết zoom

  • Members
  • Pip
  • 13 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 20 May 2017 - 04:49 PM

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. ^^


  • 0

#6 quocmanh04tt

quocmanh04tt

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 798 Bài viết
Điểm đánh giá: 378 (khá)

Đã gửi 21 May 2017 - 06:12 PM

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))


  • 1

#7 zutum

zutum

    biết zoom

  • Members
  • Pip
  • 13 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 22 May 2017 - 12:07 PM

Thử cái này xem:

tuyệt vời. Lisp của bạn làm nhanh hơn hẳn . Thanks bạn nhé ^^


  • 0