Updating Macro to allow me to set ZRange.Maximum.Value on all imported toolpaths
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Anyone have any ideas whether it be creating a seperate workplane from a pick command or being able to just select the 'ZRange.Maximum.Value' during a macro pause and apply an electrode overburn offset to it for all toolpaths imported via my template? I have my older macro laid out below for creating electrodes and it works great other than I needed to assume our designers would be creating boxes that are only .25" tall. Now we are moving away from that and they can be any height if it saves mill time. It limits me auto rough my electrodes any longer due to this.
Many Thanks,
Kodi
//Import New Model & Setup
DIALOGS MESSAGE OFF
UNDRAW TRANSFORM
STRING Filename = ""
$Filename = FILESELECT "Select file"
IMPORT MODEL $filename
DIALOGS MESSAGE ON
UNDRAW TRANSFORM
ROTATE TRANSFORM ISO1
DELETE WORKPLANE ALL
FORM BLOCK
EDIT BLOCK TOLERANCE ".01"
EDIT BLOCK RESETLIMIT "0.0"
EDIT BLOCK LIMITTYPE MODEL
EDIT PAR powermill.Options.Block.UseReferenceModel 1
EDIT BLOCKTYPE BOX
EDIT BLOCK COORDINATE NAMED
DRAW BLOCK
EDIT BLOCK DRAWMODE 25
EDIT BLOCK ALL UNLOCK
EDIT BLOCK RESETLIMIT "0.0"
EDIT BLOCK RESET
BLOCK ACCEPT
MODE WORKPLANE_CREATE ; INTERACTIVE BLOCK
MACRO PAUSE "Choose a Point on the Block"
MODE WORKPLANE_EDIT START "1"
MODE WORKPLANE_EDIT NAME "Top"
MODE WORKPLANE_EDIT SWAP_AXES
MACRO PAUSE "Choose Axes Orientation"
MODE WORKPLANE_EDIT FINISH ACCEPT
ACTIVATE Workplane "Top"
FORM BLOCK
EDIT BLOCK COORDINATE NAMED
EDIT BLOCK NAMEDWORKPLANE "Top"
EDIT BLOCK RESETLIMIT "0.0"
EDIT BLOCK RESET
EDIT BLOCK ZMAX "0.001"
EDIT BLOCK ZMAX LOCK
EDIT BLOCK ZMIN LOCK
EDIT BLOCK RESETLIMIT "0.26"
EDIT BLOCK RESET
//get block dimensions
REAL xmin = ROUND ($block.limits.xmin, 4)
REAL xmax = ROUND ($block.limits.xmax, 4)
REAL ymin = ROUND ($block.limits.ymin, 4)
REAL ymax = ROUND ($block.limits.ymax, 4)
//make min values positive
REAL xminpositive = ($xmin * -1)
REAL yminpositive = ($ymin * -1)
//if positive and negative values match
IF $xmax == $xminpositive AND $ymax == $yminpositive {
MESSAGE INFO "X & Y Are On Center"
// if values don't match
} ELSE {
MESSAGE ERROR "NOT CENTERED! CLICK OK AND CORRECT ON NEXT FORM BEFORE RESUMING!"
DELETE WORKPLANE "Top"
FORM BLOCK
MESSAGE WARN "Check that MODEL is on CENTER of the BOX with MEASURE utility Or if it has no BOX change DEFINED BY to CYLINDER then Click Calculate Only then Click Resume"
MACRO PAUSE "Click Resume When Error is Corrected"
EDIT BLOCK RESET
BLOCK ACCEPT
MODE WORKPLANE_CREATE ; INTERACTIVE BLOCK
MACRO PAUSE "Choose a Point on the Block"
MODE WORKPLANE_EDIT START "1"
MODE WORKPLANE_EDIT NAME "Top"
MODE WORKPLANE_EDIT SWAP_AXES
MACRO PAUSE "Choose Axes Orientation"
MODE WORKPLANE_EDIT FINISH ACCEPT
ACTIVATE Workplane "Top"
//get block dimensions
REAL xmin = ROUND ($block.limits.xmin, 4)
REAL xmax = ROUND ($block.limits.xmax, 4)
REAL ymin = ROUND ($block.limits.ymin, 4)
REAL ymax = ROUND ($block.limits.ymax, 4)
//make min values positive
REAL xminpositive = ($xmin * -1)
REAL yminpositive = ($ymin * -1)
//if positive and negative values match
IF $xmax == $xminpositive AND $ymax == $yminpositive {
MESSAGE INFO "X & Y Are On Center"
// if values don't match
}
ELSE {
MESSAGE ERROR "NOT CENTERED! CLICK OK AND CORRECT ON NEXT FORM BEFORE RESUMING!"
DELETE WORKPLANE "Top"
FORM BLOCK
MESSAGE WARN "Check that MODEL is on CENTER of the BOX with MEASURE utility Or if it has no BOX change DEFINED BY to CYLINDER then Click Calculate Only then Click Resume"
MACRO PAUSE "Click Resume When Error is Corrected"
EDIT BLOCK RESET
BLOCK ACCEPT
MODE WORKPLANE_CREATE ; INTERACTIVE BLOCK
MACRO PAUSE "Choose a Point on the Block"
MODE WORKPLANE_EDIT START "1"
MODE WORKPLANE_EDIT NAME "Top"
MODE WORKPLANE_EDIT SWAP_AXES
MACRO PAUSE "Choose Axes Orientation"
MODE WORKPLANE_EDIT FINISH ACCEPT
ACTIVATE Workplane "Top"
}
//Reset Safe Area/Rapid Moves
EDIT TOOLPATH LEADS RAISEFORM
EDIT TOOLPATH LEADS PAGE RAPIDMOVES
EDIT TOOLPATH SAFEAREA MEASURE_FROM BLOCK_AND_MODEL
EDIT PAR 'Rapid.CalculateDimensions.RapidClearance' ".6"
EDIT PAR 'Rapid.CalculateDimensions.PlungeClearance' ".1"
EDIT TOOLPATH SAFEAREA CALCULATE_DIMENSIONS
LEADS ACCEPT
//Setup Workplane and Block and Project Preferences
VIEW MODEL ; SHADE OFF
VIEW MODEL ; WIREFRAME ON
VIEW MODEL ; WIREFRAME ON EDIT MODEL ALL COLOUR RGB 1.00000 0.50196 0.00000
ROTATE TRANSFORM ISO1
IMPORT TEMPLATE PROJECT FILEOPEN "L:\Powermill Master\Templates\EDM_Template_V33.ptf"
REAL Under = 0
REAL POSUnder = 0
BOOL $err = 0
INT $Err_Count = 0
STRING $Message = "Enter the overburn value"
//Error catching section
do {
$Under = input $Message
$err = ERROR Under
If $err {
MESSAGE WARN "The value entered is not a number!"
$Err_Count = $Err_Count + 1
}
} WHILE $err
//Look how many errors were done
IF $Err_Count > 2 {
MESSAGE INFO "WOW, THAT WAS TOUGH!"
}
$POSUnder=abs($Under)
//Sets All Toolpaths to "Top" Workplane and add basic thickness to all toolpaths
DIALOGS MESSAGE OFF
DIALOGS ERROR OFF
FOREACH tp IN FOLDER('Toolpath') {
ACTIVATE TOOLPATH $tp.Name
ACTIVATE Workplane "Top"
IF tp.toolpathtype == "roughing" {
EDIT PAR 'Thickness' ".007"
} ELSEIF tp.Strategy == "face" {
EDIT PAR 'Thickness' "0"
} ELSEIF tp.Strategy == "offset_flat" {
EDIT PAR 'UseAxialThickness' '1'
EDIT PAR 'Thickness' "0.007"
EDIT PAR 'AxialThickness' $Under
} ELSE {
EDIT PAR 'Thickness' $Under
}
EDIT TOOLPATH ; REAPPLYFROMGUI
}
//Calculates Facemill Toolpath
EXPLORER SELECT Toolpath "Toolpath\.5 Flat Face Mill" NEW
ACTIVATE TOOLPATH ".5 Flat Face Mill"
FORM TOOLPATH
ACTIVATE WORKPLANE "Top"
EDIT TOOLPATH ".5 Flat Face Mill" CALCULATE
FaceMilling ACCEPT
//Calculates Box Flat Finishing Toolpath
EXPLORER SELECT Toolpath "Toolpath\.5 flat FF Box" NEW
ACTIVATE Toolpath ".5 flat FF Box"
FORM TOOLPATH
ACTIVATE WORKPLANE "Top"
EDIT TPPAGE CURVELIMIT
EDIT PAR 'ZRange.Maximum.Active' 1
TOOLBAR EXPRESSIONBAR RAISE EDIT PAR EXPRESSION START
EDIT PAR EXPRESSION ACCEPT
EDIT PAR 'ZRange.Maximum.Value' "Block.Limits.ZMin+.25"
EDIT TOOLPATH ".5 flat FF Box" CALCULATE
OffsetFlat ACCEPT
//Calculates Box Side Finish Toolpath
EXPLORER SELECT Toolpath "Toolpath\.5 flat SF Box" NEW
ACTIVATE TOOLPATH ".5 flat SF Box"
FORM TOOLPATH
ACTIVATE WORKPLANE "Top"
EDIT TPPAGE CURVELIMIT
EDIT PAR 'ZRange.Maximum.Active' 1
TOOLBAR EXPRESSIONBAR RAISE EDIT PAR EXPRESSION START
EDIT PAR EXPRESSION ACCEPT
EDIT PAR 'ZRange.Maximum.Value' "Block.Limits.ZMin+.25"
EDIT TOOLPATH ".5 flat SF Box" CALCULATE
ConstantZ ACCEPT
//Calculates 1st Roughing Pass
EXPLORER SELECT Toolpath "Toolpath\.5 flat R" NEW
ACTIVATE TOOLPATH ".5 flat R"
FORM TOOLPATH
ACTIVATE WORKPLANE "Top"
EDIT TPPAGE CURVELIMIT
EDIT PAR 'ZRange.Minimum.Active' 1
TOOLBAR EXPRESSIONBAR RAISE EDIT PAR EXPRESSION START
EDIT PAR EXPRESSION ACCEPT
EDIT PAR 'ZRange.Minimum.Value' "Block.Limits.ZMin+.25"
EDIT TOOLPATH ".5 flat R" CALCULATE
AreaClearMain ACCEPT
TOOLBAR EXPRESSIONBAR LOWER
MACRO PAUSE "Double Check Block Is On Center"
BLOCK CANCEL
DIALOGS MESSAGE ON
DIALOGS ERROR ON