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

[Yêu cầu] Lisp đổi màu nền của cad

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

Tôi làm công việc thường xuyên phải chuyển từ màu nền màn hình đen sang trắng và ngược lại từ trắng sang đen.

Hy vọng a e giúp đỡ 1 lệnh tắt để chuyển qua lại 2 màu này cho nhanh.

Xin cảm ơn.

 

Thông thường muốn chuyển thì chọn Options | Tab Display | Colors | chọn màu | OK

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

Cám ơn Ketxu đã chỉ cái auto switch.

Nhưng công việc của mình đơn giản là muốn chuyển theo kiểu

gõ số 8 | enter 1 cái thì nó tự động biết chuyển tử trằng sang đen hoặc ngược lại

nếu trong 1 lệnh mà làm ngược lại phức tạp quá thì mình có thể làm thêm

gõ số 9 | enter cái thì đen chuyển sang trắng

Cám ơn Ketxu!

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

Cám ơn Ketxu đã chỉ cái auto switch.

Nhưng công việc của mình đơn giản là muốn chuyển theo kiểu

gõ số 8 | enter 1 cái thì nó tự động biết chuyển tử trằng sang đen hoặc ngược lại

nếu trong 1 lệnh mà làm ngược lại phức tạp quá thì mình có thể làm thêm

gõ số 9 | enter cái thì đen chuyển sang trắng

Cám ơn Ketxu!

 

Đây bạn! Lisp này tôi mót được của By Jimmy Bergmark (thank you). Lệnh BGT. Gõ BGT: chuyển đen qua trắng, gõ tiếp BGT: chuyển trắng qua đen. Cứ thế tiếp tục...

;----- Set the background in model and paper space to white
(defun c:BGWhite ()
(vl-load-com)
(setq disp (vla-get-display (vla-get-preferences (vlax-get-acad-object))))
(setq drafting (vla-get-drafting (vla-get-preferences (vlax-get-acad-object))))
(vla-put-GraphicsWinModelBackgrndColor disp 16777215)
(vla-put-GraphicsWinLayoutBackgrndColor disp 16777215)
(vla-put-LayoutCrosshairColor disp 0)
(vla-put-ModelCrosshairColor disp 0)
(vla-put-AutoTrackingVecColor disp 0)
(vla-put-AutoSnapMarkerColor drafting 6)
(princ))
;----- Set the background in model and paper space to black
(defun c:BGBlack ()
(vl-load-com)
(setq disp (vla-get-display (vla-get-preferences (vlax-get-acad-object))))
(setq drafting (vla-get-drafting (vla-get-preferences (vlax-get-acad-object))))
(vla-put-GraphicsWinModelBackgrndColor disp 0)
(vla-put-GraphicsWinLayoutBackgrndColor disp 0)
(vla-put-LayoutCrosshairColor disp 16777215)
(vla-put-ModelCrosshairColor disp 16777215)
(vla-put-AutoTrackingVecColor disp 16777215)
(vla-put-AutoSnapMarkerColor drafting 2)
(princ))
;----- Background toggle between black and white
(defun c:bgt ()
(vl-load-com)
(setq disp (vla-get-display (vla-get-preferences (vlax-get-acad-object))))
(setq drafting (vla-get-drafting (vla-get-preferences (vlax-get-acad-object))))
(if (= (vlax-variant-value (vlax-variant-change-type (vla-get-graphicswinmodelbackgrndcolor disp) vlax-vblong)) 0)
 (c:bgwhite)
 (c:bgblack))
(princ))
(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
Vào lúc 23/9/2024 tại 12:43, tungnguyendmt đã nói:

nếu mình có nhu cầu đổi sang màu khác thì tham số màu mình lấy ở đâu ạ? e cảm ơn

tham khảo:

em nhầm: https://www.checkyourmath.com/convert/color/decimal_rgb.php

Tham khảo RGB to OLE nhé

https://lee-mac.com/colourconversion.html

(LM:RGB->OLE 255 255 255)

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
Vào lúc 8/12/2011 tại 10:17, Doan Van Ha đã nói:

 

Đây bạn! Lisp này tôi mót được của By Jimmy Bergmark (thank you). Lệnh BGT. Gõ BGT: chuyển đen qua trắng, gõ tiếp BGT: chuyển trắng qua đen. Cứ thế tiếp tục...

 


;----- Set the background in model and paper space to white
(defun c:BGWhite ()
(vl-load-com)
(setq disp (vla-get-display (vla-get-preferences (vlax-get-acad-object))))
(setq drafting (vla-get-drafting (vla-get-preferences (vlax-get-acad-object))))
(vla-put-GraphicsWinModelBackgrndColor disp 16777215)
(vla-put-GraphicsWinLayoutBackgrndColor disp 16777215)
(vla-put-LayoutCrosshairColor disp 0)
(vla-put-ModelCrosshairColor disp 0)
(vla-put-AutoTrackingVecColor disp 0)
(vla-put-AutoSnapMarkerColor drafting 6)
(princ))
;----- Set the background in model and paper space to black
(defun c:BGBlack ()
(vl-load-com)
(setq disp (vla-get-display (vla-get-preferences (vlax-get-acad-object))))
(setq drafting (vla-get-drafting (vla-get-preferences (vlax-get-acad-object))))
(vla-put-GraphicsWinModelBackgrndColor disp 0)
(vla-put-GraphicsWinLayoutBackgrndColor disp 0)
(vla-put-LayoutCrosshairColor disp 16777215)
(vla-put-ModelCrosshairColor disp 16777215)
(vla-put-AutoTrackingVecColor disp 16777215)
(vla-put-AutoSnapMarkerColor drafting 2)
(princ))
;----- Background toggle between black and white
(defun c:bgt ()
(vl-load-com)
(setq disp (vla-get-display (vla-get-preferences (vlax-get-acad-object))))
(setq drafting (vla-get-drafting (vla-get-preferences (vlax-get-acad-object))))
(if (= (vlax-variant-value (vlax-variant-change-type (vla-get-graphicswinmodelbackgrndcolor disp) vlax-vblong)) 0)
 (c:bgwhite)
 (c:bgblack))
(princ))
(princ)
 

 

cho mình hỏi khi mình đổi 2 dòng 
(vla-put-GraphicsWinModelBackgrndColor disp 3156001)

(vla-put-GraphicsWinLayoutBackgrndColor disp 3156001)

thì không dùng được lệnh bgt nữa mà chỉ dùng được bgw hoặc bgb

đổi màu về 0 thì lại dùng lệnh bgt bình thường

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
1 giờ} trướ}c, lionking_114 đã nói:

cho mình hỏi khi mình đổi 2 dòng 
(vla-put-GraphicsWinModelBackgrndColor disp 3156001)

(vla-put-GraphicsWinLayoutBackgrndColor disp 3156001)

thì không dùng được lệnh bgt nữa mà chỉ dùng được bgw hoặc bgb

đổi màu về 0 thì lại dùng lệnh bgt bình thường

Sai ở đâu thì dừng lại ở đó. 

Thay số 3156001 bằng 2172976 là đượ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

Tiện đây cho em hỏi nếu muốn chuyển màu của môi trường Block Editor có được không? Tuy ít phải sửa nhưng mỗi lần vào cũng lười. 

  • 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
Vào lúc 26/11/2024 tại 10:56, vietduc147258 đã nói:

Tiện đây cho em hỏi nếu muốn chuyển màu của môi trường Block Editor có được không? Tuy ít phải sửa nhưng mỗi lần vào cũng lười. 

Cùng câu hỏi của mình, bạn mò ra chưa, chứ mình cũng mò mãi mà chưa làm đượ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
Vào lúc 8/12/2024 tại 10:04, dinh dinh đã nói:

Cùng câu hỏi của mình, bạn mò ra chưa, chứ mình cũng mò mãi mà chưa làm được.

Sau một thời gian mò thì đã có những kết luận sau:

1: vla không có hàm hỗ trợ đổi màu nền

2. ngoài OP ra thì có thể dùng Rigistry để đổi màu nền

3.  Khi sửa Rigistry thì phải tắt Cad trước khi sửa. (một số tùy Option khác không cần tắt cad)

(đã thử (vl-registry-write "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD\\R22.0\\ACAD-1005:409\\Profiles\\<<VANILLA>>\\Drawing Window" "BEditBackground" "0") nhưng thất bại, thử mở Rygistry lên sửa thủ công cũng thất bại, tắt cad thì giá trị nó bị reset lại)

Nếu đọc tới đây rồi mà vẫn kiên nhẫn muốn sửa màu nền thì tặng cái lisp tạo file .reg cho rigistry

Vì các bước cực rườm rà nên làm 1 phát mấy Option luôn (Màu nền, tên bản vẽ trên titlebar, size máy in). Chưa tìm hiểu hết nên chưa đưa thêm các cái khác vào được

(defun c:taofilereg (/ tmp setup regurl )
(setq tmp (getfiled "Chon File" "" "reg" 1))
(setq setup (open tmp "w"))
(setq regurl 	(strcat
			"[HKEY_CURRENT_USER\\"
			(vlax-product-key)
			"\\Profiles\\"
			(getvar "cprofile")))		

(write-line (strcat	"Windows Registry Editor Version 5.00\n"
		regurl
		"\\Drawing Window]"
		"\n\"BEditBackground\"=dword:00000000")	;Mau nen Block Edit
		setup)
(write-line (strcat	
		regurl
		"\\General]"
		"\n\"ShowFullPathInTitle\"=dword:00000001")	; Hien full duong dan tren titlebar Autocad
		setup)
(write-line (strcat	
		regurl
		"\\General]"
		"\n\"PAPERUPDATE\"=dword:00000001")	;Pape size theo may in
		setup)
)

Quy trình là các bước sau:

1. Tạo file reg nếu chưa có

2. tắt Cad nếu cad đang chạy

3.Chạy file reg

4. khởi động cad và tận hưởng

 

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
Vào lúc 4/3/2025 tại 08:34, vietduc147258 đã nói:

Sau một thời gian mò thì đã có những kết luận sau:

1: vla không có hàm hỗ trợ đổi màu nền

2. ngoài OP ra thì có thể dùng Rigistry để đổi màu nền

3.  Khi sửa Rigistry thì phải tắt Cad trước khi sửa. (một số tùy Option khác không cần tắt cad)

(đã thử (vl-registry-write "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD\\R22.0\\ACAD-1005:409\\Profiles\\<<VANILLA>>\\Drawing Window" "BEditBackground" "0") nhưng thất bại, thử mở Rygistry lên sửa thủ công cũng thất bại, tắt cad thì giá trị nó bị reset lại)

Nếu đọc tới đây rồi mà vẫn kiên nhẫn muốn sửa màu nền thì tặng cái lisp tạo file .reg cho rigistry

Vì các bước cực rườm rà nên làm 1 phát mấy Option luôn (Màu nền, tên bản vẽ trên titlebar, size máy in). Chưa tìm hiểu hết nên chưa đưa thêm các cái khác vào được


(defun c:taofilereg (/ tmp setup regurl )
(setq tmp (getfiled "Chon File" "" "reg" 1))
(setq setup (open tmp "w"))
(setq regurl 	(strcat
			"[HKEY_CURRENT_USER\\"
			(vlax-product-key)
			"\\Profiles\\"
			(getvar "cprofile")))		

(write-line (strcat	"Windows Registry Editor Version 5.00\n"
		regurl
		"\\Drawing Window]"
		"\n\"BEditBackground\"=dword:00000000")	;Mau nen Block Edit
		setup)
(write-line (strcat	
		regurl
		"\\General]"
		"\n\"ShowFullPathInTitle\"=dword:00000001")	; Hien full duong dan tren titlebar Autocad
		setup)
(write-line (strcat	
		regurl
		"\\General]"
		"\n\"PAPERUPDATE\"=dword:00000001")	;Pape size theo may in
		setup)
)

Quy trình là các bước sau:

1. Tạo file reg nếu chưa có

2. tắt Cad nếu cad đang chạy

3.Chạy file reg

4. khởi động cad và tận hưởng

 

cảm ơn bác nhiều, so với kích chuột vẫn ổn hơ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
Vào lúc 26/11/2024 tại 10:56, vietduc147258 đã nói:

Tiện đây cho em hỏi nếu muốn chuyển màu của môi trường Block Editor có được không? Tuy ít phải sửa nhưng mỗi lần vào cũng lười. 

Vào lúc 4/3/2025 tại 08:34, vietduc147258 đã nói:

Sau một thời gian mò thì đã có những kết luận sau:

1: vla không có hàm hỗ trợ đổi màu nền

2. ngoài OP ra thì có thể dùng Rigistry để đổi màu nền

3.  Khi sửa Rigistry thì phải tắt Cad trước khi sửa. (một số tùy Option khác không cần tắt cad)

(đã thử (vl-registry-write "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD\\R22.0\\ACAD-1005:409\\Profiles\\<<VANILLA>>\\Drawing Window" "BEditBackground" "0") nhưng thất bại, thử mở Rygistry lên sửa thủ công cũng thất bại, tắt cad thì giá trị nó bị reset lại)

Nếu đọc tới đây rồi mà vẫn kiên nhẫn muốn sửa màu nền thì tặng cái lisp tạo file .reg cho rigistry

Vì các bước cực rườm rà nên làm 1 phát mấy Option luôn (Màu nền, tên bản vẽ trên titlebar, size máy in). Chưa tìm hiểu hết nên chưa đưa thêm các cái khác vào được


(defun c:taofilereg (/ tmp setup regurl )
(setq tmp (getfiled "Chon File" "" "reg" 1))
(setq setup (open tmp "w"))
(setq regurl 	(strcat
			"[HKEY_CURRENT_USER\\"
			(vlax-product-key)
			"\\Profiles\\"
			(getvar "cprofile")))		

(write-line (strcat	"Windows Registry Editor Version 5.00\n"
		regurl
		"\\Drawing Window]"
		"\n\"BEditBackground\"=dword:00000000")	;Mau nen Block Edit
		setup)
(write-line (strcat	
		regurl
		"\\General]"
		"\n\"ShowFullPathInTitle\"=dword:00000001")	; Hien full duong dan tren titlebar Autocad
		setup)
(write-line (strcat	
		regurl
		"\\General]"
		"\n\"PAPERUPDATE\"=dword:00000001")	;Pape size theo may in
		setup)
)

Quy trình là các bước sau:

1. Tạo file reg nếu chưa có

2. tắt Cad nếu cad đang chạy

3.Chạy file reg

4. khởi động cad và tận hưởng

 

Mình thấy trong phần OP ->tag Display -> nút "Colors" có tùy chỉnh màu nền của Block edit. Bạn thử xem sao

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
8 giờ trước, vostro 1500 đã nói:

Mình thấy trong phần OP ->tag Display -> nút "Colors" có tùy chỉnh màu nền của Block edit. Bạn thử xem sao

Ha ha. bạn vui tính quá. Cám ơn quan tâm chủ đề nhưng cách của bạn nằm ở dòng đầu của chủ đề 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

×