/// <summary> /// Detects if there are any gouges. /// If it returns true the three status indicators can then be inspected to determine the cause. /// </summary> public bool DetectToolGouges() { // See if gouges have already been detected if (GetParameterBooleanValue("Verification.GougeChecked") == false) { // Not yet detected so determine if there are any PowerMill.DoCommand("ACTIVATE TOOLPATH '" + Name + "'", "EDIT COLLISION TYPE Gouge", "EDIT COLLISION SCOPE ALL", "EDIT COLLISION SPLIT_TOOLPATH N", "EDIT COLLISION STOCKMODEL_CHECK N", "EDIT COLLISION APPLY"); } // Now check the tool safety parameters var cuttingStatus = GetParameter("Safety.Tool.Cutting.Status"); _toolCuttingMovesSafety = SafetyFromString(cuttingStatus); var linksStatus = GetParameter("Safety.Tool.Links.Status"); _toolLinksSafety = SafetyFromString(linksStatus); var leadsStatus = GetParameter("Safety.Tool.Leads.Status"); _toolLeadsSafety = SafetyFromString(leadsStatus); if (_toolCuttingMovesSafety == ToolpathSafety.Collides || _toolLinksSafety == ToolpathSafety.Collides || _toolLeadsSafety == ToolpathSafety.Collides) { return(true); } // No gouges detected return(false); }
/// <summary> /// Checks if there are any collisions. /// If it returns true the three status indicators can then be inspected to determine the cause /// </summary> public bool DetectHolderCollisions() { // See if collisions have already been detected if (GetParameterBooleanValue("Verification.CollisionChecked") == false) { // Not yet detected so determine if there are any PowerMill.DoCommand("ACTIVATE TOOLPATH '" + Name + "'", "EDIT COLLISION TYPE Collision", "EDIT COLLISION SCOPE ALL", "EDIT COLLISION SPLIT_TOOLPATH N", "EDIT COLLISION STOCKMODEL_CHECK N", "EDIT COLLISION DEPTH N", "EDIT COLLISION USE_TOOL \" \"", "EDIT COLLISION APPLY"); } // Now check the tool safety parameters var cuttingStatus = GetParameter("Safety.Holder.Cutting.Status"); _holderCuttingMovesSafety = SafetyFromString(cuttingStatus); var linksStatus = GetParameter("Safety.Holder.Links.Status"); _holderLinksSafety = SafetyFromString(linksStatus); var leadsStatus = GetParameter("Safety.Holder.Leads.Status"); _holderLeadsSafety = SafetyFromString(leadsStatus); if (_holderCuttingMovesSafety == ToolpathSafety.Collides || _holderLinksSafety == ToolpathSafety.Collides || _holderLeadsSafety == ToolpathSafety.Collides) { return(true); } // No collisions detected return(false); }
/// <summary> /// Gets a string version of the safety enumeration /// </summary> private string SafetyFromEnumeration(ToolpathSafety enmSafety) { switch (enmSafety) { case ToolpathSafety.Safe: return("Safe"); case ToolpathSafety.Collides: return("Collides"); default: return("Not Checked"); } }