• Tidak ada hasil yang ditemukan

3.4 Development of the Setup Planning Expert System

3.4.2 Knowledge-base

3.4.2.2 Setup Formation

(Defrule::precedence_constraint "precedence based on machining of nesting features prior to the nested features"

(feature (number ?a)(type INTERNAL)(subtype NESTED )(nested_in ?b))

=>(assert(feature_precedence ?b ?a)))

A precedence rule for machining the two steps and an intermediate slot as shown in Figure 3.4. is given hereunder. It states that if there is an external slot which is a secondary feature to the two steps as shown in Figure 3.4., machining of the steps are to be done prior to the slot between them.

(Defrule::precedence_constraint "precedence based on machining of adjacent external steps prior to that of the slot between them"

(feature (number ?a)(name SLOT)(type EXTERNAL)(subtype SECONDARY) (adjacent_features ?b ?c)(adjacent_features_names STEP STEP))

=>(assert(feature_precedence ?b ?a)) (assert(feature_precedence ?c ?a)))

Figure 3.4. Two steps and a slot

Figure 3.5. Six tool approach directions for a prismatic part

The following methodology is adopted for grouping of features for setup formation:

• Features with a common single TAD are grouped together to form a common TAD feature cluster. A common TAD feature cluster can be machined in the same setup.

• The features having multiple TADs are assigned a single TAD based on their tolerance relations with other features. For example, if a multiple TAD feature (say a) has tolerance relation with only one feature (say b) having a single TAD, then the feature a is assigned the TAD of b.

• If a multiple TAD feature (say a) has tolerance relation with more than one feature (say b and c) each having a single TAD, then the feature a is assigned the TAD of b or c, depending on whichever has tighter tolerance relationship with a.

• If a multiple TAD feature has no tolerance relationship with other features, it is assigned the TAD of a feature cluster where there are the maximum numbers of features. Machining of the maximum number of features in the same setup with the same datum will ensure better tolerance achievement and reduced machining time and cost.

After grouping of features based on TAD and tolerance relations, setups are formed. For setup formation, different common TAD feature clusters are grouped together considering the machine capability in respect of feature access direction for machining. Various milling as well as drilling operations can be performed in a modern machining center (MC) equipped with rotary index table and automatic tool

changer (ATC). It is possible to machine five faces of a cubic workpiece in these machines in a single setup. Most of the machining centers contain simultaneously controlled three Cartesian axes X, Y, and Z. A set of rules and mathematical functions are used to implement feature clustering and setup formation as explained above. An example rule for feature clustering based on tightest tolerance is as follows (Feature a and feature b are taken as examples for explaining the rules in the rule-base):

(Defrule::feature_clustering_based_on_TAD_and_tolerance

?f1<-(operation(TAD $? TAD1 $?)(on_feature ?on_feature))

?f2<-(feature(number ?on_feature))

(test(>=(length$ (fact-slot-value ?f1 tolerance))2))

(operation(TAD TAD1)(on_feature =(feature-with-tightest-tolerance ?f1)))

=>

(modify ?f1(TAD TAD1(relation_with_feature =(update-relation-with-feature ?f1)) (tolerance =(update-tolerance ?f1)(modify ?f2(TAD TAD1))

The above rule performs the following tasks:

• It identifies that there is a machining operation (fact identifier ?f1) on feature a (fact identifier ?f2) having multiple TAD and one of them is TAD1. It has tolerance relationship with more than one feature including (say) feature b. TAD of feature b is TAD1.

• Next, the mathematical function feature-with-tightest-tolerance compares the tolerance relations of machining operation on a and returns the fact identifier of feature b with which feature a has tightest tolerance. Operation on a is assigned the TAD of feature b i.e., TAD1.

• Lastly, the functions update-relation-with-feature and update-tolerance are used to update the slots relation-with-feature and tolerance respectively by removing the tolerance relationships between features that have been already considered.

If a multiple TAD feature has no tolerance relationship with other features, it is assigned the TAD of a feature cluster where there are the maximum numbers of

features. A sample rule for assigning a single TAD to a feature having multiple TADs and no tolerance relation with other features is explained hereunder. The machining operation (fact identifier ?f1) for machining a slot (fact identifier ?f2) has three TADs– TAD1, TAD2 and TAD3 and the slot does not have any tolerance relation with other features. Now, the machining operation and the feature slot are assigned a single TAD– TAD2 as there are maximum numbers of features in TAD2 feature cluster.

(Defrule::slot_with_multiple_TAD_no_tolerance_relation

?f1 <-(operation(TAD ?TAD1 ?TAD2 ?TAD3)(type mill)( on_feature ?on_feature))

?f2 <-(feature(number ?on_feature)(name SLOT))

=> (modify ?f1(TAD ?TAD2)) (modify ?f2(TAD ?TAD2))

After forming all the feature clusters based on TAD and tolerance, setups are to be formed. Machining is performed in a vertical machining center (MC) equipped with rotary index table and automatic tool changer (ATC). It is possible to machine five faces of a cubic workpiece in these machines in a single setup. Therefore, machining of a part can be completed in two setups. The five common TAD feature clusters (TAD1, TAD2, TAD4, TAD5 and TAD6) are grouped into one setup and the remaining common TAD feature cluster TAD3 is assigned to the other setup.

Sample rules for formation of setups based on TAD feature cluster is shown hereunder.

(Defrule::formation_of_setup-1

?f1 <-( TAD1 _feature_cluster (operation_numbers $?operation_numbers)) => (bind ?*setup-1*(fact-slot-value ?f1 operation_numbers))

(bind ?*setup-1* (delete-member$(create$ ?*setup-1_feature_cluster*?

*setup-1*)0)))

The above rule states that if there is a TAD1_feature_cluster (fact identifier ?f1) with multiple operations all with TAD1, the operations are included in the setup-1 in their proper sequence. Initially, setup-1 had no element, which is now updated to

contain the operation numbers of TAD1 cluster. A similar rule for formation of setup-2 is shown below.

(Defrule::formation_of_setup-2

?f1 <-(TAD3_feature_cluster (operation_numbers $?operation_numbers)) => (bind ?*setup-2*(fact-slot-value ?f1 operation_numbers))

(bind ?*setup-2* (delete-member$(create$ ?*setup-2_feature_cluster* ?

*setup-2*)0)))

A total of 42 rules have been developed for clustering of features and setup formation.