Đến nội dung


Hình ảnh

Thay đổi máy in hàng loạt cho tất cả layout?


  • Please log in to reply
5 replies to this topic

#1 thietke08

thietke08

    biết zoom

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

Đã gửi 03 April 2013 - 10:46 AM

Do ở công ty không có máy in khổ lớn nên phải ra tiệm để in, mà trong layout lúc page setup em chỉnh là máy in ảo để in thử trước rồi ra tiệm nó báo máy in không được tìm thấy nên không thể publish hết mà chọn từng layout thì nó lâu do bản vẽ nặng. Anh em nào có lisp hay cách nào giúp em...Thanks nhiều!


  • 0

#2 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 03 April 2013 - 02:45 PM

Lisp thay đổi máy in cho tất cả các Layout đây:

Chú ý:

1. Khi chọn máy in thì chọn số tương ứng với máy in đó. VD: Chọn 1 hoặc 2 , 3, 4 ...

2. Nhập khổ giấy phải đúng tên của khổ giấy trong máy in đó. VD: cùng là khổ giấy A0 nhưng có máy là A0 nhưng có máy lại là ISO A0.

;========LISP THAY DOI PLOTTER CHO TAT CA LAYOUT===========
;================KANGKUNG 03/04/2013=======================
(defun C:KK()
  (command "UNDO" "BE")
  (Plotter_list)
  (setq printer(getint (strcat "\n Chon may in " printer2 ":")))
  (setq printer(vl-string-trim ".pc3" (nth (- printer 1) (vl-directory-files (strcat (getvar "roamablerootprefix") "\Plotters\\") "*.pc3" 1))))
  (setq size(getstring T "\n Kho giay in <Nhap A0, A1, A2 ... hoac ISO A0, ISO A1, ISO A2 ...: "))
  (foreach layout (layoutlist)
    (command "LAYOUT" "S" layout)
    (Setq P1(Getvar "EXTMIN") P2(Getvar "EXTMAX"))
    (command "PLOT" "Y" "" printer size "M" "L" "N" "W" P1 P2 "1" "C" "Y" "" "Y" "N" "N" "N" "N" "Y" "N"))
  (command "MODEL")
  (command "UNDO" "END")
  (alert "Well Done")
  (princ)
  )
(defun Plotter_list()
  (setq lst_printer(vl-directory-files (strcat (getvar "roamablerootprefix") "\Plotters\\") "*.pc3" 1))
  (setq lst_printer2 (list))
  (setq printer2 "")
  (setq i 0)
  (foreach printer lst_printer
    (setq i(1+ i))
    (setq printer2(strcat printer2 (strcat (substr (rtos i 1 0)  1 1) "-" "\""(vl-string-trim ".pc3" printer)"\"" " ")))
    (setq lst_printer2(append lst_printer2 (list (strcat (substr (rtos i 1 0)  1 1) "-" (vl-string-trim ".pc3" printer))))))
  )
(princ "\n                Written By KangKung - 03/04/2013\n")
(princ "\n                  Nhap KK de chay chuong trinh\n")

  • 2

#3 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 03 April 2013 - 03:56 PM

Bạn KangKung dạo này viết lisp sung quá! Có điều: làm biếng set biến cục bộ nên người dùng coi chừng mang họa! :lol:


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#4 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 03 April 2013 - 04:08 PM

Bạn KangKung dạo này viết lisp sung quá! Có điều: làm biếng set biến cục bộ nên người dùng coi chừng mang họa! :lol:

Hê hê. Thanks bác Hà. Chẳng may bị họa coi như là bẫy vậy.  :D  :D  :D


  • 0

#5 thietke08

thietke08

    biết zoom

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

Đã gửi 17 April 2013 - 09:11 PM

Biến cục bộ là gì vậy? em cũng không biết cái đó là cái gì? sao không thấy có máy in ảo pc3 vậy?


  • 0

#6 dunghn

dunghn

    biết vẽ ellipse

  • Members
  • PipPip
  • 57 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 24 September 2014 - 10:56 AM

Lisp thay đổi máy in cho tất cả các Layout đây:

Chú ý:

1. Khi chọn máy in thì chọn số tương ứng với máy in đó. VD: Chọn 1 hoặc 2 , 3, 4 ...

2. Nhập khổ giấy phải đúng tên của khổ giấy trong máy in đó. VD: cùng là khổ giấy A0 nhưng có máy là A0 nhưng có máy lại là ISO A0.

;========LISP THAY DOI PLOTTER CHO TAT CA LAYOUT===========
;================KANGKUNG 03/04/2013=======================
(defun C:KK()
  (command "UNDO" "BE")
  (Plotter_list)
  (setq printer(getint (strcat "\n Chon may in " printer2 ":")))
  (setq printer(vl-string-trim ".pc3" (nth (- printer 1) (vl-directory-files (strcat (getvar "roamablerootprefix") "\Plotters\\") "*.pc3" 1))))
  (setq size(getstring T "\n Kho giay in <Nhap A0, A1, A2 ... hoac ISO A0, ISO A1, ISO A2 ...: "))
  (foreach layout (layoutlist)
    (command "LAYOUT" "S" layout)
    (Setq P1(Getvar "EXTMIN") P2(Getvar "EXTMAX"))
    (command "PLOT" "Y" "" printer size "M" "L" "N" "W" P1 P2 "1" "C" "Y" "" "Y" "N" "N" "N" "N" "Y" "N"))
  (command "MODEL")
  (command "UNDO" "END")
  (alert "Well Done")
  (princ)
  )
(defun Plotter_list()
  (setq lst_printer(vl-directory-files (strcat (getvar "roamablerootprefix") "\Plotters\\") "*.pc3" 1))
  (setq lst_printer2 (list))
  (setq printer2 "")
  (setq i 0)
  (foreach printer lst_printer
    (setq i(1+ i))
    (setq printer2(strcat printer2 (strcat (substr (rtos i 1 0)  1 1) "-" "\""(vl-string-trim ".pc3" printer)"\"" " ")))
    (setq lst_printer2(append lst_printer2 (list (strcat (substr (rtos i 1 0)  1 1) "-" (vl-string-trim ".pc3" printer))))))
  )
(princ "\n                Written By KangKung - 03/04/2013\n")
(princ "\n                  Nhap KK de chay chuong trinh\n")

Lisp này chạy 1 chiều thì OK, chiều ngược lại không ổn với máy tính của tôi. Nếu đặt mặc định là máy 5 thì chuyển về máy 1 rất tốt, sau đó chuyển lại máy in từ máy 1 lại máy 5 thì sai kích thước bản in. Các trường hợp khác chưa thử vì ít dùng  :)


  • 0