本教程整理了VectorDraw 最常见问题,教程整理的很齐全,非常适合新手学习,希望对大家有一定的帮助!
【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)最新版下载】
一. 在命令(或操作)处于活动状态时显示实体的工具提示
问:我想在命令(或动作)处于活动状态时显示光标下的实体工具提示。我怎样才能做到这一点 /p>
答:默认情况下,在GetUserPoint等操作或活动命令期间无法显示工具提示。这也是着名的CAD应用程序的默认行为,如果将其添加到VDF默认行为,则可能会出现两个问题。
- 隐藏工具提示区域下方的有用信息(端点,快照等),
- 作为Osnaps减慢性能,除了绘图数据库搜索必须在工具提示窗口内绘制的文本之外,还必须计算交叉点蚀刻。
为此,我们无法在组件中添加此行为。如果您愿意,可以使用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个圆/p>
答:试试如下代码:
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控件/p>
答:您可以使用以下代码:
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 IfEnd SubPrivate 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 SubPrivate 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();
未完待续……
标签:CAD工业4.0
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!