Creación de una macro específica de la entidad

El ejemplo muestra cómo crear una macro que utiliza un valor de la distancia de seguridad definido por el usuario para detección de colisiones en las trayectorias de seleccionadas. La macro:

Function Main(
STRING $Selected_Toolpath
) 
{
	// Create new project parameter to store the holder clearance
	BOOL $chk = 0
	$chk = ERROR $project.clearance
	if $chk {
		// Project variable does not exist. Create it and set it to 5 degrees
		EDIT PAR CREATE REAL "clearance"
	}
	// Before checking the first toolpath, PowerMILL should ask the user to enter the holder clearance
 	IF($powermill.Status.MultipleSelection.First) OR $powermill.Status.MultipleSelection.Total == 0 { 
 		$project.clearance = INPUT ${"Enter the holder clearance PowerMILL uses when checking the " + $powermill.Status.MultipleSelection.Total + " selected toolpaths for collisions "} 
	}
	// Now collision check toolpath with entered clearance
	// Set the clearance:
	EDIT COLLISION HOLDER_CLEARANCE $project.clearance
	// Now check the toolpath for collisions
	EDIT COLLISION TYPE COLLISION
	PRINT = "Processing toolpath " + $powermill.Status.MultipleSelection.Count 
	EDIT COLLISION APPLY
	// Tell user all selected toolpaths have been checked
	IF ($powermill.Status.MultipleSelection.Last) {
		MESSAGE INFO "All toolpaths have been checked "
	}
}

Introduzca todas las líneas sin saltos de línea. Aquí, algunas líneas pueden parecer que incluyen saltos de línea debido a un ancho de página limitado.