Я пытаюсь найти вершинные точки прогнутой полилинии. Итак, у меня есть твердое тело, которое было создано путем подметания круга вдоль трехмерной полилинии. Это выглядит так: image of sweeped solidПолучение точек вершины сущности в AutoCAD
Googeling весь пятница на прошлой неделе, я думаю, что мне нужно поиграть с частью субовости. Я узнал, как изменить цвет краев сущности, например, но не мог для christs не узнать, как получить доступ к геометрическим
Это то, что я пробовал до сих пор, но, как я заметил прямо внизу я вроде потерял там:
[CommandMethod("SubEntExample")]
public void SubEntExample()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
PromptEntityOptions peo = new PromptEntityOptions("\nSelect a 3D solid: ");
peo.SetRejectMessage("\nInvalid selection...");
peo.AddAllowedClass(typeof(Solid3d), true);
PromptEntityResult per = ed.GetEntity(peo);
if (per.Status != PromptStatus.OK)
return;
using (Transaction Tx = db.TransactionManager.StartTransaction())
{
Solid3d solid = Tx.GetObject(per.ObjectId, OpenMode.ForWrite) as Solid3d;
ObjectId[] ids = new ObjectId[] { per.ObjectId };
FullSubentityPath path = new FullSubentityPath(ids, new SubentityId(SubentityType.Null, IntPtr.Zero));
List<SubentityId> subEntIds = new List<SubentityId>();
using (Autodesk.AutoCAD.BoundaryRepresentation.Brep brep =
new Autodesk.AutoCAD.BoundaryRepresentation.Brep(path))
{
foreach (Autodesk.AutoCAD.BoundaryRepresentation.Edge edge in brep.Edges)
{
subEntIds.Add(edge.SubentityPath.SubentId);
}
}
foreach (SubentityId subentId in subEntIds)
{
*** here i am lost ***
}
Tx.Commit();
}
}
Как насчет экспорта объекта в DXF и просмотра макияжа данных в текстовом файле? Это может объяснить вам механики субобъектов. У меня нет конкретных знаний об этом деле, но если они «id», то вы бы хотели, чтобы «открыть» эти идентификаторы? Они возвращают подходящие объекты, которые предоставляют данные координат. Но это догадка. Глядя на DXF может показать вам больше информации. Возможно, вы могли бы добавить его к своему вопросу. –