Class FreeFluting
- Namespace
- Hi.Milling.FluteContours
- Assembly
- HiMech.dll
A milling cutter's fluting in which every flute is defined individually — each flute carries its own contour, so spacing, helix and rake need not repeat. Use UniformFluting when one baseline contour repeated evenly around the cutter is enough.
public class FreeFluting : IFluting, IMakeXmlSource, IExpandToBox3d, IUpdateByContent, IClearCache, IGetFluteNum
- Inheritance
-
FreeFluting
- Implements
- Inherited Members
- Extension Methods
Remarks
This class provides a flexible way to manage multiple flute contours:
- Supports XML serialization for data persistence
- Allows arbitrary arrangement of flute contours
- Implements IFluting for standard fluting functionality
Constructors
FreeFluting()
Initializes a new instance of the FreeFluting class
public FreeFluting()
FreeFluting(XElement, string, IProgress<IMessage>, object[])
Initializes a new instance of the FreeFluting class from XML data
public FreeFluting(XElement src, string baseDirectory, IProgress<IMessage> progress, object[] res)
Parameters
srcXElementThe source XML element containing the fluting data
baseDirectorystringThe base directory for resolving relative paths
progressIProgress<IMessage>Progress reporter for diagnostic messages emitted during construction.
resobject[]Additional resources for initialization
Properties
ContourList
Gets or sets the list of flute contours in this fluting
public List<FluteContour> ContourList { get; set; }
Property Value
XName
Gets the XML name for serialization
public static string XName { get; }
Property Value
XmlSourceFile
public string XmlSourceFile { get; set; }
Property Value
Methods
ClearCache()
Clears any cached data held by the implementing object.
public void ClearCache()
Duplicate(IGetZrList)
Creates a duplicate of this fluting
public IFluting Duplicate(IGetZrList zrListHost)
Parameters
zrListHostIGetZrListThe host containing Z-R list information
Returns
- IFluting
A new instance of FreeFluting with the same properties
ExpandToBox3d(Box3d)
Expands the destination box. This function is usually used to compute the bounding box of elements.
public void ExpandToBox3d(Box3d dst)
Parameters
dstBox3dDestination box
GetFluteContourList()
Gets the list of flute contours that make up this fluting.
public List<FluteContour> GetFluteContourList()
Returns
- List<FluteContour>
A list of flute contours.
GetFluteNum()
Gets the number of flutes.
public int GetFluteNum()
Returns
MakeXmlSource(string, string, bool)
Creates an XML representation of the object. This method may also generate additional resources such as related files.
public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly)
Parameters
baseDirectorystringThe base directory for resolving relative paths
relFilestringThe relative file path for the XML source
exhibitionOnlyboolif true, the extended file creation is suppressed.
Returns
- XElement
An XML element representing the object's state
Remarks
For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied.
The baseDirectory is typically the folder at the nearest configuration file folder.
Since the folder can be moving with the configuration file.
Reg(XFactory)
Registers this type's deserializer with the given XFactory
(or Default when factory is
null). Idempotent.
public static void Reg(XFactory factory = null)
Parameters
factoryXFactory
UpdateByContent()
Updates the object based on its current content.
public void UpdateByContent()