天天看点

VectorDraw入门必备手册(十一):如何创建一个复制模型视图中显示的3D视图的视口?

    VectorDraw Developer Framework(VDF)是一个用于应用程序可视化的图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。   

    VectorDraw web library (javascript)不仅能打开CAD图纸,而且能显示任何支持HTML5标准平台上的通用矢量对象,如Windows,安卓,iOS和Linux。无需任何安装,VectorDraw web library (javascript)就可以运行在任何支持canvas标签和Javascript的主流浏览器(Chrome, Firefox, Safari, Opera, Dolphin, Boat等等)中。这意味着可以用DXF,DWG,DGN,SKP(Google的Sketchup),VDML等多种格式在任何台式、平板电脑,智能手机和便携式笔记本上展现出你的业务。

问:

    我想在一个旋转的3D图像的布局中创建一个视口。我希望新的视口能够准确显示模型视图中的内容,具有相同的旋转,目标点,范围等。您是否在其中一个示例应用程序或其他地方有一些代码可以完成我正在寻找的内容?这是创建一个复制模型视图中显示的3D视图的视口。

答:

    您可以使用vdView对象,它可以将布局或模型的所有视图属性复制到另一个布局/视频。

    请参阅以下代码:

private void button3_Click(object sender, EventArgs e)
{
    vdDocument doc = vdFramedControl1.BaseControl.ActiveDocument; 
    vdLayout lay = new vdLayout(doc, "BBB");
    doc.LayOuts.AddItem(lay);
    vdViewport vp = new vdViewport(); vp.SetUnRegisterDocument(doc); 
    vp.setDocumentDefaults();
    vp.Height = doc.Model.ViewSize / doc.Model.PixelSize;
    vp.Width = vdFramedControl1.BaseControl.Width;
    vp.Center = new gPoint(vp.Width/2.0, vp.Height / 2.0d);
 
    vdView viewTMP = new vdView(doc, "mYvIEW1");
    viewTMP.SetFromLayout(doc.Model);
    vp.SetFromView(viewTMP);// viewTMP is not necessary to be 
         //  added to the document in such occasions 
 
    // or by hard code, without using the vdView object like :
    //vp.World2ViewMatrix = new Matrix(doc.Model.World2ViewMatrix);
    //vp.ViewCenter = new gPoint(doc.Model.ViewCenter);
    //vp.ViewSize = doc.Model.ViewSize;
    //vp.RenderMode = doc.Model.RenderMode;
    // set also PerspectiveMod,LensAngle, FocalLength etc if you use them
    
    lay.Entities.AddItem(vp);
    if (vp.Height < vp.Width) lay.Printer.LandScape = true;
    lay.Printer.PrintExtents(); lay.Printer.PrintScaleToFit(); 
    lay.Printer.Update(); lay.Update();
    doc.ActiveLayOut = lay;
    doc.CommandAction.Zoom("E", 0, 0);
}

Send comments o
           

    以上回答希望对您使用VectorDraw产品有帮助,如果您有其他的疑问或者建议可以在评论区留言,我们会及时处理。