【问题标题】:Find difference between two 3D shapes using devDept Eyeshot使用 devDept Eyeshot 查找两个 3D 形状之间的差异
【发布时间】:2016-10-29 20:27:05
【问题描述】:

在 devDept Eyeshot 中加载的两个 3D 形状中找出差异的最佳算法是什么?

我已经在 Eyeshot 中从 CAD 文件中加载了这两个形状,并希望突出显示形状的差异。

提前致谢。

【问题讨论】:

  • 您比较的是哪些对象类型?网格、实体、曲面还是 Solid3D?
  • 嗨 @Alberto 这是一个网格
  • 您希望如何显示差异?布尔结果、颜色图或其他什么?
  • 这个问题还有效吗?我有几个想法,但与 abenci 类似,需要更多描述您想要的输出是什么/看起来像什么。

标签: c# wpf 3d cad eyeshot


【解决方案1】:

所以,这里有一个快速的方法。 (至少我认为你要求的是) 此函数将获取meshA 并从中减去meshB 的任何重叠体积。 它返回一个网格列表,因为可以通过减去一个体积来将网格 A“切碎”成多个部分。我认为差异功能会按体积将片段组织到列表中,但我不是 100% 的。

public List<Mesh> solidSubtract(ref Mesh meshA, ref Mesh meshB)
{
  List<Mesh> subtractedMeshes = new List<Mesh>();
  Solid solidA = meshA.ConvertToSolid();
  Solid solidB = meshB.ConvertToSolid();
  Solid[] difference = Solid.Difference(solidA, solidB);
  foreach (Solid sld in difference)
  {
    subtractedMeshes.Add(sld.ConvertToMesh());
  }
  return subtractedMeshes;
}

【讨论】:

    猜你喜欢
    • 2015-03-19
    • 1970-01-01
    • 2014-02-02
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    相关资源
    最近更新 更多