Files
PepApi.Core/PepLib.Core/Drawing.cs
AJ 7c5b4ded5f chore(PepLib.Core): remove unused using directives and clean up formatting
Remove unnecessary System, System.Collections.Generic, System.IO, and
System.Linq using directives that were flagged by IDE analyzers. Also
includes minor whitespace and code style normalization.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 07:52:17 -05:00

280 lines
6.4 KiB
C#

using PepLib.Codes;
using PepLib.IO;
namespace PepLib
{
public class Drawing
{
public DrawingInfo Info { get; set; }
public List<Loop> Loops { get; set; }
public Drawing()
{
Loops = new List<Loop>();
}
public static Drawing Load(string nestfile)
{
var reader = new DrawingReader();
reader.Read(nestfile);
return reader.Drawing;
}
public static Drawing Load(Stream stream)
{
var reader = new DrawingReader();
reader.Read(stream);
return reader.Drawing;
}
public void ResolveLoops()
{
for (int i = 0; i < Loops.Count; ++i)
{
var loop = Loops[i];
ResolveLoops(loop);
}
}
private void ResolveLoops(Program pgm)
{
for (int i = 0; i < pgm.Count; ++i)
{
var code = pgm[i];
if (code.CodeType() != CodeType.SubProgramCall)
continue;
var subpgmcall = (SubProgramCall)code;
var loop = GetLoop(subpgmcall.LoopId);
if (loop == null)
throw new Exception("Loop not found");
subpgmcall.Loop = loop;
}
}
public Loop GetLoop(int id)
{
string name = GetLoopName(id);
return GetLoop(name);
}
private Loop GetLoop(string name)
{
for (int i = 0; i < Loops.Count; ++i)
{
if (Loops[i].Name == name)
return Loops[i];
}
return null;
}
private string GetLoopName(int loopId)
{
return string.Format("{0}.loop-{1}", Info.Name, loopId.ToString().PadLeft(3, '0'));
}
public static bool TryLoad(string nestfile, out Drawing drawing)
{
try
{
drawing = Load(nestfile);
}
catch (Exception)
{
drawing = null;
return false;
}
return true;
}
public static bool TryLoad(Stream stream, out Drawing drawing)
{
try
{
drawing = Load(stream);
}
catch (Exception)
{
drawing = null;
return false;
}
return true;
}
#region DrawingInfo wrapper properties
public string Name
{
get { return Info.Name; }
set { Info.Name = value; }
}
public string Revision
{
get { return Info.Revision; }
set { Info.Revision = value; }
}
public string Customer
{
get { return Info.Customer; }
set { Info.Customer = value; }
}
public string Description
{
get { return Info.Description; }
set { Info.Description = value; }
}
public string Comment
{
get { return Info.Comment; }
set { Info.Comment = value; }
}
public string Notes
{
get { return Info.Notes; }
set { Info.Notes = value; }
}
public string Source
{
get { return Info.Source; }
set { Info.Source = value; }
}
public DateTime CreationDate
{
get { return Info.CreationDate; }
set { Info.CreationDate = value; }
}
public DateTime LastModifiedDate
{
get { return Info.LastModifiedDate; }
set { Info.LastModifiedDate = value; }
}
public DateTime LastReferenceDate
{
get { return Info.LastReferenceDate; }
set { Info.LastReferenceDate = value; }
}
public int MachineNumber
{
get { return Info.MachineNumber; }
set { Info.MachineNumber = value; }
}
public ApplicationType Application
{
get { return Info.Application; }
set { Info.Application = value; }
}
public int MaterialNumber
{
get { return Info.MaterialNumber; }
set { Info.MaterialNumber = value; }
}
public string MaterialGrade
{
get { return Info.MaterialGrade; }
set { Info.MaterialGrade = value; }
}
public string Specification
{
get { return Info.Specification; }
set { Info.Specification = value; }
}
public string Hardness
{
get { return Info.Hardness; }
set { Info.Hardness = value; }
}
public GrainType Grain
{
get { return Info.Grain; }
set { Info.Grain = value; }
}
public string ProgrammedBy
{
get { return Info.ProgrammedBy; }
set { Info.ProgrammedBy = value; }
}
public string CreatedBy
{
get { return Info.CreatedBy; }
set { Info.CreatedBy = value; }
}
public string Errors
{
get { return Info.Errors; }
set { Info.Errors = value; }
}
public DrawingType Type
{
get { return Info.Type; }
set { Info.Type = value; }
}
public string UserDefined1
{
get { return Info.UserDefined1; }
set { Info.UserDefined1 = value; }
}
public string UserDefined2
{
get { return Info.UserDefined2; }
set { Info.UserDefined2 = value; }
}
public string UserDefined3
{
get { return Info.UserDefined3; }
set { Info.UserDefined3 = value; }
}
public string UserDefined4
{
get { return Info.UserDefined4; }
set { Info.UserDefined4 = value; }
}
public string UserDefined5
{
get { return Info.UserDefined5; }
set { Info.UserDefined5 = value; }
}
public string UserDefined6
{
get { return Info.UserDefined6; }
set { Info.UserDefined6 = value; }
}
#endregion
}
}