예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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");
            }
        }