首页 > 解决方案 > 如何在 Eyeshot (VB.net) 中组合两个或多个固体?

问题描述

  Dim ACone As New Solid
            ACone = Solid.CreateCone(5, 5, New Point3D(0, 0, 0), New Point3D(0, 0, 50), 20)
            DisplayEyeshotBlock.Entities.Add(ACone)

            Dim BCone As New Solid
            BCone = Solid.CreateCone(5, 5, New Point3D(50, 0, 0), New Point3D(50, 0, 50), 20)
            DisplayEyeshotBlock.Entities.Add(BCone)

我想在 devDept Eyeshot 中将两个实体(或更多)组合成一个实体,这样当我应用旋转(平移等)时,每个实体都会得到这种变换。固体可以广泛分离。就像我想组合成一个固体的两个锥体(在代码中)。我无法这样做,并提前致谢。

标签: vb.neteyeshot

解决方案


您需要使用块。块是一个实体,它本身没有视觉表示,但它包含一个List<Entity>可见对象。

使用您的代码的简单方法首先创建您的 2 个实体

Dim ACone As New Solid
ACone = Solid.CreateCone(5, 5, New Point3D(0, 0, 0), New Point3D(0, 0, 50), 20)

Dim BCone As New Solid
BCone = Solid.CreateCone(5, 5, New Point3D(50, 0, 0), New Point3D(50, 0, 50), 20)

然后创建一个块对象来保存你的 2 个实体

Dim singleBlock As New Block("name")
singleBlock.Entities.Add(ACone)
singleBlock.Entities.Add(BCone)
MyViewport.Blocks.Add(singleBlock)

现在为了使用这个块,你不能直接将它添加到视口中。为此,您需要一个BlockReference指向您刚刚添加的块的 which。

Dim blockRef As New BlockReference("name")
MyViewport.Entities.Add(blockRef);

该块参考对象是您要在世界范围内移动/旋转(应用变换)的对象

代码可能不在工作状态,因为我很少使用 VB.Net,但它应该非常接近。不过,类名和操作顺序是正确的。


推荐阅读