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

Tạo giúp lisp giúp chuyển file DWG sang DXF

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

Code bởi Gemini, đã test.

(defun c:DXF (/ *error* dwgName dxfPath acDoc)
  (vl-load-com)
  
  ;; Ham xu ly loi
  (defun *error* (msg)
    (if (not (member msg '("Function cancelled" "quit / exit abort")))
      (princ (strcat "\n** Error: " msg " **"))
    )
    (princ)
  )

  (setq acDoc (vla-get-activedocument (vlax-get-acad-object)))

  ;; 1. Lay duong dan va ten file hien tai (bo duoi .dwg)
  (setq dwgName (getvar "DWGPREFIX")) ; Lay thu muc chua file
  (setq dwgName (strcat dwgName (vl-filename-base (getvar "DWGNAME")) ".dxf")) ; Ghep ten file voi duoi .dxf

  ;; 2. Thuc hien lenh DXFOUT
  ;; Dung (if (findfile dwgName) ...) de kiem tra neu file ton tai thi ghi de
  (if (findfile dwgName)
    (command "._DXFOUT" dwgName "_Y" "16") ; "_Y" de dong y ghi de, "16" la phien ban AutoCAD 2013/2018
    (command "._DXFOUT" dwgName "16")
  )

  (princ (strcat "\nDa xuat file tai: " dwgName))
  (princ)
)

 

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

Chào bạn !

Bạn có thể chỉnh sửa đoạn Lisp trên theo thứ tự :

- Nhập lệnh DXF

- Chọn đối tượng cần lấy bằng cách quét chuột

- Xuất hiện đường dẫn lưu trữ File DXF

- Nhập tên File

- Chọn Save 

Kết thúc 

Rất mong được bạn giúp đỡ. Xin được cảm ơn bạn trước 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
9 giờ trước, nguyenhong3868 đã nói:

Chào bạn !

Bạn có thể chỉnh sửa đoạn Lisp trên theo thứ tự :

- Nhập lệnh DXF

- Chọn đối tượng cần lấy bằng cách quét chuột

- Xuất hiện đường dẫn lưu trữ File DXF

- Nhập tên File

- Chọn Save 

Kết thúc 

Rất mong được bạn giúp đỡ. Xin được cảm ơn bạn trước nhé !

Cũng thử Gemini và có code này, bạn test lại thử:

(defun c:DXF (/ ss path)
  (princ "\nChọn các đối tượng muốn xuất sang DXF: ")
  
  ;; 1. Quét chọn đối tượng
  (setq ss (ssget))
  
  (if ss
    (progn
      ;; 2. Hiện hộp thoại chọn nơi lưu và đặt tên
      (setq path (getfiled "Lưu File DXF" "" "dxf" 1))
      
      (if path
        (progn
          ;; 3. Sử dụng lệnh DXFOUT với tùy chọn Objects (O)
          ;; Lệnh này sẽ yêu cầu chọn đối tượng, điểm nền không quan trọng
          (command ".DXFOUT" path "O" ss "" "16") 
          ;; Số "16" ở trên là độ chính xác thập phân, bạn có thể thay đổi.
          
          (princ (strcat "\nĐã lưu thành công tại: " path))
        )
        (princ "\nBạn đã hủy chọn nơi lưu.")
      )
    )
    (princ "\nKhông có đối tượng nào được chọn.")
  )
  (princ)
)

(princ "\nGõ lệnh DXF để bắt đầu.")
(princ)

 

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  

×