af6adc390e
- BasePlane (XOY/XOZ/YOZ) + маппинг в Obj3dType - PartModeler (API5 ksPart): OpenSketch/AddLine/AddCircle/AddRectangle/CloseSketch, Extrude (boss/cut, blind/throughAll), Rebuild; реестр эскизов и операций по id - tests: построение цилиндра со сквозным отверстием + снимок (визуально проверено) Полный цикл "эскиз -> выдавливание -> эскиз -> сквозной вырез -> снимок" работает. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
31 lines
982 B
C#
31 lines
982 B
C#
using Kompas6Constants3D;
|
|
|
|
namespace Kompas.Mcp.Core.Modeling;
|
|
|
|
/// <summary>Базовая координатная плоскость для эскиза.</summary>
|
|
public enum BasePlane
|
|
{
|
|
XOY,
|
|
XOZ,
|
|
YOZ,
|
|
}
|
|
|
|
public static class BasePlanes
|
|
{
|
|
public static Obj3dType ToObj3dType(BasePlane plane) => plane switch
|
|
{
|
|
BasePlane.XOY => Obj3dType.o3d_planeXOY,
|
|
BasePlane.XOZ => Obj3dType.o3d_planeXOZ,
|
|
BasePlane.YOZ => Obj3dType.o3d_planeYOZ,
|
|
_ => throw new ArgumentOutOfRangeException(nameof(plane), plane, "Неизвестная плоскость."),
|
|
};
|
|
|
|
public static BasePlane Parse(string value) => value.Trim().ToUpperInvariant() switch
|
|
{
|
|
"XOY" or "XY" => BasePlane.XOY,
|
|
"XOZ" or "XZ" => BasePlane.XOZ,
|
|
"YOZ" or "YZ" => BasePlane.YOZ,
|
|
_ => throw new ArgumentException($"Неизвестная плоскость '{value}'. Допустимо: XOY, XOZ, YOZ.", nameof(value)),
|
|
};
|
|
}
|