Skip to content

Commit

Permalink
Edited programming page, added breaks between projects on most pages,…
Browse files Browse the repository at this point in the history
… updated work history
  • Loading branch information
pat committed Mar 26, 2018
1 parent 9f588e4 commit a5fb42f
Show file tree
Hide file tree
Showing 7 changed files with 183 additions and 203 deletions.
3 changes: 2 additions & 1 deletion 3d modeling.html
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ <h1>3D Modeling Software</h1>
<li>NX</li>
<li>AutoCAD</li>
</ul>
<hr>
<div class="row">
<h2>Turn Signal Housing</h2>
<p>The turn signal housings will be used as replacements for a V Strom motorcycle and will reuse the mounting point and lens.
Expand All @@ -86,7 +87,7 @@ <h2>Turn Signal Housing</h2>
<img class="img-responsive" src="images/turnsignaliso.jpg">
</div>
</div>

<hr>
<h2>Differential Mounts</h2>
<p>This part was designed for the WSU Formula SAE team using SolidWorks to create a 3D parametric model. The model was carefully created to make
full use of the parametric features of SolidWorks by setting dimensions equal to dimensions in other parts. The mounting points for the rear sub-frame
Expand Down
147 changes: 74 additions & 73 deletions design.html
Original file line number Diff line number Diff line change
Expand Up @@ -57,81 +57,82 @@

<div class="starter-template">
<h1>Design Skills</h1>
<ul>
<li>Design for Manufacturing</li>
<li>Design for Assembly</li>
</ul>

<h2>
<a id="differential-mounts" class="anchor" href="#differential-mounts" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Differential Mounts</h2>

<p>This part was created for the WSU Formula SAE team.</p>

<p>The part was designed to:<br>
<ol>
<li>Hold axles in correct alignment relative to wheel</li>
<li>Mate to differential</li>
<li>Mate to tripod joints</li>
<li>Withstand drivetrain loading</li>
</ol>
</p>

<p>The part was designed using Solidworks to create a parametric 3D model. The max loads on the part were determined using hand calcuations. Iterations of the model were run in Solidworks Simulation until the part was optimized with the least amount of material needed to resist the loading.</p>

<p>The final geometry:<br>
<img class="img-responsive" src="images/Diff%20Mount%20.jpg"> </p>

<p>Results:<br>
Part worked successfully through through testing and competition.</p>

<h2>
<a id="bar-end-weight-fix" class="anchor" href="#bar-end-weight-fix" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Bar End Weight Fix</h2>

<p>This part was created to replace a lost part on a V Strom motorcycle.</p>

<p>The original part was positioned inside of the handlebars and accepted an M6 screw that held the bar end weight to the handlebars. I decided to use a press fit on a 3D printed part for the ease of manufacturing and assembly. Calculations in Python were used to confirm that a 3D printed ABS part would be a reasonable solution based on stress due to press fit, pull out force of press fit and strength of threads.</p>

<p>A 3D model of the part was created in FreeCAD. FEA of a simplified version of the model was analysed in ELMER. The part was then optimized by removing material based on the initial analysis and ran again.</p>
<ul>
<li>Design for Manufacturing</li>
<li>Design for Assembly</li>
</ul>
<hr>
<h2>
<a id="differential-mounts" class="anchor" href="#differential-mounts" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Differential Mounts</h2>

<p>This part was created for the WSU Formula SAE team.</p>

<p>The part was designed to:<br>
<ol>
<li>Hold axles in correct alignment relative to wheel</li>
<li>Mate to differential</li>
<li>Mate to tripod joints</li>
<li>Withstand drivetrain loading</li>
</ol>
</p>

<p>The part was designed using Solidworks to create a parametric 3D model. The max loads on the part were determined using hand calcuations. Iterations of the model were run in Solidworks Simulation until the part was optimized with the least amount of material needed to resist the loading.</p>

<p>The final geometry:<br>
<img class="img-responsive" src="images/Diff%20Mount%20.jpg"> </p>

<p>Results:<br>
Part worked successfully through through testing and competition.</p>
<hr>
<h2>
<a id="bar-end-weight-fix" class="anchor" href="#bar-end-weight-fix" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Bar End Weight Fix</h2>

<p>This part was created to replace a lost part on a V Strom motorcycle.</p>

<p>The original part was positioned inside of the handlebars and accepted an M6 screw that held the bar end weight to the handlebars. I decided to use a press fit on a 3D printed part for the ease of manufacturing and assembly. Calculations in Python were used to confirm that a 3D printed ABS part would be a reasonable solution based on stress due to press fit, pull out force of press fit and strength of threads.</p>

<p>A 3D model of the part was created in FreeCAD. FEA of a simplified version of the model was analysed in ELMER. The part was then optimized by removing material based on the initial analysis and ran again.</p>
<div class="row">
<div class="col-sm-6">
<p>Analysis results shown in Paraview:<br>
<img class="img-responsive" src="images/Screenshot.png" alt="">
</div>
<div class="col-sm-6">
The 3D printed part including raft:<br>
<img class="img-responsive" src="images/Handlebar Fix.png" alt=""></p>
</div>
</div>
<hr>
<h2>FSAE Brake System</h2>
<p>As Brake Lead, I was in charge of the design and fabrication of the brake system. My design needed to follow the overall car goals of
simple and lightweight while minimizing cost. </p>
<p>The High level system specifications:</p>
<ol>
<li>Calipers: Brembo P32 2 piece calipers mounted outboard</li>
<li>Rotors: Carbon steel with max diameter allowed by calipers</li>
<li>Hats: CNC Machined Al</li>
<li>Master Cylinders: 1 for Front & 1 for Rear sized for dynamic braking conditions</li>
<li>Balance Bar: splits force between front and rear master cylinders to fine tune brake force distribution</li>
<li>Brake Pedal: CNC Machined Al built to handle FSAE mandated max force</li>
</ol>
<p>The system was successful as the car passed inspection at the FSAE competition and the brake system had no issues during the competition.</p>
<hr>
<h2>Gear Train Tap Handle</h2>
<p>Tap handle designed to mimic a functional gear train. The prototype pictured was printed in 4 pieces to minimize supports needed during printing.
The pieces were then assembled using a combination of superglue and plastic welding.</p>
Next steps:
<ul><li>Investigate revising print settings to improve tooth quality</li>
<li>Remove unnecessary material to lower cost and weight</li>
<li>Investigate option to manufacture using CNC machine</li>
</ul>
<div class="row">
<div class="col-sm-6">
<p>Analysis results shown in Paraview:<br>
<img class="img-responsive" src="images/Screenshot.png" alt="">
</div>
<div class="col-sm-6">
The 3D printed part including raft:<br>
<img class="img-responsive" src="images/Handlebar Fix.png" alt=""></p>
</div>
<div class="col-sm-6">
<p>Front view:<br>
<img class="img-responsive" src="images/TapHandleFront.jpg" alt="">
</div>
<h2>FSAE Brake System</h2>
<p>As Brake Lead, I was in charge of the design and fabrication of the brake system. My design needed to follow the overall car goals of
simple and lightweight while minimizing cost. </p>
<p>The High level system specifications:</p>
<ol>
<li>Calipers: Brembo P32 2 piece calipers mounted outboard</li>
<li>Rotors: Carbon steel with max diameter allowed by calipers</li>
<li>Hats: CNC Machined Al</li>
<li>Master Cylinders: 1 for Front & 1 for Rear sized for dynamic braking conditions</li>
<li>Balance Bar: splits force between front and rear master cylinders to fine tune brake force distribution</li>
<li>Brake Pedal: CNC Machined Al built to handle FSAE mandated max force</li>
</ol>
<p>The system was successful as the car passed inspection at the FSAE competition and the brake system had no issues during the competition.</p>

<h2>Gear Train Tap Handle</h2>
<p>Tap handle designed to mimic a functional gear train. The prototype pictured was printed in 4 pieces to minimize supports needed during printing.
The pieces were then assembled using a combination of superglue and plastic welding.</p>
Next steps:
<ul><li>Investigate revising print settings to improve tooth quality</li>
<li>Remove unnecessary material to lower cost and weight</li>
<li>Investigate option to manufacture using CNC machine</li>
</ul>
<div class="row">
<div class="col-sm-6">
<p>Front view:<br>
<img class="img-responsive" src="images/TapHandleFront.jpg" alt="">
</div>
<div class="col-sm-6">
Side view:<br>
<img class="img-responsive" src="images/TapHandleSide.jpg" alt=""></p>
<div class="col-sm-6">
Side view:<br>
<img class="img-responsive" src="images/TapHandleSide.jpg" alt=""></p>
</div>
</div>
</div>
Expand Down
78 changes: 28 additions & 50 deletions programming.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,61 +59,39 @@
<h1>Programming Skills</h1>
<ul>
<li>Python</li>
<li>Javascript</li>
<li>VBA</li>
<li>SQL</li>
<li>Basic HTML & CSS & Javascript</li>
<li>HTML & CSS</li>
</ul>

<h2>Tally Block Fill</h2>

<p>I started this project to eliminate manual copying of information from one excel sheet to another.
This step is part of the process of creating lift plans so I will describe the process in full to give
context to the situation.</p>

<p>The process for creating a lift plan is as follows:
<ol>
<li>Creating autocad drawings of each lift</li>
<li>Creating a coversheet in Excel listing details of each lift</li>
<li>Filling out a tally block Excel sheet for each lift using information from the coversheet</li>
<li>Copying the tally block Excel sheet into the elevation view of each drawing</li>
<li>Exporting all the drawings to a PDF</li>
<li>Assembling a PDF packet of the drawings and coversheet</li>
</ol>
</p>

<p>The manual copying of information from the coversheet to the tally block sheet took time and lead to errors in the
middle of the process. This would result in having to redo the tally block sheet and all the steps after,
costing a large amount of time</p>

<p>I solved this issue by learning VBA, writing a macro to automatically copy the latest tally block workbook
to the job folder, select the correct worksheet, rename the workbook and fill in the appropriate worksheet.</p>

<p>The result has been a large decrease in errors on the drawings and time savings from the elimination of
errors that would force repeating steps in the lift plan process.</p>

<p>The code is available to view on <a href="https://github.com/pnoll1/TallyBlockFill">Github</a>.</p>

<hr>
<h2>Crane Capacity Look Up</h2>
<h3>Excel Capacity Look Up</h3>
<p>I started this project to automate looking up crane capacities. The process of looking up crane capacities
for each lift would involve using information on the Excel cover sheet to find the capacity in a
3" binder full of charts for every configuration of every crane in the fleet. This is a very tedious process that
can take a lot of time since each lift plan typically involves 10+ lifts and all lifts have to be rechecked anytime
the crane moves. The crane position in a lift plan will typically change twice. This means I look up capacities
20+ times for each lift plan and manually enter the data into the coversheet.</p>
<p>I automated this process by creating a python script to take advantage of the freely available modules for it. The capacity information for
each crane is entered into a sqlite database. The python script uses the xlwings module to pull the information needed from
the Excel coversheet, then uses the sqlite module to query the database and fills in the capacity cell on the coversheet
for each lift using the information from the database.</p>
<p>The result is a process that saves several minutes every time capacities are looked up and eliminates data entry errors.
The elimination of data entry errors saves a huge amount of time since any error requires the lift plan to be redone.</p>
<p>The code is available to view on <a href="https://github.com/pnoll1/capLookUp">Github</a>, it's the xlCapLookUp.py file in this repository.</p>
<h3>Capacity Look Up with GUI</h3>
<p>A byproduct of the Excel capacity look up project is the GUI program I created to look up crane capacities using the database already
created for the above project. The user enters the information in the text boxes and the program will query the database to find the
capacity of configuration for that crane and return it in the GUI. This program could allow others to use the program to easily look up crane capacities without the
3" binder and the GUI could be upgraded withs graphs to help in sizing cranes for jobs.<br> The GUI:<br>
<img class="img-responsive" src="images/CapLookUpGUI.PNG"></p>
<p>Looking up crane capacities for each lift involved using info on the Excel cover sheet to find the capacity in a
3" binder. The tedious, error prone process meant I looked up and manually entered capacities 20-80 times per lift plan.</p>
<p>I automated this process using python with a sqlite db and excel for the frontend. The capacities for
each crane are entered into a sqlite db. The script uses the xlwings module to pull the info from
the Excel coversheet, then uses the sqlite module to query the database and fills in the capacity cell on the coversheet
with the info from the db.</p>
<p>The result, on average, saved hours per plan between quicker lookups and eliminating errors which reduced the number of plans that needed to be redone.</p>
<p>The code is available to view on <a href="https://github.com/pnoll1/capLookUp">Github</a>, it's the xlCapLookUp.py file in this repository.</p>
<h3>Capacity Look Up with GUI</h3>
<p>A byproduct of the Excel capacity look up project is the accompanying Qt GUI I created. It reuses the db infrastructure from the excel project
and makes the db accessible to all users on all platforms.

<img class="img-responsive" src="images/CapLookUpGUI.PNG"></p>
<hr>
<h2>Tally Block Fill</h2>

<p>Filling tally blocks involved manually copying info from the Excel coversheet to the tally block sheet for each lift then copying that sheet into the
vertical views of each lift.</p>

<p>I attacked this issue by learning VBA, writing a macro to automatically copy the latest tally block workbook
to the job folder, select the correct worksheet(it varied based on crane configuration), renaming the workbook and filling in the appropriate worksheet.</p>

<p>The script decreased errors on the drawings which lead to an average of an hour per plan by reducing the number of plans that needed to be redone.</p>

<p>The code is available to view on <a href="https://github.com/pnoll1/TallyBlockFill">Github</a>.</p>
</div>

</div><!-- /.container -->
Expand Down
Loading

0 comments on commit a5fb42f

Please sign in to comment.