Добрый день.
Создаю DirectShape со своими мешами при помощи TesselatedShapeBuilder.
Код примерно следующий
List<XYZ> loopVertices = new List<XYZ>(3);
TessellatedShapeBuilder builder = new TessellatedShapeBuilder();
builder.OpenConnectedFaceSet(false);
for (int i = 0; i < mesh.Index.Count; i+=3) {
CSVector3 meshVrtx1 = mesh.Vertices[mesh.Index[i]].Position;
CSVector3 meshVrtx2 = mesh.Vertices[mesh.Index[i + 1]].Position;
CSVector3 meshVrtx3 = mesh.Vertices[mesh.Index[i + 2]].Position;
XYZ vertex1 = new XYZ(meshVrtx1.x, meshVrtx1.y, meshVrtx1.z);
XYZ vertex2 = new XYZ(meshVrtx2.x, meshVrtx2.y, meshVrtx2.z);
XYZ vertex3 = new XYZ(meshVrtx3.x, meshVrtx3.y, meshVrtx3.z);
loopVertices.Add(vertex1);
loopVertices.Add(vertex2);
loopVertices.Add(vertex3);
builder.AddFace(new TessellatedFace(loopVertices, ElementId.InvalidElementId));
loopVertices.Clear();
}
builder.CloseConnectedFaceSet();
builder.Target = TessellatedShapeBuilderTarget.Solid;
builder.Fallback = TessellatedShapeBuilderFallback.Abort;
builder.Build();
Для некоторых мешей всё проходит хорошо.
Для большинства же возникает исключение Could not create consistent vertex list.
Насколько я знаю, существует ограничение на минимальное расстояние между вершинами в 0.0026 фута. Сначала я подумал, что дело в этом.
Но, даже если я увеличиваю меш в 1000 раз ситуация не меняется. Подскажите, в чем может быть причина?
Спасибо за ответы.