明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2970|回复: 12

[求助]要设计一个背景颜色切换

[复制链接]
发表于 2013-8-6 21:06:12 | 显示全部楼层 |阅读模式
在做报告中,经常要把CAD的背景颜色进行切换,一般都是在工具选项菜单这样设置,如果经常切换比较繁琐。
现在好像还没有 这样方面的程序,不知道 如何开发一个这样简单实用 一键切换背景颜色(黑色和白色最经常切换)的 程序
发表于 2017-9-4 18:22:30 | 显示全部楼层
  1. ;; This lisp can change background color for 2D model space

  2. (defun c:gr (/ VAR-COLOUR DISPLAY clno blue rde green)
  3.   (setq clno (getint "\n=>Input colour No!"))
  4.   (prompt "\n,1=red,2=yellow,3=gree,4=cyan,5=blue,6=magenta,7=white"
  5.   )
  6.   (cond        ((= clno 1)
  7.          (progn (setq rde 255) (setq green 0) (setq blue 0))
  8.         )
  9.         ((= clno 2)
  10.          (progn (setq rde 255) (setq green 255) (setq blue 0))
  11.         )
  12.         ((= clno 3)
  13.          (progn (setq rde 0) (setq green 255) (setq blue 0))
  14.         )
  15.         ((= clno 4)
  16.          (progn (setq rde 0) (setq green 255) (setq blue 255))
  17.         )
  18.         ((= clno 5)
  19.          (progn (setq rde 0) (setq green 0) (setq blue 255))
  20.         )
  21.         ((= clno 6)
  22.          (progn (setq rde 255) (setq green 0) (setq blue 255))
  23.         )
  24.         ((= clno 7)
  25.          (progn (setq rde 255) (setq green 255) (setq blue 255))
  26.         )
  27.         ((= clno 8)
  28.          (progn (setq rde 128) (setq green 128) (setq blue 128))
  29.         )
  30.         ((= clno 9)
  31.          (progn (setq rde 192) (setq green 192) (setq blue 192))
  32.         )
  33.         (t (progn (setq rde 0) (setq green 0) (setq blue 0)))
  34.   )
  35.   (setq
  36.     VAR-COLOUR (vlax-make-variant
  37.                  (+ rde (* green 256)(* blue 65536))
  38.                  vlax-vblong
  39.                )
  40.     DISPLAY    (vla-get-display
  41.                  (vla-get-preferences
  42.                    (vla-get-application (vlax-get-acad-object))
  43.                  )
  44.                )
  45.   )
  46.   ;(vla-put-graphicswinlayoutbackgrndcolor DISPLAY VAR-COLOUR)
  47.   (vla-put-graphicswinmodelbackgrndcolor DISPLAY VAR-COLOUR)
  48. )
发表于 2017-9-7 17:58:22 | 显示全部楼层
  1. Sub Example_GraphicsWinModelBackgrndColor()
  2.     ' This example returns the current setting of
  3.     ' GraphicsWinModelBackgrndColor. It then changes the value, and finally
  4.     ' it resets the value back to the original setting.
  5.    
  6.     Dim preferences As AcadPreferences
  7.     Dim currGraphicsWinModelBackgrndColor As OLE_COLOR
  8.    
  9.     Set preferences = ThisDrawing.Application.preferences
  10.    
  11.     ' Retrieve the current GraphicsWinModelBackgrndColor value
  12.     currGraphicsWinModelBackgrndColor = preferences.Display.GraphicsWinModelBackgrndColor
  13.     MsgBox "The current value for GraphicsWinModelBackgrndColor is " _
  14.             & preferences.Display.GraphicsWinModelBackgrndColor, vbInformation, "GraphicsWinModelBackgrndColor 示例"
  15.    
  16.     ' Change the value for GraphicsWinModelBackgrndColor
  17.     preferences.Display.GraphicsWinModelBackgrndColor = vbBlue
  18.     MsgBox "The new value for GraphicsWinModelBackgrndColor is " _
  19.             & preferences.Display.GraphicsWinModelBackgrndColor, vbInformation, "GraphicsWinModelBackgrndColor 示例"
  20.    
  21.     ' Reset GraphicsWinModelBackgrndColor to its original value
  22.     preferences.Display.GraphicsWinModelBackgrndColor = currGraphicsWinModelBackgrndColor
  23.     MsgBox "The GraphicsWinModelBackgrndColor value is reset to " _
  24.             & preferences.Display.GraphicsWinModelBackgrndColor, vbInformation, "GraphicsWinModelBackgrndColor 示例"
  25. End Sub

autocad自带的例子
 楼主| 发表于 2017-11-27 14:26:15 | 显示全部楼层
xinxirong 发表于 2017-9-4 09:24
3年解决不了这个问题,只能说你不适合编程。要学会动用一切手段去研究,比如监视注册表,od调试。

谢谢你的建议,我是编程爱好者,不是研究者,我会一直学习的。
发表于 2013-8-7 08:52:53 | 显示全部楼层
论坛里面真有这个插件,你搜索一下背景颜色
 楼主| 发表于 2013-8-7 21:19:30 | 显示全部楼层
多谢你啊 就是没有搜到哦
 楼主| 发表于 2017-9-3 11:32:33 | 显示全部楼层
经过3年 这个问题终于可以 变通解决了。

思路 就是 先画一个矩形,然后矩形填充成白色,这样就是白色背景了。

谢谢论坛陪我的3年。
发表于 2017-9-3 21:34:53 来自手机 | 显示全部楼层
找一找,一个系统变量就解决了
发表于 2017-9-4 09:24:27 | 显示全部楼层
3年解决不了这个问题,只能说你不适合编程。要学会动用一切手段去研究,比如监视注册表,od调试。
发表于 2017-10-7 19:23:54 | 显示全部楼层
回帖是一种美德!感谢楼主的无私分享 谢谢
 楼主| 发表于 2017-11-27 14:24:13 | 显示全部楼层

谢谢你的代码,虽然我看不懂。能力有限。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-29 02:30 , Processed in 0.184865 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表