翻译|使用教程|编辑:黄竹雯|2018-11-15 15:38:56.000|阅读 317 次
概述:本教程整理了VectorDraw 最常见问题,教程整理的很齐全,非常适合新手学习,希望对大家有一定的帮助!
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
VectorDraw Developer Framework(VDF)是一个用于应用程序可视化的图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。
【VectorDraw Developer Framework最新版下载】
VectorDraw web library (javascript)是一个矢量图形库。VectorDraw web library (javascript)不仅能打开CAD图纸,而且能显示任何支持HTML5标准平台上的通用矢量对象,如Windows,安卓,iOS和Linux。无需任何安装,VectorDraw web library (javascript)就可以运行在任何支持canvas标签和Javascript的主流浏览器(Chrome, Firefox, Safari, Opera, Dolphin, Boat等等)中。
【VectorDraw web library (javascript)最新版下载】
一. 在命令(或操作)处于活动状态时显示实体的工具提示
问:我想在命令(或动作)处于活动状态时显示光标下的实体工具提示。我怎样才能做到这一点 ?
答:默认情况下,在GetUserPoint等操作或活动命令期间无法显示工具提示。这也是着名的CAD应用程序的默认行为,如果将其添加到VDF默认行为,则可能会出现两个问题。
为此,我们无法在组件中添加此行为。如果您愿意,可以使用ActiveDocument.ActionLayout.GetEntifromPoint(使用布尔值更快的响应)或GetTooltipFigure,并获取光标下方图形的工具提示文本,并将其设置为文档的ToolTipText属性。就像是:
private void Form1_Load(object sender, EventArgs e)
{
vdFramedControl.BaseControl.ActiveDocument.EnableToolTips = true;
vdFramedControl.BaseControl.MouseMove += new MouseEventHandler(BaseControl_MouseMove);
}
void BaseControl_MouseMove(object sender, MouseEventArgs e)
{
bool allobjectsAresearched = false;
vdFigure fig = vdFramedControl.BaseControl.ActiveDocument.ActionLayout.GetToolTipFigure(e.Location,vdFramedControl.BaseControl.ActiveDocument.ActiveActionRender.GlobalProperties.PickSize,true,out allobjectsAresearched);
vdFramedControl.BaseControl.ActiveDocument.ToolTipText = "";
if(fig == null) return;
vdFramedControl.BaseControl.ActiveDocument.ToolTipText = fig.ToolTip;
}
二. 在垂直于线的平面中的线起点和终点创建2个圆
问:如何在垂直于线的平面中的线起点和终点创建2个圆?
答:试试如下代码:
private void button3_Click(object sender, EventArgs e)
{
//create a line
VectorDraw.Professional.vdFigures.vdLine line = new VectorDraw.Professional.vdFigures.vdLine();
line.SetUnRegisterDocument(vdFramedControl.BaseControl.ActiveDocument);
line.setDocumentDefaults();
line.StartPoint = new VectorDraw.Geometry.gPoint(2, 3, 4);
line.EndPoint = new VectorDraw.Geometry.gPoint(7, 8, 2);
line.PenColor.SystemColor = Color.Red;
line.PenWidth = .1;
vdFramedControl.BaseControl.ActiveDocument.ActiveLayOut.Entities.AddItem(line);
//create a circle at the StartPoin of the previous line
VectorDraw.Professional.vdFigures.vdCircle circle_SP = new VectorDraw.Professional.vdFigures.vdCircle();
circle_SP.SetUnRegisterDocument(vdFramedControl.BaseControl.ActiveDocument);
circle_SP.setDocumentDefaults();
circle_SP.Center = new VectorDraw.Geometry.gPoint(line.StartPoint);
circle_SP.Radius = (double)1.0;
//Set the circle's Extrusion vector to have the direction StartPoint ---> EndPoint
circle_SP.ExtrusionVector = new VectorDraw.Geometry.Vector(new VectorDraw.Geometry.gPoint(line.StartPoint), new VectorDraw.Geometry.gPoint(line.EndPoint));
vdFramedControl.BaseControl.ActiveDocument.ActiveLayOut.Entities.AddItem(circle_SP);
//create a circle at the EndPoint of the previous line
VectorDraw.Professional.vdFigures.vdCircle circle_EP = new VectorDraw.Professional.vdFigures.vdCircle();
circle_EP.SetUnRegisterDocument(vdFramedControl.BaseControl.ActiveDocument);
circle_EP.setDocumentDefaults();
circle_EP.Center = new VectorDraw.Geometry.gPoint(line.EndPoint);
circle_EP.Radius = (double)1.0;
//Set the circle's Extrusion vector to have the direction EndPoint ---> StartPoint
circle_EP.ExtrusionVector = new VectorDraw.Geometry.Vector(new VectorDraw.Geometry.gPoint(line.EndPoint), new VectorDraw.Geometry.gPoint(line.StartPoint));
vdFramedControl.BaseControl.ActiveDocument.ActiveLayOut.Entities.AddItem(circle_EP);
vdFramedControl.BaseControl.ActiveDocument.CommandAction.Zoom("E", null, null);
vdFramedControl.BaseControl.ActiveDocument.CommandAction.Zoom("S", (double)0.8, null);
MessageBox.Show("Circles with the right extrusion VectorDraw created. Adding some thickness to the circles just to show the results");
circle_SP.Thickness = 0.8;
circle_EP.Thickness = 0.8;
vdFramedControl.BaseControl.ActiveDocument.Redraw(false);
}
三. 显示框架控件,如Scrollable或类似vdBase控件
问:我如何使用vdFramed控件但显示它像vdScrollable控件或类似vdBase控件?
答:您可以使用以下代码:
Private Sub btn_ShowAsFramed_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ShowAsFramed.Click
'//Show PropertyGrid and Status Bar
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.CommandLine, True)
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.PropertyGrid, True)
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.StatusBar, True)
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.LayoutTab, True)
'//Show scrollbars
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.HorizodalScroll, True)
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.VericalScroll, True)
'//Show the Layout Tab
VdFramedControl1.ScrollableControl.SetShowLayoutTab(True)
'//if you set the vdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.StatusBar ,true)
'// then you show some "features" like :
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.ProgressBar, True)
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.SnapButton, True)
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.Menu, True)
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.GridButton, True)
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.Paper, True)
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.OrthoButton, True)
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.OsnapButton, True)
'// show the menu
VdFramedControl1.ShowMenu(True)
'// In the vdFramed's PropertyGrid the selection is show. This code below finds the selection and
'// set this to be shown in the Property Grid
Dim propertygrid As vdPropertyGrid.vdPropertyGrid
propertygrid = VdFramedControl1.vdGrid
propertygrid.SelectedObject = VdFramedControl1.BaseControl.ActiveDocument ' set the default value
'// Here we find the name of the Grip Selection
Dim gripset As VectorDraw.Professional.vdCollections.vdSelection
Dim selsetname As String = "VDGRIPSET_" + VdFramedControl1.BaseControl.ActiveDocument.ActiveLayOut.Handle.ToStringValue()
If Not VdFramedControl1.BaseControl.ActiveDocument.ActiveLayOut.ActiveViewPort Is Nothing Then
selsetname = selsetname + VdFramedControl1.BaseControl.ActiveDocument.ActiveLayOut.ActiveViewPort.Handle.ToStringValue()
End If
'// This is the Grip Selections that is show in the PropertyGrid
gripset = VdFramedControl1.BaseControl.ActiveDocument.ActiveLayOut.Document.Selections.FindName(selsetname)
If Not (gripset Is Nothing) Then
If gripset.Count > 0 Then propertygrid.SelectedObject = gripset
End If
End Sub
Private Sub btn_ShowAsScrollable_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ShowAsScrollable.Click
'//Hide PropertyGrid, CommandLine and Status Bar
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.CommandLine, False)
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.PropertyGrid, False)
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.StatusBar, False)
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.LayoutTab, True)
'//Show scrollbars
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.HorizodalScroll, True)
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.VericalScroll, True)
'//Show the Layout Tab
VdFramedControl1.ScrollableControl.SetShowLayoutTab(True)
'//if you set the vdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.StatusBar ,true)
'// then you can hide some "features" like :
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.ProgressBar, False)
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.SnapButton, False)
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.Menu, False
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.GridButton, False)
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.Paper, False)
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.OrthoButton, False)
VdFramedControl1.SetStatusBarOption(vdControls.vdFramedControl.StatusBarOptions.OsnapButton, False)
'// Hide the Menu
VdFramedControl1.ShowMenu(False)
End Sub
Private Sub btn_ShowAsBase_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ShowAsBase.Click
'//Hide PropertyGrid, commandLine, Layout tab and Status Bar
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.CommandLine, False)
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.PropertyGrid, False)
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.StatusBar, False)
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.LayoutTab, False)
'//Hide scrollbars
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.HorizodalScroll, False)
VdFramedControl1.SetLayoutStyle(vdControls.vdFramedControl.LayoutStyle.VericalScroll, False)
'//Hide the Layout Tab
VdFramedControl1.ScrollableControl.SetShowLayoutTab(False)
VdFramedControl1.ScrollableControl.SetShowVscroll(False)
VdFramedControl1.ScrollableControl.SetShowVscroll(False)
End Sub
四. Vertexes的IsClockWise属性
问:可以在顶点中添加IsClockWise属性吗?凸起也不会在“顶点区域”中计算。
答:“顶点区域”仅针对2D点计算,没有凸起。此外,无法应用IsClockWise,因为顶点不像vdPolyline那样具有ECS矩阵。因此,为了获得Vertexes的区域,如果是时钟方式,则必须使用如下代码:
VectorDraw.Professional.vdFigures.vdPolyline poly = new VectorDraw.Professional.vdFigures.vdPolyline(); poly.SetUnRegisterDocument(vdFramedControl.BaseControl.ActiveDocument); poly.SetDocumentDefaults(); poly.VertexList = new VectorDraw.Geometry.Vertexes(myVertexes); poly.Update(); double myArea = poly.Area(); bool isClockW = poly.IsClockWise();
未完待续......
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn