Table of Contents

Class ErrorTermRoleException

Namespace
Hi.Mech
Assembly
HiMech.dll

Thrown when a role of a machining chain — an axis or the spindle of a machine tool, the key branch of a CL device — falls on a branch marked as an error term (IsErrorTerm).

An error term is taken as NoTransform by the controller's model of the machine (XyzabcSolver); a role treated that way would take its axis out of the model without a word. With the project switch off (EnableErrorTerms false) the machine itself takes an error term as NoTransform on its runtime face, so a marked role would take its axis out of the machine too, not only out of the controller's model. The mark is therefore refused by name (RequireRoleBranchesNotErrorTerm(IMachiningChain)), whatever the switch says, in two places: where the chain is about to be solved on (the solver), and where a run starts — an NC play (RunNcLines(INcRunner, string, IEnumerable<string>, CancellationToken)), and the act entry a session script plays through.

Two situations raise it. The marked branch is the one the role is played on — the role branch itself or, where the role's own branch was detached or has left the assembly and its transformer drives another branch in its place, that branch: BranchName names it, RoleBranchName is null, and clearing the mark on it repairs it. Or — met by the solver alone — the role's transformer object was put on a second branch beside a role branch that is still in place, and that second branch is marked: BranchName is the second branch and RoleBranchName the role branch. Clearing the mark is no repair then (the transformer would go on driving the second branch); the transformer has to be put on the role branch again, as the message says.

public class ErrorTermRoleException : InvalidOperationException, ISerializable
Inheritance
ErrorTermRoleException
Implements
Inherited Members
Extension Methods

Constructors

ErrorTermRoleException(string, Branch)

Ctor: the role branch itself carries the mark.

public ErrorTermRoleException(string role, Branch branch)

Parameters

role string

See Role.

branch Branch

The role branch that carries the error-term mark.

Properties

BranchName

The marked branch as the message names it: its Name, or its link description (ToLinkString()) when it has none. It is the branch the role is played on unless RoleBranchName is set.

public string BranchName { get; }

Property Value

string

Role

The role: AxisX … AxisC or Spindle of a machine tool, KeyBranch of a CL device.

public string Role { get; }

Property Value

string

RoleBranchName

Null when the marked branch is the one the role is played on. Otherwise the role branch, still in place and named as BranchName is: the role's transformer is bound to the marked branch and no longer to this one.

public string RoleBranchName { get; }

Property Value

string