Я пытаюсь создать навигационную сетку в autodesk naviswork с помощью Eyeshot.
преобразовать вершины и IndexTriangle в треугольники вершин после создания твердого тела с помощью Solid.FromTriangles()
.
var solidList = new List();
var Solid = Solid.FromTriangles(item.vertices, item.triangles);
но я подумал, что это не работает с логическими операторами.
поэтому я хочу извлечь регион для использования логических операторов.
как я могу извлечь область в сетку или твердое тело (или треугольники вершин)?
Сделать это очень просто. Вы должны убедиться, что стихи вашего региона отсортированы, иначе у вас могут возникнуть проблемы с ним в будущем, но это простой параметр. Если форма не полая, вот пример:
// the verteses has to be in order and direction doesn't matter here
// i simply assume it's drawn on X/Y for the purpose of the example
public static Region CreateRegion(List<Point3D> verteses)
{
// create a curve list representing
var curves = new List<ICurve>();
// for each vertex we add them to the list
for (int i = 1; i < verteses.Count; i++)
{
curves.Add(new Line(verteses[i - 1], verteses[i]));
}
// close the region
curves.Add(new Line(verteses.Last(), verteses[0]));
return new Region(new CompositeCurve(curves, true), Plane.XY, true);
}
// this extrude in Z the region
public static Solid CreateSolidFromRegion(Region region, double extrudedHeight)
{
// extrude toward Z by the amount
return region.ExtrudeAsSolid(new Vector3D(0, 0, 1), extrudedHeight);
}
простой пример создания куба 10 на 10 на 10 из стихов (есть гораздо более простой способ сделать куб, но для простоты я сделаю куб)
// create the 4 verteses
var verteses = new List<Point3D>()
{
new Point3D(0, 0, 0),
new Point3D(10, 0, 0),
new Point3D(10, 10, 0),
new Point3D(0, 10, 0)
}
// create the region on the XY plane using the static method
var region = CreateRegion(verteses);
// extrude the region in Z by 10 units
var solid = CreateSolidFromRegion(region, 10d);
@Twily этот ответ, ответьте именно на то, что вы просили. Он создает твердое тело из области. Теперь создание полых тел - это совершенно другой вопрос, не имеющий ничего общего с регионами. Для этого вы создаете твердое тело, затем копируете его, немного уменьшаете масштаб и вычитаете.
спасибо за ответ и образец кода! но моя модель (форма) полая: ’(