在绘图中切换白色背景的VBA宏
作者:Eddy Alleman (EDAL Solutions)
{ width=450 }
介绍 在SolidWorks论坛上,有人问如何制作一个可以在默认绘图背景颜色和白色之间切换的宏。 目标是使在需要白色背景的图像中更容易进行截图。
这是一个简单的宏,可以实现这个目标。我还会解释你需要的基本按钮/快捷键/菜单。
如果你想在其他颜色之间切换,可以在下面的Color1和Color2常量中进行更改。
但是我们如何获得与我们想要的颜色对应的数字呢?
只需在SolidWorks选项中手动更改为你喜欢的颜色(在上面的图像中,我选择了一种更鲜明的黄色) 然后使用宏编辑器打开宏(菜单工具 > 宏 > 编辑或使用宏工具栏)。 如果立即窗口尚未可见,请打开它(CTRL + G) 运行宏(F5或绿色箭头按钮),在立即窗口中,你应该看到你选择的颜色用一个数字表示:
在代码中调整数字(Color2),当你运行宏时,背景颜色将在白色和你喜欢的颜色之间切换。
'这个宏在绘图的背景颜色之间切换两种颜色。
'它使用系统选项,所以你打开的每个绘图都会得到选择的颜色
'如果你想在白色背景上进行屏幕截图,这将非常有用。
'在这里,你可以设置你想要在两种颜色之间切换的颜色
Const Color1 As Variant = 16777215 '白色
Const Color2 As Variant = 14411494 '灰色(绘图背景的默认颜色)
Sub main()
try_:
On Error GoTo catch_
Dim swApp As Object
Set swApp = Application.SldWorks
Dim swModel As ModelDoc2
Set swModel = swApp.ActiveDoc
'在第一次使用时获取颜色(在立即窗口中查看 CTRL + G)
Dim Color As Variant
Color = swApp.GetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swSystemColorsDrawingsPaper)
Debug.Print "Color : " + CStr(Color)
If Color <> Color1 Then
Color = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swSystemColorsDrawingsPaper, Color1)
Else
Color = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swSystemColorsDrawingsPaper, Color2)
End If
swModel.ForceRebuild
GoTo finally_:
catch_:
Debug.Print "Error: " & Err.Number & ":" & Err.Source & ":" & Err.Description
finally_:
Debug.Print "FINISHED Toggle Drawing Background"
End Sub