# Perl script to compute bolt hole pattern

• posted

#!/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 \$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 \$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 ); }

• posted

scratch the old version, here's the new one

#!/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 circles. 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; my \$pi = 3.141592653589793;

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 \$seconds = int( int( (\$angle - \$degrees - \$minutes/60)*60*60 ) );

my \$xy = ""; if( \$radius ) { \$xy = sprintf( ", x = %.4f, y = %.4f", \$radius * cos( 2*\$pi*\$angle/360 ), \$radius * sin( 2*\$pi*\$angle/360 ) ); } print sprintf( "%d: %03d %02d' %02d\" (%f) %s\n", \$i+1, \$degrees, \$minutes, \$seconds, \$angle, \$xy ); }

• posted

\$number = quality variable name.

• posted

Update version

#!/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 circles. 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; my \$pi = 3.141592653589793;

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

\$divisions =~ /^\d+\$/ || die "USAGE: \$0 ";;

foreach( my \$i = 0; \$i < \$divisions; \$i++ ) { my \$angle = 360/\$divisions*\$i; my \$degrees = int( \$angle ); my \$minutes = int( (\$angle - \$degrees) * 60 ); my \$seconds = int( int( (\$angle - \$degrees - \$minutes/60)*60*60 ) );

my \$xy = ""; if( \$radius ) { \$xy = sprintf( ", x = %.4f, y = %.4f", \$radius * cos( 2*\$pi*\$angle/360 ), \$radius * sin( 2*\$pi*\$angle/360 ) ); } print sprintf( "%d: %03d %02d' %02d\" (%f) %s\n", \$i+1, \$degrees, \$minutes, \$seconds, \$angle, \$xy ); }

• posted

Iggy, I bet many (like myself) wouldn't know how to run this script or input data.

I have no real need as I know enough trig (Some Old Horse Caught Another Horse Taking Oats Away) to quickly sketch it out and run an excel speadsheet for the calcs.

Karl

• posted

Don't most DROs have bolt circle calculator functions built in anyway?

• posted

That's pretty much what the script does, except that you do not need to run a spreadsheet. It will work if you have Cygwin on Windows or Activeperl installed.

i
• posted

New ones yes. My ancient Sony DRO's only know how to resolve to the nearest

0.0001" inch.

Overkill on a mill.

Wes

• posted

I have the first edition camel book - how close is this perl...

I have a perl to install but like ghostscript and postscript I don't write in them, but have the manual :-)

Activeperl - wow - who wrote that!

I remember ftp-ing my copy from JPL. A long time ago. Sun 3 was a hot machine.

Mart> >> Iggy, I bet many (like myself) wouldn't know how to run this script or input >> data.

• posted

Activeperl is the easiest way to get perl on windows.

i

• posted

For those running Windows and don't know what to do with a Perl script check out Marv Klotz's Utilities:

He has two versions (maybe more) for doing a similar calc for bolt circles:

"BOLTCIRC.ZIP (~31 Kbytes) 10/04/05 It's often easier and more accurate to lay out holes on a boltcircle with x-y coordinates than to scribe and step off the circle, especially if the number of holes is an unusual number. This program does the work and generates a table which you can print and carry to the drill press for reference. See also CHORD."

"CHORD.ZIP (~19 Kbytes) 02/24/00 For those who insist on marking out subdivisions of a circle the old-fashioned way and don't want to use BOLTCIRC, this tool will compute the chord length needed to divide a circle of input diameter into any number of parts. See also BOLTCIRC."

• posted

And what is wrong with Cygwin?

Wes

• posted

In the old days it was really a neat trip to install perl on a unix box. The install was from all sources. It built it on the fly and while building - it tested and determined - oh 16 bit machine then oh - bits are reversed Lsb on the left.. and so forth. Once the library was built, it ran some test cases. Some of those were interesting to look at and figure how they worked.

We used it as a unix script writer and general good fun. That is only 25 years ago more or less.

Mart> f>> I have the first edition camel book - how close is this perl... >>

• posted

Nothing, I used Cygwin for a while when I was stuck with Windows at work. Now I use Linux as my desktop OS and can use the real thing without the pains of Windows (carriage returns, DOS window problems etc). I have nothing against Cygwin, these guys did a fabulous job.

i
• posted

So, did you have a T shirt that said, "Grep for it"

DOS had nothing like it at the time.

Karl

• posted

No - Cgrep

#!/usr/bin/perl \$context = 3; if (\$argv[0] =~ /^-(d+)\$/) { \$context = \$1; shift; } \$pat = shift; \$pat =~ S#/#\\/#g; \$_ =; push(\$ary,\$_); for (1 .. \$context) { unshift(@ary,''}; } eval We used it as a unix script writer and general good fun.

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.