Class ErrorTermRoleException
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
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
Role
The role: AxisX … AxisC or Spindle of a machine tool,
KeyBranch of a CL device.
public string Role { get; }
Property Value
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; }