Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
quickandfine

[Nhờ chỉnh sửa] Lisp tạo Print Area

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

Em chào các anh. Em có xin được một đoạn lisp từ một người bạn có chức năng xác định các “Print area”. Cụ thể như sau ạ:

- Gõ lệnh IN, sau đó click chuột vào góc thứ nhất của khung tên, rồi chọn tiếp góc thứ 2 của khung tên, như vậy lisp sẽ xác định một “Print area” tương ứng. Sau đó lisp sẽ tạo thêm một dòng “VIEW” vào mục Plot area (Mặc định bao gồm Display, Extents, Layout, Window –trong Menu Ctlt+P của CAD). Trong mục “VIEW” này sẽ có các Print area tương ứng mà ta đã click chuột chọn lúc trước, được đặt tên là BV1, BV2…

- Khi em muốn in các bản vẽ này, Em Ctlt+P bình thường, rồi chọn mục “VIEW”, chọn tương ứng bản vẽ cần ìn, thiết lập giấy in, nét in… và in bình thường. Nhưng bây giờ có một vấn đề như sau:

- Đoạn lisp trên sẽ Lưu các Print area đó cho các lần in sau. Nhưng giả sử sau đó em lại move hoặc xóa đi phần Print area đó đi mất rồi thì Lisp vẫn ghi nhớ nó, và khi in thì nó ra một vùng trắng xóa chẳng có gì cả.

- Em muốn nhờ các anh viết thêm cho một đoạn lisp xóa các “VIEW” đó đi ạ, để lỡ đâu mình move hoặc xóa Print area đi rồi thì mình có thể làm lại, chứ nếu không , giả sử lúc đầu có 2 view là BV1 và BV2 thôi, nhưng em xóa đi một Print area đi rồi, ấn IN tiếp thì nó lại bắt đầu từ BV3,BV4…Như thế em không kiểm soát được đâu là bản vẽ nào khi VIEW cả.

- Em gửi kèm một bản vẽ lên, trong đó lần trước em có VIEW được 10 bản vẽ rồi, nhưng giờ thì chỉ còn ít hơn, Giờ ý em là muốn xóa mục VIEW đi để lúc nào cần thì mình có thể tạo lại ạ

 

File lisp:

http://www.cadviet.com/upfiles/3/110072_in_nhieu_ban_vein_3.lsp

File Cad em không up được lên đây, em upload qua mediafire:

http://www.mediafire.com/?6j19d342cplboub

Em xin cảm ơn ạ!

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
phamthanhbinh    3.123

Em chào các anh. Em có xin được một đoạn lisp từ một người bạn có chức năng xác định các “Print area”. Cụ thể như sau ạ:

- Gõ lệnh IN, sau đó click chuột vào góc thứ nhất của khung tên, rồi chọn tiếp góc thứ 2 của khung tên, như vậy lisp sẽ xác định một “Print area” tương ứng. Sau đó lisp sẽ tạo thêm một dòng “VIEW” vào mục Plot area (Mặc định bao gồm Display, Extents, Layout, Window –trong Menu Ctlt+P của CAD). Trong mục “VIEW” này sẽ có các Print area tương ứng mà ta đã click chuột chọn lúc trước, được đặt tên là BV1, BV2…

- Khi em muốn in các bản vẽ này, Em Ctlt+P bình thường, rồi chọn mục “VIEW”, chọn tương ứng bản vẽ cần ìn, thiết lập giấy in, nét in… và in bình thường. Nhưng bây giờ có một vấn đề như sau:

- Đoạn lisp trên sẽ Lưu các Print area đó cho các lần in sau. Nhưng giả sử sau đó em lại move hoặc xóa đi phần Print area đó đi mất rồi thì Lisp vẫn ghi nhớ nó, và khi in thì nó ra một vùng trắng xóa chẳng có gì cả.

- Em muốn nhờ các anh viết thêm cho một đoạn lisp xóa các “VIEW” đó đi ạ, để lỡ đâu mình move hoặc xóa Print area đi rồi thì mình có thể làm lại, chứ nếu không , giả sử lúc đầu có 2 view là BV1 và BV2 thôi, nhưng em xóa đi một Print area đi rồi, ấn IN tiếp thì nó lại bắt đầu từ BV3,BV4…Như thế em không kiểm soát được đâu là bản vẽ nào khi VIEW cả.

- Em gửi kèm một bản vẽ lên, trong đó lần trước em có VIEW được 10 bản vẽ rồi, nhưng giờ thì chỉ còn ít hơn, Giờ ý em là muốn xóa mục VIEW đi để lúc nào cần thì mình có thể tạo lại ạ

 

File lisp:

http://www.cadviet.c..._ban_vein_3.lsp

File Cad em không up được lên đây, em upload qua mediafire:

http://www.mediafire...6j19d342cplboub

Em xin cảm ơn ạ!

Hề hề hề,

Gửi bạn một đoạn lisp dùng để xóa sạch các view trong bản vẽ mà bạn đã tạo ra bởi cái lisp bạn gửi. Mình không muốn ghép nó vào trong lisp củ vì e rằng nhỡ bạn làm lộn thì lại mất công làm lại.

Nếu bạn muốn ghép hai cái lisp với nhau thì mình sẽ chỉ bạn ghép sau nhé.

Hãy thử và cho ý kiến.


(defun c:xv (/ a b )
(setq a (tblnext "view" T))
(while a
(setq b (cdr (assoc 2 a)) )
(if (wcmatch b "BV*")
  (command "view" "d" B)
)
(setq a (tblnext "view"))
)
)

Chúc bạn vui.

  • Vote tăng 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

Em dùng được rồi. Đúng ý em rồi anh Bình ạ. Thôi, em cũng muốn để nó riêng ra cho đỡ rắc rối kẻo em lại không kiểm soát được. Cảm ơn anh nhiều nhiều 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

Chào anh Bình và toàn thể các anh em trên diễn đàn.

Anh Bình và các anh cho em hỏi thêm một chút về vấn đề này ạ.

Khi em dùng đoạn lisp tạo View in mà em nói ở trên ấy, sau khi tạo được hết các View in từ BV1 - BVi (i là số bản vẽ), em đã thiết lập hết các thông số như máy in, nét in, kiểu in (Center plot, Scale thường là 1:1 (1mm=1unit), rất ít khi em in theo kiểu Fit trừ trường hợp khung tên của dự án không chuẩn thì bắt buộc phải it Fit)...Thì có thể viết thêm một đoạn lisp nữa để in một lần toàn bộ các BV đó không ạ? Em xin cảm ơn ạ!

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 các anh ạ.

Em mới nghĩ ra là yêu cầu trước của em có chỗ không được ổn cho lắm. Theo em thì chắc là tuần tự phải thế này ạ:

1- Tạo các View in để được các BV1-BVi ( cái này lisp của em sưu tầm đã làm được)

Các bước tiếp theo (Em nhờ các anh viết lisp giúp) là:

2- Thiết lập các thông số in ấn:

a/- Máy in: Sẽ hỏi và chọn một trong số các máy in đang được cài đặt trong máy tính

b/- Nét in: Sẽ hỏi và chọn một trong số các Plot style có trong Plot stype manager.

c/- Plot are: là các BV em đã tạo trước đó (BV1-BVi)

d/- Plot offset: Center Plot

e/-Plot Scale: Sẽ hỏi 2 dạng là (1) 1mm=1unit (ưu tiên cái này trước) và (2) Fit to paper.

f/ Khổ giấy là A3, Landscape

3- In ấn: Sẽ in theo thứ tự từ BV1 đến BVi

Em xin cảm ơn ạ!

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  

×