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

Tách chi tiết trong cutting plan thành file riêng theo text đặt trên mỗi chi tiết

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

các bác ơi có bác nào đã từng làm rồi giúp em với ạ!

  Hiện tại em đang có một cutting plan xếp trên 1 khổ tôn có rất nhiều chi tiết..do em phải ra file cutting cho máy CNC nên phải bóc riêng từng chi tiết ra thành 1 file riêng lẻ...các chi tiết này đều đã được đặt sẵn text là tên chi tiết nằm trên chi tiết đó trong cutting..nếu làm thủ công thì lâu quá ạ..có bác nào giúp em với ạ!

Em cảm ơn ạ!

  • Vote giảm 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
2 giờ trước, benanphal93 đã nói:

các bác ơi có bác nào đã từng làm rồi giúp em với ạ!

  Hiện tại em đang có một cutting plan xếp trên 1 khổ tôn có rất nhiều chi tiết..do em phải ra file cutting cho máy CNC nên phải bóc riêng từng chi tiết ra thành 1 file riêng lẻ...các chi tiết này đều đã được đặt sẵn text là tên chi tiết nằm trên chi tiết đó trong cutting..nếu làm thủ công thì lâu quá ạ..có bác nào giúp em với ạ!

Em cảm ơn ạ!

Để được mọi người giúp đỡ, cái tốt thiểu là bạn phải đưa file cad hoặc chí ít là hình ảnh. Bạn làm như ai cũng biết cái bạn đang nó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
2 giờ trước, benanphal93 đã nói:

các bác ơi có bác nào đã từng làm rồi giúp em với ạ!

  Hiện tại em đang có một cutting plan xếp trên 1 khổ tôn có rất nhiều chi tiết..do em phải ra file cutting cho máy CNC nên phải bóc riêng từng chi tiết ra thành 1 file riêng lẻ...các chi tiết này đều đã được đặt sẵn text là tên chi tiết nằm trên chi tiết đó trong cutting..nếu làm thủ công thì lâu quá ạ..có bác nào giúp em với ạ!

Em cảm ơn ạ!

 

1. Giải pháp của tôi là đóng tạo Block rồi đổi tên Block đó theo tên đã đặt text.

2. Sau đó export tự động các block có tên đó ra file Dxf.

 

3. Nhập các file DXF đó vào các chương trình Nesting tôn như: Autonest, Pronest hay cái tôi đang dùng là CNCKAD.

Các công đoạn 1 & 2 có thể dùng Autolisp để xử lý.

 

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

Để được mọi người giúp đỡ, cái tốt thiểu là bạn phải đưa file cad hoặc chí ít là hình ảnh. Bạn làm như ai cũng biết cái bạn đang nói.

 

vâng em xin lỗi các bác!

như hình đính kèm thì em muốn lưu mỗi chi tiết thành 1 file riêng với tên file là phần text trên mỗi chi tiết ạ!.

Mong các bác giúp em với ạ!  Em cảm ơn!

 

Capture.PNG

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

 

1. Giải pháp của tôi là đóng tạo Block rồi đổi tên Block đó theo tên đã đặt text.

2. Sau đó export tự động các block có tên đó ra file Dxf.

 

3. Nhập các file DXF đó vào các chương trình Nesting tôn như: Autonest, Pronest hay cái tôi đang dùng là CNCKAD.

Các công đoạn 1 & 2 có thể dùng Autolisp để xử lý.

 

vâng em biết là phải dùng đến lisp mà khoản này thì em chưa có rành nên các bác có am hiểu thì giúp em với, Em cảm ơn ạ!

  • Vote giảm 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
2 phút trước, benanphal93 đã nói:

vâng em xin lỗi các bác!

như hình đính kèm thì em muốn lưu mỗi chi tiết thành 1 file riêng với tên file là phần text trên mỗi chi tiết ạ!.

Mong các bác giúp em với ạ!  Em cảm ơn!

 

Capture.PNG

Cái này chắc làm đượ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

Hiện tại tôi đang dùng 3 lệnh lisp là chọn đối tượng để tạo Block lệnh cre.lisp

Sau đó đổi tên Block mặc định này sang tên Mark chi tiết (chọn Block bước 1 và chọn tên chi tiết) lisp qw.lsp

Xuất các Block này ra file Dxf bằng lisp exB

 

 

 

 

PS: Nhìn qua các tấm xếp ở trên có vẻ chưa thật sự tối ưu, thừa nhiều và ko tận dụng được mạch cắt

 

  • Vote giảm 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
20 giờ trước, benanphal93 đã nói:

vâng em xin lỗi các bác!

như hình đính kèm thì em muốn lưu mỗi chi tiết thành 1 file riêng với tên file là phần text trên mỗi chi tiết ạ!.

Mong các bác giúp em với ạ!  Em cảm ơn!

 

Capture.PNG

Nếu các chi tiết như hình là các pline (1 chi tiết là 1 lwpolyline), text (không phải Mtext, Rtext), thì bạn dùng lisp này:

 

TCT.rar

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

Nếu các chi tiết như hình là các pline (1 chi tiết là 1 lwpolyline), text (không phải Mtext, Rtext), thì bạn dùng lisp này:

TCT.rar

 

Nếu lisp của bạn giải quyết được đối tượng là line, arc, spline, và có thể lấy được miền trong của chi tiết chính như các lỗ, cắt khoét thì tốt. 

  • Vote giảm 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
Vào lúc 1/8/2021 tại 00:41, moitapchoicad đã nói:

 

Nếu lisp của bạn giải quyết được đối tượng là line, arc, spline, và có thể lấy được miền trong của chi tiết chính như các lỗ, cắt khoét thì tốt. 

Tưởng là thì gì khác, chứ thì tốt thì mình chịu. hehehe ...

Tuy nhiên bài toán của bạn có thể giải quyết được, bằng cách viết lại lisp khá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

Cái khó nhất là nesting tôn thì có phần mềm chuyên dụng rồi, chỉ cần là làm đầu vào cho phần mềm đó thôi. Như vậy với từng hình rời rạc hoàn toàn có thể vẽ thành riêng biệt bản vẽ trùng tên với text. Lúc đó mới có thể xét đến lỗ cắt khoét

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

Xuất ra các chi tiết thành dxf file bằng cách tạo boundary tại mỗi text position

(defun c:test ()
  (setq ss (ACET-SS-TO-LIST (ssget "x" '((0 . "TEXT")))))

  (foreach n ss
    (progn
      (setq ent     (entget n)
        p1     (acet-dxf 10 ent)
        file (acet-dxf 1 ent)
      )
      (vl-cmdf "-boundary" p1 "")
      (setq acadObj (vlax-get-acad-object))
      (setq doc (vla-get-ActiveDocument acadObj))
      (setq file1 (VL-STRING-TRIM " " file))
      (setq path (acet-ui-pickdir "Select directory" (getvar "dwgprefix")))
      (setq exportFile (strcat path "\\" file1))
      ;; Adjust path to match your system

      ;; Create an empty selection set
      (setq sset (vla-Add (vla-get-SelectionSets doc) "TEST"))
      (vla-Select sset acSelectionSetLast)

      ;; Export the current drawing to the file specified above.
      (vla-Export doc exportFile "DXF" sset)

      (vla-Delete sset)
    )
  )
)

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 3/8/2021 tại 12:28, cuongtk2 đã nói:

Xuất ra các chi tiết thành dxf file bằng cách tạo boundary tại mỗi text position

(defun c:test ()
  (setq ss (ACET-SS-TO-LIST (ssget "x" '((0 . "TEXT")))))

  (foreach n ss
    (progn
      (setq ent     (entget n)
        p1     (acet-dxf 10 ent)
        file (acet-dxf 1 ent)
      )
      (vl-cmdf "-boundary" p1 "")
      (setq acadObj (vlax-get-acad-object))
      (setq doc (vla-get-ActiveDocument acadObj))
      (setq file1 (VL-STRING-TRIM " " file))
      (setq path (acet-ui-pickdir "Select directory" (getvar "dwgprefix")))
      (setq exportFile (strcat path "\\" file1))
      ;; Adjust path to match your system

      ;; Create an empty selection set
      (setq sset (vla-Add (vla-get-SelectionSets doc) "TEST"))
      (vla-Select sset acSelectionSetLast)

      ;; Export the current drawing to the file specified above.
      (vla-Export doc exportFile "DXF" sset)

      (vla-Delete sset)
    )
  )
)

Hi bác @cuongtk2, lệnh lisp của bác e chạy thấy bá quá. Tuy nhiên bác có thể sửa lại lisp trên 1 chút giúp e được không ?

- Cho phép chọn cả Mtext

- Mỗi hình boundary kèm text (mtext) khi xuật ra vào 1 file riêng ko chứa các boundary khác ( hiện tại mỗi file xuất ra đều bao gồm hết các boundary).

- Tạo 1 thư mục để tự xuất file dxf (hiện tại cứ mỗi text/mtext xuất ra lại hỏi thư mục lưu file đó).

- Các boundary xuất ra phải xóa nét rời rạc cũ (Hiện tại vẫn đang chứa nét cũ ở file dxf xuất ra)

Nhờ bác giúp đỡ.

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 sửa lại cho bạn đây nhé, trước vì không test kỹ nên bị như thế, vì biến toàn cục.

(defun c:test    (/ ENT EXPORTFILE FILE FILE1 P1 PATH SS)
  (setq ss (ACET-SS-TO-LIST (ssget "x" '((0 . "*TEXT")))))
  (setq path (acet-ui-pickdir "Select directory" (getvar "dwgprefix")))

  (foreach n ss
    (progn
      (setq ent     (entget n)
        p1     (acet-dxf 10 ent)
        file (acet-dxf 1 ent)
      )
      (vl-cmdf "-boundary" p1 "")
      (setq exportFile (strcat path "\\" (VL-STRING-TRIM " " file)))
      (command "_.dxfout"
           exportFile
           "_entities"
           (entlast)
           ""
           "_version"
           "2007"
           6
      )
      (entdel (entlast))
    )

  )
)

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 12/8/2021 tại 10:48, cuongtk2 đã nói:

Mình sửa lại cho bạn đây nhé, trước vì không test kỹ nên bị như thế, vì biến toàn cục.

(defun c:test    (/ ENT EXPORTFILE FILE FILE1 P1 PATH SS)
  (setq ss (ACET-SS-TO-LIST (ssget "x" '((0 . "*TEXT")))))
  (setq path (acet-ui-pickdir "Select directory" (getvar "dwgprefix")))

  (foreach n ss
    (progn
      (setq ent     (entget n)
        p1     (acet-dxf 10 ent)
        file (acet-dxf 1 ent)
      )
      (vl-cmdf "-boundary" p1 "")
      (setq exportFile (strcat path "\\" (VL-STRING-TRIM " " file)))
      (command "_.dxfout"
           exportFile
           "_entities"
           (entlast)
           ""
           "_version"
           "2007"
           6
      )
      (entdel (entlast))
    )

  )
)

Vâng lần này thì được 99%, còn 1% bác @cuongtk2 giúp nốt e với ạ. 

Nguyên nhân là có 1 số chi tiết nằm trong nó không lấy được, chỉ lấy dc hình bao ngoài.

Và file dxf xuất ra cần cho chi tiết đó move về gốc tọa độ (0,0,0)

 

Chi tiết gốc:

image.png.c502d00011b44440a4f49516489fd439.png

 

Sau khi xuất ra DXF (mất 2 lỗ và 2 đường line)

 

image.png.2ae843fa63c1d970bf37d81e5af86804.png

 

So với lisp đầu tiên, thì đã giữ lại đầy đủ các hình bên trong.

 

Nhờ bác giúp cho trọn vẹn ạ (File cad đính kèm) ^^

 

test.dwg

  • Vote giảm 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

Để được mọi người giúp đỡ, cái tốt thiểu là bạn phải đưa file cad hoặc chí ít là hình ảnh. Bạn làm như ai cũng biết cái bạn đang nói.

 

vâng em xin lỗi các bá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

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  

×