Color 3D Printer Added to PADT’s Rapid Prototyping Product and Services Offering

PADT’s new Objet500 Connex3 is up and running, just in time for our 20th Anniversary party tonight.  The latest machine from Stratasys is the first true 3D Color Printer that allows users to print accurate and durable parts in whatever combination of color they want, including tinted transparent material. The machine is comfortably nestled between our FORTUS 400 and FORTUS 250MC.  

connex3-new-machine-padt
We are especially pleased to have several executives and support people from Stratasys, the manufacturer of this machine, here for our party tonight.  They will be around to answer questions and will be offering a brief presentation on their technology as well.

Yesterday we successfully ran the standard “wrench” demo models:
connex3-wrench-test-modelsAnd overnight we ran some more sample parts along with a printout of a 3D FEA result on a valve model:connex3-sample-fea-results
The parts are still inside the support material, so you can’t see all the colors. Have no fear, we will be blogging about the FEA model very shortly.

PADT has been offering this machine for sale since its introduction in February and we have already sold one and have several other users about to purchase.  The advantages of having a color part without having to paint on are significant.  With our own machine we can now build benchmark parts for potential buyers and we can also offer color printing as part of our Rapid Prototyping services

We will be showing off this machine, along with everything else PADT does, at our party tonight.  But if you can’t make it and would like to learn more, just reach out to our sales team at sales@padtinc.com, our prototyping services team at rp@padtinc.com or just give us a call at 480.813.4884.

UPDATE:

Here is the cleaned valve displacement 3D Plot:
color-valve-deflection-1

 

Ready for a Tech Party? We Are! PADT’s 20th Anniversary Party is Tomorrow Night

PADt-20-Logo-Rect-500wEveryone here at PADT is working hard on their day-to-day tasks and getting ready for the 20th Anniversary Party tomorrow night from 5:30-9:00. The refreshments have been procured, ice is on order, and an appointment has been set to go get the cake. In light of tomorrows high temps, we even ordered two coolers to keep everyone comfortable, so “it’s too hot” is no longer a valid excuse.

Tomorrow around noon, all of PADT’s employees will gather together for a special anniversary pictures, attend a company meeting, then set everything up.  

All we need now is you!

Even though we have been suffering from construction delays, the new demo & server room is finished enough to show everyone around.  In the new room, will be highlighting our CUBE HPC hardware and the new Objet 3D Color Printer in this new facility, along with the scanners and other Additive Manufacturing machines you have all come to know and count on:
demo-room-almost-done

Here are some reminders for those that can make it:

  • Everyone is invited, no need to RSVP. Just come and bring a friend. 
  • If you are social network kind of person, please tag any posts: #padt20
  • We will have plenty of food and drink
  • Entertainment will be provided for the young (and young at heart) with a bouncy-house and a magician
  • We will be featuring music from 1994… but it is an engineering event so don’t expect a lot of dancing.
  • Come at any time you want. Speeches and door price drawings will be from 6:30-7:00
  • We will be handing out some swag, first come first serve for t-shirts and slap bracelets.

As always, learn more on our website: www.padtinc.com/20

For those of you who could not make it, a big thank you for all the fantastic best wishes and congratulations.  We really appreciate all the support everyone has given us over the past 20 years.

Getting to know ANSYS – Icepak

As part of our “Getting to know ANSYS” video series, this video is an introduction to ANSYS Icepak – an electronics thermal analysis package in the ANSYS Product Suite.
 

“Getting to know ANSYS” Video series

The ANSYS Product Suite contains a large number of modules that are each tailored for a particular area in the simulation and analysis world.  We, at PADT, realize that many of our customers are not aware or are confused at where each of these modules fits in to the analysis spectrum. 

The “Getting to know ANSYS” videos will hopefully help everyone to understand these modules a little better.  Each video will focus on one module and will showcase the following in a mixture of presentations and mini-demos: 

  • What each module is
  • What are its capabilities
  • Why is it useful
  • Who can benefit from using it

The videos will be in the “Getting to know ANSYS” playlist on PADT’s Youtube Channel.

Please feel free to let us know how the videos are and definitely let us know which module that you are interested in and that you’d like to see next. That will help us to plan these future videos accordingly.

You can reach out to me directly at manoj.mahendran@padtinc.com for questions or followups to these or the Focus Video Tips” videos. 

Thanks!

Reblog: Terry Wohlers Predictions at Inside 3D Printing Conference & Expo

If you are interested in 3D Printing and you don’t follow Terry Wohlers, you should. He has been following this industry since it started and he is one of the best at separating hype from reality.

Here is a link to a blog post on 3dprinter.net on his predictions at this years Inside 3D Printing Conference & Expo.

He brings up some very good points on where the technology is being used today and where growth may occur.  Also some thoughts on the global growth of additive manufacturing, and the obstacles and challenges the industry faces. 

My favorite take-away from the posting is Terry’s that “more and more effort is needed to not just take a traditional design and 3D Print it, but rather to re-think the entire part design to take into account the capabilities and limitations of AM.”

ACT Extension for a PID Thermostat Controller (PART 1)

I’m going to embark on a multipart blog series chronicling my efforts in writing a PID Thermostat control boundary condition for workbench. I picked this boundary condition for a few of reasons:

  1. As far as I know, it doesn’t exist in WB proper.
  2. It involves some techniques and element types in ANSYS Mechanical APDL that are not immediately intuitive to most users. Namely, we will be using the Combin37 element type to manage the control.
  3. There are a number of different options and parameters that will be used to populate the boundary condition with data, and this affords an opportunity to explore many of the GUI items exposed in ACT.

This first posting goes over how to model a PID controller in ANSYS Mechanical APDL.  In future articles I will share my efforts to refine the model and us ACT to include it in ANSYS Workbench.

PID Controller Background

Let’s begin with a little background on PID controllers. Full disclaimer, I’m not controls engineer, so take this info for what it is worth. PID stands for Proportional Integral Differential controller. The idea is fairly simple. Assume you have some output quantity you wish to control by varying some input value. That is, you have a known curve in time that represents what you would like the output to look like. For example:

image

The trick is to figure out what the input needs to look like in time so that you get the desired output. One way to do that is to use feedback. That is, you measure the current output value at some time, t, and you compare that to what the desired output should be at that time, t. If there is no difference in the measured value and the desired value, then you know whatever you have set the input to be, it is correct at least for this point in time. So, maybe it will be correct for the next moment in time. Let’s all hope…

However, chances are, there is some difference between what is measured and what is desired. For future reference we will call this the error term. The secret sauce is what to do with that information? To make things more concrete, we will ground our discussion in the thermal world and imagine we are trying to maintain something at a prescribed temperature. When the actual temperature of the device is lower than the desired temperature, we will define that as a positive error. Thus, I’m cold; I want to be warmer: that equals positive error. The converse is true. I’m hot; I want to be colder: that equals negative error.

One simple way we could try to control the input would be to say, “Let’s make the input proportional to the error term.” So, when the error term is positive, and thus I’m cold and wish to be warmer, we will add energy proportionate to the magnitude of the error term. Obviously the flip side is also true. If I’m hot and I wish to be cooler my negative error term would mean that remove energy proportionate to the magnitude of the error term. This sounds great! What more do you need? Well, what happens if I’m trying to hold a fixed temperature for a long time? If the system is not perfectly adiabatic, we still have to supply some energy to make up for whatever the system is losing to the surroundings. Obviously, this energy loss occurs even with the system is in a steady state configuration and at the prescribed temperature! But, if the system is exactly at the prescribed temperature, then the error term is zero. Anything proportionate to zero is… zero. That’s a bummer. I need something that won’t go to zero when my error term goes to zero.

What if I could keep a record of what I’ve done in the past? What if I accumulated all of the past error from forever? Obviously, this has the chance of being nonzero even if instantaneously my error term is zero. This sounds promising. Integrating a function of time with respect to time is analogous to accumulating the function values from history past. Thus, what if I integrated my error term and then made my input also proportional to that value? Wouldn’t that help the steady state issue above? Sure it would. Unfortunately, it also means I might go racing right on by my set point and it might take a while for that “mistake” to wash out of the system. Nothing is free. So, now I have kept a record of my entire past and used that to help me in the present, what if I could read the future? What if could extrapolate out in time?

Derivatives allow us to make a local extrapolation (in either direction) about a curve at a fixed point. So, if my curve is a function of time, which in our case the curves are, forward extrapolation is basically jumping ahead into the future. However, we can’t truly predict the future, we can only extrapolate on what has recently happened and make the leap of faith that it will continue to happen just as it has. So, if I take the derivative of my error term with respect to time, I can roll the dice a little a make some of my input proportional to this derivative term. That is, I can extrapolate out in time. If I do it right, I can actually make the system settle out a little faster. Remember that when the error term goes to zero and stays there, the derivative of the error term also goes to zero. So, when we are right on top of our prescribed value this term has no bearing on our input.

So, a PID controller simply takes the three concepts of how to specify an input value based on a function of the error term and mixes them together with differing proportions to arrive at the new value for the input. By “tuning” the system we can make it such that it responds quickly to change and it doesn’t wildly overshoot or oscillate.

Implementing a PID controller in ANSYS MAPDL

We will begin by implementing a PID controller in MAPDL before moving on to implementing the boundary condition in ANSYS Workbench via the ACT. We would like the boundary condition to have the following features:

  1. Ultimately we would like to “connect” this boundary condition to any number of nodes in our model. That is, we may want to have our energy input occur on a vertex, edge or face of the model in Workbench. So, we would like the boundary condition to support connecting to any number of nodes in the model.
  2. Likewise, we would like the “measured output” to be influenced by any number of nodes in our model. That is, if more than one node is included in the “measured value” set, we would like ANSYS to use the average temperature of the nodes in that set as our “measured output”. Again, this will allow us to specify a vertex, edge, face or body of the model to function as our measurement location. The measured value should be the average temperature on this entity. Averaging needs to be intelligent. We need to weight the average based on some measure that accounts for the relative influence of a node attached to large elements vs one attached to small elements.
  3. We would like to be able to independently control the proportional, integral and derivative components of the control algorithm.
  4. It would be nice to be able to specify whether this boundary condition can only add energy, only remove energy or if it can do both.
  5. We would like to allow the set point value to also be a function of time so that it too can change with time.
  6. Finally, it would be nice to be able to post process some of the heat flow quantities, temperature values, etc… associated with this boundary condition.

This is a pretty exhaustive list of requirements for the boundary condition. Fortunately, ANSYS MAPDL has built into it an element type that is perfectly suited for this type of control. That element type is the combin37.

Introducing the Combin37 Element Type

Understanding the combin37 element in ANSYS MAPDL takes a bit of a Zen state of mind… It’s, well, an element only a mother could love. Here is a picture lifted from the help:

clip_image003

OK. Clear as mud right? Actually, this thing can act as a thermostat whether you believe me from the picture or not. Like most/all ANSYS elements that can function in multiple roles, the combin37 is expressed in its structural configuration. It is up to you and me to mentally map it to a different set of physics. So, just trust me that you can forget the damping and FSLIDE and little springy looking thing in the picture. All we are going to worry about is the AFORCE thing. Mentally replace AFORCE with heat flow.

Notice those two little nodes hanging out there all by their lonesome selves labeled “control nodes”. I think they should have joysticks beside them personally, but ANSYS didn’t ask me. Those little guys are appropriately named. One of them, NODE K actually, will function as our set point node. That is, whatever temperature value we specify in time for NODE K, that same value represents the set point temperature we would like our “measured” location take on in time as well. So, that means we need to drive NODE K with our set point curve. That should be easy enough. Just apply a temperature boundary condition that is a function of time to that node and we’re good to go. Likewise, NODE L represents the “measured” temperature somewhere else in the model. So, we need to somehow hook NODE L up to our set of measurement nodes so that it magically takes on the average value of those nodes. More on that trick later.

Now, internally the combin37 subtracts the temperature at NODE K from NODE L to obtain an error term. Moreover, it allows us to specify different mathematical operations we can perform on the error term, and it allows us to take the output from those mathematical operations and drive the magical AFORCE thingy, which is heat flow. Guess what those mathematical operations are? If you guessed simply making the heat flow through the element proportional to the error, proportional to the time integral of the error and proportional to the time derivative of the error you would be right. Sounds like a PID controller doesn’t it? Now, the hard part is making sense of all the options and hooking it all up correctly. Let’s focus on the options first.

Key Option One and the Magic Control Value

Key option 1 for the combin37 controls what mathematical operation we are going to perform on the error term. In order to implement a full PID controller, we are going to need three combin37 elements in our model with each one keyed to a different mathematical operation. ANSYS calls the result of the mathematical operation, Cpar. So, we have the following:

KEYOPT(1) Value Mathematical Operation
0,1 image
2 image
3 image
4 image
5 image

Thus, for our purposes, we need to set keyopt(1) equal to 1,4 and 2 for each of the three elements respectively.

Feedback is realized by taking the control parameter Cpar and using it to modify the heat flow through the element, which is called AFORCE. The AFORCE value is specified as a real constant for the element; however, you can also rig up the element so that the value of AFORCE changes with respect to the control parameter. You do this by setting keyopt(6)=6. The manner in which ANSYS adjusts the AFORCE value, which again is heat flow, is described by the following equation:

image

Thus, the proportionality constant for the Proportional, Integral and Derivative components are specified with the C1 variable. RCONST, C3 and C4 are all set to zero. C2 is set to 1. Also note that ANSYS first takes the absolute value of the control parameter Cpar before plugging it into this equation. Furthermore, the direction of the AFORCE component is important. A positive value for AFORCE means that the element generates an element force (heatflow) in the direction specified in the diagram.  That is, it acts as a heat sink. So, assuming the model is attached to node J, the element acts as a heat sink when AFORCE is positive. Conversely, when AFORCE is negative, the element acts like a heat source. However, due to the absolute value, Cpar can never take on a negative value. Thus, when this element needs to act as an energy source to add heat to our model, the coefficient C1 must be negative. The opposite is true when the element needs to act as an energy sink.

Key Option Four and Five and when is it Alive?

If things weren’t confusing enough already, hold on as we discuss Keyopt 4 and 5. Consider the figure below, again lifted straight from the help.

clip_image016

The combination of these two key options controls when the element switches on and becomes “alive”. Let’s take the simple case first. Let’s assume that we are adding energy to the model in order to bring it up to a given temperature. In this case, Cpar will be positive because our set point is higher than our current value. If the element is functioning as a heat source we would like it to be on in this condition. Furthermore, we would like it to stay on as long as our error is positive so that we continue adding energy to bring the system up to temperature. Consider the diagram in the upper left. Imagine that we set ONVAL = 0 and OFFVAL = 0.001. Whenever Cpar is greater than ONVAL.  So this sounds like exactly what we want when the element is functioning as a heat source. Thus, keyopt(4)=0 and keyopt(5)=0.001 with OFFVAL=ONVAL=0 is what we want when the element needs to function as a heat source.

What about when it is a heat sink?  In this case we want the element to be active when the error term is negative; that is, when the current temperature is higher than the set point temperature.  Consider the diagram in the middle left.  This time let OFFVAL=0 and OFFVAL=-0.001.  In this case, whenever Cpar is negative (less than OFFVAL) then the element will be active.  Thus, keyopt(4)=0 and keyopt(5)=1 with OFFVAL=-0.001 ONVAL=0 is what we want when the element needs to function as a heat sink.  Notice, that if you set ONVAL=OFFVAL then the element will always stay on; thus, we need to provide the small window to activate the switching nature of the element.

Thus, we see that we need six different combin37 elements, three for a PID controlled heat sink and three for a PID controlled heat source, to fully specify a PID controlled thermal boundary condition. Phew… However, if we set all of the proportionality constants for either set of elements defining the heat sink or heat source to zero, we can effectively turn the boundary condition into only a heat source or only a heat sink, thus meeting requirement four listed above. While we’re marking off requirements, we can also mark off requirements three and five. That is, with this combination of elements we can independently control the P, I and D proportionality constants for the controller. Likewise, by putting a time varying temperature constraint on control node K, we can effectively cause the set point value to change in time. Let’s see if we can now address requirements one and two.

How do we Hook the Combin37 to the Rest of the Model?

We will address this question in two parts. First, how do we hook the “business” end of the combin37 to the part of the model to which we are going to add or remove energy? Second, how do we hook the “control” end of the combin37 to the nodes we want to monitor?

Hooking to the Combin37 to the Nodes that Add or Remove Energy

To hook the combin37 to the model so that we can add or remove energy we will use the convection link elements, link34. These elements effectively act like little thermal resistors with the resistance equation being specified as:

image

In order to make things nice, we need to “match” the resistances so that each node effectively sees the same resistance back to the combin37 element. We do this by varying the “area” associated with each of these convective links. To get the area associated with a node we use the arnode() intrinsic function. See the listing for details.

Hooking the Combin37 to the Nodes that Function as the Measured Value

As we mentioned in our requirements, we would like to be able to specify more than one or more nodes to function as the measured control value for our boundary condition. More precisely, if more than one node is included in the measurement node set, we would like ANSYS to average the temperatures at those nodes and use that average value as the measurement temperature. This will allow us to specify, for example, the average temperature of a body as the measurement value, not just one node on the body somewhere. However, we would also like for the scheme to work seamlessly if only one node is specified. So, how can we accomplish this? Constraint equations come to our rescue.

Remember that a constraint equation is defined as:

image

How can we use this to compute the average temperature of a set of nodes, and tie the control node of the combin37 to this average? Let’s begin by formulating an equation for the average temperature of a set of nodes. We would like this average to not be simply a uniform average, but rather be weighted by the relative contribution a given node should play in the overall average of a geometric entity. For example, assume we are interested in calculating the average temperature of a surface in our model. Obviously this surface will have associated with it many nodes connected to many different elements. Assume for the moment that we are interested in one node on this face that is connected to many large elements that span most of the area of this face. Shouldn’t this node’s temperature have a larger contribution to the “average” temperature of the face as say a node connected to a few tiny elements? If we just add up the temperature values and divide by the number of nodes, each node’s temperature has equal weight in the average. A better solution would be to area weight the nodal temperatures based on the area associated with each individual node. Something like:

image

That looks a little like our constraint equation. However, in the constraint equation I have to specify the constant term, whereas in the equation above, that is the value (Tavg) that I am interested in computing. What can I do? Well, let’s add in another node to our constraint equation that represents the “answer”. For convenience, we’ll make this the control node on our combin37 elements since we need the average temperature of the face to be driving that node anyway. Consider:

image

Now, our constant term is zero, and our Ci’s are Ai/AT and -1 for the control node. Voila! With this one constraint equation we’ve compute an area weighted average of the temperature over a set of nodes and assigned that value to our control node. CE’s rock!

An Example Model

This post is already way too long, so let’s wrap things up with a little example model. This model will illustrate a simple PI heat source attached to an edge of a plate with a hole. The other outer edges of the plate are given a convective boundary condition to simulate removing heat. The initial condition of the plate is set to 20C. The set point for the thermostat is set to 100C. No attempt is made to tune the PI controller in this example, so you can clearly see the effects of the overshoot due to the integral component being large. However, you can also see how the average temperature eventually settles down to exactly the set point value. clip_image026

The red squiggly represents where heat is being added with the PI controller. The blue squiggly represents where heat is being removed due to convection. Here is a plot of the average temperature of the body with respect to time where you can see the response of the system to the PI control.

clip_image027

Here is another run, where the set point value ramps up as well. I’ve also tweaked the control values a little to mitigate some of the overshoot. This is looking kind of promising, and it is fun to play with. Next time we will look to integrate it into the workbench environment via an actual ACT extension.

clip_image028

Part 2 is here

Model Listing

I’ve included the model listing below so that you can play with this yourself. In future posts, I will elaborate more on this technique and also look to integrate it into an ACT module.

 

finish

/clear

 

/prep7

*get,etmax_,etyp,0,num,max

P_et=etmax_+1

I_et=etmax_+2

D_et=etmax_+3

Link_et=etmax_+4

mass_et=etmax_+5

 

 

 

et,P_et,combin37

et,I_et,combin37

et,D_et,combin37

et,Link_et,link34

et,mass_et,mass71

Kp=1

Ki=2

Kd=0

 

keyopt,P_et,1,0    ! Control on UK-UL

keyopt,P_et,2,8    ! Control node DOF is Temp

keyopt,P_et,3,8    ! Active node DOF is Temp

keyopt,P_et,4,0    ! Wierdness for the ON/OFF range

keyopt,P_et,5,0    ! More wierdness for the ON/OFF range

keyopt,P_et,6,6    ! Use the force, Luke (aka Combin37)

keyopt,P_et,9,0    ! Use the equation, Duke (where is Daisy…)

 

 

keyopt,I_et,1,4    ! Control on integral wrt time

keyopt,I_et,2,8    ! Control node DOF is Temp

keyopt,I_et,3,8    ! Active node DOF is Temp

keyopt,I_et,4,0    ! Wierdness for the ON/OFF range

keyopt,I_et,5,0    ! More wierdness for the ON/OFF range

keyopt,I_et,6,6    ! Use the force, Luke (aka Combin37)

keyopt,I_et,9,0    ! Use the equation, Duke (where is Daisy…)

 

 

keyopt,D_et,1,2    ! Control on first derivative wrt time

keyopt,D_et,2,8    ! Control node DOF is Temp

keyopt,D_et,3,8    ! Active node DOF is Temp

keyopt,D_et,4,0    ! Wierdness for the ON/OFF range

keyopt,D_et,5,0    ! More wierdness for the ON/OFF range

keyopt,D_et,6,6    ! Use the force, Luke (aka Combin37)

keyopt,D_et,9,0    ! Use the equation, Duke (where is Daisy…)

 

keyopt,mass_et,3,1 ! Interpret real constant as DENS*C*Volume

 

 

 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!        S M A L L   T E S T   M O D E L       !!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

test_et=etmax_+10

et,test_et,plane55

 

mp,kxx,test_et,70

mp,dens,test_et,8050

mp,c,test_et,0.4

! Thickness of plate

r,test_et,0.1

 

! Plane55 element

keyopt,test_et,3,3

 

! Make a block

k,1

k,2,1,0

k,3,1,1

k,4,0,1

a,1,2,3,4

! Make a hole

cyl4,0.5,0.5,0.25

! Punch a hole

asba,1,2

 

type,test_et

mat,test_et

real,test_et

esize,0.025

amesh,all

 

! create an nodal component for the

! ‘attachment’ location

lsel,s,loc,x,0

nsll,s,1

cm,pid_attach_n,node

 

! create a nodal component for the

! ‘monitor’ location

allsel,all

cm,pid_monitor_n,node

 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!        B E G I N   P I D   M O D E L         !!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

! Real constant and mat prop for the mass element

mp,qrate,mass_et,0 ! Zero heat generation rate for the element

r,mass_et,1e-10  ! Extremely small thermal capacitance

 

! Material properties for convection element

! make the convection “large”

mp,hf,Link_et,1e5

 

! Real constant for the combin37 elements

! that ack as heaters

on_val_=0

off_val_=1e-3

r,P_et,0,0,0,on_val_,off_val_,0

rmore,0,1,-Kp,1

 

r,I_et,0,0,0,on_val_,off_val_,0

rmore,0,1,-Ki,1

 

r,D_et,0,0,0,on_val_,off_val_,0

rmore,0,1,-Kd,1

 

! build the PID elements

*get,nmax_,node,0,num,max

BASE_NODE=nmax_+1

P_NODE_J=nmax_+2

I_NODE_J=nmax_+3

D_NODE_J=nmax_+4

NODE_K=nmax_+5

NODE_L=nmax_+6

! Create the nodes.  They can be all coincident

! as we will refer to them solely by their number.

! They will be located at the origin

*do,i_,1,6

    n,nmax_+i_

*enddo

 

! Put a thermal mass on the K and L nodes

! for each control element to give them

! thermal DOFs

type,mass_et

mat,mass_et

real,mass_et

e,NODE_K

e,NODE_L

 

! Proportional element

type,P_et

mat,P_et

real,P_et

e,BASE_NODE,P_NODE_J,NODE_K,NODE_L

 

! Integral element

type,I_et

mat,I_et

real,I_et

e,BASE_NODE,I_NODE_J,NODE_K,NODE_L

 

! Derivative Element

type,D_et

mat,D_et

real,D_et

e,BASE_NODE,D_NODE_J,NODE_K,NODE_L

 

 

 

! Ground the base node

d,BASE_NODE,temp,0

 

! Get a list of the attachment nodes

cmsel,s,pid_attach_n

*get,numnod_,node,0,count

attlist_=

*dim,attlist_,,numnod_

*vget,attlist_(1),node,0,nlist

*get,rmax_,rcon,0,num,max

 

! Hook the attachment nodes to the

! end of the control element with

! convection links

*do,i_,1,numnod_

    n1_=attlist_(i_)

    a1_=arnode(n1_)

    r1_=rmax_+i_

    r,r1_,a1_

    type,link_et

    mat,link_et

    real,r1_

    e,P_NODE_J,n1_

    e,I_NODE_J,n1_

    e,D_NODE_J,n1_

*enddo

 

! Hook up the monitor nodes

cmsel,s,pid_monitor_n

*get,numnod_,node,0,count

monlist_=

monarea_=

*dim,monlist_,,numnod_

*dim,monarea_,,numnod_

*vget,monlist_(1),node,0,nlist

! We are going to need these areas

! so, hold on to them

*do,i_,1,numnod_

    monarea_(i_)=arnode(i_)

*enddo

*vscfun,totarea_,sum,monarea_(1)

! Write the constraint equations

/pbc,ce,,0

ce,next,0,NODE_L,temp,-1

*do,i_,1,numnod_

    ce,high,0,monlist_(i_),temp,monarea_(i_)/totarea_

*enddo

 

! Create a transient setpoint temperature

*dim,setpoint_,table,2,,,time

setpoint_(1,0)=0

setpoint_(2,0)=3600

setpoint_(1,1)=100

setpoint_(2,1)=100

 

! Constrain the temperature node to be

! at the setpoint value

allsel,all

d,NODE_K,temp,%setpoint_%

 

 

! Apply an initial condition of

! 20 C to everything

allsel,all

ic,all,temp,20

 

/solu

antype,trans,new

time,1000

deltim,1,1,1

lsel,s,loc,x,0.1,1

nsll,s,1

sf,all,conv,20,20

 

allsel,all

outres,all,all

solve

/post26

! Plot the response temperature

! and the setpoint temperature

nsol,2,NODE_L,temp,,temp_r

nsol,3,NODE_K,temp,,temp_s

xvar,1

plvar,2,3

PADT to Present 3D Printing at Digital Printing Presses Conference in Scottsdale

The merger of modern 2D printing and 3D printing is getting closer and stronger.  As a sign of the convergence, this years Digital Printing Presses Conference has invited PADT to give a presentation to the digital printing press community on 3D Printing.  The conference runs from April 30th through May 2nd in Scottsdale, Arizona. PADT will be presenting during the opening session on April 30th.

Learn more about the event here.

If you happen to be one of those people at the crossroads of 2D and 3D printing, this would be a great event to attend and see how both industries are progressing.

Here is the official press release with more details:

PRLog (Press Release) – Apr. 4, 2014 – SCOTTSDALE, Ariz. — Phoenix Analysis & Design Technologies (PADT) is honored to announce that they have been invited to speak on the opening day of the 5th Digital Printing Presses Conference.   The event sponsors, the Information Management Institute, recognize that the growth of 3D Printing is having a major impact on digital printing, and they asked PADT to explain the technology and how it impacts the industry. If you are needing some digital printings visit xerocopy. The presentation: “3D Printing: What it is Now and How it is Changing the Way Things are Made” will be given by one of PADT’s co-owners, Eric Miller.

The talk will focus on how the technology works, applications and how it is changing manufacturing. In addition he will discuss strengths and weaknesses of the technology, the business climate, and future directions for the technology. Additive Manufacturing technology encompasses a wide range of processes that can be used to directly create physical objects from a computer model.

3D Printing refers to a subset of Additive Manufacturing that allows the creation of parts without any special training or expertise, the users simply prints a part just as they would a document on a traditional digital printer.  As the technology evolves the differences between Digital Printing and 3D Printing are disappearing. Because of this, many providers of Digital Printing services are investigation, or adding, 3D Printing as a service that they can offer their customers.  This presentation will focus on exploring this new synergy.

Mr. Miller points out that “3D printing is on everyone’s mind, especially how it will impact their particular industry. Our goal is for everyone who attends to get a firm grasp on what the technology can and can’t do, and know enough to make decisions on how they can use it in their area of digital printing.” The event is being held on April 30th through May 2nd of 2014, at the Saguaro Scottsdale Resort in downtown Scottsdale, Arizona.  Mr. Miller will be presenting during the first session from 1:00 to 6:30 on April 30th.  To learn more about the event, visit: http://www.imiconf.com To learn more about PADT and 3D printing, visit: http://www.padtinc.com

PADT Announces New Product and Video: Detoxinator 1200

(Tempe, AZ) PADT is pleased to announce the release of a new product: The Detoxinator 1200.  Based on their proven success with the Support Cleaning Apparatus used in the 3D Printing industry, PADT has modified the design for the medical market.  A well known celebrity has also signed with PADT to promote the product.

The best way to learn more is to watch the new video, just released today:

Detoxinator-1200
Watch the Video here.

Orbital Sciences Launches Iridium NEXT Production

Orbital-GilbertWe were pleased to note that long time PADT customer Orbital Sciences Corporation is starting production of 81 satellites at its Gilbert, Arizona facility.  This new constellation of satellites will replace the existing constellation of Iridium satellites now in low earth orbit.   It is exciting to see this project moving to this next critical step, and we can’t wait to read about the launches in 2015.  We know that many people at Orbital and at their suppliers have been working hard and long to get to this point. 

AZCentral has a nice video of the ribbon cutting

Satnews Daily has a good article with details about the whole project.

And the Wall Street Journal has a more business look on the project in their article

IridiumNEXTSatConfig
You can learn more about the Iridium NEXT project here

All of us tech-oriented people in Arizona should get excited about this major milestone. Although both Orbital Sciences and Iridium are headquartered in Virginia, both have extensive facilities here in Arizona.  In fact the Iridium business operations is about one quarter of a mile from PADT’s Tempe office  in the ASU Research Park. Satellite design, test, manufacturing and support are big business in the state of Arizona.  Some of the other Arizona based companies involved in making or providing equipment for satellites are: ViaSat, Garmin, General Dynamics, Honeywell Aerospace, Lockheed Martin, Paragon Space Development, and many others. Most are PADT customers.  

Congratulations to everyone involved and a big thanks to the people in the state, county, and city that help set up the Free Trade Zone that helped make it possible.

ANSYS, Inc. Unleashes New ACT Extensions for Version 15.0

act_150_1If you haven’t noticed, ANSYS, Inc. has been making quite a few ACT extensions available for ANSYS 15.0 on the ANSYS Customer Portal. If you are not familiar with ACT (ANSYS Customization Toolkit) Extensions, please see our earlier blog entry, “There’s an Extension for That,” here.

As of this writing, there are 20 ACT extensions available for download from the Customer Portal for version 15.0. There is also a set of training files available from the same link.

Among the new additions is an extension allowing the use of Mechanical APDL User Programmable Features in the Mechanical editor. Previously this could only be done in MAPDL. You will still need to install the customization files as part of the ANSYS installation, and you will still need the proper versions of the FORTRAN compiler and Visual Studio. However, this extension unleashes a significant capability within the Workbench Mechanical tool that wasn’t there previously, access to UPF’s.

The documentation states that it works with both versions 14.5 and 15.0 of ANSYS.
To get to the 15.0 ACT Extensions download area, login to the ANSYS Customer Portal and navigate through Downloads > Extension Library > 15.0. We urge you to browse the list of available extension available from the Customer Portal to see which might have benefits to your simulations.

Here is a list of all of the current extensions:

ACT Intro Training_R150_v1

ACT Introductory Training Materials

ACT Templates for DM_R150_v1

Templates for educational purpose; demonstrates most common scenarios of ACT-based development needs in DesignModeler

ACT Templates for DX_R150_v1

Templates for educational purpose; demonstrate integration of external optimizers

ACT Templates_R150_v1

Templates for educational purpose; cover most common ACT-based development needs

Acoustics Extension R150_v42

Expose 3D acoustics solver capabilities

Convection Extension_R150_v4

Expose convection with pilot node capability in steady-state and transient thermal analyses

Coupled Diffusion_R150_v3

Introduce coupled diffusion analysis (structural diffusion, thermal diffusion, and structural thermal diffusion) in both static and full transient analysis

Coupled Field Physics Extension_R150_v1

Expose piezoelectric, thermal-piezoelectric and thermal-structural solver capabilities

DDAM_R150_v2

Expose the Dynamic Design Analysis Method (DDAM) in Mechanical interface

Design Modeler Utility_R150_v1

Expose some useful functions in DM interface

Distributed Mass_R150_v2

Add distributed mass (rather than a point mass) to a surface as either “total mass” or “mass per unit area”

Enforced Motion_R150_v3

In Mode-Superposition Harmonic and Transient Analyses, allows applying base excitation (displacement or acceleration). Excitation can be either constant or frequency/time dependent

FE Info Extension_R150_v9

Expose node and element related information

FSI_Transient_Load_Mapping_R150_v4

Map temperature and pressure loads (from a CFD calculation) to a multi-step Mechanical analysis for transient one-way FSI. Includes CFD-Post macros

Follower Loads Extension_R150_v2

Create follower forces and moments to follow geometric deformation

Hydrostatic Fluid_R150_v5

Expose hydrostatic fluid elements in Mechanical

MATLAB_Optimizers_for_DX_R150_v1

Expose MATLAB optimization algorithms and user programs in the Optimization component of ANSYS DesignXplorer

MatChange_R150_v2

Change material ID to user specified value for the selected bodies

Offshore_R150_v4

Expose the MAPDL offshore features in Mechanical

Piezo Extension_R150_v8

Expose piezo-electric solver capabilities

UPF Extension_R150_v1

Allow for the use of User Programmable Features (UPF) within Workbench

TechShop Chandler: A Place for Makers, Builders, Inventors, and Engineers

The other day some visitors to PADT asked if we wanted to tour their new facility. Some place called TechShop Chandler. I had heard some about them, a place where you can have access to tech tools and technology, but I didn’t know much more than that. Wow, was I pleasantly surprised when we stopped by for a tour. 

Most Everything you Need

The tag line on their website reads: “TechShop is a vibrant, creative community that provides access to tools, software and space. You can make virtually anything at TechShop. Come and build your dreams!”  I have to say, that tag line looks pretty dang accurate.

The facility is located in the ASU Chandler Innovation Center just east of downtown Chandler. A great location close to the 202, and some good food and drink (not that that matters much… but if you are working on a project and need a break… just saying).  The building has been completely renovated and provides a great space.

Even in this new location (there are seven other location) in Chandler, they have fully functioning labs that contain the equipment and software one would need to truly build almost anything.  That in itself is pretty useful, but what is more important is they offer training on all of the tools they make available, often the missing piece in other attempts we have seen to offer technology and tools to people.

The offering of equipment and tools that we saw was very comprehensive and included a computer lab with full CAD software tools, a full wood shop with CNC routers, a full sheet metal shop, welding, machining, injection molding, electronics, laser cutting, 3D printing, and even industrial sewing.  They have lots of room for working and for meeting. 

On top of all that, they host programs for schools as well as meetups for the community. 

How it Works

TechShop describes their membership system like a gym.  You pay a monthly membership fee and, once you have successfully completed the training, you have access to the equipment, computers, and software at the facility.  As you would expect, they have discounts if you sign up for automatic renewal, a yearly membership, or if you add family members.  They also offer students (18 and older) and Active Duty Military a significant discount.  Corporations can negotiate memberships as well.  Check out the costs for TechShop Chandler here.  Just to give you an idea, the basic one month membership with no discounts is only $175/month.  Pretty affordable once you get your head around how many resources you get access to.

What do YOU want to make?

That is the heading at the top of their website, and it fits.  If you are a hobbyist,  inventor,  engineer,  student, or fabricator, you should check out TechShop.  Even if you have equipment at work or at home, it is a great resource to gain training and access to a wider variety of tools and equipment. All in a clean and positive environment working side by side with other like-minded members. 

Check them out on the web:

www.techshop.ws/ts_chandler.html 

Or give them a call and set up a visit: 480 327-0820.

For those of you reading this outside of the Phoenix area, there are locations in:

  • San Carlos, CA
  • San Francisco, CA
  • San Jose, CA
  • Allen Park, MI (Detroit)
  • Round Rock, TX (Austin)
  • Pittsburgh, PA
  • Arlington, VA

With many more planned.

Be a View Master: Customizing and Managing Views in ANSYS Mechanical

Accessing various predefined views in Mechanical is easy. You can click on the triad axes (including the negative sides of the axes) and view the model down those axes, or click the turquoise isometric ball for an isometric view. Or you can right click the graphics area and select from a variety of views (top, back, left, etc.) from the View menu.

But what if you want a predefined view that has the model rotated “just so” and zoomed out “just so?” What if you want to store these settings not just in your current model, but bring them into other models as well? Starting in R14.5 you can do this, using the Manage Views window.

To open the Manage Views window, click on the eye-in-a-box icon that looks like it was designed by Freemasons. image The Managed Views window appears at the lower left of the GUI. The window consists of the following:image

The labels are pretty self-explanatory, but let’s delve into a couple of examples. As you can see by observing the triad, the model viewpoint shown here does not coincide with any pre-defined view.

image

Click the Create a View button image and give the view a name (defaults to View 1 but any name can be given):

image

After rotating, panning, and zooming, you can return to this view by clicking the Apply a View button. image

image

As mentioned before, you can apply the same view between different models by using the View Export/Import capabilities. To do this, simply highlight the named view to be exported in the originating model and click the Export button. image Specify the xml file to which the view is to be stored. In another model, click the Import button image and browse to the xml file containing the view to be imported. This is basically the Mechanical equivalent of an APDL file containing /VIEW and /ZOOM commands. Example follows.

The following view is to be stored and exported to another model. Highlight the view name (“Sulk”) and click the Export button.

image

Frankie the Frowning Finite Element Model worries that views can’t be shared between models.

Specify the xml file name and click Save.

image

In a different model, click the Import button, browse to the xml stored in the previous step, and click open.

image

Highlight the imported view name and click the Apply a View button.

image

Sammy the Smiling Simulation Model is happy that views can be transferred between models.

The Managed Views window provides a significant amount of viewing versatility over the standard viewing definitions.

Desktop 3D Scanning with Geomagic Capture


Geomagic-Capture

If you have been following PADT closely for a while, you know that we have been working hard to find good scanning solutions for our customers since we started the company twenty years ago.  For many years we recommended professional inspection service providers that used traditional CMM devices to reverse engineer or inspect parts, we just didn’t have a good scanning solution in-house.

A few years back we found a great solution for many of our customers when we started using and selling Cross Sectional Scanners (CSS) from CGI. This technology works great with plastic parts and is highly accurate, especially for parts with internal features. However we still needed a solution for metal parts and parts that you can’t chop up when you inspect them.

sean-head-laser-scanSo we kept looking at scanners, we tried a variety of hand-held laser scanners.  We even made it on the local news using it on a local news anchor to scan his head. But we could not get the ease of use and accuracy we wanted for engineering.

Then Geomagic introduced the Geomagic Capture system and we gave it a try.  We feel that we now have a desktop scanning solution that we can recommend to customers and we have proven we can do engineering services work with. So we now sell the Geomagic Capture scanning system and provide non-destructive 3D scanning as a service.

Here is a great introductory video that shows the system and how it works:

Not a Laser

The big difference with this system is that it is not a laser scanner. It actually is a blue Structured-Light scanner.  Basically it projects a pattern of lines onto an object, and measure how the lines deviate from being straight. That deviation gives a very accurate measurement of the location of points on the surface of the object.  No laser, no reflective dots, no problems with stray data.  
geomagic-capture-scanner

In our testing the system seems to work on a variety of surface types and shapes.  If the object is reflective or too dark, you simply cover it with a chalky powder and everything is good.  Not using lasers, the device is also relatively small and compact.

A System: Hardware and Software

One of the reasons why we like this particular scanner over others is that it is a solution that contains both hardware and software. In fact, the scanner technology itself has been around for some time. What makes this scanner our choice is that Geomagic, experts in dealing with the output from scanners, developed the software that gathers and massages the data coming from the scanner. This makes a huge difference in ease of use.

Our engineers are still learning all the ins-and-outs on the system, but they were able to do productive work with it almost right out of the box.  The software steps you through the process and give really nice visual feedback while you are setting up a scan. This avoid the need to scan, review, fix something, try again, check… round and round.  And once you have good point data, you have the full suite of Geomagic tools to convert it into an STL file or into a usable CAD model.

When you purchase the Geomagic Capture system you have your choice of:

  • Geomagic Capture for SolidWorks
    Add-in software for SolidWorks, that presents the Geomagic tools you need in the SolidWorks interface you are used to working with.
  • Geomagic Capture for SpaceClaim
    Add-in software for SpaceClaim, combining best-in-class scanning, facet, and point cloud tools with a robust direct solid modeler, all in the same interface.
  • Geomagic Capture for Design X
    Powerful and comprehensive advanced reverse engineering that allows you to create feature-based CAD models directly from your scan data.
  • Geomagic Capture for Design Direct
    A bundle that includes SpaceClaim and the Geomagic Capture plug-in as a complete solution for those that do not have a CAD system that supports working with point data. This package is best if you have a CAD package other than SolidWorks or SpaceClaim.

Specifications 

Here are the specifications for the system:

Specification Value
Scan Speed 0.3 sec per scan
Field of View (Diagonal)/Near End – Far End 172 – 260 mm
6.77 – 10.24 in
Field of View (X-Y)/Near End – Far End 123×120 – 192×175 mm
4.84×4.72 – 7.56×6.89 in
Clearance Distance 300 mm
11.81 in
Depth of Field 180 mm
7.09 in
Resolution Average Points 985,000 per scan
Average Polygons 1.97 million per scan
Point to Point Distance 0.162 mm
0.000638 in
(at center of volume)
Accuracy / Near End – Far End 60 – 118 microns
Calibration Pre-calibrated

geomagic-capture-brochureYou can also download the brochure here.

Try it on Your Part

The best way to see if this is the right scanner for you is to contact PADT and have us do a scanning job for you.  As always with PADT we will not just do the work, but we will show you what we did and help you to see what your best solution is.

Named Selections + Object Generator = Awesome

Guess who’s back…back again.  Yes, just like Slim Shady, I’m back (returned to PADT and writing Focus blogs).

So run and go tell your friends that horrible pop cultural references have returned to ANSYS blog posts.  It’s been too long.

Getting back on track, the object generator debuted in R14.5 Mechanical.  You can access this feature in the toolbar (image below taken from R15):

How the pro's generate objects

What exactly does the object generator do?  Simple answer…it makes your life better.  It uses named selections and a single instance of an object (joint, spring, bolt pretension, etc) and replicates it across all entities in the named selection.  Let’s play around with this feature on the following (dummy) assembly:

image

Above is a t-pipe with three covers, one of them has bolt ‘bodies’ modeled.  We’ll use fixed-fixed joints to connect the two ‘bolt-less’ bodies together, and then define bolt preloads on the bolt pattern.  To get started, we need to build up the named selections. 

I’m planning on defining the fixed-fixed joint between the two cylindrical surfaces:

image

This is a pretty simple assembly, and I could easily just manually select them all, right-mouse-click, and generate the named selection.  In the real world, things aren’t always so easy, so we’ll get a little fancy.  First, create a named selection of the bodies that contain faces we want to joint together:

image

I’ve created two named selections, called ‘joint_cover’ and ‘joint_pipe’ and utilized the ‘random colors’ option to display them in different colors.  Next, I insert a named selection but set the scoping method to be ‘by worksheet’:

image

I’ll then use selection logic (MAPDL hipsters will recognize the logic as the xSEL commands):

image

Now, order is important here, as the selection logic ‘flows’ from top to bottom.  First, this named selection selects the bodies contained in the existing named selection ‘joint_cover’ (note:  this object MUST exist above the worksheet-created named selection in the tree).  At this point in time, we have two bodies selected.  Next, it converts my body selection to faces belonging to those bodies.  Finally, it filters out any face that has a radius less than .05m (units are set by the ‘units’ drop-down menu, values entered in worksheet scale when units are changed).  Hit ‘generate’ and you get the following:

image

You may need to switch to the ‘graphics’ tab (circled in red in the above image).  This is great, we now have all of our faces highlighted.  Next, we need to reproduce this behavior on the pipe.  Rather than redo all of this work, just right-mouse-click on our new named selection and select ‘duplicate’. 

image image

Select the duplicated named selection, and edit the first line to use a different named selection.  Hit generate:

image

Perfect.  We can go back and add/remove bodies to the existing named selections and re-generate the named selections to have it automatically re-create these named selections. 

Next, we’ll create the original ‘joint’ we want to re-create across the two flanges. 

image

After making the joint, make note of which part is the ‘reference’ and ‘mobile’.  For the image above, the cover is the ‘reference’ while the pipe is the ‘mobile’.  Highlight this joint and select the object generator:

image

If we use the object generator on a joint, it will ask us to define the named selections that contain the reference and mobile faces.  From above, we know that the cover faces are contained in the ‘cover_faces’ named selection.  We then duplicated that and swapped the body selection, meaning the faces for the pipe are contained in ‘cover_faces 2’ (I’m lazy and didn’t rename it…sorry).  Next, we define the minimum distance between centroids.  This acts as a filter for re-creating each joint.  What happens when we hit ‘generate’ is it looks at the distance between the centroids of each face in the two named selections.  If it finds ‘matching’ faces within that distance it creates the joint. 

image

In the image above, if I use a distance equal to the red line, I will get incorrect joints defined.  I’ll get the following (a=cover, b=pipe): 1a-1b, 1a-2b, 2a-2b, 2a-1b…

What I need to do is limit the distance to the blue line, which is big enough to find the correct pairs but filter out the wrong ones.  To figure out a proper distance, you can use the ‘selection information’ window to figure out the centroid information:

image

Once you’re set, hit ‘generate’:

image

What a time to be alive!  It’s always a good idea to go through joint-by-joint to make sure everything is correct…or you can always just count the number of joints created and confirm that the number is correct (I have 15 total faces in the cover_faces named selection…so I should have 15 joints…and I do).

Next, let’s look at the bolt pretension definition.  We start with a named selection of the face where the bolt pretension will be applied:

image

Next, we create our original bolt pretension load:

image

I’ve setup my bolt pretension to solve for a 100N axial load in load step 1 and then lock the solved-for relative displacement in for load step 2.  We select the bolt pretension in the tree, then select the object generator:

image

Select the named selection that contains the bolt faces, and hit generate:

image

This is incredibly useful for bolt pretension for two reasons.  The first reason is obvious…it significantly cuts down on the amount of work you need to do for large bolt patterns.  The second reason…you can only make changes to bolt pretension objects one at a time.  By that, I mean you cannot multi-select all your bolt pretensions and change the load and step behavior (e.g. change load to 200N, open in load step 2, etc). 

image

If you select all the bolt pretensions, the changes you make in the tabular data window are only applied to the first selected object.  All other bolt pretensions are kept the same.  So if you suddenly realize the pretension was setup incorrectly, it’s best to delete all but one of the pretension object, make the necessary changes, then duplicate it.  That way you can be sure all the bolt pretensions are correct (unless you’re simulating a bolt opening up…then ignore). 

One very important thing to note is that the object generator is not parametrically linked to anything.  If I go back and change the number of holes/bolts/etc in my model, I may need to re-generate the duplicated joints/bolts/etc.  The named selections should update just fine, assuming you didn’t open the hole up bigger than the selection tolerance.  I would recommend deleting all but the original joint/bolt pretension and just re-create everything after the CAD update (this may actually speed up the CAD transfer as it’s not trying to link up incorrect entity IDs).

Hopefully this will save you some time/frustration in your next analysis.  The documentation in R15 can be accessed here:  help/wb_sim/ds_object_generator.html

The Pets of PADT – March 2014

You can tell a lot about a person from their pets.  But what can you tell about a company?  We recently decided to share pictures of everyone’s pet to learn a bit more about each other, and to spend a little bit of time ooh’ing and ahh’ing over how cute some of these guys are. 

Enjoy: