! TITLE: ln_fillet_group.mac (SM_TOOL) ! ! Created option for creating KP's at the center of ! the fillets (argument 11). ! ! OBJECTIVE: ! ! This sub-macro creates a group of line fillets at specified junction key- ! points. ! ! ! COMMAND SYNTAX: ! ! (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) ! LN_FILLET_GROUP, jkp1, r1, jkp2, r2, jkp3, r3, jkp4, r4, jkp5, r5, ! ! (11) ! kp@cntr ! ! ! ARGUMENTS: ! ! (1,3,5,7,9) jkpN = the junction keypoint number at which to create ! fillet. ! ! (2,4,6,8,10) rN = the radius of the fillet to be created at the ! corresponding junction KP, jkpN. ! ! (11) kp@cntr = generates KP at the center point of the fillet radii: ! (see documentation of KP@CNTR argument in LN_FILLET.MAC) ! ! 0 (or blank) = (negative) boolean operator for keypoint ! generation at fillet center. ! ! 1 = (positive) boolean operator for keypoint generation ! at fillet center. This automatically generates a center ! keypoint with a default offset value of 1 from the new ! fillet arc maximum end-keypoint. ! ! N = an arbitrarily chosen integer value greater than 0 ! (N=2,3,4,.....). This argument enables the generation of ! a KP at the fillet arc center, assigning this KP a number ! equal to the numerical value of this argument plus the ! maximum keypoint number that is one of the end KP's of ! the fillet arc created (km+N). ! ! ! DESCRIPTION: ! ! This macro creates multiple fillets at multiple junction-keypoints with ! different fillet radii. It allows the user to pick specific points in a ! line profile/set and create a fillet at that point with a specific ! radius. As a result, this macro will alleviate multiple LN_FILLET macro ! calls, thereby maximizing the efficiency of creating part macros. ! ! The argument structure is arranged such that 5 fillets may be created ! for each call/use of this macro command. The 10 arguments are set up such ! that each argument pair is a junction-keypoint, and a radius at that junc- ! tion. ! ! Starting with the 1st argument, JKP1, as the 1st junction keypoint, R1 is ! the 2nd argument, corresponding to the fillet radius to be created at the ! junction keypoint, JKP1. Likewise, arguments 3 and 4 are the junction ! -keypoint/radius pair, JKP2 and R2, etc. Therefore, arguments 1, 3, 5, 7 ! and 9 are the junction-keypoint values, and arguments 2, 4, 6, 8 and 10 ! are the radius values. ! ! In the event that it is desired to create keypoints at the fillet centers, ! argument 11 may be used to specify their creation and/or the desired ! numbering offset of those keypoints. If there is no particular choice or ! reason to choose a particular offset value, then it is recommended to use ! the simple boolean values (0 or 1). See the documentation of LN_FILLET.MAC ! concerning the use of this option. The input value of this argument is ! transferred to the LN_FILLET.MAC command. ! ! ! *get,prkey_,active,0,prkey /nopr ! *if,ar11,eq,0,then kpc_=0 *elseif,ar11,eq,1,then kpc_=1 *elseif,ar11,ge,2,then kpc_=ar11 *else kpc_=0 *endif ! *do,abc_,1,9,2 *if,arg%abc_%,gt,0,then jkp_%abc_%=arg%abc_% ! *if,abc_,lt,9,then rad_%abc_%=arg%abc_+1% *else rad_%abc_%=ar%abc_+1% *endif *endif *enddo ! *do,abc_,1,9,2 *if,jkp_%abc_%,gt,0,then *if,abc_,lt,9,then ln_fillet,jkp_%abc_%,arg%abc_+1%,kpc_ *else ln_fillet,jkp_%abc_%,ar%abc_+1%,kpc_ *endif *endif *enddo ! *do,abc_,1,9,2 *if,jkp_%abc_%,gt,0,then *set,jkp_%abc_% *set,rad_%abc_% *endif *enddo ! *set,kpc_ ! init_entity_num ! lplot ! *if,prkey_,eq,1,then /go *endif