Group,
 I need to add a /375 deep pocket after the completion of
this macro. The panel sizes are all variable based. I want
to use a .750 flat cutter to cut a single depth rectangular
pocket. This is a bit beyond my comprehension, I need the
pocket to leave 2.25 uncut all the way around the outer
variable dimensions of the panel. ANyone?
Michael
// STYLE_27.MCL

//calculate the width and hieght of the door allowing for the finish
#DRWID = #DRWID - (#FINALLOW * 2)
#DRHGT = #DRHGT - (#FINALLOW * 2)

// set viewing extents
ENVELOPE[XS=-0.5, YS=-0.5, ZS=0, XE=(#DRWID+0.5), YE=(#DRHGT+0.5), ZE=0]
BASE[]

//determine if the door's area is less than the min. area specified in the set
//parameters dialog
#DOORAREA = (#DRWID * #DRHGT)
IF(#DOORAREA < #MINAREA)
    #DUALPASS = 1
ELSE
    #DUALPASS = 0
ENDIF

//set the clear value for the door
IF(#UNITS = 0)
        #DOORCLR = 0.25
ELSE
        #DOORCLR = 6.35
ENDIF

//calculate the width and height of the lite based on the number of panels
IF(#PANELNUM = 1)
        #WIDLITE = #DRWID - #LFTSTILE - #RGTSTILE
ELSE
        #WIDLITE = (#DRWID - #LFTSTILE - #RGTSTILE - (#MULWID * (#PANELNUM - 1))) / 
#PANELNUM
ENDIF
#LITEHGT = (#DRHGT - #TOPRAIL - #BTMRAIL)

//set the insert position to the end of the database
ELMT_SEQ[BA=1, EL=TOTEL(), ME=0]

//create the first pass
WITH_STEP[ST=#TOOL1, WP="XY_PLANE", OF=2, LV=#DEPTH1, CL=#DOORCLR, PT=0]
START_PROF[XE=#LFTSTILE+#OFFSET1, YE=#BTMRAIL+#OFFSET1, LV=#DEPTH1]
LINE_PROF[TI=0, ZE=#DEPTH1, DS=#WIDLITE-(#OFFSET1*2), AN=0, SS=2, SE=0, SP=2]
LINE_PROF[TI=0, ZE=#DEPTH1, DS=#LITEHGT-(#OFFSET1*2), AN=90, SS=2, SE=0, SP=2]
LINE_PROF[TI=0, ZE=#DEPTH1, DS=#WIDLITE-(#OFFSET1*2), AN=180, SS=2, SE=0, SP=2]
LINE_PROF[TI=0, ZE=#DEPTH1, DS=#LITEHGT-(#OFFSET1*2), AN=270, SS=2, SE=0, SP=2]
// possibly blend inside corners if not using square corner option
IF(#INRAD > 0, AND #DOSQRCRN = 0)
        NEW_GRP[]
        PROF_GRP[AR=0, EL=#EL]
        GRP_BLEND[RA=#INRAD, RO=#INRAD, RC=?]
        NEW_GRP[]
ENDIF
IF(#DOCLIMB1 = 0)
        NEW_GRP[]
        PROF_GRP[AR=0, EL=#EL]
        GRP_REVERSE[RP=1]
        PROF_START[EL=GRP(GRP(0))]
        NEW_GRP[]
ENDIF
IF(#DORAMP1 = 1)
        NEW_GRP[]
        PROF_GRP[AR=0, EL=#EL]
        MAC_EXE[FN=#LEADMCL]
        NEW_GRP[]
ENDIF

//create the second pass if requested
IF(#PASSTYPE > 0)
        STEP_SEQ[BA=1, ST=#TOOL1, ME=0]
        WITH_STEP[ST=#TOOL2, WP="XY_PLANE", OF=2, LV=#DEPTH2, CL=#DOORCLR, PT=0]
        START_PROF[XE=#LFTSTILE+#OFFSET2, YE=#BTMRAIL+#OFFSET2, LV=#DEPTH2]
        LINE_PROF[TI=0, ZE=#DEPTH2, DS=#WIDLITE-(#OFFSET2*2), AN=0, SS=2, SE=0, SP=2]
        LINE_PROF[TI=0, ZE=#DEPTH2, DS=#LITEHGT-(#OFFSET2*2), AN=90, SS=2, SE=0, SP=2]
        LINE_PROF[TI=0, ZE=#DEPTH2, DS=#WIDLITE-(#OFFSET2*2), AN=180, SS=2, SE=0, SP=2]
        LINE_PROF[TI=0, ZE=#DEPTH2, DS=#LITEHGT-(#OFFSET2*2), AN=270, SS=2, SE=0, SP=2]
        // possibly blend inside corners if not using square corner option
        IF(#INRAD > 0, AND #DOSQRCRN = 0)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                GRP_BLEND[RA=#INRAD, RO=#INRAD, RC=?]
                NEW_GRP[]
        ENDIF
        IF(#DOCLIMB2 = 0)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                GRP_REVERSE[RP=1]
                PROF_START[EL=GRP(GRP(0))]
                NEW_GRP[]
        ENDIF
        IF(#DORAMP2 = 1)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                MAC_EXE[FN=#LEADMCL]
                NEW_GRP[]
        ENDIF
ENDIF

//create the third pass if requested
IF(#PASSTYPE > 1)
        STEP_SEQ[BA=1, ST=#TOOL2, ME=0]
        WITH_STEP[ST=#TOOL3, WP="XY_PLANE", OF=2, LV=#DEPTH3, CL=#DOORCLR, PT=0]
        START_PROF[XE=#LFTSTILE+#OFFSET3, YE=#BTMRAIL+#OFFSET3, LV=#DEPTH3]
        LINE_PROF[TI=0, ZE=#DEPTH3, DS=#WIDLITE-(#OFFSET3*2), AN=0, SS=2, SE=0, SP=2]
        LINE_PROF[TI=0, ZE=#DEPTH3, DS=#LITEHGT-(#OFFSET3*2), AN=90, SS=2, SE=0, SP=2]
        LINE_PROF[TI=0, ZE=#DEPTH3, DS=#WIDLITE-(#OFFSET3*2), AN=180, SS=2, SE=0, SP=2]
        LINE_PROF[TI=0, ZE=#DEPTH3, DS=#LITEHGT-(#OFFSET3*2), AN=270, SS=2, SE=0, SP=2]
        // possibly blend inside corners if not using square corner option
        IF(#INRAD > 0, AND #DOSQRCRN = 0)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                GRP_BLEND[RA=#INRAD, RO=#INRAD, RC=?]
                NEW_GRP[]
        ENDIF
        IF(#DOCLIMB3 = 0)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                GRP_REVERSE[RP=1]
                PROF_START[EL=GRP(GRP(0))]
                NEW_GRP[]
        ENDIF
        IF(#DORAMP3 = 1)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                MAC_EXE[FN=#LEADMCL]
                NEW_GRP[]
        ENDIF
ENDIF

//create the fourth pass if requested
IF(#PASSTYPE > 2)
        STEP_SEQ[BA=1, ST=#TOOL3, ME=0]
        WITH_STEP[ST=#TOOL4, WP="XY_PLANE", OF=2, LV=#DEPTH4, CL=#DOORCLR, PT=0]
        START_PROF[XE=#LFTSTILE+#OFFSET4, YE=#BTMRAIL+#OFFSET4, LV=#DEPTH4]
        LINE_PROF[TI=0, ZE=#DEPTH4, DS=#WIDLITE-(#OFFSET4*2), AN=0, SS=2, SE=0, SP=2]
        LINE_PROF[TI=0, ZE=#DEPTH4, DS=#LITEHGT-(#OFFSET4*2), AN=90, SS=2, SE=0, SP=2]
        LINE_PROF[TI=0, ZE=#DEPTH4, DS=#WIDLITE-(#OFFSET4*2), AN=180, SS=2, SE=0, SP=2]
        LINE_PROF[TI=0, ZE=#DEPTH4, DS=#LITEHGT-(#OFFSET4*2), AN=270, SS=2, SE=0, SP=2]
        // possibly blend inside corners if not using square corner option
        IF(#INRAD > 0, AND #DOSQRCRN = 0)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                GRP_BLEND[RA=#INRAD, RO=#INRAD, RC=?]
                NEW_GRP[]
        ENDIF
        IF(#DOCLIMB4 = 0)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                GRP_REVERSE[RP=1]
                PROF_START[EL=GRP(GRP(0))]
                NEW_GRP[]
        ENDIF
        IF(#DORAMP4 = 1)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                MAC_EXE[FN=#LEADMCL]
                NEW_GRP[]
        ENDIF
ENDIF

//create the fifth pass if requested
IF(#PASSTYPE > 3)
        STEP_SEQ[BA=1, ST=#TOOL4, ME=0]
        WITH_STEP[ST=#TOOL5, WP="XY_PLANE", OF=2, LV=#DEPTH5, CL=#DOORCLR, PT=0]
        START_PROF[XE=#LFTSTILE+#OFFSET5, YE=#BTMRAIL+#OFFSET5, LV=#DEPTH5]
        LINE_PROF[TI=0, ZE=#DEPTH5, DS=#WIDLITE-(#OFFSET5*2), AN=0, SS=2, SE=0, SP=2]
        LINE_PROF[TI=0, ZE=#DEPTH5, DS=#LITEHGT-(#OFFSET5*2), AN=90, SS=2, SE=0, SP=2]
        LINE_PROF[TI=0, ZE=#DEPTH5, DS=#WIDLITE-(#OFFSET5*2), AN=180, SS=2, SE=0, SP=2]
        LINE_PROF[TI=0, ZE=#DEPTH5, DS=#LITEHGT-(#OFFSET5*2), AN=270, SS=2, SE=0, SP=2]
        // possibly blend inside corners if not using square corner option
        IF(#INRAD > 0, AND #DOSQRCRN = 0)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                GRP_BLEND[RA=#INRAD, RO=#INRAD, RC=?]
                NEW_GRP[]
        ENDIF
        IF(#DOCLIMB5 = 0)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                GRP_REVERSE[RP=1]
                PROF_START[EL=GRP(GRP(0))]
                NEW_GRP[]
        ENDIF
        IF(#DORAMP5 = 1)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                MAC_EXE[FN=#LEADMCL]
                NEW_GRP[]
        ENDIF
ENDIF

// create square corner pass
IF(#DOSQRCRN = 1)
        #TOTANGLE = 90
        STEP_SEQ[BA=1, ST=#AFTERCRN, ME=0]
        WITH_STEP[ST=#TOOL10, WP="XY_PLANE", OF=2, LV=#DEPTH10, CL=#DOORCLR, PT=0]
        START_PROF[XE=#LFTSTILE+#OFFSET10, YE=#BTMRAIL+#OFFSET10, LV=#DEPTH10]
        LINE_PROF[TI=0, ZE=#DEPTH10, DS=#WIDLITE-(#OFFSET10*2), AN=0, SS=2, SE=0, SP=2]
        #SQRANGLE = 315
        MAC_EXE[FN=STRTMP("%SCPATH\MACRO\PFSQUARE.MCL")]
        LINE_PROF[TI=0, ZE=#DEPTH10, DS=#LITEHGT-(#OFFSET10*2), AN=90, SS=2, SE=0, 
SP=2]
        #SQRANGLE = 45
        MAC_EXE[FN=STRTMP("%SCPATH\MACRO\PFSQUARE.MCL")]
        LINE_PROF[TI=0, ZE=#DEPTH10, DS=#WIDLITE-(#OFFSET10*2), AN=180, SS=2, SE=0, 
SP=2]
        #SQRANGLE = 135
        MAC_EXE[FN=STRTMP("%SCPATH\MACRO\PFSQUARE.MCL")]
        LINE_PROF[TI=0, ZE=#DEPTH10, DS=#LITEHGT-(#OFFSET10*2), AN=270, SS=2, SE=0, 
SP=2]
        #SQRANGLE = 225
        MAC_EXE[FN=STRTMP("%SCPATH\MACRO\PFSQUARE.MCL")]
        IF(#DOCLIMB10 = 0)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                GRP_REVERSE[RP=1]
                PROF_START[EL=GRP(GRP(0))]
                NEW_GRP[]
        ENDIF
        IF(#DORAMP10 = 1)
                NEW_GRP[]
                PROF_GRP[AR=0, EL=#EL]
                MAC_EXE[FN=#LEADMCL]
                NEW_GRP[]
        ENDIF
ENDIF

//copy the geometry for the number of panels requested
IF(#PANELNUM > 1)
        SELECT_ALL[]
        MOVE[CP=1, NC=#PANELNUM-1, TS=1, XS=0, YS=0, ZS=0, XE=#WIDLITE+#MULWID, YE=0, 
ZE=0]
        NEW_GRP[]
ENDIF

//set the insert position to the end of the database
ELMT_SEQ[BA=1, EL=TOTEL(), ME=0]

// drill hole in part
IF(#KNOBLOC > 0)
        MAC_EXE[FN=STRTMP("%SCPATH\MACRO\PFHOLE.MCL")]
ENDIF

// any internal customization should happen here

ELMT_SEQ[BA=1, EL=TOTEL(), ME=0]

MAC_EXE[FN=STRTMP("%SCPATH\MACRO\PFOUTER.MCL")]

//set the insert position to the end of the database
ELMT_SEQ[BA=1, EL=TOTEL(), ME=0]

// add top and bottom door bevels
IF(#BEVEL = 1)
        MAC_EXE[FN=STRTMP("%SCPATH\MACRO\PFBEVEL.MCL")]
ENDIF

//set the insert position to the end of the database
ELMT_SEQ[BA=1, EL=TOTEL(), ME=0]

IF(#RABBET = 1)
        MAC_EXE[FN=STRTMP("%SCPATH\MACRO\PFRABBET.MCL")]
ENDIF

NEW_GRP[]
#DOROT = 1

Reply via email to