Criando uma macro especifica de entidade

O exemplo mostra como criar uma macro que utiliza um valor personalizado de folga para verificação de colisão dos percursos selecionados. A 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 "
	}
}

Insira as linhas sem quebras de linha. Algumas linhas podem parecer incluir quebras de linhas devido à largura limitada da página.