<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;D0YBQnk5fip7ImA9WhZVEE4.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628</id><updated>2011-05-21T20:32:33.726-07:00</updated><title>Electrical Musings</title><subtitle type='html'>Things I like or have learned while  programming and doing CNC machining.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default?redirect=false&amp;v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry gd:etag='W/&quot;C0QGQ3kzfip7ImA9WhZVEE8.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-4804322964647541371</id><published>2011-05-21T16:38:00.000-07:00</published><updated>2011-05-21T16:42:02.786-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-05-21T16:42:02.786-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='render php as html'/><category scheme='http://www.blogger.com/atom/ns#' term='apache2 configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title>Apache2 configuration for embedded PHP in HTML files</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;If you want to use PHP scripts on your web server it is a simple thing to add a script inside a page and save it as a .php file extension.&lt;br /&gt;
&lt;br /&gt;
Listing of phpinside.php&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-style-span" style="color: blue;"&gt;echo &lt;/span&gt;"Hello PHP World!"&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
When this file is browsed if looks like this:&lt;br /&gt;
Hello PHP World!&lt;br /&gt;
&lt;br /&gt;
With the default installation of Apache2 and PHP, however,&amp;nbsp;Apache2 does not know to render an html file as a PHP script. If you name the above file &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;phpinside.html,&lt;/span&gt; you will instead see elements of the PHP code when you view the file in a browser.&lt;br /&gt;
&lt;br /&gt;
There are thousands of (old) posts for Apache configuration of PHP by editing the httpd.conf file to include HTML as an application/x-http-php type.  However, few make note that Apache2 has a new config file structure for Debian (Ubuntu).  Refer to the page that I found for a better explanation: &lt;a href="http://www.control-escape.com/web/configuring-apache2-debian.html"&gt;Control Escape - Configuring Apache2 on Debian, Ubuntu&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Now the "AddType application/x-http-php" directive is in the php5.conf file in the "etc/apache2/mods-enabled" directory.&lt;br /&gt;
&lt;br /&gt;
Edit the file:&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo gedit /etc/apache2/mods-enabled/php5.conf &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the line to include html and htm:&lt;br /&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;AddType application/x-httpd-php .php .phtml .php3 &lt;span class="Apple-style-span" style="color: red;"&gt;.html .htm&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;AddType application/x-httpd-php-source .phps&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
After you have saved the file you then have to restart Apache2.&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo /etc/apache2/apache restart&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-4804322964647541371?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/4804322964647541371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=4804322964647541371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/4804322964647541371?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/4804322964647541371?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2011/05/apache2-configuration-for-embedded-php.html' title='Apache2 configuration for embedded PHP in HTML files'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0QGRXY-fip7ImA9WhZTFEg.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-5039115583618577773</id><published>2011-03-16T14:58:00.000-07:00</published><updated>2011-03-18T05:28:44.856-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-03-18T05:28:44.856-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='CAD/CAM Software'/><title>Free CAD/CAM Options</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There was a time when CAD and CAM software was simply not available for anyone without paying a&amp;nbsp;substantial&amp;nbsp;sum of money. &amp;nbsp;The version of AutoCAD 10 (which came on 10 floppies) that I used for a year at MFJ Enterprises to do product documentation cost almost $1000.&lt;br /&gt;
&lt;br /&gt;
Even low quality programs cost upwards of $99 or more. &amp;nbsp;However, in the past few years there have been many new free versions of software available that are high and even professional quality.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Sketchup&lt;/b&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Arguably the first really free CAD software that was good quality was &lt;a href="http://sketchup.google.com/"&gt;Sketchup&lt;/a&gt;. Sketchup was written by a company called&amp;nbsp;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;i&gt;@Last Software &lt;/i&gt;which sold the software for $495. &amp;nbsp;The company wrote a plug-in for Google Earth and soon afterward Google bought the company. &amp;nbsp;In 2006 at Google Developer Day the developers of Sketchup were there presenting the software and giving away free Sketchup socks. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;An important feature of Sketchup is that users can write short snippets of code in Ruby to configure or extend the application. &amp;nbsp;This helps get by &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;limitations of the free version of Sketchup like not being able to export to DXF. &amp;nbsp;There are plenty of plug-ins but the quality and features may vary.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;b&gt;AutoCAD WS&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;Recently AutoDesk came out with a free version of&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;AutoCAD called&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;a href="http://www.autocadws.com/"&gt;AutoCAD WS&lt;/a&gt; that exists as a web application or browser app in Google Chrome. It is just like AutoCAD (yech!) &amp;nbsp;However by using the download menu files can be saved as DWG or DXF without added plug-ins.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;b&gt;DraftSight&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;The last newest free 2D CAD package to arrive is called &lt;a href="http://www.3ds.com/products/draftsight/free-cad-software/"&gt;DraftSight&lt;/a&gt;&amp;nbsp;from Daussault Systemes (the company that makes Solidworks). &amp;nbsp;This is a stand alone&amp;nbsp;application&amp;nbsp;that has a small footprint and can be downloaded quickly.&amp;nbsp;Unfortunately&amp;nbsp;this software is much like AutoCAD and not like Solidworks. &amp;nbsp;However it is just as capable as AutoCAD WS and does not exist in the cloud. &amp;nbsp;It also allows loading and saving to MANY different versions of AutoCAD file types. &amp;nbsp;Again, unfortunately it is just like AutoCAD. &amp;nbsp;I wish it more like Solidworks. &amp;nbsp;Hopefully sometime soon there will be a parametric CAD package offered for free.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;Note on AutoCAD and D&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;aussault Systemes: &amp;nbsp;AutoDesk has a policy of changing the native file type that AutoCAD uses ever few versions to make users upgrade to the newest version. D&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;aussault Systemes has helped&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;AutoCAD&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;users by releasing software that allows conversion of files from one file type to the other. &amp;nbsp;They also released the Solidworks part modeler as a free plug in for AutoCAD. &amp;nbsp;This software makes AutoCAD work like Solidworks except for creation of assemblies. &amp;nbsp;Let me tell you it is hard to go back to AutoCAD after using the Solidworks part modeler.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;b&gt;InkScape&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;I have to add &lt;a href="http://inkscape.org/"&gt;Inkscape&lt;/a&gt; in here even though it is not really a CAD package. &amp;nbsp;There are now good plug-ins for writing DXF files from Inkscape. &amp;nbsp;The added features&amp;nbsp;inherent&amp;nbsp;to a vector graphics program make InkScape valuable even beyond traditional CAD software. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;H&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;owever w&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;ork needs to be done on the program to make accurate sizing of objects. &amp;nbsp;Presently the size of an object includes the outline.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-5039115583618577773?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/5039115583618577773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=5039115583618577773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/5039115583618577773?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/5039115583618577773?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2011/03/free-cadcam-options.html' title='Free CAD/CAM Options'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0YBQnk-fCp7ImA9WhZVEE4.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-4027442700870041110</id><published>2011-03-13T00:14:00.000-08:00</published><updated>2011-05-21T20:32:33.754-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-05-21T20:32:33.754-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Python SQL'/><title>Python and MySQL</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Although PHP is used a lot for SQL scripts, Python is a fine alternative.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The&amp;nbsp;commonly&amp;nbsp;used SQL library in Python is MySQLdb. &amp;nbsp;MySQLdb is an thread-compatible interface to the popular MySQL database server that provides the Python database API. (&lt;i&gt;from the documentation&lt;/i&gt;)&lt;br /&gt;
&lt;br /&gt;
An example showing the guts of a Python MySQL script.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;import &lt;/span&gt;MySQLdb&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;conn = MySQLdb.connect (host = "&lt;span class="Apple-style-span" style="color: lime;"&gt;localhost&lt;/span&gt;", user = "&lt;span class="Apple-style-span" style="color: lime;"&gt;root&lt;/span&gt;", passwd = "&lt;span class="Apple-style-span" style="color: lime;"&gt;admin&lt;/span&gt;",&amp;nbsp;db = "&lt;span class="Apple-style-span" style="color: lime;"&gt;databasename&lt;/span&gt;")&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;db = conn.cursor()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;db.execute ( "&lt;span class="Apple-style-span" style="color: lime;"&gt;SELECT * FROM table1&lt;/span&gt;")&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;data = db.fetchall()&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: magenta; font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;#do something with the data&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;db.close ()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;conn.commit ()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;conn.close ()&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Looking over the code example&lt;/b&gt;:&lt;/div&gt;&lt;div&gt;After the import is a connect request to an SQL database. &amp;nbsp;The database in on the localhost and has the default username and password. &amp;nbsp;The the actual database name must be&amp;nbsp;specified. &amp;nbsp;MySQL databases can have multiple databases on one host.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Note that on all the code accessing data or running commands on the database should be inside an&amp;nbsp;exception&amp;nbsp;or "try except" statement. &amp;nbsp;A standard form follows:&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;import&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;MySQLdb&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;#added import for exit&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;import &lt;/span&gt;sys &lt;span class="Apple-style-span" style="color: magenta;"&gt;#added import for exit&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;try:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;some MySQL command&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;except &lt;/span&gt;MySQLdb.Error, e:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;print &lt;/span&gt;"&lt;span class="Apple-style-span" style="color: lime;"&gt;;Error %d: %s&lt;/span&gt;" % (e.args[0], e.args[1])&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sys.exit (1)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;The next MySQL command is the cursor method which creates a cursor object. &amp;nbsp;Most people like to make the db object the connection and the cursor object as such. &amp;nbsp;But I like to think of the connection as a connection and the cursor as the db itself so I name them appropriately. &amp;nbsp;I'm not sure what else the cursor is used for.&lt;br /&gt;
&lt;br /&gt;
To run a SQL statement you use the execute method. &amp;nbsp;The parameter is a string with the standard string print formating such as &lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;"%s %f" %(string,float)&lt;/span&gt;&lt;/i&gt;. However you must use the SQL VALUE keyword. &amp;nbsp;An example follows:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;db.execute ("&lt;span class="Apple-style-span" style="color: lime;"&gt;INSERT INTO incident (incident_type, session, lat, lon, alt) \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: lime;"&gt;VALUES (%d, \"%s\", \"%s\", \"%s\", \"%s\")&lt;/span&gt;" % \(incident_type[i],sessions[i],locations[i][0],locations[i][1],locations[i][2]))&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;So basically you can see that use of MySQLdb ends up being an exercise in string creation in SQL command format. &amp;nbsp;Note that in the above example the SQL&amp;nbsp;keywords&amp;nbsp;are in&amp;nbsp;all caps. &amp;nbsp;That is by tradition.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;After a SQL statement executes there is usually some output besides updating of the database. &amp;nbsp;To get the output into our Python program we need one of the 3 read methods. &amp;nbsp;In the above example &lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;fetchall()&amp;nbsp;&lt;/span&gt;&lt;/i&gt;is used. &amp;nbsp;The other read methods are &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;i&gt;fetchone() &lt;/i&gt;&lt;/span&gt;and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;i&gt;rowcount&lt;/i&gt;&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The fetchall method grabs all the results in a list which is easy to use in Python. &amp;nbsp;The fetchone method grabs the "next: row in the output. &amp;nbsp;Rowcount is a read only count of the rows in the output. &amp;nbsp;The last two methods are probably not used much as it is easy to iterate a list in Python.&lt;br /&gt;
&lt;br /&gt;
What is with the Ls??? You may see data that should be "60" appear as "60L" after you read it out of a database. &amp;nbsp;When MySQLdb converts a value from SQL unsigned integer to Python it must use a long integer to avoid overflows. &amp;nbsp;To show this conversion an "L" is appended to the value.&lt;br /&gt;
&lt;br /&gt;
Also note that the data read from the database is not in the order that it was entered. &amp;nbsp;Use the ORDER BY keyword in your SQL statements to sort data appropriately.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Next in the example the cursor object is closed. &amp;nbsp;This is important when doing server side scripts so it is included although in this example it is a bit&amp;nbsp;superfluous.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Next comes the important commit statement. &amp;nbsp;Without a commit all the changes you make and records you add will be lost when the database connection is closed. &amp;nbsp;Note that if you wish to do several operations and not lose your original data, the rollback method can be used. &amp;nbsp;The format would be as follows:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;db.rollback()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Lastly we close our connection to the database with the close method.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Note that the commands executed are all standard SQL statements. &amp;nbsp;For a primer on SQL statements install the MySQL package and run the MySQL Command Line Client. &amp;nbsp;After you create a few tables and run a few queries you will be on your way.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Another great resource if it is installed on your SQL server is phpMyAdmin, &amp;nbsp;The package is installed on some ISPs servers such as 1and1's Linux hosting packages. Using&amp;nbsp;phpMyAdmin it is&amp;nbsp;easy to build tables and populate them with data. &amp;nbsp;After the tables are created there is an option to get the complete SQL statement to replicate the tables with the data which is handy if you need to send a copy of a test database to a friend without giving him access to your database server.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-4027442700870041110?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/4027442700870041110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=4027442700870041110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/4027442700870041110?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/4027442700870041110?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2011/03/python-and-mysql.html' title='Python and MySQL'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkENRHY5cSp7ImA9Wx9bE08.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-1894012215461794816</id><published>2011-02-21T14:13:00.000-08:00</published><updated>2011-02-21T14:51:35.829-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-21T14:51:35.829-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Python CGI'/><title>Setting up a Python CGI Sandbox on Windows</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;It makes sense sometimes to set up a sandbox for development of CGI.&amp;nbsp; By sandbox I mean a computer isolated from the web running all the programs needed to develop for CGI.&amp;nbsp; If you have a Windows machine there are fewer resources available online for setting up Apache, etc than for a Linux box.&lt;br /&gt;
&lt;br /&gt;
Note that installing a Apache server does take some resources but I noticed no difference on the 3 GHz Pentium D machine with 1 Gb RAM that I was using. follow these steps in setting up a windows machine:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;Install Python&lt;/b&gt;&lt;br /&gt;
If you are going to put scripts on a server at an ISP such as 1and1 or GoDaddy you should be aware of the version of Python available to your hosting package.&amp;nbsp; For 1and1 I installed Python 2.5.&amp;nbsp; Also be aware that neither 1and1 nor GoDaddy use modpython at this time. &amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Install Apache&lt;/b&gt;Use a standard install of Apache.&amp;nbsp; It should take only a few minutes to install and configure.&amp;nbsp; When you are setting up make it "localhost".&lt;br /&gt;
Add python as a CGI by modifying the following:&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Options Indexes FollowSymLinks &lt;span class="Apple-style-span" style="background-color: yellow;"&gt;ExecCGI&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;AddHandler cgi-script .cgi &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;.py&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Install Eclipse or equivalent IDE&lt;/b&gt;Eclipse is the best full featured IDE to use with Python.&amp;nbsp; Although there is no standard build with Python as the default language, you can install the Java version of Eclipse and then install PyDev easily. Other good Python IDEs include Boa Constructor, Wing, or Idle.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Install MySQL (optional)&lt;/b&gt;Building scripts that access a MySQL database in Python is trivial in complexity but extremely useful and powerful.&amp;nbsp; I would suggest installing MySQL even if you don't intend to use it immediately.&amp;nbsp; The resources used are minimal.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;There are some tips to getting Python working in CGI.&lt;/b&gt;&lt;br /&gt;
&lt;u&gt;1. Always browse the pages through Apache.&lt;/u&gt;&lt;br /&gt;
Note that viewing files in the filesystem through a browser works for most things on an html page but will not work for CGI.&amp;nbsp; For scripts to work they must be opened through the htdocs file system.&amp;nbsp; The address line of your browser should look like:&lt;br /&gt;
\\127.0.0.1\index.html or&lt;br /&gt;
\\localhost\index.html&lt;br /&gt;
&lt;br /&gt;
If you open a file up through the file system the CGI will not work.&lt;br /&gt;
c:\Apache\htdos\index.html&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;2. Convert end of lines of scripts to Unix format:&lt;/u&gt;&lt;br /&gt;
Most editors have options to "show end of lines" and then a checkbox to convert from Unix to PC format. &amp;nbsp;you must have the end of lines set to Unix format.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;3. State the path to the Python interpreter on the first line of the CGI script:&lt;/u&gt;&lt;br /&gt;
You must have one of the following lines as the &lt;u&gt;first line&lt;/u&gt; of your Python CGI script:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;#!C:\Python25\Python.exe&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: red;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;#!/usr/bin/python&lt;/span&gt;&lt;br /&gt;
The top line is used when you are debugging on a PC and the bottom is for a server such as 1and1. &amp;nbsp;I leave the lines as shown and then edit them once they are up on the server by deleting the first line.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;4. Print a content type specifying HTML before printing any other output:&lt;/u&gt;&lt;br /&gt;
This can be done simply by adding the following line somewhere very early in your script:&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;print &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #6aa84f;"&gt;"Content-Type: text/html\n\n"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
Note that the 2 end of lines are required.&lt;br /&gt;
&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;br /&gt;
&lt;u&gt;5. Setup Python scripts to give debugging information:&lt;/u&gt;&lt;br /&gt;
Import the following to get detailed debugging information.&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: orange;"&gt;import &lt;/span&gt;cgitb; cgitb.enable()&lt;br /&gt;
An alternative if cgitb is not available is to do the following:&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: orange;"&gt;import &lt;/span&gt;sys&lt;br /&gt;
sys.stderr = sys.stdout&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;6. On the server the python script permissions must be set to execute&lt;/u&gt;.&lt;br /&gt;
After uploading your files be sure to edit the first line and set the permissions for the file to execute.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;A short debugging program for your CGI&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
(Remember most hosts DO NOT USE modpython)&lt;br /&gt;
This program will show what is entered on a form (both the keys and the values).&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: red; font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;#!C:\Python25\Python.exe&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: red; font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;#!/usr/bin/python&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: red; font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;#4 things for python CGI&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: red; font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;#Open file through the server not from filesystem&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: red; font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;#file must be have linux end-of-line characters&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: red; font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;#Must have the appropriate python line as first line of the file&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: red; font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;#Print a "content-type" before any output&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;import &lt;/span&gt;cgi&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;import &lt;/span&gt;cgitb; cgitb.enable()&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;print &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #6aa84f;"&gt;"Content-Type: text/html\n\n"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;form_data = cgi.FieldStorage()&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;print &lt;/span&gt;form_data.keys();&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;print &lt;/span&gt;form_data.values();&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;for &lt;/span&gt;name &lt;span class="Apple-style-span" style="color: orange;"&gt;in&amp;nbsp;&lt;/span&gt;form_data.keys():&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;print &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #6aa84f;"&gt;"Key: "&lt;/span&gt; + name + &lt;span class="Apple-style-span" style="color: #93c47d;"&gt;" Value: "&lt;/span&gt; +&amp;nbsp;form_data[name].value +&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #6aa84f; font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;"&amp;lt;BR&amp;gt;"&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-1894012215461794816?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/1894012215461794816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=1894012215461794816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/1894012215461794816?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/1894012215461794816?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2011/02/setting-up-python-cgi-sandbox-on.html' title='Setting up a Python CGI Sandbox on Windows'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CEICSHY7eyp7ImA9Wx9bFE0.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-7813952342127849006</id><published>2011-02-19T19:33:00.000-08:00</published><updated>2011-02-22T11:22:49.803-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-22T11:22:49.803-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Bridgeport CNC'/><category scheme='http://www.blogger.com/atom/ns#' term='EMC2'/><category scheme='http://www.blogger.com/atom/ns#' term='DIY CNC'/><category scheme='http://www.blogger.com/atom/ns#' term='CNC retrofit'/><title>CamSoft System CS-209 - $1991.00</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;When I bought my Bridgeport CNC Mill, it came with a CNC CS-209 control package made by CamSoft. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Here is a description from the CamSoft Website:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="webkit-indent-blockquote" style="text-align: left;"&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;CNC Lite software, AS3000 3D CAD/CAM system, USB Jog Stick Handheld Controller, CS 14000 - 4 axes stepper motion board, cables with user provided computer.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;CNC Lite Software&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;AS3000 Cad/Cam System&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;USB Jog Stick&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Motion Boards&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;b&gt;Limited time special offer starting at $1,991&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-qZ2x8plChvg/TWB-dagyp9I/AAAAAAAABtE/uSzN5K_YJss/s1600/DSC00566.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-qZ2x8plChvg/TWB-dagyp9I/AAAAAAAABtE/uSzN5K_YJss/s200/DSC00566.JPG" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;I&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt; was excited about using this to retrofit the mill. &amp;nbsp;Considering the kit had never been installed I thought that it should be pretty easy to get the mill up and running. &amp;nbsp;The kit even comes with CAD software which is a big expense for CNC machining.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;The CAD software is called Advanced System 3000 and requires a hardware key (I think). &amp;nbsp;The software was on the computer that came with the mill but it was not very intuitive. &amp;nbsp;I have used AutoCAD and Solidworks extensively so I was surprised that I could not really just start drawing.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/-XNZBaEUxohY/TWB-XA8ZNlI/AAAAAAAABtA/mNnYhL1LNHk/s1600/DSC00565.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-XNZBaEUxohY/TWB-XA8ZNlI/AAAAAAAABtA/mNnYhL1LNHk/s200/DSC00565.JPG" width="200" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;The package also comes with CNC software. This software did not seem to be installed on the computer so I can not say anything about it. &amp;nbsp;The manual is very complete but did not seem to have any information on how to install the system into a mill.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;The package is supposed to come with a USB Game/Joystick which I did not get. &amp;nbsp;The last owner said that his kids played with it and lost it. &amp;nbsp;Seems to be the only part of the kit that was ever used.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;The last piece of the package that I did receive was a small circuit board in a plastic enclosure that interfaces the computer to the milling machine. &amp;nbsp;This package is for steppers so there are terminals for xyz step and direction.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/-iojapjw75t4/TWCBiUq107I/AAAAAAAABtI/JwJblRxBFfU/s1600/DSC00567.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="193" src="http://4.bp.blogspot.com/-iojapjw75t4/TWCBiUq107I/AAAAAAAABtI/JwJblRxBFfU/s320/DSC00567.JPG" width="320" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;There are also terminals for:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;EStop&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Lim&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Pause&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Home X, Y, Z, and A&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;MST ? not sure what most of these are&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;FID ?&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;CW and CCW ?&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;OUT ?&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;PWM ?&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/-iojapjw75t4/TWCBiUq107I/AAAAAAAABtI/JwJblRxBFfU/s1600/DSC00567.JPG" imageanchor="1" style="clear: left; display: inline ! important; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Needless to say there are a lot of terminals that need some documentation to hook up. &amp;nbsp;At least the ESTOP is connected to ground with a jumper so I assume that when the connection is broken the card will enter an ESTOP condition.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/-iojapjw75t4/TWCBiUq107I/AAAAAAAABtI/JwJblRxBFfU/s1600/DSC00567.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;I can estimate the parts on the board cost less than $40. &amp;nbsp;Basically a processor, oscillator, 3 terminal blocks, a 7805 regulator, and a DB-9 plug for what I assume is a serial port. Not sure how a serial port would work for CNC unless the device is really an indexer that you send a command to serially. &amp;nbsp;This is different than the idea of most CNC retrofit packages for stepper motors as they use the PC as the indexer and have a dumb opto-isolation&amp;nbsp;interface/breakout&amp;nbsp;board that connects to the parallel port.&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-7nRK9udjewY/TWCBkL8YfVI/AAAAAAAABtM/3keWyIhiBek/s1600/Invoice.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-7nRK9udjewY/TWCBkL8YfVI/AAAAAAAABtM/3keWyIhiBek/s320/Invoice.JPG" width="256" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-7nRK9udjewY/TWCBkL8YfVI/AAAAAAAABtM/3keWyIhiBek/s1600/Invoice.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;So you might ask why I have nice pictures of the kit after my machine is retrofitted and running. &amp;nbsp;Even before I got the Bridgeport in the garage I had called the company and requested some information on hooking up the kit. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;u&gt;&lt;i&gt;Their response was to give me a $1000 quote for support.&lt;/i&gt;&lt;/u&gt; &amp;nbsp;Even though the kit had never been installed and the only thing I needed was a hook-up diagram, they wanted to charge me $1000 to answer my question. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;This got me so angry I put the kit back in the box and vowed never to use it.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;I was thinking about this situation the other day and remembered my experience with Gecko.&amp;nbsp; Since I also got 3 Gecko 201s with no paperwork I called that company for info and&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: small;"&gt;talked to Maris&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;.&amp;nbsp; He spent over an hour with me and helped me decide exactly how to use their drives and &lt;a href="http://gschoep.blogspot.com/2009/08/power-supply-for-cnc.html"&gt;how to build a power supply for them&lt;/a&gt;.&amp;nbsp; He even suggested that I get the first repair free if I burned one (as long as I was honest about what I did).&amp;nbsp; Gecko drives cost less than $40 each ($120) when mine were bought but they still spent a long time helping me even though I was not the original purchaser.&amp;nbsp; The CamSoft package cost more than 10X as much and they wanted 50% more to even talk to me.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif; font-size: x-small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;You also might be&amp;nbsp;curious&amp;nbsp;as the what software and hardware I did use.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;CNC Software :&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.linuxcnc.org/"&gt;Enhanced Machine Controller - EMC2&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Price : Free&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Equivalent to&amp;nbsp;CadSoft&amp;nbsp;CNC lite which lists at $1995&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Interface Board : &lt;a href="http://www.cnc4pc.com/Store/osc/product_info.php?cPath=33&amp;amp;products_id=46"&gt;&lt;b&gt;CNC4PC C11G Breakout Board for Gecko Drives&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Price : $109&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Equivalent to&amp;nbsp;CamSofts Step Motor Control Card - CS14000&amp;nbsp;which lists at $395&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;At the time there was no good free CAD/CAM software. &amp;nbsp;I wrote a Python library to create G-Code. &amp;nbsp;Maybe someday I will release it. &amp;nbsp;However now there is a good free CAD/CAM software package.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;CAD/CAM Software : &lt;/span&gt;&lt;b&gt;&lt;a href="http://code.google.com/p/heekscad/"&gt;HeeksCAD&lt;/a&gt; &lt;/b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;/ &lt;/span&gt;&lt;b&gt;&lt;a href="http://code.google.com/p/heekscnc/"&gt;HeeksCNC&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Price : Free&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',sans-serif;"&gt;Adequate option to&amp;nbsp;CadSoft&amp;nbsp;Advanced System 3000 which lists at $1295&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-7813952342127849006?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/7813952342127849006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=7813952342127849006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/7813952342127849006?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/7813952342127849006?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2011/02/camsoft-system-cs-209-199100.html' title='CamSoft System CS-209 - $1991.00'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-qZ2x8plChvg/TWB-dagyp9I/AAAAAAAABtE/uSzN5K_YJss/s72-c/DSC00566.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;Ak8CQHkyeCp7ImA9Wx9bE08.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-1716966200962817645</id><published>2011-02-09T12:40:00.000-08:00</published><updated>2011-02-21T14:54:21.790-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-21T14:54:21.790-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='C# Tips and Tricks'/><title>Simple User Settings in a C# Windows Forms Application</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There is a lot of confusion and long programming blog posts on application settings for a Windows Forms Application in C#.&amp;nbsp; I needed a quick and simple way to save a few user specific settings such as com port settings and names of labels on a customizable GUI.&lt;br /&gt;
&lt;br /&gt;
I have used the &lt;a href="http://www.red-dove.com/config-doc/"&gt;Python config package&lt;/a&gt; written by Vinay Sajip in a previous project.&amp;nbsp; The nice thing about the package was that it opened a config file and made an object which could be accessed as &lt;i&gt;config.ports.baudrate&lt;/i&gt;.&amp;nbsp; Since Python is not typed the config file, which is simply Python code without any punctuation marks, is flexible, fast and easy to create.&lt;br /&gt;
&lt;br /&gt;
I had hoped that C# would have an easy way to build something similar.&amp;nbsp; I found an post early on suggesting using app.config.&amp;nbsp; After reading MANY posts on configuration and trying a lot of code that would not work on Visual Studio 2011 I had about given up and started writing my own.&lt;br /&gt;
&lt;br /&gt;
Luckily I found a simple solution. A settings file is already included in a Windows Forms Application.&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;In the Solutions Explorer window expand Properties.&lt;/li&gt;
&lt;li&gt;Double click the Settings.settings file and&amp;nbsp; an editor will open.&lt;/li&gt;
&lt;li&gt;Type the name of the setting, choose a type for the data, choose "Users Setting" in scope if you want the setting to be changed at run time, and enter a default value.&lt;/li&gt;
&lt;li&gt;To access the variable in code use &lt;i style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Properties.Settings.Default.yoursettingname&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;To save new settings at run time use &lt;i style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Properties.Settings.Default.Save &lt;/i&gt;which will create a new file.&amp;nbsp; Note that when you change a setting the default value will not change in setting file editor.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-1716966200962817645?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/1716966200962817645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=1716966200962817645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/1716966200962817645?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/1716966200962817645?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2011/02/simple-user-settings-in-c-windows-forms.html' title='Simple User Settings in a C# Windows Forms Application'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0INQHo6eip7ImA9Wx9VGEQ.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-7111772354228426249</id><published>2011-02-05T00:46:00.000-08:00</published><updated>2011-02-05T00:46:31.412-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-05T00:46:31.412-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='EMC2'/><title>Setting up Ubuntu for Automatic Turn-on in Emc2</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;After booting Ubuntu, logging in, and starting up Emc2 for the past year, I am getting lazy.  So I setup Ubuntu to automatically log in to my main account and start the EMC2 program.  It is different than doing the same thing on Windows but possible (all thing that are possible in Windows are so in Linux usually with MANY more options...)&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Setting up the computer to automatically log in to an account:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-style: italic;"&gt;NOTE: This should probably not be done if the machine is on a network.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This one is simple and easy to find with a Google search:&lt;br /&gt;
&lt;br /&gt;
Click on System -&amp;gt; Administration -&amp;gt;Login Window&lt;br /&gt;
Click on Security&lt;br /&gt;
The click on "Enable Automatic Login"&lt;br /&gt;
And select the name of your user in the box below it.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Setting up the machine to run a program like Windows "Start Menu"&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
My first thought was to modify the .login file which is the old school way to start programs outside of a windowing environment (back in 1987...)&lt;br /&gt;
&lt;br /&gt;
With Ubuntu you have to start a program after the windowing environment has started.  To do this you edit Sessions. &lt;br /&gt;
&lt;br /&gt;
Click System -&amp;gt; Preferences -&amp;gt; Sessions&lt;br /&gt;
Click Add and enter a name and for the command enter something like&lt;br /&gt;
emc /home/username/emc2/configs/yourmachine/yourmachine.ini&lt;br /&gt;
&lt;br /&gt;
Probably a good time to turn off a bunch of things that automatically start up that is not needed for a cnc machine (like the update which will break emc2).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-7111772354228426249?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/7111772354228426249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=7111772354228426249' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/7111772354228426249?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/7111772354228426249?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2011/02/setting-up-ubuntu-for-automatic-turn-on.html' title='Setting up Ubuntu for Automatic Turn-on in Emc2'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0MDSHg5fSp7ImA9Wx9VGEQ.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-7831131353868598979</id><published>2011-01-27T03:32:00.000-08:00</published><updated>2011-02-05T00:44:39.625-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-05T00:44:39.625-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='C# Tips and Tricks'/><title>C# Textbox - Enter to go to next control</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;I was building a Windows Form Application in Visual C# Express 2010 and had a problem that needed a lot of searching to figure out. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;I could not get a value to "enter" and tab to the next textbox when I hit the&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;enter&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Enter&lt;/b&gt; key.&lt;/span&gt;&lt;/span&gt;&lt;/enter&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;After much trial and error (most of which would work but I still got a bell when I hit &lt;b&gt;Enter&lt;/b&gt;) I found this.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Enter this as the KeyDown Event.  Note that KeyPress uses KeyChar return types.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;"&gt;&lt;span style="color: blue;"&gt;private void&lt;/span&gt; textbox1_KeyDown(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color: cyan;"&gt;KeyEventArgs&lt;/span&gt; e)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: lime;"&gt;//checks for Enter, suppresses it and sends a tab&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (e.KeyCode == &lt;span style="color: cyan;"&gt;Keys&lt;/span&gt;.Enter &amp;amp;&amp;amp; e.Modifiers == &lt;span style="color: cyan;"&gt;Keys&lt;/span&gt;.None)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.SuppressKeyPress = &lt;span style="background-color: blue;"&gt;&lt;span style="background-color: white;"&gt;&lt;span style="color: blue;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;; &amp;nbsp;//eliminates the enter key *BELL*&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: cyan;"&gt;SendKeys&lt;/span&gt;.Send(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;"&gt;&lt;span style="color: red;"&gt;"{TAB}"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,&amp;quot;Courier&amp;quot;,monospace;"&gt;); //changes focus to the next control&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-7831131353868598979?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/7831131353868598979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=7831131353868598979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/7831131353868598979?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/7831131353868598979?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2011/01/c-textbox-enter-to-go-to-next-control.html' title='C# Textbox - Enter to go to next control'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CU4AQ3c8fyp7ImA9WxBaGU8.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-1631748597986045332</id><published>2010-03-29T20:37:00.000-07:00</published><updated>2010-03-29T21:39:02.977-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-03-29T21:39:02.977-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='CNC Control Panel'/><category scheme='http://www.blogger.com/atom/ns#' term='EMC2'/><category scheme='http://www.blogger.com/atom/ns#' term='DIY CNC'/><title>DIY CNC Milling Machine Control Panel for EMC2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rr492ZDqZZQ/S7GAVjb4aCI/AAAAAAAABpA/ELUzsV4wtcw/s1600/CNC+Control+Panel.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 254px;" src="http://2.bp.blogspot.com/_rr492ZDqZZQ/S7GAVjb4aCI/AAAAAAAABpA/ELUzsV4wtcw/s400/CNC+Control+Panel.png" alt="" id="BLOGGER_PHOTO_ID_5454281731500173346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is meant to be an addition to a regular industrial style alphanumeric keyboard with trackball.  It contains the most widely used functions as far as I now know. Since I am using a CNC4PC C11G I only have 5 inputs.  All these functions are available on the keyboard within EMC2 and will not require a separate input.    This panel will require a keyboard encoder either bought, ripped from an old keyboard, or made with a custom pcb.  Keyboard encoders are available from Hagstrom, Ultimarc ($40) and Vetra.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.beyondlogic.org/"&gt;Beyond Logic&lt;/a&gt; has all the information for rolling the code for your own keyboard controller which has some advantages.  If you code your own then you can include functions for rotary switches (that include one-shots) and analog inputs.&lt;br /&gt;&lt;br /&gt;This control panel is meant to be a cheap way of controlling the machine before or in conjunction with an MPG.  This panel can be made for less than $200 which is a lot cheaper than an MPG.&lt;br /&gt;&lt;br /&gt;One of the things this is missing is indicators/blinken lights.  The power button is meant to be lit when on. Suggestions?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Machine Functions&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Emergency Stop - with an added contact for drivers/vfd input&lt;/li&gt;&lt;li&gt;Machine On - Lit - with an added contact for machine functions/relay/contactor/etc&lt;/li&gt;&lt;li&gt;Coolant toggle&lt;/li&gt;&lt;li&gt;Spindle toggle (Turns the spindle on CW, could be more advanced as my Bridgeport has 2 speeds for Hi/Lo. But when do you need a button to control the spindle speed otherwise?)&lt;/li&gt;&lt;li&gt;Touch Off&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Program Functions&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Run&lt;/li&gt;&lt;li&gt;Stop&lt;/li&gt;&lt;li&gt;Feed Hold/Pause&lt;/li&gt;&lt;li&gt;Resume&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Jog Functions&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;X increase / X decrease&lt;/li&gt;&lt;li&gt;Y increase / Y decrease&lt;/li&gt;&lt;li&gt;Z increase / Z decrease&lt;/li&gt;&lt;li&gt;A increase / A decrease&lt;/li&gt;&lt;li&gt;Jog Feed rate increase / decrease&lt;/li&gt;&lt;li&gt;Continuous Jog&lt;/li&gt;&lt;li&gt;Incremental Jog increase / decrease (first press selects incremental and second moves in 0.001,0.01,0.1)&lt;/li&gt;&lt;li&gt;Limits Override&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Display Functions&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;DRO/Path Preview Toggle&lt;/li&gt;&lt;li&gt;Jog (Jog keys do not work in MDI so this button selects the jog page.  MDI can be selected by the track ball or keyboard but will not have a button as it is a keyboard function)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Expansion&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;3 buttons without functions.&lt;/li&gt;&lt;/ul&gt;I would like to have a feed override but EMC2 does not have an easy buttons for this function.  Instead EMC2 uses the number keys to select a percentage.  I think that a potentiometer would be the most useful for feed override but that would require an analog input into the computer which I do not have.&lt;br /&gt;&lt;br /&gt;For your reference here is the list of keyboard commands for EMC2 from the Axis Quick Reference help page.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rr492ZDqZZQ/S7GAA06CwWI/AAAAAAAABo4/4uc9boA_RFk/s1600/Screenshot-AXIS+Quick+Reference.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 331px;" src="http://1.bp.blogspot.com/_rr492ZDqZZQ/S7GAA06CwWI/AAAAAAAABo4/4uc9boA_RFk/s400/Screenshot-AXIS+Quick+Reference.png" alt="" id="BLOGGER_PHOTO_ID_5454281375412830562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rr492ZDqZZQ/S7F1NcLNqnI/AAAAAAAABow/zQmFKlXW2cI/s1600/Screenshot-AXIS+Quick+Reference.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-1631748597986045332?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/1631748597986045332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=1631748597986045332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/1631748597986045332?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/1631748597986045332?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2010/03/diy-cnc-milling-machine-control-panel.html' title='DIY CNC Milling Machine Control Panel for EMC2'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rr492ZDqZZQ/S7GAVjb4aCI/AAAAAAAABpA/ELUzsV4wtcw/s72-c/CNC+Control+Panel.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CUICQX4-cSp7ImA9Wx9QGEk.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-652275823543197890</id><published>2010-01-07T10:10:00.001-08:00</published><updated>2010-12-31T16:59:20.059-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2010-12-31T16:59:20.059-08:00</app:edited><title>Sparkfun Freeday - A Bust</title><content type='html'>So many people on the net know about Sparkfun.  It is a quirky website out of Boulder Colorado that sells electronic kits/gadgets/pcbs/components for building your own whatever.  They concentrate on Ardunio type single board computers.&lt;br /&gt;
&lt;br /&gt;
Today was "Freeday" where they gave away $100 to the first 1ooo customers.  But before today they made a big deal about how they tuned up their servers to handle the load.  Maybe they were a bit optimistic but MANY people who tried to participate (including myself) spent 2 hours hitting "refresh" when all we had to do was click "confirm order."  &lt;br /&gt;
&lt;br /&gt;
Now I (and many other people) have a huge level of frustration that because the site wouldn't let us through, we lost out.  In other words the "free" offer was not played fairly because their servers slowed to a crawl.  I would totally accept having the money go quickly (in something like 5 minutes) and I just missed out.  But clicking refresh for 2 hours (literally) makes it unacceptable.  Who are they anyway to waste 2 hours of my (and MANY other peoples) time?&lt;br /&gt;
&lt;br /&gt;
So for "Freeday" Sparkfun got almost unlimited FREE advertising.  Much more than $100,000 could have bought in traditional channels.  They are #1 for google Search and twitter is "all a twitter" about Sparkfun.&lt;br /&gt;
&lt;br /&gt;
But people all over the world got up early, or zoned out of work to click refresh for 2 hours.  What was the real cost of Freeday in lost time and frustration?  A quick estimate of 2 hours of $7.50 an hour for 100,000 people (probably many more) is 1.5 million.  But I wonder what the statistics will show about how many people really tried to get in on Freeday.  It may be better for Sparkfun if they don't publish the results.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update&lt;/b&gt;: the site had 70,000 unique visitors that day. 70,000 * $15 = $1,050,000.&lt;br /&gt;
&lt;br /&gt;
(Notice that they are no links in this message.  Sparkfun got enough of my free advertising already)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-652275823543197890?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/652275823543197890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=652275823543197890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/652275823543197890?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/652275823543197890?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2010/01/sparkfun-freeday-bust.html' title='Sparkfun Freeday - A Bust'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEYEQX86eSp7ImA9Wx9VGEQ.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-2629515893941374241</id><published>2010-01-05T23:36:00.000-08:00</published><updated>2011-02-05T00:55:00.111-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-05T00:55:00.111-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Python CNC'/><title>Rotation Around a Point</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There are lots of code example that show rotation or a 2D point around the origin but what about around some arbitrary point?  This is important if you are translating airfoils into G-Code...&lt;br /&gt;
&lt;br /&gt;
To do a rotation around a point without matrix math you translate the point to rotate around the origin (0,0,0), then rotate the point, and translate it back.  &lt;br /&gt;
&lt;br /&gt;
So basically you subtract the location of the rotation point from the x coordinate, rotate the new point, and add the location of the rotation point back.&lt;br /&gt;
&lt;br /&gt;
Here it is in Python&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="python" name="code"&gt;from math import *
def rotate2d(degrees,point,origin):
"""
A rotation function that rotates a point around a point
to rotate around the origin use [0,0]
"""
x = point[0] - origin[0]
yorz  = point[1] - origin[1]
newx = (x*cos(radians(degrees))) - (yorz*sin(radians(degrees)))
newyorz  = (x*sin(radians(degrees)))   (yorz*cos(radians(degrees)))
newx  = origin[0]
newyorz   = origin[1]

return newx,newyorz
&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-2629515893941374241?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/2629515893941374241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=2629515893941374241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/2629515893941374241?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/2629515893941374241?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2010/01/rotation-around-point.html' title='Rotation Around a Point'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEUFSHY7cCp7ImA9Wx9VGEQ.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-3643729115313100951</id><published>2009-12-09T22:14:00.000-08:00</published><updated>2011-02-05T00:56:59.808-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-05T00:56:59.808-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Python CNC'/><title>Parabola in G code</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: verdana;"&gt;The following Python script produces a parabola in G-code.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new; font-size: 85%;"&gt;&lt;br /&gt;
&lt;pre class="python" name="code"&gt;#This code produces g-code for a parabola using the equation
#(y - k)2 = 4a(x - h). The parabola is open to positive x.
#a = x coor of focus
#k = x coor of back of parabola
#h = y coor of focus
#r = resolution
#ymax, ymax = limits of iteration
a = 2.0
k = 0.0
h = 0.0
ymax = 5.0
ymin = 0.0
resolution = 0.1
lastx = 0.0
lasty = h
def frange3(start, end=None, inc=None):
"""
A range function, that accepts float increments...
http://code.activestate.com/recipes/66472/
"""
import math

if end == None:
end = start + 0.0
start = 0.0
else: start += 0.0 # force it to be a float

if inc == None:
inc = 1.0
count = int(math.ceil((end - start) / inc))

L = [None,] * count

L[0] = start
for i in xrange(1,count):
L[i] = L[i-1] + inc
return L

#top half
for ystep in frange3(ymax+resolution,ymin,-resolution):
x = ( ((ystep - k)*(ystep - k)) + 4*a*h ) / (4*a)
print "G01 X"+str(x) +" Y"+str(ystep)#+"\n"
print "G01 X"+str(lastx) +" Y"+str(lasty)#+"\n"
#bottom half
for ystep in frange3(ymin,-(ymax+resolution),-resolution):
x = ( ((ystep - k)*(ystep - k)) + 4*a*h ) / (4*a)
print "G01 X"+str(x) +" Y"+str(ystep)#+"\n"
&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-3643729115313100951?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/3643729115313100951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=3643729115313100951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/3643729115313100951?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/3643729115313100951?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2009/12/parabola-in-g-code.html' title='Parabola in G code'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0IGSHY7fyp7ImA9WxNXEUs.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-7990206051577419170</id><published>2009-09-28T12:07:00.000-07:00</published><updated>2009-09-28T12:18:49.807-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-09-28T12:18:49.807-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Bridgeport CNC'/><category scheme='http://www.blogger.com/atom/ns#' term='Bridgeport Boss'/><category scheme='http://www.blogger.com/atom/ns#' term='CNC retrofit'/><title>Repost: Summary of the Retrofit</title><content type='html'>In a response to &lt;a href="http://www.cnczone.com/forums/showthread.php?t=88469"&gt;&lt;strong&gt;Where the heck? What the he11? HUNH?&lt;/strong&gt;&lt;/a&gt; on CNCZone I posted the following.  I realized later that it is a good summary of my retrofit so I will repost it here.&lt;br /&gt;&lt;br /&gt;I am in the process of doing the same thing (a Bridgeport Boss CNC Retrofit). I have the gecko drives working, a Automation Direct GS2 VFD, and a power supply built with T1 (the 240 v to 120v transformer tapped at 40v). I already had Gecko 201s but the 203s would be better because of the auto short circuit protection circuitry.&lt;br /&gt;&lt;br /&gt;Just remember that "common" on the Gecko 201s is 5 volts to power the opto-isolator LED. Also just wire 2 windings of 4 of the stepper motors because the windings are in bifilar (which means that 2 windings are wound together). There are jumpers on the motors that show which terminals are the ends of the windings and then wire to the other side. I have 1 sigma and 2 superior and the geckos work fine so far.&lt;br /&gt;&lt;br /&gt;I used a C11G breakout board from CNC4PC which has some extras AC relays for coolant etc and is set up for direct wiring to a Gecko drive with opto isolators.&lt;br /&gt;&lt;br /&gt;I am using the original limit switches and wired both NC and NO contacts for a separate e-stop and enable circuits. X and Y are set up as "both limits" in EMC2 and the Z has an upper, lower and a home switch. You can actually move the deceleration switch past the upper limit if you loosen the bracket screws and use it as upper limit. Then the screw adjustable switch can be a home switch.&lt;br /&gt;&lt;br /&gt;All this fits in the back cabinet on the mill.  Mine had no side cabinet.&lt;br /&gt;&lt;br /&gt;For software I am using EMC2. It was probably the easiest part of the project. It has a nice wizard for setting up your mill which lets you check feed rates/limits/etc. They only problem that I had was a non compatible graphics card. Otherwise it was pretty straight forward to install on a empty HDD on a Dell GX240 computer (pent 4, 512 MB RAM, NVIDIA graphics card).&lt;br /&gt;&lt;br /&gt;I got most of this information from this forum except for explicit directions on modifying the transformer which I just figured out after reading the suggestion on this forum.&lt;br /&gt;&lt;br /&gt;I also had an hour long talk with Mariss at Gecko tech support who has probably forgotten more about Boss retrofits than I will ever know.&lt;br /&gt;&lt;br /&gt;Basically my costs were:&lt;br /&gt;Gecko drives - Free (came with the mill)&lt;br /&gt;Stepper power supply parts&lt;br /&gt;   transformer - Free (came with mill)&lt;br /&gt;   bridge rectifier - 5$ at digikey&lt;br /&gt;   6800 uF capacitor - Free (I had one)&lt;br /&gt;VFD from Automation Direct - $260 with shipping&lt;br /&gt;C11G - ~$100 from CNC4PC&lt;br /&gt;EMC2 - Free&lt;br /&gt;Computer (GX240 MB on ebay $40 to put in old case I got surplus)&lt;br /&gt;&lt;br /&gt;It is really not that big of a deal to do a retrofit using the original steppers once you get your head around it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-7990206051577419170?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/7990206051577419170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=7990206051577419170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/7990206051577419170?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/7990206051577419170?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2009/09/repost-summary-of-retrofit.html' title='Repost: Summary of the Retrofit'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0cERHY-cCp7ImA9WxNQGUQ.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-7789005866731095646</id><published>2009-09-26T11:56:00.000-07:00</published><updated>2009-09-26T14:03:25.858-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-09-26T14:03:25.858-07:00</app:edited><title>Angle Tight II Precision CNC Machine Vise at Enco</title><content type='html'>I have frequently bought from Enco because their prices are much better than other places especially if you shop from the Enco flyer.  Recently a machinists vise came up on sale.  It is a presumably Chinese copy of a Kurt vise and seemed a good deal.  However, while all the "good" vises such as Kurt or Parlec gave some kinds of specs for repeatability, flatness or parallelism the Angle Tight II ads listed nothing but holding force.&lt;br /&gt;&lt;br /&gt;So I emailed Enco...&lt;br /&gt;&lt;blockquote&gt;&lt;table class="cf gJ" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2" class="gG"&gt;&lt;span class="gI"&gt;to&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" class="gL"&gt;&lt;span class="gI"&gt;EncoTechandParts@use-enco.com&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2" class="gG"&gt;&lt;span class="gI"&gt;date&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" class="gL"&gt;&lt;span class="gI"&gt;Thu, Sep 24, 2009 at 2:49 PM&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2" class="gG"&gt;&lt;span class="gI"&gt;subject&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" class="gL"&gt;&lt;span class="gI"&gt;Angle Tight II Precision CNC Machine Vise PN SU327-5893 Questions&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2" class="gG"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td colspan="2" class="gL"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;I am interested in the Angle Tight II Precision CNC Machine Vise PN SU327-5893 that is on sale right now for $159.95.&lt;br /&gt;&lt;br /&gt;I want to use it as an inexpensive CNC vise but there are no specs published in the flyer or the catalog.&lt;br /&gt;&lt;br /&gt;What are the specs for accuracy, flatness or parallelism of the jaws?  Is the bed ground to flatness?&lt;br /&gt;&lt;br /&gt;Also, do Kurt style soft jaws fit the vise?&lt;br /&gt;&lt;br /&gt;I am sure with some of this information on the ads the product would sell better.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;/blockquote&gt;Very quickly I did get a reply:&lt;br /&gt;&lt;p&gt;&lt;span style=";font-family:Arial;font-size:85%;color:navy;"   &gt;&lt;span style=";font-family:Arial;font-size:10pt;color:navy;"   &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;table class="cf gJ" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr class="UszGxc"&gt;&lt;td style="color: rgb(51, 51, 153);" class="gG"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="gI"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="color: rgb(51, 51, 153);" colspan="3" class="gL"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="gI"&gt;&lt;span email="encotechandparts@use-enco.com" class="gD"&gt;Enco Parts&lt;/span&gt; &lt;span class="go"&gt;&lt;encotechandparts@use-enco.com&gt;&lt;/encotechandparts@use-enco.com&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(51, 51, 153);" colspan="2" class="gG"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="gI"&gt;date&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; color: rgb(51, 51, 153);"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="color: rgb(51, 51, 153);" colspan="2" class="gL"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="gI"&gt;&lt;span class="ik"&gt;&lt;/span&gt;Thu, Sep 24, 2009 at 3:25 PM&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: rgb(51, 51, 153);" colspan="2" class="gG"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="gI"&gt;subject&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; color: rgb(51, 51, 153);"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="color: rgb(51, 51, 153);" colspan="2" class="gL"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="gI"&gt;RE: Angle Tight II Precision CNC Machine Vise PN SU327-5893 Questions&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style=";font-family:Arial;font-size:85%;color:navy;"   &gt;&lt;span style=";font-family:Arial;color:navy;"  &gt;Hello Gary&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style=";font-family:Arial;font-size:85%;color:navy;"   &gt;&lt;span style=";font-family:Arial;color:navy;"  &gt;Unfortunately I do not have any specs on the vise you are looking at.  We would have to measure the vise jaws and the kurt jaws to see if they will fit properly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;              &lt;p&gt;&lt;span style=";font-family:Arial;font-size:85%;color:navy;"   &gt;&lt;span style=";font-family:Arial;color:navy;"  &gt;XXXXXXX XXXXXX&lt;br /&gt;Enco Tech.&lt;br /&gt;400 NV Pacific Hwy&lt;br /&gt;Fernley&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:85%;color:navy;"   &gt;&lt;span style=";font-family:Arial;color:navy;"  &gt;, NV 89408&lt;br /&gt;Ph. 800-873-3626 xXXXXXX&lt;br /&gt;Fax 800-965-5857&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style=";font-family:Arial;font-size:85%;color:navy;"   &gt;&lt;span style=";font-family:Arial;font-size:10pt;color:navy;"   &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;Note that I have removed the person's name and extension.&lt;br /&gt;&lt;br /&gt;This floored me.  Enco Tech support doesn't have any information on their product?  Why would there not be manuals or spec sheets sitting on the tech support person's desk describing what I think is a staple product for a machinist supply company?&lt;br /&gt;&lt;br /&gt;Based on this I bought a Parlec off Ebay NIB even cheaper than what Enco had it for on sale.&lt;br /&gt;&lt;br /&gt;But I felt I should communicate my dissatisfaction with the (non) Tech Support...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;table class="cf gJ" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2" class="gG"&gt;&lt;span class="gI"&gt;to&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" class="gL"&gt;&lt;span class="gI"&gt;Enco Parts &lt;encotechandparts@use-enco.com&gt;&lt;br /&gt;&lt;/encotechandparts@use-enco.com&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2" class="gG"&gt;&lt;span class="gI"&gt;date&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" class="gL"&gt;&lt;span class="gI"&gt;Sat, Sep 26, 2009 at 12:51 PM&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2" class="gG"&gt;&lt;span class="gI"&gt;subject&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" class="gL"&gt;&lt;span class="gI"&gt;Re: Angle Tight II Precision CNC Machine Vise PN SU327-5893 Questions&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Based on not having any specs and not getting my questions answered I bought a Parlec vise from another company.&lt;br /&gt;&lt;br /&gt;This vise may be a good deal as many of your Chinese tools are.  But for a vise which sets the precision of all parts made in it machinists have to know what the specs are.  And you should know the dimensions of your products and have at least the manual to refer to.  Maybe you will sell these to hobbyists but machinists need specs.&lt;br /&gt;&lt;br /&gt;Based on this I would rate Enco low on customer service although I have bought from you in the past.&lt;br /&gt;&lt;br /&gt;A lot of people complain about Enco in the web for both quality and service.  Price wont last as a good selling tool.  Service is very important especially when you are known for selling inexpensive foreign made equipment.&lt;br /&gt;&lt;br /&gt;Thanks and just my 2 cents.&lt;br /&gt;&lt;br /&gt;Have a good day.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-7789005866731095646?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/7789005866731095646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=7789005866731095646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/7789005866731095646?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/7789005866731095646?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2009/09/angle-tight-ii-precision-cnc-machine.html' title='Angle Tight II Precision CNC Machine Vise at Enco'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEQFQX86cSp7ImA9Wx9VGEQ.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-2251116297522289470</id><published>2009-08-10T10:35:00.000-07:00</published><updated>2011-02-05T00:58:30.119-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-05T00:58:30.119-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Bridgeport CNC'/><category scheme='http://www.blogger.com/atom/ns#' term='Bridgeport Boss'/><category scheme='http://www.blogger.com/atom/ns#' term='CNC retrofit'/><title>Power Supply for CNC</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;One of the first things that one needs to retrofit a Bridgeport Boss CNC machine is a power supply for the steppers.  That is assuming that one has drives which I do in the form of Geckodrive G201s.  The original Bridgeport power supply for the steppers put out 56 volts dc so most people use this voltage although some use 60 or even higher voltages.  As far as current goes most people use 6-7 amps, 7 amps being the maximum that G201s will source.&lt;br /&gt;
&lt;br /&gt;
While researching stepper power supplies I found a great reference on Gecko's website.  &lt;a href="http://www.geckodrive.com/upload/Step_motor_basics.pdf"&gt;http://www.geckodrive.com/upload/Step_motor_basics.pdf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This document not only shows how to wire the drives but gives a good example of a power supply with sample component values.  Basically a power supply (unregulated) only needs a transformer putting out a desired voltage that is rectified by a full diode bridge and filtered by a big capacitor.&lt;br /&gt;
&lt;br /&gt;
To get 56vac you need un-rectified 39vac.  (56 v /1.414 = 39.6 v)&lt;br /&gt;
&lt;br /&gt;
For a capacitor value C = (80000 uF x I) / V = 80000 uF x 5 amps / 56 volts = 7142 uF.&lt;br /&gt;
The closest standard value to 7100 is 6800.&lt;br /&gt;
&lt;br /&gt;
For a bridge there are several high amperage bridges that are rated at a couple hundred volts.  I found the MB352 made by Diodes Inc at &lt;a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?lang=en&amp;amp;site=US&amp;amp;KeyWords=MB352-ND&amp;amp;x=0&amp;amp;y=0"&gt;Digikey&lt;/a&gt; that is rated 200 vac and 35 amps and only costs $4.50.&lt;br /&gt;
&lt;br /&gt;
I designed a power supply using the suggested circuit but wanted some verification so I called Gecko tech support and had a very useful conversation with Mariss Freimanis from Geckodrive.  After talking to Mariss I decided to run the motors at 56 volts and 6 amps.  The motors are rated near/at 6 amps so giving myself 1 amp as a safety measure seems like a good idea.&lt;br /&gt;
&lt;br /&gt;
It was suggested by Gecko that I first test my setup at 24v and about 5 amps.  The drives are "hard to kill" at this voltage. After one maxes out the IPM at 24vdc the ratio of desired IPM is used to calculate the voltage needed compared to 24vdc.  I will be happy with the IPM that I get at 56vdc which should be 150-180 IPM.  I have decided to check out the drives and the motors at 24vdc first though however to get everything right.&lt;br /&gt;
&lt;br /&gt;
It is suggested at CNCzone by a few people that one of the transformers (T1) in the control cabinet makes a great stepper power supply transformer.  Also there are computer grade capacitors and a big heatsink in the computer cabinet that can be used.  I did not have a computer cabinet so I had to provide my own.&lt;br /&gt;
&lt;br /&gt;
T1 is a 240v transformer that provides 120v for the original setup.  From the the CNCzone forum it is supposed to be rated at 1000va although I could not find this information on my own.  The problem with T1 is that it does not have a tap at 39vac although a few people either rewind the secondary winding 0r cut a few windings out to make a 39 vac tap.  The examples on CNCzone of this procedure have been with a 110vac input to the transformer.&lt;br /&gt;
&lt;br /&gt;
It seems to me that using 120vac is not neccesery when you have 240 vac (which the machine needs to run anyway) already in the cabinet.  The 240 is required if one is using a VFD to create the 208 three phase for the motor.  Not having 3 phase in my shop this is a requirement for my installation.  So with a single input of 240 vac I plan to run the VFD and T1 which will produce 120vac for the fans and the lube system (and coolant eventually) and 39vac for the stepper power supply.&lt;br /&gt;
&lt;br /&gt;
According to the forum the secondary of T1 is 3 windings of 19 turns.  So quickly I can estimate that 120vac/(3 x 19) turns or 120vac/57 turns or 2.10 vac / turn.  So to get 39 vac 39vac / 2.10 vac/turn = 18.5 turns.&lt;br /&gt;
&lt;br /&gt;
Hmmm... This is awful close to 1 winding.  So if I put in a "tap" on the top of the second winding (or simply 19 turns away from X1) then I should get 39 vac.  This is simple to test by plugging T1 into 240 and using a meter to look for a 39vac potential from X1 to one of the windings.  By pressing (hard) the meter probe through the varnish on the winding you can find the magic spot and get  the right voltage.&lt;br /&gt;
&lt;br /&gt;
My test was a success but it was even easier than I thought.  39.6 vac (exactly) exists inside the core of the transformer but 40 vac (39.9) is on the top of the FIRST winding right below the  terminals for X1 and X3.  This is VERY simple.  All I had to do was pull out the top winding and scrape off the varnish to solder on a new tap for the transformer.  I made a new terminal from an extra contact from the 240 plug that I bought for the machine and connected it with a scrap of solid wire.  The winding seemed to be 10awg which should handle the current just fine.&lt;br /&gt;
&lt;br /&gt;
(Note that the schematics from Bridgeport show T1 as having multiple taps so there are probably multiple flavors of T1 and some may not be as easy to modify.)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-2251116297522289470?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/2251116297522289470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=2251116297522289470' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/2251116297522289470?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/2251116297522289470?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2009/08/power-supply-for-cnc.html' title='Power Supply for CNC'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>2</thr:total></entry><entry gd:etag='W/&quot;AkAMQ34_eSp7ImA9WxJbEk0.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-353707137710448066</id><published>2009-07-21T12:32:00.000-07:00</published><updated>2009-07-21T13:39:42.041-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-07-21T13:39:42.041-07:00</app:edited><title>Tooling and Retrofit Status</title><content type='html'>Before I go much further I should note that I am new to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;CNC&lt;/span&gt; and machining in general.  Which means I have no tooling.  I do have a good set of import drills and a set of inexpensive end mills but no test indicator, to tool holders, etc.&lt;br /&gt;&lt;br /&gt;One of the first things I looked at when I got the machine was the taper.  These machines came with 2 types of Quick Connect tapers, either QC#30 or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Kwik&lt;/span&gt; Switch 200.  My machine has &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Kwik&lt;/span&gt; Switch 200 which according to users of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;CNCZone&lt;/span&gt; is far superior to R8.  Unfortunately tool holders are not as common as R8 or as inexpensive.&lt;br /&gt;&lt;br /&gt;The first tool holding device I acquired (or am acquiring) is a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;keyless&lt;/span&gt; chuck and a 1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;JT&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Kwik&lt;/span&gt; Connect 200 adapter.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://i.ebayimg.com/17/%21BVVccEgB2k%7E$%28KGrHgoH-EIEjlLlzEZJBKR91fdehQ%7E%7E_35.JPG" id="i_vv4-26" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;This is what the one that I won in auction looks like.  Although I did win the auction a while back, I have still not received the adapter.  I first bought a 1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;JT&lt;/span&gt; adapter but plan on getting a 2&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;JT&lt;/span&gt; and 3&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;JT&lt;/span&gt; adapters.  I also bought a 5/15" &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;keyless&lt;/span&gt; chuck for the 1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;JT&lt;/span&gt; and will get a 3/8" for a 2&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;JT&lt;/span&gt; but for the 3&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;JT&lt;/span&gt; I will get a Jacobs 14N as they come highly reviewed.&lt;br /&gt;&lt;br /&gt;I would also like to have some &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;collet&lt;/span&gt; holders and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;collet&lt;/span&gt; sets.  The machine came with 2 Universal &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;collet&lt;/span&gt; holders with 3/4" &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;collets&lt;/span&gt;.  This disappointed me some to have such a big size &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;collet&lt;/span&gt; until I learned that many types of tooling come with a 3/4" shank such as fly cutters.  There are quite a few sets on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Ebay&lt;/span&gt; with 3/4" shanks fairly cheap (&lt;$40).  But one of the first things I did when I got the machine was research collets sets.  For Kwik Switch 200 there are 2 collet types that are available commonly.  Universal had a Double Taper type that is the same as the tooling that came with the machine.  Then there is a Acura-Flex type that is also common.  Actually there are a few Acura collet types (Acura-Flex, Acura-Mill, Acura-Grip, and Acura-Tap) but the flex seems to be the most common.  Shortly after I bought the machine 3 complete sets of collets came available on Ebay.  Two sets of 3/8" collets and a set of 3/4" collets.  I was able to win all three.  I immediately bought the 2 available Kwik Connect 200  3/8" collet holders off &lt;a href="http://www.tools-n-gizmos.com/"&gt;Tools and Gizmos&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Since I will be working in small tool sizes at first I put off buying the 3/4" tool holders as they seem more common anyway.  I will buy another couple 3/8" collet chucks when they are available.  The pic below is the 3/4" collet set.  The owner claims to have used the 3/4" collet only once and lists the set as "New".&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;center&gt;&lt;img src="http://i.ebayimg.com/17/%21BWMYHHQBGk%7E$%28KGrHgoH-DYEjlLl5L7,BKWSu50hjQ%7E%7E_35.JPG" id="i_vv4-25" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;The 3/8" sets are also still in the "box" but have had use.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://i.ebayimg.com/13/%21BWM%28M-wCGk%7E$%28KGrHgoH-EYEjlLl0H2jBKWSpbyQYg%7E%7E_35.JPG" id="o3yg" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;/center&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Next stop will be a purchase at Enco for assorted items and some Vactra #2&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;Way Lube which is on sale.  One thing that I am purchasing are Mason Neoprene Mounts in the 500-1000 lb range.  I am unsure how to get the machine off the floor to install them however.  I have seen some nice mobile bases at Grizzly but nothing that would do 2600lbs.  It would be nice to have a base with casters that could be moved around in the garage.&lt;br /&gt;&lt;br /&gt;I am looking at the Automation Direct GS2 Variable Frequency Drive for the spindle motor.  It is well documented at least and can be purchased new.  Also, the installation manual for EMC2 lists a driver for the device.  A 2hp GS2 lists for $241.&lt;br /&gt;&lt;br /&gt;I tried EMC2 in the computer that came with the machine.  With only 256Mb of memory and a 800 MHz Duron the computer scored &gt;5,000,000 in latency in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;EMC&lt;/span&gt;2 test so it looks like I need to find a bit faster machine to use for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;CNC&lt;/span&gt; control.&lt;br /&gt;&lt;/div&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-353707137710448066?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/353707137710448066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=353707137710448066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/353707137710448066?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/353707137710448066?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2009/07/tooling-and-retrofit-status.html' title='Tooling and Retrofit Status'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkcAQHY8cCp7ImA9WxJUGEo.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-1208117930280896256</id><published>2009-07-17T07:44:00.000-07:00</published><updated>2009-07-17T15:34:01.878-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-07-17T15:34:01.878-07:00</app:edited><title>Software Options</title><content type='html'>CNC Software is something that I have researched for many years.  I actually have a set of three stepper drivers, a couple good NEMA 23 motors and a small XY table that I bought from Grizzly. What was always missing was the software (both CNC and CAD/CAM).  Over the last few years I have searched and collected demos and free software.&lt;br /&gt;&lt;br /&gt;The best option for free software for CNC control is EMC2.  http://www.linuxcnc.org/&lt;br /&gt;Although the software runs on Linux it is a very good option for CNC work.&lt;br /&gt;&lt;br /&gt;The Bridgeport actually came with software and a computer running Win 98.  The software is made by CamSoft and is both a CNC control package and a CAD/CAM package.&lt;br /&gt;&lt;br /&gt;A while back I downloaded a CAM program demo from MecSoft called VisualMill.  I have not yet installed it but will try it out.  My interest in VisualMill was because of a plug in for Rhino.  A friend's husband uses Rhino to design hulls of &lt;a href="http://www.vikingfastcraft.com/Viking%20FCS%20HomePage.html"&gt;hydrofoil assisted catamarans&lt;/a&gt;, very cool technology.  He suggested that he program is a good value to it's capabilities.&lt;br /&gt;&lt;br /&gt;EMC2&lt;br /&gt;To try out EMC2 it is as simple as downloading a live CD and burning it to a disk.  A live CD is a bootable disc that you can run on your computer without changing your operating system or loading &lt;span style="font-style: italic;"&gt;anything &lt;/span&gt;onto your hard drive for that matter.  You simply install the CD in your drive, shutdown and reboot the computer, and the software will load (as long as you allow booting from CD in your BIOS settings). After you are done evaluating the software, you remove the live CD and reboot the machine.  There are no changes whatsoever to your machine or operating system.&lt;br /&gt;&lt;br /&gt;The EMC2 live CD works well.  It is based on Ubuntu 8.04 which is a capable and recent distro of Linux.  It is not the most recent version but will be supported for at least 3 years which is why the EMC2 team selected it.&lt;br /&gt;&lt;br /&gt;After EMC2 has booted you get a standard Ubuntu desktop.  Select Applications, then Linux CAM and then the EMC setup utility.  You select the the machine you have and then setup parallel port settings.  Even though there is no CNC machine connected to the computer the software will run.  (If you are playing with the port setup and specify limit switches the software may not run because it is looking for certain inputs on the port which will not be present.)  The software seems simple enough and the setup shows just how trivial setting up a parallel port stepper motor CNC machine can be.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CamSoft&lt;/span&gt;&lt;br /&gt;When I took inventory of the software that came with the machine I found 2 cds, 2 floppy discs, a hardware key (dongle), 2 large manuals, and a card in a black enclosure that has labels for limit switches and stepper motors.  The software is older versions of CNCLite for CNC Control and AS4000 for CAD/CAM.  The card turned out to be a Step Motor Control Card model CS14000.  I also found a receipt that listed the total cost for the software packages, card and a controller (PS2 type joystick) for $1991 in the system CS-209 package.&lt;br /&gt;&lt;br /&gt;From the &lt;a href="http://www.cnccontrols.com/specials.asp"&gt;website&lt;/a&gt;:&lt;br /&gt;&lt;p&gt; CNC L&lt;span style="font-family:verdana;"&gt;ite&lt;/span&gt; software, AS3000 3D CAD/CAM system, USB Jog Stick Handheld Controlle&lt;span style="font-size:100%;"&gt;r, CS 140&lt;/span&gt;00 - 4 axes stepper motion board, cables with user provided computer.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cnccontrols.com/cnclite.asp"&gt;CNC Lite Software&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.camsoftcorp.com/prod01.asp"&gt;AS3000 Cad/Cam System&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cnccontrols.com/usbjogstick.asp"&gt;USB Jog Stick&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cnccontrols.com/motionboards.asp"&gt;Motion Boards&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;        &lt;h4&gt;Limited time special offer starting at $1,991&lt;/h4&gt;A big part of what I noticed that I am missing is the installation/integration manual so I called the company.  Actually when I registered to for a chance for a free software package contest I received a cold call from the company so actually I was returning a phone call.  I talked to Gary in sales who told me that to get technical support and upgrades to the software I should buy a maintenance package which could cost from 0$ to 1000$.  Otherwise it seems that I can not get technical support or help installing the software which was old enough that even his techs would have a hard time installing.&lt;br /&gt;&lt;br /&gt;This made me curious so I tried installing the CNC Lite software. When the CD boots I get a big menu of operating systems from Win95 to Win XP.  I chose 98 and went through the process as much as I could figure out.  There is a second screen and 5 or 6 options but the only one that would work is the 1 - Install Graphical Interface option.  After installing the software and trying to run it I got a password screen but have no idea of what the password is.  I will try to call the company and try to find a forum for installation help.&lt;br /&gt;&lt;br /&gt;I have decided that I will definitely try to get the CamSoft software installed and post a record of that process here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-1208117930280896256?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/1208117930280896256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=1208117930280896256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/1208117930280896256?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/1208117930280896256?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2009/07/software-options.html' title='Software Options'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEQBQHw9cSp7ImA9Wx9VGEQ.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-5965308878218610077</id><published>2009-07-08T16:17:00.000-07:00</published><updated>2011-02-05T00:59:11.269-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-05T00:59:11.269-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Bridgeport CNC'/><category scheme='http://www.blogger.com/atom/ns#' term='Bridgeport Boss'/><title>Maintenance of a 30 Year Old CNC Milling Machine</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;One of the big questions that I have about the new milling machine is maintenance and cleaning.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Cleaning the ways&lt;/span&gt;&lt;br /&gt;
I was almost tempted to get out the Foamy Engine Clean and  spray down the machine and let all the sludge drip onto the floor.  However I avoided cleaning anything that may contain grease or lube with any degreaser. On the painted surfaces I used a version of "Orange Clean" (which I could not find locally).  It is called "Greased Lightning Blast" with orange oil.  It made short work of most of the grease on the machine grey paint.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_rr492ZDqZZQ/SlU_WiaxMOI/AAAAAAAABew/GrDkbbT97dw/s1600-h/P7080127.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5356256988255826146" src="http://3.bp.blogspot.com/_rr492ZDqZZQ/SlU_WiaxMOI/AAAAAAAABew/GrDkbbT97dw/s320/P7080127.JPG" style="cursor: pointer; display: block; height: 320px; margin: 0px auto 10px; text-align: center; width: 240px;" /&gt;&lt;/a&gt;The machine after a bit of cleaning.  Anyone have a source for cans of enamel spray paint that matches?&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Way Wipers&lt;/span&gt;&lt;br /&gt;
A quick Google search shows that many people want to sell you exotic and probably expensive way wipers.  But on Ebay a couple sellers offer felt way wipers specially for Series 1 Bridgeport.  I still haven't decided what to do about the wipers.  It is suggested that they are changed out yearly so I am guessing I need to replace them before running the machine.  I will probably pull mine out and see if they can be cleaned and lubed for now.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Way Lube&lt;/span&gt;&lt;br /&gt;
The automatic lubrication system reservoir had some liquid oil in it but also had a sludge at the bottom.  I removed the tank and cleaned the whole assembly.  The maintenance manual suggests Sunoco Waylube 80 (or equivalent) for the automatic lube system.  This is a bit hard to find.  But &lt;a href="http://www.metalwebnews.com/howto/chart/lube.html"&gt;http://www.metalwebnews.com/howto/chart/lube.html&lt;/a&gt; actually is a chart of way oil equivalents.  In this list is suggests that ISO VG 68 is a replacement.  Enco lists a Hangsterfer's ISO VG 68 Way Oil for $24 a gallon (#319-3925).&lt;br /&gt;
&lt;br /&gt;
OK, recently found page 2-5 which lists MANY approved way lubes.  Some notables:&lt;br /&gt;
Mobile Vactra Oil No. 2 (available at Grainger in 5 gallon pails for $100)&lt;br /&gt;
&lt;br /&gt;
Another link with equivalent way oils: &lt;a href="http://www.idahomachinery.com/PDF%20Files/Machine%20Lubricant%20Cross%20Reference.pdf"&gt;http://www.idahomachinery.com/PDFFiles/MachineLubricantCrossReference.pdf&lt;/a&gt;.  I guess everything crosses to Hangsterfer's.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Other Oiling&lt;/span&gt;&lt;br /&gt;
There is a nice plaque on the head with suggested oiling procedures.  I need to find the oiling points and a source for appropriate oil.  More Later...&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Belt Drives&lt;/span&gt;&lt;br /&gt;
There are timing belts on each of the axis and a belt in the head to change speeds (I think).  I will need to inspect these belts and find a replacement source.  Also it may be that a newer type material may be quieter/faster.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Other Machining Information&lt;/span&gt;&lt;br /&gt;
I actually found some good introductory videos on the MIT Tech TV website.  The videos are for training students in building prototypes in the MIT robotics lab.   The milling machine videos start at #4 &lt;a href="http://techtv.mit.edu/videos/127-machine-shop-4"&gt;http://techtv.mit.edu/videos/127-machine-shop-4&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-5965308878218610077?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/5965308878218610077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=5965308878218610077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/5965308878218610077?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/5965308878218610077?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2009/07/maintenance-of-30-year-old-cnc-milling.html' title='Maintenance of a 30 Year Old CNC Milling Machine'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rr492ZDqZZQ/SlU_WiaxMOI/AAAAAAAABew/GrDkbbT97dw/s72-c/P7080127.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEQDSH8-eip7ImA9Wx9VGEQ.&quot;'><id>tag:blogger.com,1999:blog-8339284658125816628.post-2050368781810520493</id><published>2009-07-07T08:19:00.000-07:00</published><updated>2011-02-05T00:59:39.152-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-05T00:59:39.152-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Bridgeport CNC'/><category scheme='http://www.blogger.com/atom/ns#' term='Bridgeport Boss'/><category scheme='http://www.blogger.com/atom/ns#' term='CNC retrofit'/><title>New Project - Bridgeport Boss CNC Retrofit</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I have a new project.  Recently a series 1 Bridgeport BOSS CNC milling machine was posted on Craigslist.  The machine was in the process of being retrofitted as the control went down and a previous owner threw it away.  It came with a couple tool holders, some Gecko stepper drivers, some software packages and all the manuals.  I contacted the seller to ask about its availability.  It was available so after a discussion with the fiancee I made arrangements to go inspect the machine.&lt;br /&gt;
&lt;br /&gt;
In the meantime I learned a little about Bridgeport BOSS CNC milling machines.  Basically they are similar to manual Bridgeport milling machines but have ball screws and big stepper motors that drive the screws on the X, Y, and Z axis.   They do not run manually.  Also they have pretty obsolete controls that were quite capable for their time.  The stock controls have a resolution of 0.001 and have 200 step per revolution motors with 1:1 pulleys.  But basically they are VERY capable machines when retrofitted and a similar ball screw CNC mill with that rigidity and capability is not available for less than $7000.  They are also reported to be fairly easy to retrofit.&lt;br /&gt;
&lt;br /&gt;
So YES, we decided to get it.  I drove up to the seller's residence and viewed the machine.  under a coat of old grease was a machine with little apparent wear.  The grease was dry and sticky though and would need to be removed.  The motor data plate showed that it was 3 phase 208.  I knew that with a phase converter you can make 3 phase out of 2 phase.&lt;br /&gt;
&lt;br /&gt;
The seller was pretty knowledgeable about machines and had a CNC machining center that he uses to make decorative western belt buckles and "real" spurs.  He didn't have time for the retrofit and had a full shop already.  In the Craigslist ad he listed that he could deliver the mill.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_rr492ZDqZZQ/SlN1uK5pP2I/AAAAAAAABbI/n07ETBb_wr4/s1600-h/DSCN3709.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5355753817934217058" src="http://3.bp.blogspot.com/_rr492ZDqZZQ/SlN1uK5pP2I/AAAAAAAABbI/n07ETBb_wr4/s320/DSCN3709.JPG" style="cursor: pointer; display: block; height: 320px; margin: 0px auto 10px; text-align: center; width: 240px;" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_rr492ZDqZZQ/SlN2BHs1iII/AAAAAAAABbQ/rOrYxFfSk7o/s1600-h/DSCN3713.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5355754143492704386" src="http://3.bp.blogspot.com/_rr492ZDqZZQ/SlN2BHs1iII/AAAAAAAABbQ/rOrYxFfSk7o/s320/DSCN3713.JPG" style="cursor: pointer; display: block; height: 320px; margin: 0px auto 10px; text-align: center; width: 240px;" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_rr492ZDqZZQ/SlN1uK5pP2I/AAAAAAAABbI/n07ETBb_wr4/s1600-h/DSCN3709.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;  &lt;/a&gt;&lt;br /&gt;
I paid him for the machine and arranged delivery.  He had a trailer and could load the machine and I would get rent a skid steer to unload the machine.  I briefly had looked at using a tilt trailer and rollers to move the machine but after talking to a local machinist, Tony at Knick's Machine, decided that lifting it would be easier.  Since the seller had moved machines before, I trusted him to be knowledgeable about moving the machine.&lt;br /&gt;
&lt;br /&gt;
The next step for me was to make space in the garage.  This is where an able and supportive fiancee really helps.  It took us only 12 hours to get the garage all moved and arranged and about 5 cubic yards of garage sale stuff out on the porch.  I gave the machine an open area 9'x10' since I would be working on the machine.  Also this machine only has one control cabinet on the back and is missing the tape drive box.&lt;br /&gt;
&lt;br /&gt;
The seller brought the machine down to Bozeman on a big flatbed trailer.  He tied it down with chains and a nylon lifting strap.  He used the knee to tighten up the nylon strap (later I found that the one Y limit switch stop was bent slightly).  I rented a skid steer (Bobcat) with pallet forks to lift the mill off the trailer.  When the seller and I went to pick it up he noted that the Bobcat probably wasn't rated to lift the mill.  We changed the rental to a fork lift with 4 wheel steering which had 5000 lbs rating.  The price for a 2 hour fork lift rental, a trailer, and a gallon of fuel was less than $100.&lt;br /&gt;
&lt;br /&gt;
We got the machine off the trailer and into the garage with no mishaps.  By lowering the mill almost to the floor we were able to get the fork lift into the garage.  Once the mill was down we were able to spin it slightly to get it straight.  The machine has no leveling feet so it will spin if two people push hard enough.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8339284658125816628-2050368781810520493?l=gschoep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gschoep.blogspot.com/feeds/2050368781810520493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8339284658125816628&amp;postID=2050368781810520493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/2050368781810520493?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8339284658125816628/posts/default/2050368781810520493?v=2'/><link rel='alternate' type='text/html' href='http://gschoep.blogspot.com/2009/07/new-project-bridgeport-boss-cnc.html' title='New Project - Bridgeport Boss CNC Retrofit'/><author><name>Gary Schoep</name><uri>http://www.blogger.com/profile/17006164380704135391</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09671017352333001405'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rr492ZDqZZQ/SlN1uK5pP2I/AAAAAAAABbI/n07ETBb_wr4/s72-c/DSCN3709.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>