// renumber with G71 var number_counter, num_places: integer; function next_number: string; var s begin inc(number_counter) if (num_places = 4) and (number_counter > 9999) or (num_places = 3) and (number_counter > 999) or (num_places = 2) and (number_counter > 99) or (num_places = 1) and (number_counter > 9) then number_counter := 1 if number_counter < 10 then s := '000' else if number_counter < 100 then s := '00' else if number_counter < 1000 then s := '0' if num_places = 3 then delete(s, 1, 1) else if num_places = 2 then delete(s, 1, 2) else if num_places = 1 then delete(s, 1, 3) else if num_places = 0 then s := '' result := 'N' + s + inttostr(number_counter) end; num_places:=3; number_counter := 0 line_num := 0 repeat inc(line_num); GotoLine(line_num); s2 := CurrentLine; if (s2 > '') and (s2 <> '%') and (s2[1] <> 'O') then begin if GetValue('G')=71 then begin P:=getvalue('P'); Q:=getvalue('Q'); G71LineNo:=line_num; end; N:=getvalue('N'); if N=P then begin Remove('N'); front(next_number+' '); PN:=getvalue('N'); end else if N=Q then begin Remove('N'); front(next_number+' '); QN:=getvalue('N'); gotoline(G71LineNo); ChangeV('P',0,PN,901); ChangeV('Q',0,QN,901); gotoline(line_num+1); P:=-1; Q:=-1; end else begin Remove('N'); front(next_number+' '); end; end; until line_num = LineCount;