Đến nội dung


Hình ảnh
- - - - -

[Hỏi]Code in bản vẽ theo Previous


  • Please log in to reply
5 replies to this topic

#1 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 18 July 2012 - 11:50 AM

Chào cả nhà, Thường khi xuất bản vẽ em hay in nhiều bản cùng một setup giống nhau, Vì không phải in tất cả và đôi khi chỉ in tham khảm vài bản nên em không dùng Publish hay setup lại kiểu in, mà em chỉ chỉnh 1 file rồi mấy cái sau cứ in Previous. Em mới viết cái code này để ko phải bấm lệnh in rồi chọn... :)

(command "-plot" "N" (car(layoutlist)) "previous plot" "" "" "" "")

Vấn đề là em muốn lisp này nó ngừng khi hiện cái tên Máy in vừa in để dễ theo dõi (vì trí nhớ em kém đôi khi ko biết mới in kiểu gì xong :) ) Mong các bác giúp đỡ cho nó ngừng tại đó, khi em nhìn thấy tên máy in ok thì enter phát nó chạy tiếp mấy cái "" phía sau luôn.
Hoặc chỉ giúp em cái code lấy tên máy in Previous
  • 0
Hình đã gửi

#2 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1434 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 18 July 2012 - 12:09 PM

...............
Hoặc chỉ giúp em cái code lấy tên máy in Previous

Phải cái này không ?

(vlax-get-property (vla-get-ActiveLayout (vla-get-ActiveDocument(vlax-get-acad-object))) 'ConfigName )
  • 1

#3 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 18 July 2012 - 12:58 PM

ko phải bác ah, cái này hình như là máy in hiện hành!
  • 0
Hình đã gửi

#4 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1434 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 18 July 2012 - 03:20 PM

ko phải bác ah, cái này hình như là máy in hiện hành!

Ừ nhầm rùi.
Thử cái này xem sao ? (win Xp, cad10)

(defun gen_get_lastprinter (/ regkey)
(setq regkey (strcat "HKEY_CURRENT_USER\\"
(vlax-product-key)
"\\Profiles\\"
(getvar "CPROFILE")
"\\Previous plot settings" ) )
(if (eq (getvar "tilemode") 1)
(vl-registry-read (strcat regkey "\\Model") "Cfg Name")
(vl-registry-read (strcat regkey "\\Layout") "Cfg Name") ) )

  • 1

#5 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 18 July 2012 - 03:43 PM

Thật tuyệt, nhờ lisp này mà em mới biết thêm là cad lưu 2 máy in sau cùng: 1 cho Model, và 1 cho layout
  • 0
Hình đã gửi

#6 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 18 July 2012 - 04:57 PM

thử chạy đoạn code của bác lần đầu tiên rất Ok bác ah, nhưng em thử đổi máy in, và gọi thử hàm (gen_get_lastprinter) thì nó lại cho về máy in như lần đầu tiên. Bác có cách khắc phục không ah?
Nhưng nếu em tắt CAD đi và mở lại thì nó lại đúng, nhưng cũng 1 lần thôi, em đổi máy in và in ra luôn, gọi lại nó vẫn cho kết quả là cái máy in ban đầu??
  • 0
Hình đã gửi