vb.net - 如何在 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 中将两个实体(或更多)组合成一个实体,这样当我应用旋转(平移等)时,每个实体都会得到这种变换。固体可以广泛分离。就像我想组合成一个固体的两个锥体(在代码中)。我无法这样做,并提前致谢。
解决方案
您需要使用块。块是一个实体,它本身没有视觉表示,但它包含一个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,但它应该非常接近。不过,类名和操作顺序是正确的。
推荐阅读
- class - 在创建新实例时销毁类实例
- javascript - 通过 props 发送未定义的组件,因为它是在数据库查询结束之前挂载的
- python - ModuleNotFoundError:没有名为“tools.nnwrap”的模块(Windows)
- ruby-on-rails - 为什么 ActiveRecord::Store.store_accessor 在查询时不反映生成的 SQL
- php - 在输入中保存可编辑文本并保存到数据库中
- flutter - 放置手时的颤动手势
- javascript - 如何使用 javascript 创建 React Linkify
- intellij-idea - 在 Intelij IDEA 中使用 Cntrl + Z 折叠/展开代码部分
- sql - 如何在 Google Big Query 中插入 STRUCT 值?
- java - 如何读取一行并将其拆分以保存它?对第二个文件做同样的事情