#!/usr/bin/perl

# If you have a mill with a DRO, and/or a rotary table then you may find

# this script handy when dividing circle. To print the angles (in

# degrees, minutes and seconds) you just specify the number of

# divisions.

#

# If you want to calculate bolt hole pattern given a certain radius

# (assuming that coordinate (0,0) is the center of the circle), you give

# this script an optional argument --radius.

#

# Copyright(C) 2009, Igor Chudov.

# Distributed under the terms of the GNU PUBLIC LICENSE V2

#

use strict;

use warnings;

use Getopt::Long;

my $radius = undef;

GetOptions(

"r|radius=f", \$radius,

);

my $number = shift @ARGV || die "USAGE: $0 ";

$number =~

*/^\d+$/*|| die "USAGE: $0 ";;

foreach( my $i = 0; $i < $number; $i++ ) {

my $angle = 360/$number

***$i;**

my $degrees = int( $angle );

my $minutes = int( ($angle - $degrees) *60 );

my $degrees = int( $angle );

my $minutes = int( ($angle - $degrees) *

my $seconds = int( int( ($angle - $degrees - $minutes/60)

***60***60 ) );

my $xy = "";

if( $radius ) {

$xy = sprintf( ", x = %.4f, y = %.4f",

$radius * cos( $angle/360 ),

$radius * sin( $angle/360 )

);

}

print sprintf( "%d: %03d %02d' %02d\" (%f) %s\n", $i+1, $degrees, $minutes,

$seconds, $angle, $xy );

}