Chuyển đến nội dung
Diễn đàn CADViet
naturooo

[Hỏi] Lisp điều khiển Plot Transpareny trong hộp thoại Plot

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

Có bác nào có lisp hoặc các nào điều khiển chọnbỏ chọn thuộc tính Plot Transparency trong hộp thoại Plot như hình bằng lệnh không ạ?

Plottransparency.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

Biến hệ thống PLOTTRANSPARENCYOVERRIDE không chọn và bỏ chọn thuộc tính Plot Transparency trong hộp thoại Plot như bạn mong muốn,

nhưng nó quản lý việc có in hay không các đối tượng Transparency.

 

image.png.5421227ede4f70033600892123307f87.png

  • Like 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
10 giờ trước, gia_bach đã nói:

Biến hệ thống PLOTTRANSPARENCYOVERRIDE không chọn và bỏ chọn thuộc tính Plot Transparency trong hộp thoại Plot như bạn mong muốn,

nhưng nó quản lý việc có in hay không các đối tượng Transparency.

 

image.png.5421227ede4f70033600892123307f87.png

Cám ơn bác, đúng ý em rồi ạ. Trước em thử tưởng nó không điều được check box trong hộp thoại plot là không đượ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

Quick Google và 1cent code để bạn dùng ^^
 

(defun LayoutTransparency (layout ON / xType xData )
  (setq xData (vlax-make-safearray vlax-vbVariant '(0 . 1)))
  (setq xType (vlax-make-safearray vlax-vbInteger '(0 . 1)))
  (vlax-safearray-fill xData (list(vlax-make-variant "PLOTTRANSPARENCY")(vlax-make-variant ON)))
  (vlax-safearray-fill xType (list 1001 1071))
  (vla-setXdata layout  xType xData)
  (entmod(entget (vlax-vla-object->ename layout) '("*")))
  (princ (strcat "Plot Transparency now is " (if (zerop ON) "OFF" "ON") "!"))
  (princ)
)
(defun c:ON() 
    (LayoutTransparency (vla-get-activelayout (vla-get-activedocument(vlax-get-acad-object))) 1) ;       1=ON 0=off
)
(defun c:OFF() 
    (LayoutTransparency (vla-get-activelayout (vla-get-activedocument(vlax-get-acad-object))) 0) ;       1=ON 0=off
)

 

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

Quick Google và 1cent code để bạn dùng ^^
 


(defun LayoutTransparency (layout ON / xType xData )
  (setq xData (vlax-make-safearray vlax-vbVariant '(0 . 1)))
  (setq xType (vlax-make-safearray vlax-vbInteger '(0 . 1)))
  (vlax-safearray-fill xData (list(vlax-make-variant "PLOTTRANSPARENCY")(vlax-make-variant ON)))
  (vlax-safearray-fill xType (list 1001 1071))
  (vla-setXdata layout  xType xData)
  (entmod(entget (vlax-vla-object->ename layout) '("*")))
  (princ (strcat "Plot Transparency now is " (if (zerop ON) "OFF" "ON") "!"))
  (princ)
)
(defun c:ON() 
    (LayoutTransparency (vla-get-activelayout (vla-get-activedocument(vlax-get-acad-object))) 1) ;       1=ON 0=off
)
(defun c:OFF() 
    (LayoutTransparency (vla-get-activelayout (vla-get-activedocument(vlax-get-acad-object))) 0) ;       1=ON 0=off

 

Cảm ơn bác. Em test thử thì thấy cả trong hộp thoại và biến PLOTTRANSPARENCYOVERRIDE đều không thay đổi gì bác ạ. In thử cũng không tắt mở làm mờ được nét vẽ. Không biết lỗi ở đâu. Có biến hệ thống PLOTTRANSPARENCYOVERRIDE thì em dùng luôn được rồi hoặc đưa vào lisp thì em nghĩ dùng câu lệnh command với biến này chắc là được thôi chứ bá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

Để việc in ra được đẹp hơn, ta có nhiều cách, cách dùng Plot Trans là một cách nhưng cá nhân mình không thích sử dụng nó:

1. Việc gán cho đối tượng thêm thuộc tính Plot trans khá mất thời gian, tăng dung lượng, giảm đáng kể hiệu năng của Cad khi sử dụng (hay do máy mình yếu nhể)

2. Có nhiều cách khác có thể làm được điều đó

 

 

Cách của mình là thế này:

Kết hợp In theo Layer và in theo màu sắc

1. In theo Layer đối với toàn bộ các màu 1-255 (trừ hai màu 250 và 251) nghĩa là trừ hai màu đó ra: toàn bộ các đối tượng được quản lý theo: Nét in, màu sắc, đổ mực 100% như bình thường

2. Các đối tượng cần in mờ quản lý layer bình thường, riêng màu sắc thì chỉnh riêng nó về 250, 251 (dùng list là xong/ không thì đưa chuột nên Properties ...) và trong Phần setup In ấn thì hai màu này được đổ mực 30-50% tùy từng nhu cầu - > nếu muốn hơn nữa thì chọn hẳn nét ìn là 0,0000 (nét mảnh nhất) xong

 

 

mời mn thảo luận thêm

  • Like 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
24 phút trước, quansla đã nói:

Để việc in ra được đẹp hơn, ta có nhiều cách, cách dùng Plot Trans là một cách nhưng cá nhân mình không thích sử dụng nó:

1. Việc gán cho đối tượng thêm thuộc tính Plot trans khá mất thời gian, tăng dung lượng, giảm đáng kể hiệu năng của Cad khi sử dụng (hay do máy mình yếu nhể)

2. Có nhiều cách khác có thể làm được điều đó

 

 

Cách của mình là thế này:

Kết hợp In theo Layer và in theo màu sắc

1. In theo Layer đối với toàn bộ các màu 1-255 (trừ hai màu 250 và 251) nghĩa là trừ hai màu đó ra: toàn bộ các đối tượng được quản lý theo: Nét in, màu sắc, đổ mực 100% như bình thường

2. Các đối tượng cần in mờ quản lý layer bình thường, riêng màu sắc thì chỉnh riêng nó về 250, 251 (dùng list là xong/ không thì đưa chuột nên Properties ...) và trong Phần setup In ấn thì hai màu này được đổ mực 30-50% tùy từng nhu cầu - > nếu muốn hơn nữa thì chọn hẳn nét ìn là 0,0000 (nét mảnh nhất) xong

 

 

mời mn thảo luận thêm

Mình chỉ in mờ những file bình độ thôi bạn. Phần cần mờ đi là đường đồng mức, cao độ, ... được Xref từ bản vẽ khác. Mà đặt thuộc tính Transparency cho Xref thì chỉ cần vào LA đặt trong 1 nốt nhạc là xong rồ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

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

×