显示设置
1 设置坐标轴样式
AnyCAD内置ViewCube和坐标轴两种显示样式,用以表示当前相机的方向。
csharp
CoordinateWidgetSetting setting = new CoordinateWidgetSetting(renderView.Viewer);
//设置为红绿蓝轴
setting.SetCoordinateWidget(EnumViewCoordinateType.Axis);
//显示为Cube
setting.SetCoordinateWidget(EnumViewCoordinateType.Cube);
// 不显示
setting.SetCoordinateWidget(EnumViewCoordinateType.Empty);
设置坐标轴的位置:
csharp
var settings = new CoordinateWidgetSetting(renderView.Viewer);
// 设置不到屏幕四个角中的一个 [0, 1, 2, 3]
settings.SetCoordinateWidgetPosition(1);
2 设置背景
2.1 设置背景色
设置背景色为黑色:
csharp
mRenderView.SetBackgroundColor(0, 0, 0, 0);
2.2 设置渐变背景色
设置过渡背景色,从上到下渐变
csharp
var topColor = new Vector3(1,0,0);
var bottomColor = new Vector3(0, 0, 1);
var background = new GradientColorBackground(topColor, bottomColor);
mRenderView.Viewer.SetBackground(background);
2.3 设置背景图片
使用一张图片作为背景
csharp
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Image files (*.png;*.jpg)|*.png;*.jpg";
if (dlg.ShowDialog() != DialogResult.OK)
return;
var texture = ImageTexture2D.Create(dlg.FileName);
var background = new ImageBackground(texture);
mRenderView.Viewer.SetBackground(background);
3 设置标准视图
系统内置了几种标准的视角,前后左右上下等
csharp
// 设置到默认的3D视角
mRenderView.SetStandardView(EnumStandardView.DefaultView);
4 屏幕截图
把屏幕截图保存为位图文件:
csharp
SaveFileDialog dialog = new SaveFileDialog();
dialog.Filter = "Bitmap (*.bmp)|*.bmp";
if (dialog.ShowDialog() != DialogResult.OK)
return;
var screenShot = mRenderView.CreateScreenShot();
screenShot.ToBGR();
screenShot.SaveFile(dialog.FileName);
5 显示过滤器
通过控件得到ViewContext对象,可以控制点、线、面的显示。
csharp
EnumShapeFilter filter = ...
viewContext.SetDisplayFilter(filter);
// 清空所有的,仅显示边
viewContext.ClearDisplayFilter();
viewContext.AddDisplayFilter(EnumShapeFilter.Edge);
//重置,显示全部
viewContext.ResetDisplayFilters();
6 设置工作平面网格
使用Viewer设置CoordinateGridWidget对象,以控制网格/全局坐标系显示
csharp
var grid = new PlanarGridWidget(10, 10, 10, 5);
viewer.SetCoordinateGrid(grid);
// 隐藏
viewer.ShowCoordinateGrid(false);
7 设置2D刻度尺
在屏幕周围显示刻度尺
csharp
RulerWidgetSetting setting = new RulerWidgetSetting(viewer);
setting.SetRulerWidget(EnumRulerWidgetType.Default);
8 通用颜色设置
在窗口创建之前,可以使用 ThemeColorTable 设置配色。 颜色支持保存为文件。
csharp
var tt = ThemeColorTable.Instance();
tt.SetColor(EnumColorItemName.FaceSelection, new Vector3(1, 0, 0)); // 设置选中颜色为红色
// 保存
tt.Save("d:/themeColor.txt");
// 加载
tt.Load("d:/themeColor.txt");
9 通用显示设置和保存
GraphicsSetting支持把显示设置保存为文件。
csharp
var gs = GraphicsSetting.Instance();
gs.SetFreeOrbit(true);
// 保存
gs.Save("d:/graphicsSetting.txt");
// 加载
gs.Load("d:/graphicsSetting.txt");