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