Table of Contents

Class MillingCutter

Namespace
Hi.Milling.Cutters
Assembly
HiMech.dll

Represents a milling cutter with its geometric and physical properties.

public class MillingCutter : ICutter, IGetSweptable, IGetFletchBuckle, IMakeXmlSource, IAbstractNote, IAnchoredCollidableStem, IAnchoredCollidableNode, IAnchoredCollidableBased, IDisposable, IGetFluteHeight, IUpdateByContent, IClearCache, IGetThermalLayerList, ITopoDisplayee, IGetAsmb, IGetTopoIndex, IAnchoredDisplayee, IGetRootAnchor, IDisplayee, IExpandToBox3d, IGetAnchoredDisplayeeList, IDuplicate, IGetInitStickConvex, IVolumeRemover, ILinearAndRoundStlResolutionHost, IGetZrList
Inheritance
MillingCutter
Implements
Inherited Members
Extension Methods

Remarks

The cutter can be solid end or insert end. The term “Flute” is the edge part of the solid end cutter or the full insert of the insert end body. The term “Shank” is the full part except for edge part (i.e. Flute) of the solid end cutter. Shank and Flute compose the full cutter.

Constructors

MillingCutter()

Initializes a new instance of the MillingCutter class.

public MillingCutter()

MillingCutter(XElement, string, string, params object[])

Ctor.

public MillingCutter(XElement src, string baseDirectory, string relFile, params object[] res)

Parameters

src XElement

XML

baseDirectory string

Base directory path for resolving relative paths

relFile string

Relative file path

res object[]

Additional optional resources

Properties

AbstractNote

Gets a descriptive note or abstract about the object.

public string AbstractNote { get; }

Property Value

string

AngleResolution_deg

AngleResolution_deg. Call ClearCache() after setting the property.

public double AngleResolution_deg { get; set; }

Property Value

double

AngleResolution_rad

AngleResolution_rad. Call ClearCache() after setting the property.

public double AngleResolution_rad { get; set; }

Property Value

double

CoatingLayerList

Gets or sets the list of coating thermal layers.

public List<ThermalLayer1D> CoatingLayerList { get; set; }

Property Value

List<ThermalLayer1D>

CollidableName

Gets the name of the collidable object.

public string CollidableName { get; }

Property Value

string

CutterTip

Gets the anchor point at the cutter tip.

public Anchor CutterTip { get; }

Property Value

Anchor

DefaultAngleResolution_rad

Gets or sets the default angle resolution in radians.

public static double DefaultAngleResolution_rad { get; set; }

Property Value

double

DefaultLinearResolution_mm

Gets or sets the default linear resolution in millimeters.

public static double DefaultLinearResolution_mm { get; set; }

Property Value

double

DefaultStlLongitudeNum

Gets or sets the default number of longitude lines for STL generation.

public static int DefaultStlLongitudeNum { get; set; }

Property Value

int

EffectiveCuttingDiameter_mm

Cutting Diameter for calculate cutting speed.

public double EffectiveCuttingDiameter_mm { get; }

Property Value

double

ExposedHeight_mm

Has to be simultanous with ExposedCutterHeight_mm.

public double ExposedHeight_mm { get; set; }

Property Value

double

FluteContourTray

Gets or sets the flute contour tray that defines the flute geometry.

public IContourTray FluteContourTray { get; set; }

Property Value

IContourTray

FluteHeight_mm

Gets the height of the flute in millimeters.

public double FluteHeight_mm { get; }

Property Value

double

FluteMaterial

Material of the flute.

public CutterMaterial FluteMaterial { get; set; }

Property Value

CutterMaterial

FluteMaterialFile

Gets or sets the file path for the flute material definition.

public string FluteMaterialFile { get; set; }

Property Value

string

FullHeight_mm

Gets the full height of the cutter in millimeters.

public double FullHeight_mm { get; }

Property Value

double

HoneRadius_mm

Gets or sets the hone radius in millimeters.

public double HoneRadius_mm { get; set; }

Property Value

double

HoneRadius_um

Gets the hone radius in micrometers.

public double HoneRadius_um { get; set; }

Property Value

double

InnerBeamProfile

Gets or sets the inner beam profile.

public IShaperProfile InnerBeamProfile { get; set; }

Property Value

IShaperProfile

Remarks

InnerBeamProfile may be dependent on ShaperProfile. InnerBeamProfile.ClearCache() and initialization must be performed after ShaperProfile.ClearCache() and initialization.

InsertNum

Gets or sets Insert Number. The property should be used Only if IntegralMode is InsertEnd. However, there is no exception mechanism.

public int InsertNum { get; set; }

Property Value

int

InsertThickness_mm

Thickness of an insert. Only available if the cutter is InsertEnd.

public double InsertThickness_mm { get; set; }

Property Value

double

IntegralMode

Gets or sets the main integral mode of the cutter.

public MillingCutter.IntegralModeEnum IntegralMode { get; set; }

Property Value

MillingCutter.IntegralModeEnum

IsSpinningCutter

Is cutter spining when machining.

public bool IsSpinningCutter { get; }

Property Value

bool

Is cutter spining when machining.

LinearResolution_mm

LinearResolution_mm. Call ClearCache() after setting the property.

public double LinearResolution_mm { get; set; }

Property Value

double

MillingCutterOptLimit

public MillingCutterOptLimit MillingCutterOptLimit { get; set; }

Property Value

MillingCutterOptLimit

ReliefAngle_deg

Gets or sets the relief angle in degrees.

public double ReliefAngle_deg { get; set; }

Property Value

double

ReliefAngle_rad

Gets or sets the relief angle in radians.

public double ReliefAngle_rad { get; set; }

Property Value

double

ShankMassAssignmentMode

Gets or sets the mass assignment mode for the shank.

public MillingCutter.MassAssignmentMode ShankMassAssignmentMode { get; set; }

Property Value

MillingCutter.MassAssignmentMode

ShankMass_g

Gets or sets the cutter shank mass in grams. If IntegralMode is SolidEnd, the mass is the full cutter mass. since the flute mass is assumed small and dynamic depends on the CWE (Cutter-Workpiece-Engagement).

public double ShankMass_g { get; set; }

Property Value

double

ShankMaterial

Material of the shank. It should be the same with FluteMaterial if the cutter is SolidEnd.

public IStructureMaterial ShankMaterial { get; set; }

Property Value

IStructureMaterial

ShankMaterialFile

Gets or sets the file path for the shank material definition. It should be the same with FluteMaterialFile if the cutter is SolidEnd.

public string ShankMaterialFile { get; set; }

Property Value

string

ShaperProfile

Gets or sets the shaper profile that defines the cutter's shape.

public IShaperProfile ShaperProfile { get; set; }

Property Value

IShaperProfile

ShaperTopoBrick

cutable part of cutter. the part cut the workpiece if overlapped.

public ITopoBrick ShaperTopoBrick { get; }

Property Value

ITopoBrick

SingleInsertMass_g

Gets or sets the total inserts' mass in grams. The property should be used Only if IntegralMode is InsertEnd. However, there is no exception mechanism.

public double SingleInsertMass_g { get; set; }

Property Value

double

StlLongitudeNum

Stl Longitude Num. Dependent property form LinearResolution_mm and AngleResolution_rad.

public int StlLongitudeNum { get; }

Property Value

int

SumInsertMass_g

Gets the total mass of all inserts in grams calculated from SingleInsertMass_g * InsertNum.

public double SumInsertMass_g { get; }

Property Value

double

SurfaceMaterial

Gets the surface material of the cutter.

public CutterMaterial SurfaceMaterial { get; }

Property Value

CutterMaterial

UpperBeamGeom

Gets the upper beam geometry of the cutter.

public IGetStl UpperBeamGeom { get; set; }

Property Value

IGetStl

UpperBeamTopoBrick

uncutable part of cutter. the part triggers collision to workpiece if overlapped.

public ITopoBrick UpperBeamTopoBrick { get; }

Property Value

ITopoBrick

XName

Name for XML IO.

public static string XName { get; }

Property Value

string

Methods

ClearCache()

Clears all cached data.

public void ClearCache()

ClearThermalLayerListCache()

Clears the thermal layer list cache.

public void ClearThermalLayerListCache()

Display(Bind)

Display function called in DispEngine rendering loop.

public void Display(Bind bind)

Parameters

bind Bind

Bind with DispEngine. See Bind.

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()

Dispose(bool)

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Duplicate(params object[])

Creates a deep copy of the object, excluding any source file references.

public object Duplicate(params object[] res)

Parameters

res object[]

Optional parameters that may be needed during the duplication process

Returns

object

A new instance that is a deep copy of the original object

ExpandToBox3d(Box3d)

Expands the destination box. This function is usually used to compute the bounding box of elements.

public void ExpandToBox3d(Box3d dst)

Parameters

dst Box3d

Destination box

GetAnchoredCollidableNode()

Gets the anchored collidable node associated with this object.

public IAnchoredCollidableNode GetAnchoredCollidableNode()

Returns

IAnchoredCollidableNode

The anchored collidable node.

GetAnchoredCollidables()

Gets the list of anchored collidable nodes contained by this stem.

public List<IAnchoredCollidableNode> GetAnchoredCollidables()

Returns

List<IAnchoredCollidableNode>

A list of anchored collidable nodes.

GetAnchoredDisplayeeList()

Gets a list of anchored displayable objects.

public List<IAnchoredDisplayee> GetAnchoredDisplayeeList()

Returns

List<IAnchoredDisplayee>

A list of IAnchoredDisplayee objects

GetAsmb()

Gets the key asmb.

public Asmb GetAsmb()

Returns

Asmb

The key asmb.

GetCutterFluteDisplayee()

Gets the cutter flute displayee for visualization.

public IAnchoredDisplayee GetCutterFluteDisplayee()

Returns

IAnchoredDisplayee

The anchored displayee for the cutter flute.

GetDeflectionPara_umdN(out double, out double)

(L^3)/(3EI). Where deflection = F(L^3)/(3EI). for cantiliver beam.

public void GetDeflectionPara_umdN(out double bendingPara_umdN, out double zDeflectionPara_umdN)

Parameters

bendingPara_umdN double
zDeflectionPara_umdN double

Exceptions

Exception

GetFletchBuckle()

Get fletch buckle anchor. the anchor that generally connect to fixed part such as ground and triggering(motor)-side.

public Anchor GetFletchBuckle()

Returns

Anchor

buckle anchor

GetFluteThermalLayerList()

Flute material layer From outer(i.e. surface) to inner.

public List<ThermalLayer1D> GetFluteThermalLayerList()

Returns

List<ThermalLayer1D>

GetGuessShankMass_g()

Get guess mass by volume and density. The volume is count from InnerBeamProfile and UpperBeamGeom.

public double GetGuessShankMass_g()

Returns

double

GetInitStickConvex()

public InitStickConvex GetInitStickConvex()

Returns

InitStickConvex

InitStickConvex

GetMinimumUncutChipThickness_mm(ICuttingPara)

Gets the minimum uncut chip thickness in millimeters for the specified cutting parameters.

public double GetMinimumUncutChipThickness_mm(ICuttingPara millingPara)

Parameters

millingPara ICuttingPara

The cutting parameters to use for calculation.

Returns

double

The minimum uncut chip thickness in millimeters.

GetMinimumUncutChipThickness_um(ICuttingPara)

Gets the minimum uncut chip thickness in micrometers for the specified cutting parameters.

public double GetMinimumUncutChipThickness_um(ICuttingPara millingPara)

Parameters

millingPara ICuttingPara

The cutting parameters to use for calculation.

Returns

double

The minimum uncut chip thickness in micrometers.

GetNobleAnchoredDisplayee()

Gets a noble anchored displayee for visualization.

public AnchoredDisplayee GetNobleAnchoredDisplayee()

Returns

AnchoredDisplayee

The anchored displayee.

GetRootAnchor()

Get root anchor.

public Anchor GetRootAnchor()

Returns

Anchor

root anchor.

GetSweptable(double)

Get Sweptable.

public Sweptable GetSweptable(double fractionTolerance)

Parameters

fractionTolerance double

The fraction tolerance for the sweptable.

Returns

Sweptable

Sweptable

GetTestBallCutter()

Creates a test ball cutter.

public static MillingCutter GetTestBallCutter()

Returns

MillingCutter

A new ball cutter instance for testing.

GetTestBottomCutter()

Creates a test bottom cutter.

public static MillingCutter GetTestBottomCutter()

Returns

MillingCutter

A new bottom cutter instance for testing.

GetTestFreeCutter()

Creates a test free cutter.

public static MillingCutter GetTestFreeCutter()

Returns

MillingCutter

A new free cutter instance for testing.

GetThermalLayerList()

Gets the list of thermal layers.

public List<ThermalLayer1D> GetThermalLayerList()

Returns

List<ThermalLayer1D>

List of thermal layers.

GetZrList()

Gets a list of Z-R coordinate pairs.

public List<PairZr> GetZrList()

Returns

List<PairZr>

A list of PairZr objects representing Z-R coordinates.

MakeXmlSource(string, string)

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)

Parameters

baseDirectory string

The base directory for resolving relative paths

relFile string

The relative file path for the XML source

Returns

XElement

An XML element representing the object's state

UpdateByContent()

Updates the object based on its current content.

public void UpdateByContent()