2
收藏0
分享

AI助力中望CAD:零基础用VBA实现背景色一 键切换

在AI普及的当下,很多人遇到问题会先求助AI,但面对专业场景(如CAD二次开发),  AI常常很难直接给出可用方案。本文以“ 中望CAD黑白背景高频切换”这一典型需求为例,带零基础用户借助AI+VBA,无需专业开发知识,快速实现一键化操作,解决日常设计中的效率痛点。
Part 01
需求背景

高频切换背景色,麻烦不止一点点

不少中望CAD用户有这样的困扰:

日常设计习惯用黑色背景 (视觉舒适、减少眼疲劳),但制作项目文档时,截图需换成白色背景(保证 文档排版清晰)。每次切换需多步点击操作(如“选项→显示→颜色→背景颜色设置” ),看似简单,却因高频重复(如一天截图十几次),逐渐变成影响效率的“小麻烦”。

核心需求:能否实现一键切换黑白背景,或一键直达指定背景色,省去重复点击步骤?

Part 02
解决方案初探

        哪些方式能实现?

面对这个需求,我们先梳理中望CAD常见的功能/工具,逐一排查可行性(新手可按此思路自主分析问 题):
解决方案 可行性分析 结果
系统变量 搜索资料/打开“选项”对话框验证,发现中望CAD暂未提供“背景色设置”相关系 统变量
命令宏 命令宏适用于“固定命令流程自动化” ,但背景色设置需调用软件底层参数,超 出命令宏能力范围(命令宏入门可参考此前文章)

Lisp

基础Lisp仅能调用命令行操作,无法修改背景色这类界面参数;进阶Lisp需专 业开发知识

VBA

VBA可调用中望CAD接口,修改界面参数;且自带开发环境、代码易读,适 合零基础用户
art 03
为什么选VBA?

零基础也能上手的优势

对没接触过CAD二次开发的用户来说,  VBA是最优选择,核心优势有两点:1. 门槛低,易理解:代码逻辑接近日常语言,比Lisp更易读,出现问题时调试更简单(比如报错会明 确指向具体代码行);2. 环境现成,无需额外安装:中望CAD默认自带VBA开发环境(按Alt+F11直接打开),不像ZRX等 开发工具需单独下载配置——用过Excel VBA的用户,能快速适应其操作逻辑。
Part 04
AI助力

零基础也能获取可用VBA代码

很多人会犯难:  “我没学过VBA,连接口函数、变量都不懂,怎么写代码?

其实无需自己写——借助AI工具(如豆包),只需清晰描述需求,就能获得可用代码。具体步骤如下:

步骤1:向AI清晰提需求

打开豆包,复制以下需求描述(越具体,AI给出的代码越精准):

“我是中望CAD用户,没有软件开发基础。需要一个VBA工具,实现三个功能:  

1. 一键将背景色设为黑色; 

2. 一键将背景色设为白色;  

3. 一键切换黑白背景。”

 

步骤2:AI生成适配代码(附最终可用代码)

经过需求校准,最终可用的VBA代码如下:

Option Explicit

 

全局变量,用于存储当前背景色(记录当前状态,避免切换出错)

Public CurrentBackgroundColor As Long

 

初始化函数:获取当前CAD背景色,为后续切换做准备

Sub InitBackgroundColor()

CurrentBackgroundColor =

ThisDrawing.Application.Preferences.Display.GraphicsWinModelBackgrndColor End Sub

 

功能1:一键设置黑色背景

Sub SetBlackBackground()

调用初始化,确保CurrentBackgroundColor已获取当前背景色(避免变量为空) If CurrentBackgroundColor = 0 Then

InitBackgroundColor

End If

调用中望CAD接口,将背景色设为黑色(vbBlack为系统内置黑色常量)

ThisDrawing.Application.Preferences.Display.GraphicsWinModelBackgrndColor = vbBlack

更新全局变量,记录当前背景色为黑色

CurrentBackgroundColor = vbBlack

弹出提示,告知操作结果

MsgBox背景色已设置为黑色“, vbInformation

End Sub

 

功能2:一键设置白色背景

Sub SetWhiteBackground()

调用初始化,确保CurrentBackgroundColor有值

If CurrentBackgroundColor = 0 Then

InitBackgroundColor

End If

调用中望CAD接口,将背景色设为白色(vbWhite为系统内置白色常量)

ThisDrawing.Application.Preferences.Display.GraphicsWinModelBackgrndColor = vbWhite

更新全局变量,记录当前背景色为白色

CurrentBackgroundColor = vbWhite

弹出提示,告知操作结果

MsgBox背景色已设置为白色“, vbInformation

End Sub

 

功能3:一键切换背景色(黑白双向切换)

Sub ToggleBackgroundColor()

调用初始化,确保CurrentBackgroundColor已获取当前背景色

If CurrentBackgroundColor = 0 Then

InitBackgroundColor

End If

 

判断当前背景色,执行相反颜色切换

If CurrentBackgroundColor = vbBlack Then

SetWhiteBackground 若当前为黑色,切换为白色

Else

SetBlackBackground 若当前为白色,切换为黑色

End If

End Sub

Part 05
实操步骤

从代码到“一键切换” ,5步搞定

拿到代码后,只需5步就能配置完成,全程不超过10分钟,零基础也能操作:

其实无需自己写——借助AI工具(如豆包),只需清晰描述需求,就能获得可用代码。具体步骤如下:

步骤1:打开VBA编辑器,插入代码

1. 在中望CAD绘图界面,按快捷键Alt+F11,直接打开VBA编辑器;

2. 右键左侧工程面板的根节点(若未显示工程面板,可按 Ctrl+R调出)  → 选择“插入”“模块”

3. 将上文的VBA代码完整复制,粘贴到右侧的代码编辑区(确保无遗漏字符)。

步骤2:保存VBA文件,避免代码丢失

1. 按快捷键Ctrl+S ,弹出 “另存为”对话框;

2. 选择文件保存路径(建议存在CAD安装目录下或个人常用的“CAD工具”文件夹,避免误删);

3. 文件名设为BgColorSwitch.zvb(便于后续识别,后缀 .zvb是中望CAD VBA文件专用格式),点击“保存”。

步骤3:加载文件并设为启动项(避免每次重启CAD都加载)

1. 回到中望CAD绘图界面,在命令行输入APPLOAD ,按回车打开“加载应用程序文件”对话框;

2. 点击对话框下方的“添加”按钮,选择刚才保存的BgColorSwitch.zvb 文件,点击“打开”,点击“加载”

3. 点击“添加到启动组”,将其加入“启动组”——下次重启CAD时,文件会自动加载,无需重复操作。

步骤4:自定义快捷键(绑定“一键切换”功能)

1. 在命令行输入CUI ,按回车打开“ 自定义用户界面”对话框;

2. 左侧“命令列表”区域点击“创建新命令”按钮(五角星),在右侧设置参数:

● “名称” :输入“一键切换背景” (自定义名称,便于识别);

●“宏” :粘贴代码^C^Cvbarun BgColorSwitch.zvb!ToggleBackgroundColor(作用是触发VBA中的“切换背景色”函数,注意文件名和函数名需与前文一致);

3. 右侧切换到“键盘快捷键”选项卡,在“快捷键”列表中找到常用快捷键(如Ctrl+T ,建议选未被占 用的组合键),选中后点击“指定” ,将新命令绑定到该快捷键。

步骤5:测试效果,确认功能可用

回到中望CAD绘图界面,按刚设置的快捷键(如 Ctrl+T ):

● 若当前为黑色背景,会弹出“背景色已设置为白色”提示,背景同步切换;

● 若当前为白色背景,会弹出“背景色已设置为黑色”提示,实现双向切换——至此,一键切换功能配置成功!

备注:由于代码中添加了消息提示,最后测试通过后,可以把消息提示注释掉,见附件的源代码文件,可以通过加载代码后,运行VBAIDE命令查看源代码并进行注释。 

Part 06
总结

零基础也能做“CAD小开发”

这个案例的核心不是教你写VBA代码,而是传递一种思路:

面对CAD中的高频小麻烦,即使没有开发基础,也能通过“AI生成适配代码 + 简单配置”的方式解决。后 续遇到类似需求(如一键插入标准件、批量修改标注样式),都可以按以下流程尝试:

1. 明确需求(比如“一键插入M10螺栓图块,自动匹配图层” );

2. 向AI提需求时,补充“ 中望CAD”“VBA”“零基础可用”等关键词,获取精准代码;

3. 按本文步骤配置(VBA保存→加载→绑定快捷键)。

用这种方式,让CAD更贴合自己的使用习惯,真正实现“效率提升”!如果您也在工作中遇到一些小的需求,赶紧试试这个方式,可以在评论区共享您完成的小工具小插件,也可以提出您的需求,我们一起看看如何实现。

19 条评论 A文章作者 M管理员
  1. Dinsty_

    👍

  2. 郑煜山

    话说可以用python写宏吗?很多时候因为描述的不清楚,ai给出的东西还需要很多微调,python还懂点基本语法,可以自己调一调;vba就只能不断和ai不断battle,不可控性就太强了

  3. q

    💪

  4. iNwl

    👍👍👍👍这种内容多来点,想学开发的小萌新真的恒需要😁

  5. 风无影

    能不能内置这个功能呢?

  6. 小珊瑚

    👍

  7. 李晋煜

    学习了,谢谢

  8. 独孤烟海

    有了AI确实一些小插件简单多了,但是还是得说机器听得懂的话,要描述准确。

    • 郑煜山

      而且还存在幻觉,时不时就搞出一些不存在的函数、方法,验证半天发现纯扯呢

    • 独孤烟海

      还好吧,不过我做的一些都不是太复杂的,AI出来的不完全对,但可以通过反馈问题让他一遍遍的改进代码。一遍全对的也有,但都是简单的且描述比较清楚的。

  9. 海

    😁

  10. 汪

    👍

  11. 龙抬头

    学习了

购物车
优惠劵
今日签到
有新私信 私信列表
搜索
复制链接
微信扫码
已复制到剪贴板