Table of Contents

Class MillingForceLuggage

Namespace
Hi.MillingForces
Assembly
HiMech.dll

Represents a container for milling force data and calculations.

public class MillingForceLuggage
Inheritance
MillingForceLuggage
Inherited Members
Extension Methods

Constructors

MillingForceLuggage()

Initializes a new instance of the MillingForceLuggage class.

public MillingForceLuggage()

MillingForceLuggage(BinaryReader)

Initializes a new instance of the MillingForceLuggage class from a binary reader.

public MillingForceLuggage(BinaryReader reader)

Parameters

reader BinaryReader

The binary reader containing the milling force data.

Properties

CuttingForcesToToolOnToolRunningCoordinate_N

Cutting forces on tool running coordinate. The forced item is tool.

public List<vec3d_t> CuttingForcesToToolOnToolRunningCoordinate_N { get; }

Property Value

List<vec3d_t>

MomentsToToolAboutToolTipOnToolRunningCoordinate_Nm

Moments on tool running coordinate in N*m. The fulcrum is at the coordinate zero. The moment is taken by tool. The size is RotationDivisionNum.

public List<vec3d_t> MomentsToToolAboutToolTipOnToolRunningCoordinate_Nm { get; }

Property Value

List<vec3d_t>

PloughForcesOnTr

plough force on tool running coordinate. The force is taken by tool. In sequence of time.

public List<vec3d_t> PloughForcesOnTr { get; }

Property Value

List<vec3d_t>

RotationDivisionNum

Gets the number of divisions for one complete rotation.

public int RotationDivisionNum { get; }

Property Value

int

ShearForcesOnTr

shear forces on tool running coordinate. The force is taken by tool. In sequence of time.

public List<vec3d_t> ShearForcesOnTr { get; }

Property Value

List<vec3d_t>

StepIndex

Step index. For database saving.

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int StepIndex { get; set; }

Property Value

int

Methods

GetCuttingForcesToToolOnWorkpieceCoodinate_N(mat4d_t)

Cutting forces on workpiece coordinate. The forced item is tool.

public List<vec3d_t> GetCuttingForcesToToolOnWorkpieceCoodinate_N(mat4d_t CdnTransformFromToolRunningZeroToWorkpieceGeom)

Parameters

CdnTransformFromToolRunningZeroToWorkpieceGeom mat4d_t

Returns

List<vec3d_t>

GetCuttingForcesToWorkpieceOnProgramCoordinate_N(mat4d_t)

Cutting forces on workpiece coordinate. The forced item is workpiece.

public List<vec3d_t> GetCuttingForcesToWorkpieceOnProgramCoordinate_N(mat4d_t cdnTransformFromToolRunningToProgram)

Parameters

cdnTransformFromToolRunningToProgram mat4d_t

Returns

List<vec3d_t>

GetCuttingForcesToWorkpieceOnProgramCoordinate_N(MachineMotionStep)

Gets the cutting forces to workpiece on program coordinate in Newtons.

public List<vec3d_t> GetCuttingForcesToWorkpieceOnProgramCoordinate_N(MachineMotionStep machineStep)

Parameters

machineStep MachineMotionStep

The machining step to get forces for

Returns

List<vec3d_t>

List of force vectors in Newtons

GetForceToToolOnToolRunningCoordinateCsvString(MachineMotionStep)

Gets the force to tool on tool running coordinate as a CSV string (invariant culture, see GetForceToWorkpieceOnProgramCoordinateCsvString(MachineMotionStep)).

public string GetForceToToolOnToolRunningCoordinateCsvString(MachineMotionStep machineStep)

Parameters

machineStep MachineMotionStep

The machining step to get forces for.

Returns

string

A CSV string representation of the forces.

GetForceToWorkpieceOnProgramCoordinateCsvString(MachineMotionStep)

Gets the force to workpiece on program coordinate as a CSV string. The numbers are written in the invariant culture ('.' decimal), as every CSV this library writes: under the thread culture a comma-decimal host wrote each row with twice the title's fields.

public string GetForceToWorkpieceOnProgramCoordinateCsvString(MachineMotionStep machineStep)

Parameters

machineStep MachineMotionStep

The machining step to get forces for.

Returns

string

A CSV string representation of the forces.

GetMomentsAboutAnchorOnToolRunningCoordinate_Nm(IMachiningTool, MillingToolPhysicsPack)

Gets the moments about anchor on tool running coordinate in Newton-meters.

public List<vec3d_t> GetMomentsAboutAnchorOnToolRunningCoordinate_Nm(IMachiningTool millingTool, MillingToolPhysicsPack physicsPack = null)

Parameters

millingTool IMachiningTool

The machining tool to calculate moments for.

physicsPack MillingToolPhysicsPack

The frozen per-session physics pack of millingTool; null computes the observation height from the tool on use.

Returns

List<vec3d_t>

A list of moment vectors.

GetMomentsAboutToolTipOnSpindleRotationCoordinate_Nm()

Gets the moments about tool tip on spindle rotation coordinate in Newton-meters.

public List<vec3d_t> GetMomentsAboutToolTipOnSpindleRotationCoordinate_Nm()

Returns

List<vec3d_t>

A list of moment vectors.

GetMomentsOnToolRunningCoordinate_Nm(vec3d_t)

Get moments to tool.

public List<vec3d_t> GetMomentsOnToolRunningCoordinate_Nm(vec3d_t observationPosFromToolTip)

Parameters

observationPosFromToolTip vec3d_t

The observation point measured from the tool tip on the tool running coordinate (a vector; never null).

Returns

List<vec3d_t>

One moment vector per rotation division about that point, in Newton-meters.

GetMomentsOnToolRunningCoordinate_Nm(double)

Gets the moments on the tool running coordinate system at a specified height from the tool tip.

public List<vec3d_t> GetMomentsOnToolRunningCoordinate_Nm(double observationHeightFromToolTip)

Parameters

observationHeightFromToolTip double

The height from the tool tip where moments are calculated.

Returns

List<vec3d_t>

A list of moment vectors in the tool running coordinate system.

GetMomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm(IMachiningTool, MillingToolPhysicsPack)

Get Moments To Tool About Observation Point On Spindle Rotation Coordinate. Unit is Newton-meter.

public List<vec3d_t> GetMomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm(IMachiningTool millingTool, MillingToolPhysicsPack physicsPack = null)

Parameters

millingTool IMachiningTool

The machining tool to calculate moments for.

physicsPack MillingToolPhysicsPack

The frozen per-session physics pack of millingTool; null computes the observation height from the tool on use.

Returns

List<vec3d_t>

GetMomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm(double)

Get Moments To Tool About Observation Point On Spindle Rotation Coordinate, with the observation height supplied directly — for a caller that resolved the height once and reads many luggage instances. Unit is Newton-meter.

public List<vec3d_t> GetMomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm(double observationHeightFromToolTip)

Parameters

observationHeightFromToolTip double

The observation height from the tool tip in millimeters.

Returns

List<vec3d_t>

GetMomentsToToolOnSpindleRotationZeroCsvString(IMachiningTool, MachineMotionStep, MillingForceBrief)

Gets the moments to tool on spindle rotation zero as a CSV string (invariant culture, see GetForceToWorkpieceOnProgramCoordinateCsvString(MachineMotionStep)).

public string GetMomentsToToolOnSpindleRotationZeroCsvString(IMachiningTool machiningTool, MachineMotionStep machineStep, MillingForceBrief brief)

Parameters

machiningTool IMachiningTool

The machining tool.

machineStep MachineMotionStep

The machining step to get moments for.

brief MillingForceBrief

The rake face physics brief.

Returns

string

A CSV string representation of the moments.

GetTipDeflectionOnToolRunningCoordinateList_mm(IMachiningTool, MillingToolPhysicsPack)

Gets the tool tip deflection on the tool running coordinate system for a cutting force placed at the tool tip — the overload taking the force height is what the step physics reads.

public List<vec3d_t> GetTipDeflectionOnToolRunningCoordinateList_mm(IMachiningTool millingTool, MillingToolPhysicsPack physicsPack = null)

Parameters

millingTool IMachiningTool

The milling tool for which to calculate deflections.

physicsPack MillingToolPhysicsPack

The frozen per-session physics pack of millingTool; null computes the deflection parameters from the tool on use.

Returns

List<vec3d_t>

A list of deflection vectors in millimeters in the tool running coordinate system.

GetTipDeflectionOnToolRunningCoordinateList_mm(IMachiningTool, MillingToolPhysicsPack, double)

Gets the tool tip deflection on the tool running coordinate system, one vector per rotation division: the cutting force times the cutter beam's compliance for a load at cuttingForceHeightFromToolTip_mm above the tip (CuttingForceHeightFromToolTip_mm; NaN is a load at the tip).

public List<vec3d_t> GetTipDeflectionOnToolRunningCoordinateList_mm(IMachiningTool millingTool, MillingToolPhysicsPack physicsPack, double cuttingForceHeightFromToolTip_mm)

Parameters

millingTool IMachiningTool

The milling tool for which to calculate deflections.

physicsPack MillingToolPhysicsPack

The frozen per-session physics pack of millingTool; null computes the deflection parameters from the tool on use.

cuttingForceHeightFromToolTip_mm double

The height above the tip the force is placed at, mm.

Returns

List<vec3d_t>

A list of deflection vectors in millimeters in the tool running coordinate system.

GetYieldingStressRatio(IMachiningTool)

Gets the yielding stress ratio for the given machining tool with no height known for the step's cutting force: every beam section outside the tip zone (a section standing closer to the tip than its own radius) counts, each bent by the whole of the cutting forces — the reading of a section standing above the engaged edge. A caller that knows the height the force acts at passes it to GetYieldingStressRatio(IMachiningTool, double), as the brief does (YieldingStressRatio).

public double GetYieldingStressRatio(IMachiningTool millingTool)

Parameters

millingTool IMachiningTool

The machining tool to calculate the stress ratio for.

Returns

double

The yielding stress ratio — the largest, over the beam sections outside the tip zone, of the section's principal stress divided by the beam material's YieldingStressLimit_MPa (the flute material on a solid-end cutter, the shank material an insert-end cutter's inserts sit on, see BeamMaterial) — or NaN when it cannot be evaluated: non-milling cutter, missing beam material, a beam material without a known strength, or no beam section outside the tip zone. Never a fake-safe 0.

GetYieldingStressRatio(IMachiningTool, double)

Gets the yielding stress ratio for the given machining tool for a step whose cutting force is placed cuttingForceHeightFromToolTip_mm above the tool tip. The cutter is a cantilever gripped at the holder and free at the tip: a section is bent by the forces between it and the tip alone, each by its lever arm to the section, while the forces above it reach the holder through the beam above it and do not bend it. The luggage carries the forces summed over the engaged layers, so a section standing inside the engaged edge cannot be given its own share: the sections below the height the step's force is placed at — the centroid of the engaged edge, CuttingForceHeightFromToolTip_mm, a stand-in for where the force acts and the height the deflection loads the beam at — are left out, and a section at or above it takes the moment of the whole force about itself: exact for a section above the engaged edge, and for one inside it the whole force's own moment on the same dividing height as the deflection, which puts no moment below that height either. A NaN height (no engagement recorded) leaves no section out.

public double GetYieldingStressRatio(IMachiningTool millingTool, double cuttingForceHeightFromToolTip_mm)

Parameters

millingTool IMachiningTool

The machining tool to calculate the stress ratio for.

cuttingForceHeightFromToolTip_mm double

The height above the tool tip the step's cutting force is placed at (for a played step, the engaged edge's centroid), mm; NaN when not known.

Returns

double

The yielding stress ratio — the largest, over the beam sections outside the tip zone (a section standing closer to the tip than its own radius) and not below the force height, of the section's principal stress divided by the beam material's YieldingStressLimit_MPa (the flute material on a solid-end cutter, the shank material an insert-end cutter's inserts sit on, see BeamMaterial) — or NaN when it cannot be evaluated: non-milling cutter, missing beam material, a beam material without a known strength, or no beam section outside the tip zone at or above the force height. Never a fake-safe 0.

NoCut(int)

Builds a luggage representing a physically-computed “no cut” state (paired with NoCut(int)): the three per-rotation force lists are each filled with Zero of length rotationDivisionNum. StepIndex is left at default; the caller assigns it.

public static MillingForceLuggage NoCut(int rotationDivisionNum)

Parameters

rotationDivisionNum int

Length of each per-rotation list.

Returns

MillingForceLuggage

ToCuttingForcesString()

Converts the cutting forces to a string representation.

public string ToCuttingForcesString()

Returns

string

A string representation of the cutting forces.

WriteBin(BinaryWriter)

public void WriteBin(BinaryWriter writer)

Parameters

writer BinaryWriter