Move 38 files from root directory into organized subfolders: - Enums/ (7 files): StatusType, ApplicationType, DrawingType, etc. - Geometry/ (5 files): Vector, Box, Size, Spacing, Node - Models/ (15 files): Nest, Plate, Part, Program, Report, etc. - Utilities/ (7 files): MathHelper, Tolerance, ZipHelper, etc. - Extensions/ (2 files): PartListExtensions, PlateListExtensions - Interfaces/ (1 file): IMovable Update namespaces to follow folder hierarchy (e.g., PepLib.Models). Add GlobalUsings.cs for internal backward compatibility. Update Codes/ and IO/ files with new using statements. Update PepApi.Core consumers to reference new namespaces. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
77 lines
2.1 KiB
C#
77 lines
2.1 KiB
C#
using PepLib.Enums;
|
|
using PepLib.Geometry;
|
|
|
|
namespace PepLib.Codes
|
|
{
|
|
public class CircularMove : Motion
|
|
{
|
|
public CircularMove()
|
|
{
|
|
}
|
|
|
|
public CircularMove(Vector endPoint, Vector centerPoint, RotationType rotation = RotationType.CCW)
|
|
{
|
|
EndPoint = endPoint;
|
|
CenterPoint = centerPoint;
|
|
Rotation = rotation;
|
|
}
|
|
|
|
public CircularMove(double x, double y, double i, double j, RotationType rotation = RotationType.CCW)
|
|
{
|
|
EndPoint = new Vector(x, y);
|
|
CenterPoint = new Vector(i, j);
|
|
Rotation = rotation;
|
|
}
|
|
|
|
public RotationType Rotation { get; set; }
|
|
|
|
public EntityType Type { get; set; }
|
|
|
|
public Vector CenterPoint { get; set; }
|
|
|
|
public override void Rotate(double angle)
|
|
{
|
|
base.Rotate(angle);
|
|
CenterPoint = CenterPoint.Rotate(angle);
|
|
}
|
|
|
|
public override void Rotate(double angle, Vector origin)
|
|
{
|
|
base.Rotate(angle, origin);
|
|
CenterPoint = CenterPoint.Rotate(angle, origin);
|
|
}
|
|
|
|
public override void Offset(double x, double y)
|
|
{
|
|
base.Offset(x, y);
|
|
CenterPoint = new Vector(CenterPoint.X + x, CenterPoint.Y + y);
|
|
}
|
|
|
|
public override void Offset(Vector voffset)
|
|
{
|
|
base.Offset(voffset);
|
|
CenterPoint += voffset;
|
|
}
|
|
|
|
public override CodeType CodeType()
|
|
{
|
|
return Codes.CodeType.CircularMove;
|
|
}
|
|
|
|
public override ICode Clone()
|
|
{
|
|
return new CircularMove(EndPoint, CenterPoint, Rotation)
|
|
{
|
|
Type = Type
|
|
};
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return Rotation == RotationType.CW ?
|
|
string.Format("G02 X{0} Y{1} I{2} J{3}", EndPoint.X, EndPoint.Y, CenterPoint.X, CenterPoint.Y) :
|
|
string.Format("G03 X{0} Y{1} I{2} J{3}", EndPoint.X, EndPoint.Y, CenterPoint.X, CenterPoint.Y);
|
|
}
|
|
}
|
|
}
|