(deftemplate Feature "Definition of the feature structure" (slot Name (type SYMBOL) (default none)) (slot Ftype (type SYMBOL) (allowed-symbols NonThrough Through)) ; Finish the definition of the feature template regarding the statement ) ; Complete the rule that add the 5 features composing the test part (defrule Init "Rule which triggers with the no-fact fact" (initial-fact) => (assert ()) ;5 assertion are required ) (defrule R7 "Chamfering" ; Select an adequate feature (having a chamfer) => ; Modify the selected feature to remove its champfer (printout t "Chamfer of the feature " crlf) ) ; Use the same structure then the rule R7, but here the aim is to machine the tapping (defrule R6 "Tapping" => (printout t "Tapping the feature " crlf) ) (defrule R3 "Drilling of non Through bore" ; Check the adequate feature => ; Remove the feature (printout t "Drilling the feature " crlf) ) (defrule R2 "Countersinking operation" ; Check the adequate feature ; Check the constraint on the diameter => ; Modify the feature's parameter (printout t "CounterSinking the feature " crlf) ) (defrule R1 "Deep Drilling" ; To test the ratio, use (/ X Y) form and test it is True by using the test() instruction => (printout t "Deep drilling the feature " crlf) ) (defrule R4 "Drilling Through bore with diameter > 10" => ; modify the diameter by using the (/ X Y) operator (printout t "CounterSinking the feature " crlf) ) (defrule R5 "Drilling Through bore with diameter < 15" => (printout t "Drilling the feature " crlf) ) ; Add the two other templates ; ---> Template Tool ; ---> Template MachiningOperation. In addition to the statement add the concept of order ; Modify the previsously defined rules to take into account these 2 new concepts