Managing a Subscription List with a Flow in Microsoft Power Automate

This is an unusual HOW-TO post for our blog. Most of the time, we post useful technical content about Ansys, Flownex, 3D Printing, Scanning, and product development. But I’ve been on a no-code kick using Microsoft Power Automate and the flows you can create there. But as I’ve learned the tool, I’ve found a lack of good resources that are similar to the type of content we like to do for our Ansys users, so I thought I’d break the mold and post about a simple flow I did that shows how to add and modify data in Microsoft Excel from the results from a Microsoft form.

It all started with a virtual happy hour I started back at the beginning of the pandemic. I invited a handful of people that I’m used to seeing at Arizona tech community events. Over time, I invited more people, and the regulars invited their friends. The invite list got long. Also, I found that no-one was being asked to be taken off the list, but many people have never shown up.

I needed a subscribe and unsubscribe form that updated my list.

Rather than using a perfectly good and free online tool to manage the list, I decided to use this need as a reason to learn more about flows in MS Power Automate.

Here is what I wanted:

  • Subscribe
    • Person goes to form, enters their email
    • Email is checked against list
    • If the email was on the list:
      • If the email is flagged as unsubscribed
        • Flip flag to subscribed
        • Send a success email
      • If the email was flagged as subscribed
        • Send an email to the person letting them know they are already subscribed
    • If the email was not on the list:
      • Add them to the bottom of the list
      • Send an email letting them know they were added
  • Unsubscribe
    • Person goes to form, enters their email
    • Email is located in list
    • If the email was on the list
      • The email is flagged as Unsubscribed (TRUE in second column)
    • If it was not on the list
      • Send an email letting them know that their email was not found.

So how do we do this in MS Flow? It is actually pretty simple. The basic concept behind flows is that you have some sort of an event on a document or a form that you set a watch on. Then you take the information from that event and do something with other Microsoft tools, and some 3rd party tools. All with no writing of code! You set up a flow chart and fill in forms.

The other thing I like about this example is it shows how to deal with errors and branch when something doesn’t go right.

I’m going to assume if you are reading this, you have a basic familiarity with the tool. If not, run through some basic tutorials and come back.

Before you start doing the flow, you need to create a subscribe form, an unsubscribe form, and an Excel spreadsheet. The forms just ask for an email.

The Subscribe Microsoft Form
The Unsubscribe Microsoft Form

Because flows work on tables, create a table with two columns. The first is for emails, and the second is for a flag on if they have asked to unsubscribe. You can have other fields on your forms and other columns in your table if you want more information, like company or names. For my happy hour, I just want emails. You can start with dummy emails or just your own. Save the file to a SharePoint site that you are part of.

The Table in Microsoft Excel

Unsubscribe

The unsubscribe is simpler, so let’s start there. My flow looks like this:

Let’s look at each block to understand how things work:

I start the flow when my Unsubscribe form is submitted. (If you have Office365 and you are using a different form tool, stop and check out MS Forms. We have been very happy with it. ) All you need to do is pick the form you want. Note, I changed to the title with … > Rename so when I come back in 6 months, I can remember what is going on.

Each block creates output that can go to the next block. All that the form trigger does is return the ID for the response. So we need to now get the information that was submitted with a “Get response details” block:

Notice that you have to re-identify the form. It does not assume that the previous block is where the information is. So select the form again.

For the Response ID value, we will use the results from the trigger block. Any time you fill in a field that is not a dropdown, you get a popup that shows you information passed down from previous blocks. At this point, all we have is the response ID. Click on that to fill the form out. These chunks of information are called Dynamic Content and will have an icon next to their label that reflects the application the information came from.

Now that we have the email address to add, we need to try to add it to a table in Excel. We use an Update a row block for that. Our goal is to set the value to TRUE for the unsubscribe flag.

Flows use files stored in SharePoint. So you need to find first specify the site you stored your Excel file on. Then the folder, then the file. All of these self-populate as you go.

Now, pick the table you want to update. The way this works is you specify a “key column” and a value to look for. The first row that has the supplied value in it gets updated. So we need to specify our “email” column and then the submitted email from the dynamic content.

It auto-populates with the columns in the table, so we can see our two columns that can be updated. We will leave email alone and set Unsubscribe to TRUE.

Now, if that all works just fine, we want to send a confirmation email. If it doesn’t, because the flow could not find the email given, we want to send an email letting the person know if it didn’t work.

We use the failure of the “update a row” block as a way to decide which way to branch. First, we need to make the branch. Add the success email:

Put the submitted email in the To: box and put in a descriptive subject. I then explain what is going on in the body and include the email so they can see what they submitted. I also put a link to the subscribe form if they want to get back at some point.

So that is great; if all goes well, they are marked as unsubscribed and get an email. But if their email was not on the list already, we need to let them know. To do this, you create a parallel branch and set “Configure Run After” to branch for an error.

Click on the + and chose add a parallel branch:

Do another email for that second option. I add in the body that they should use the email address that was in the last invite they got.

Now is the branching part. If you leave it like it is, the flow will send both emails if the update is successful and nothing if it fails. We need to tell the “fail email” to only send on a failure.

Do this by clicking on the … then chose “Configure run after.”

That brings up a form that lets you specify when the block should be run based on the exit status of the previous block. Check only “has failed” and Done.

Notice how the down arrow leading to the block is reddish. This tells you that it only runs if the previous block did not run successfully.

And that is a simple unsubscribe flow! I tried it out by unsubscribing myself and then using an email that is not in the list.

Subscribe: More logic and branching

For subscribing, we are going to add a row to our table, and we also need to check and make sure that the email was not already on the list, which lets us use some “has failed” branching, but we also want to change them from Unsubscribed = TRUE if they are already in the list but want to re-subscribe.

Here is the flow:

The first two blocks are the same. But the third block is a get a row block. It grabs the contents of the first row that matches the supplied Key Value for the Key Column. Some input, but the output is a list of the row values rather than letting them update the row. So we supply the Email column and the email address given.

For the case where it finds the row (we will come back and branch on the failure), we need to first check to see if the Unsubscribe flag is TRUE. So we insert a Condition Block. We put the returned value for Unsubscribe in the first field, set the condition to “is equal to,” and set the third field to true. See in the Dynamic Content dialog how the row results show up?

Note: Excel returns all lower case “true” or “false.” That tripped me up. So use all lower case.

That block generates an If yes and an If no branch.

For the If yes branch, we need to change the value of the row to FALSE and then send an email saying that the person has been resubscribed. So in the If yes block, we first add an Update Row block:

We do everything just like the unsubscribe changing of the row, except the value is now FALSE.

Then we add a new email, letting them know they were turned back on:

Now, if someone tried to subscribe and was already on the list and was subscribed, we should let them know with an email. So we add another email block into the If no Block

Next, we need to go back to handle the case when looking for the row of data showed that they were not already in the list.

We add a parallel Branch that points to an “Add a Row into a Table” block.

The block looks a lot like the other two blocks we have used for excel, except there is no Key Column or Value. You point to the table, then supply the value you want added. For our flow, the email and FALSE for Unsubscribe.

Remember, we add the row when it was not already there, the “get the row” block failed. So use “… > configure run after” and set it to “has failed” only.

Then add a success email after that block:

I have also added an email to me if the attempt to add a row failed. That is not necessary; if a flow fails, you get an email. But I thought it was the right thing to do. So I added one more email block parallel to the success email:

Remember to set its “configure after run” to only execute on a failure.

And it all works! Or seems to so far. And not one line of code.

Final Thoughts

One thing I didn’t do was BCC or CC myself on the emails. If you click “Show advanced options” at the bottom of the email blocks, they let you do a lot more, including BCC and CC addresses.

I could have also created a single form and had a check box for subscribing or unsubscribing. Then added a Condition block to branch based on that value.

As mentioned above, I could have done this with a dozen different free or paid tools. But this was a great way to up my Flow skills for something more serious, like the tool we are building to manage NDA agreements or our project numbers. Powerful stuff.

Or you can build your own list as an excuse to start your own Happy Hour.

PADT has developed expertise in many areas since our founding in 1994, and automating processes and integrating different tools are two areas demonstrated in this example. Please reach out if you need to make your workflows more efficient or need simulation, design, or 3D Printing tools, training, consulting, or services.

Cheers!

ANSYS SpaceClaim and Mechanical, Plus 3D Printing to the Rescue!

p0One of the great things about working at a company like PADT is that we have the ability to solve problems from start to finish.  By start to finish, I mean: 

  1. Recognize a need
  2. Design a solution
  3. Verify the solution
  4. Manufacture the solution
  5. Deploy the solution

There are other steps that could be added such as optimization and field verification, but in simple terms those steps outline the product development process.  We do this very often at PADT, helping a wide variety of customers develop products to meet needs in the marketplace.  Most of the time, we can’t share the work we do publicly, for obvious reasons involving customer confidentiality. 

So, when we can share, it’s a good opportunity to show what our tools can do, as well as how we can utilize these tools to help our customers with the steps listed above.  We’ll look at a simple example, knowing that the same tools can help with much more complex problems.

In my case, I was faced with a problem.  We recently had our back yard pool deck resurfaced.  The problem at hand was the contractors accidently lost a plastic lid that covered a 5.5 in. hold on the deck of the pool.  This hole was for something like a basketball hoop that could be dropped into this trumpet shaped hole.  Figure 1 shows the work in progress, when the original lid was still in place.

p1Figure 1 – Original lid circled in red.

After the cleanup was done, that lid was nowhere to be found.  You would think it would be simple to find a replacement, especially in metro Phoenix where pool supply stores are abundant.  However, after visiting several supply stores as well as scouring the internet, we could not find a replacement 5.5 in. lid.  All the available lids were too big and would not work in covering this hole.  The hole without a lid is a safety concern.  In fact, our 4 year old niece managed drop a foot into the hole and ended up with a scrape.  Fortunately it wasn’t any worse than that.

Unable to find a suitable lid for purchase, I decided to pursue a 3D printed solution here at PADT.  As I’m sure you are aware, 3D printing has been portrayed all over the media in the last couple of years.  For us here at PADT, though, it has been a significant component of our business since the company’s founding in 1994.  Knowing that I could have this part printed in plastic here at PADT, I decided to go through the product development process as listed above.

So, let’s look at the various steps I followed in our product development process:

  1. Recognize a need.

In this case, it was simple.  We had a hole in the pool deck that was a safety issue.  No replacement part could be found.  A new lid was needed, one that would fit properly but also could support the weight of someone walking over it.  I decided to design a replacement part that could be 3D printed by one of the rapid prototyping technologies we have available here at PADT.

  1. Design a solution

Besides providing 3D printing services and selling 3D printers, we at PADT are a Channel Partner for ANSYS engineering simulation tools here in the Southwest.  I leveraged ANSYS, Inc.’s latest acquisition, the SpaceClaim Direct Modeler as my design tool.  SpaceClaim has been available as part of the ANSYS software suite for several years, but now SpaceClaim is officially part of the ANSYS corporate umbrella.  SpaceClaim runs within the ANSYS Workbench platform, like the ‘older’ ANSYS geometry tool, DesignModeler.  A main different between the two geometry toolsets is that DesignModeler is a history-based modeler, meaning it has a history tree that is followed to create and modify the geometry as we go along.  This works well in many circumstances but it lacks the ability to quickly and easily modify existing geometry.  SpaceClaim, on the other hand, is a direct modeler in the sense that we work on the geometry interactively, allowing us to rapidly modify geometry by ‘pulling’ on surfaces to grow, shrink, fillet, etc.  SpaceClaim is incredibly fast once we get familiar with it.

Knowing that the diameter of the hole was 5.5 inches as measured by a ruler, along with a memory of what the prior cover looked like, I turned to ANSYS SpaceClaim to come up with the geometry model.  I sketched a 2D axisymmetric cross section and swept that 360 degrees about an axis to come up with the solid model.  I very easily moved the 5.5 in diameter face inward by a small amount to allow for some clearance between the plastic part and the hole into which it needs to fit.  The geometry definition literally took just a few minutes, even though I am not yet an expert in SpaceClaim.

p2Image 2 – ANSYS SpaceClaim solid model

p3Image 3 – Cross section shown in SpaceClaim

  1. Verify the solution

I mentioned optimization as a step that could be followed.  In this simple case, I didn’t do any optimization but did perform verification that my design would meet an acceptability requirement.  I wanted to make sure that my plastic lid could support the weight of an adult standing on it.  The tool I used to perform this verification was the ANSYS Mechanical software tool.  Like SpaceClaim can, ANSYS Mechanical runs within the ANSYS Workbench environment, meaning that the geometry and subsequent stress and deflection analyses are linked.  This allows any needed changes to the geometry to quickly and easily pass from the geometry tool to the stress/deflection model, often with as little as one click of the mouse.

Getting the geometry into the Mechanical model for a finite element simulation was therefore quite simple.  Defining loads and constraints on my system was also quite simple.  What remained was to define material properties to characterize the plastic being used.  PADT’s Rapid Prototyping team informed me that the material to be used is one called Veroclear.  This material is used in one of PADT’s 3D printers, called an Objet from Statasys. 

Basic material properties for Veroclear are available on the internet, including Young’s Modulus and Yield Strength.  Poisson’s Ratio was not available so it was assumed to be 0.3.  These properties were entered into ANSYS Workbench.  For those not familiar, Young’s Modulus is a quantification of the stiffness of a material.  The Yield Strength is a measure of the how much stress a material can experience before permanent deformation occurs.  Stress, simply put, is the amount of force being carried per area in a structure.  Poisson’s Ratio relates how much a material squishes in one direction when it’s pulled in another dimension.

The loading consisted of a 210 lb. downward load on a portion of the upper surface, representing someone standing on the middle of the lid.  The constraints were frictionless supports on the outer cylindrical face as well as the bottom lip.  These constraints simulate where these two surfaces touch the hard surface of the pool deck.

p4Figure 4 – Applied Loads and Constraints

Once the model was fully setup in ANSYS Mechanical, the solution was obtained.  Lots of matrix algebra behind the scenes takes care of solving the equations needed to obtain the solution.  The resulting deflections and stresses looked to be acceptable.  I also calculated a factor of safety, relating the calculated stress in the model to the Yield Strength as described above.  A factor of safety of 2, for example, means that the predicted stress in the model is half of the Yield Strength.  The calculated factor of safety for the plastic lid is 3.17. 

p5Figure 5 – Calculated Deflections, showing maximum of 0.044 in. in center of lid.

p6Figure 6 – Equivalent Stress Distribution

p7Figure 7 – Factor of Safety Distribution

From these results we can conclude that, for the loading condition we considered:

  1. The deflections are fairly minimal
  2. The stresses are below the Yield Stress
  3. The minimum factor of safety value of 3.17 gives us confidence that under reasonable loadings, the part will not fail.

Note that this is a simplistic look at the feasibility of our design.  We didn’t consider what happens to the plastic in the hot sun, what happens if something heavy falls on the lid, etc.  Many other factors could be considered, but in this case I chose to keep it simple.

  1. Manufacture the solution

The part was printed over a weekend in an Objet printer here at PADT.  The geometry was saved as a Parasolid file in ANSYS SpaceClaim, and the Parasolid file was then provided to PADT’s Rapid Prototyping team, via the rp@padtinc.com email.  While the cost of making this particular plastic part using 3D printing is likely too high for a production run, the technology is perfect for making test articles, prototypes, molds, etc. 

p8Figure 8 – The part as printed by the Objet 3D printer (with a few water spots)

  1. Deploy the solution

In this case I only needed one lid, so I took care to make sure that the geometry was accurate before the CAD definition was sent to the 3D printer.  The proof is always in the pudding, so to speak, so it was a great comfort to see that the new plastic lid fit perfectly in the hole in the pool deck.  If this were a production part, we would probably need a vendor to mold the plastic lids in large batches to make them cost effective.

p9Figure 9 – Plastic lid in place

So, we ended up with a part the met the need, each step done very quickly using the appropriate tools in conjunction with the knowledge of how to use them.  We hope you have enjoyed this tour of the product design process, for this simple example.  Please keep PADT in mind for your product development needs.

3D Printing Stained Glass: A Flower Grows One Layer at a Time

3D-Printed-Stained-Glass-Rose-squareI never thought I would be making my own decorative stained glass object d’art.- I’m not a craft person.  Fortunately I do have access to great software and some awesome 3D Printers. That is why I should challenge myself when our team let me know that our Stratasys Object500 Connex3 system had been loaded with a new color pallet that included transparent material. We are filling our new demo room with industrial examples as well as more artistic examples of what the technology can do. So I thought this would be a great chance to explore making a stained glass window.  It turned out to be fairly easy, and the result was better than I expected.

Making a Digital Model

Stained glass consists of pieces of colored glass cut to shape, held together by lead. The lead is called the came. So to make my 3D Printed part, I needed a solid model assembly where each pain of glass was a solid, and the lead, or cane, was one or more separate solids I could assign a dark color to.

Like most tasks these days, I started with a Google search for “simple stained glass window.” The search brought up of nice examples, but I wanted something simple for my first try.  This simple flower stood out:

Rose-stained-glass

It is from a tutorial that shows how to make your own real stained glass.

I took the image and imported it in to my CAD tool, SolidEdge, as a background in the drafting package. Then I used the sketcher to place splines on top of the image sort of representing the shape. If I had an artistic bone in my body, I probably could have started with a blank page and done something, but my lack of talent is well documented and I opted for tracing. It worked in 3rd grade, and it still works today.  The resulting sketch looked like this, shown next to the original image:

Rose-Stained-Glass-sketch-1

It is kind of hard to see in the image, but the “lead” in the image consists of boundaries, not a single line, forming a continuous area for all of the “lead” geometry. Each empty areas in the sketch was extruded up in the solid modeler to form the glass pieces.   Here is what the solid looked like when I was done:

Rose-Stained-Glass-1

I assigned transparent colors in the CAD system to visualize it, show my preferred colors to the person setting up the 3D print, and because I figured it would look cool when I rendered it. Which it did:

Rose-Stained-Glass-rendered-1

The next step was to simply save the assembly as an STL file.  Our prototyping department took that file, massaged it a bit, and assigned colors from the available pallet. 

If you remember earlier articles on the Connex3, it uses four print heads: one for support material, and two for color, and one for a base material. In this case we used Veroclear as the base, magenta, and blue.  Here is a 3D Print of the pallet we were working with (I used my computer monitor as a poor man’s light table, which looks bad on the picture but works well with your eyes):

3D-Printed-Color-Pallet

The team assigned the colors we chose to the solids I created and next time the machine was not printing parts that actually generate income, the ran it.

Here are some images of the results:

3D-Printed-Stained-Glass-Rose-1

3D-Printed-Stained-Glass-Rose-2

Here the final product is shown in front of the machine that it was made on:

3D-Printed-Stained-Glass-Rose-Connex3

When I find some fishing line, I’ll hang it in front of the window, but here you can see it near where it will end up in front of the window to our Demo room.

3D-Printed-Stained-Glass-Rose-Demo-room

Practical Applications

I have to say I’m pretty proud of my little side trip in to the artistic world, even if I did just trace someone’s design.  And I am a big backer of Art for Art’s sake.  However, that does not change the fact that we are an engineering company and I did do this to learn more about the technology so that we could apply it for customers.

Many parts that our customers make involve injection molding of different colored plastics, including transparent materials.  This project illustrated who easy it is to replicate those components for prototyping, as an assembly.  In addition to the clear material, we can run white, black, or even a soft rubber like material to replicate overmolding. 

The simple 3D printed stained glass window shows the power of Stratasys’ PolyJet technology for creating robust and accurate prototypes of a huge range of parts, reducing development time, and giving engineers and creatives both a better tool to produce a better final product. 

If you would like to learn more about this technology or to have PADT print parts for you, please feel free to contact us today.

New Systems, New Logo, and More Accessories for CUBE Simulation Computers

PADT-HPC-Tuning-Simulation-ClusterWe just finished updating the  standard configurations on our line of CUBE high performance computers, and thought it would be a good time to update everyone on some other areas of this product line.  Every week more and more simulation users reach out to PADT and ask us to design custom systems for them to run a variety of simulation tools, and more of our ANSYS customers are bundling hardware with their software purchases.  Our experience in designing, building, and supporting these systems and their users has helped us improve many aspects of the CUBE product.

Branding

We are changing the branding from CUBE HVPC Systems to just CUBE Simulation Computers.  The machines are still high in value and high in performance, but to be honest the whole High Value Performance Computing concept may have been a little too “forward thinking.” In the end, what we are doing is designing computers for people running simulation software. Why not just call them what they are: Simulation Computers.  While we simplify our message, we are also simplifying our logo:


CUBE_Logo_150w
  CUBE-brochure
CUBE-Logo-Square-150  cubebg

Same colors as the PADT logo, and a lot simpler.  Our sales team has assured me that my time fiddling with the logo will result in a significant increase in revenue…we will see. But it is easier to look at on the front of my box.

New Systems

The event that caused us to redo our branding was butting together the new base systems.  We do this to provide potential users with information on what their system could look like, and what it might cost. Our IT Manager and chief system architect, David Mastel, designed eight systems that we feel should serve as good starting points for most users. Three are AMD based for those that have large models that can really take advantage of parallel.  The remaining five are based on the latest Intel processors.

You can view the brochure here, or just review this snap of the 8 systems:
CUBE-Standard-Configs
We now offer two workstations: a base system and one that you can run most FEA and small to medium CFD models on.  The servers are based on systems we just built. The W16i-k server has the latest Intel chip clocked at 3.4GB, plenty of RAM, and a GPU that make this a real screamer for most FEA models and even some hefty CFD runs. It also makes a great head node on a cluster.  It is beefy enough to share across several users.

This year we have pre-configured a mini-cluster because we ran across customers who didn’t have the budget for a full cluster, but needed something to run large jobs on. The larger Mid-Clusters are sized to work for most users, but if you need more we can add nodes to make them full clusters.  The Intel mid-cluster only fills half of a standard rack.

Accessories

When we talk to potential customers, we often find that they do not need a new system, they just need to add some accessories to the systems they have. To help our customers out on pricing, we have signed up to be a reseller with several manufacturers:

3D Mouse from 3DConnexion

We have been using the SapceMouse and SpacePilot devices for years for CAD and Simulation.  If you are not familiar with the product, they are basically pucks on a six axis sensor that you twist how you want the object on the screen to move. No more CTRL-SHIFT-Middle-Mouse.  We started adding these to the workstations and visualization nodes that we sell.  The savings in carpal-tunnel treatments alone are worth the investment. 
3dmouse-products

As you can see from this image, the models vary from the simple SpaceNavigator, to a full control center for your 3D escapades with the SpacePilotPro. The wireless one works great for us on shared computers and on the laptops we demo ANSYS products on.  Take a look on their website to learn more. Just don’t hit the “Buy Now” button, give us a call and we can work a nice deal and help you configure it for your software.

NVIDIA GPU’s

We can’t say enough good things about these. But there is a lot to learn before you invest. Some can do graphics and accelerate your solve, some are dedicated to accelerating.  Also, how much of a speedup you get depends on your models, which ANSYS products you are using, and which solver options within those products you enable.  And that is why PADT is the perfect place to pick out and buy your GPU.  We have extensive experience using them here and in supporting other users. We understand the licencing for ANSYS as well. We might even be able to run a benchmark for you.  

Tesla K20  Tesla K40
Give us a call or shoot us an email and tell us about thy type of simulation you do and the existing machine you want to add a GPU to.   Our experts can make a recommendation and provide you with a very competitive quote that comes with support on getting your ANSYS solver working with your new GPU. If you existing system can’t handle a GPU (they need a lot of power and room) then we can work up an upgrade or a new system so you can take advantage of this real time saver.

Mellanox Infiniband

When you are ready to step up to cluster computing, you will need a high speed interconnect so your solver can talk between nodes directly.  We have had great luck with FDR and QDR systems from Mellanox and have gained significant real world experience getting them to work with the ANSYS Solvers and several flavors of MPI.  Let us know where you are interconnect wise, and where you want to go, and we will work with you and your IT team to give you a cost effective but fast solution. There is no longer any reason why inter-process communication is your bottleneck. 

Hard Drives, Solid State Drives, BlueRay Burners, RAM ,RedHat, or a new Motherboard
The accessories above are what we have been certified on as value-added resellers.  Through our distributors, we can deliver pretty much any piece of computer equipment.  The same stuff you can buy yourself from a dozen websites.  The PADT difference is we know ANSYS software, and we know simulation computers.  We take the guess work out of finding the right solution by taking the time to learn what you have and what you need, then using our experience to get you the best solution.

Time to Step Out of the Box, and Step in to a CUBE

Stop dealing with a giant name brand supplier who wants to sell you a web server renamed as an HPC system. And stop trolling web sites trying to find the right hardware. CUBE computers are fast, they are reliable, they are affordable, and they are configured for nothing but simulation.  Contact our experts and let us run a quote for you. Worst case is you will learn a thing or two about high performance computing for simulation. Best case you will end up with a more productive solution for less money.

The PADT Hat Visits ASU’s Formula SAE Team

PADT was honored to be invited to come out and see the Formula SAE car that Arizona State University has been working on as part of their Press Day at the Bondurant School of High Performance Driving.  The PADT Hat came along and got a picture:

ASU-Formula-SAE

We helped out the team last year by printing them an intake manifold and by offering some assistance to the Aero design team.  It was a very nice design and in their first year of competition, they came in 24th out of 80 teams.DSC09593

Congratulations to all the students involved and we are looking forward to working with them in the coming season.