Subscribe in a reader

Enter your email address:

Delivered by FeedBurner

June 2009
M T W T F S S
« May   Jul »
 1234567
891011121314
15161718192021
22232425262728
293031  
Disclosure:

DS SolidWorks provides me with a non-commercial license of SolidWorks Premium. They have also invited me to press events and conferences, such as SolidWorks World, free of charge and, at times, they have also provided for accomodations, some meals and transportation. I don't, however, receive any payment for blogging or instructions on what I should write about. Everything that I post in this blog is my own opinion and does not reflect or represent in any way the ideas of DS SolidWorks.

Archive for June, 2009

I was actually planning on posting about friction coefficients and the way it all works using an example of a simulation of these tong grabs, but before I do that, I thought I should share with you about a little problem I ran into while trying to use a special option available for the hinge mate and a way to work around it.

tong-grabs

OK, first of all, let me tell you a bit about what these tong grabs do. Tong grabs or friction tongs are very clever contraptions that are often used to lift heavy, bulky loads.  The principle behind them is very simple:  as you pull them up, the tongs close on the sides of the object you wish to lift, if the friction coefficient between the object and the surface of the tongs that comes in contact with it (usually known as pads) is big enough, then the tongs will be able to lift the object.  Mine is a very simplified model, just for illustration purposes. There are several different kinds of tong grabs available, depending on the kind of load you wish to lift. I found some inspiration in the ones available from Bushman Equipment.

If you check the ones available from that site or some other, you’ll see that some of them have adjustable pads that come in touch with the load and that rotate a few degrees in order to accommodate wider or narrower loads. These pads are also often furnished with rubber, belting, or other materials to increase the friction coefficient as needed. I wanted to add some very simple rotating pads to my model, but I also wanted to limit their rotation to only a few degrees, to ensure they would not rotate to the opposite side or hang flat as the tongs were closing on the load.  For this purpose, it occurred to me that I could use a special kind of mate known as the Hinge Mate, and take advantage of the option “specify angle limit” available for this particular kind of mate.

The Hinge Mate is a mechanical mate that comes in pretty handy when running a motion study, since it’s usually recommended to add the kind of mates that will allow the model to behave as close to how it would do in real life as possible. In other words, if it behaves like a hinge, use a hinge mate. Think of how you usually mate the hinges of a door, for instance, you usually need two mates: concentric and coincident. The hinge mate combines those two mates in one and even offers the option of specifying a limit for the angle of rotation between the two components that form the “hinge”.

In the image, the hinge mate is being added between the grabs and the pad. The concentric selections are the cylindrical faces of the holes in the pad and the grabs. I’m not using any fasteners in this model, but if I was, this would be the hole for a bolt, pin or screw. The coincident selections are two faces that come in touch, shown in purple.

hinge1

The option “specify angle limits” is being used here to limit the angle of rotation between the surfaces highlighted in pink.  The first value (50 degrees) is the current angle between the two surfaces, the second value is the maximum value that can ever be between those two surfaces and the third value is the minimum angle. This means that the pad will be able to rotate anywhere between the minimum and maximum angle as needed, depending on the width of the load.

hinge2

 This is really cool, only problem was that when I tried it with my pads and ran the motion analysis, the “specify angle limit” option didn’t work at all. So, I asked the folks from SolidWorks if it was that this particular option wasn’t supported in SolidWorks Motion and they said to me that it is supposed to be supported, that this is not a bug, but a known issue still present in SolidWorks 2009 SP4.0, and they are working to fix it as I write this.  It may be fixed in a future service pack or release, but in the meantime, there is a way around it, and Mr. Matthew Derov, training specialist at DS SolidWorks, was really kind to explain to me how.

Here I share what he told me with you, in case you run into this same issue:

“The “Specify angle limits” option for hinge mates should be supported when using motion analysis.  This is actually a known issue and our developers are working on getting it fixed.  In the meantime, a work around for this issue does exist.  To specify an angle limit for your mate, de-select the “Specify angle limits” option in the hinge mate and set up a separate advanced “Angle” mate with a maximum and minimum angle.  I have attached a simple model for you to have a look at how I set it up (Motion Study 1). “

This is a screen shot of the model he attached. You can see that there are two mates between these parts: the hinge mate and the limit angle mate.

hinge5

In this image you can appreciate the way he set up the hinge mate for the assembly.

hinge3

 

“Please also note that a separate issue exists with the angle mate and motion analysis.  If your parts begin in perfect alignment (angle set to 0 degrees in attached model) there exists 2 separate solutions to the problem and the solver will not handle this properly.  Therefore, you must offset the starting angle slightly to define the angle direction.  This is also a known issue being worked on by our motion developers.  If you specify a slight offset (i.e. 1 deg) as done in my example, the solver will compute the solution correctly.”

This is a screen shot of the way he set up the limit angle mate in his example. Notice the small one degree offset that he’s talking about.  

hinge4

 

The study he set up in Motion Analysis included only the force of gravity acting over the assembly, as you can see in the image.

 hinge6

One of the parts is fixed, while the other one can rotate within the range specified in the limit angle mate.  This part rotates by the effect of gravity, but stops when it reaches the value of the angle he specified earlier as the maximum limit.

hinge71

 

Hope you find this information useful!

Hey everyone, I’m sorry I’ve been out of action for a whole week! I somehow managed to first hurt my rib cage merely by coughing,  and then, just in case that wasn’t enough,  poison myself with the very medications they gave me at the urgent care clinic to help me “feel better”.  Hmmm…  Anyway, I’ve been doing some light reading on how to model using surfaces in SolidWorks, just to pass the time away and learn two or three things. Then, I decided to try and create something with what I’ve learned so far, and that’s how I came up with this simple flower vase.  I know, some of you may have different ideas on how to do the same a lot easier or how to improve it, maybe some of your ideas don’t even include surfaces and I would love to hear them, so make sure to leave a comment for me here.  Just remember, I’m a beginner at this surfacing stuff, and I just wanted to practice surfacing, so go easy on me.

I wanted this vase to be just like one my husband gave me a few years ago, and that unfortunately broke. Although basically squared shaped, the walls of the vase are somehow curvy, so I began by creating a surface extruding an arc sketched on the Top plane, as you can see in the following image.

jarron1

After that, I created an axis (Axis1) between two points in the lower edge of the surface. The idea was to use this axis to rotate the surface around it a few degrees, since the walls of my vase don’t precisely go straight.  For this purpose, I used the command Move/Copy Bodies, but only to rotate the surface, not to copy it. In the image you can see the selected surface in blue and its new position in a pale, almost transparent, shade of yellow.

jarron2

The rest of the walls for the vase were created by patterning this first wall around Axis2, which is an axis I created in the intersection of the Front and Right planes. Notice that all these “walls” are simply surfaces that intersect each other and still need to be trimmed.

jarron3

I trimmed the four surfaces against each other using the Trim Surface command. By selecting Mutual as the trim type, not only the four surfaces get trimmed as well as work as trimming tools themselves, but the result is also knitted together as one surface body in the end.  The purple faces are the ones that are being kept.

jarron4

Next, I created a plane that goes through Axis2 and one of the top vertices of the vase. In this plane, I sketched a profile to help me model the top of my vase.

jarron5

I wanted to create a surface by sweeping a sketch (the profile) using the upper edges of the vase as my path, only  problem is that these edges  do not rest in one plane, so what I did was to open a 3DSketch (Insert, 3DSketch) and convert those edges. Once I had my profile and path, I used the command Sweep Surface, as you can see in the following image. The swept surface is shown as a preview.

jarron6

My vase has some indentations on the walls, and I wanted to recreate them.  With this idea in mind, the first thing I did was to offset one of the walls to the inside of the vase. It’s is hard to appreciate it, unless I hide the other faces, but maybe you can see the offset surface in the detail of the preview. It’s the one shaded in pale yellow.

jarron7

I created a sketch on the front plane by offsetting the edges of the vase wall and used it to trim two of the four faces of the vase, the one directly in front of the Front plane and the one behind it. In the image, the surfaces in purple are the ones being kept.  Next, I created the same sketch in the Right plane and used it to trim the remaining two faces.

jarron8

 

Once again, on the Front plane, I created a sketch by offsetting the one created in the previous step to the inside. I used this new sketch to trim the offset surface I had created previously. The part in purple is the one I’m keeping.

jarron9

I used the Boundary Surface command to create surfaces to connect the wall of the vase to the trimmed offset surface, like you see in this image.

jarron10

I did the same for the rest of the edges and then patterned all five surfaces (the trimmed offset surface included) around Axis2, as you see in the image.

jarron11

At this moment, I had a total of twenty two surface bodies, so I decided to knit them together, using the Knit Surface command, but I didn’t try to form a solid just yet. After using the Knit Surface command, I had only one surface body in my folder.

jarron12

 

If you look at it closely from the front or from the right, you will notice that the bottom of the vase is not really flat, so what I did was to trim the bottom using the Top plane as my trimming tool.  Once the bottom was flat, I was able to use the edges to create a planar face to close the vase at the bottom using the Planar Surface command. I knitted this new surface and the one I already had together afterwards.

jarron13

Next, I applied a few fillets to soften the edges of the vase, and finally, used the Thicken command to make it into a solid by adding thickness to the surface. Notice that this is working for all these surfaces at once only because they are knitted together. You can add thickness to the outside, the inside, or to both inside and outside at the same time. In this case, I decided to apply the thickness to the inside of the vase.

jarron14

So there you have it. It’s not perfect…

jarron15

I’m still not so happy about how the fillets look like. The upper edge in particular seems to be extremely hard to fillet as it is. Nothing seems to work and my attempts so far have only produced strange looking corners.  I guess I need to do some more light reading…

 

This is a picture of Master Andrew, my youngest son, ridding on one of his favorites at the park near our home, the “wild ducky”. 

buckingbronco

In the back you can also see his other favorite, the “bucking bronco”.  The picture was taken a few years ago, when I used to carry my camera everywhere I went, and take a picture of every single smile, frown or bugger.  Andy’s summer break started several weeks ago, so we’ve been to that park quite a bit already. He still likes the bronco, but I don’t take that many pictures anymore.

Anyway, watching him ride one of those got me thinking of running a little motion study, just for fun.  That’s how I came up with my own version of the bucking bronco that you see here and used a linear spring to simulate the bouncing movement.

bronco

Granted, this is extremely simplified. The real bronco doesn’t only bounce up and down, but also bends back and forth and side to side, as the child pushes and pulls and shifts his or her weight during the ride. I definitely don’t think I can simulate that using this particular spring, because for once, this is not even a model of the spring, but only a simulation element, and also because bending the model of a spring in such a fashion would most likely involve some significant deformation and SolidWorks Motion considers all components in the motion study to be rigid.  That would be a whole different kind of study!

In the meantime, this is what can be done with what’s available…  I modeled the bronco as a single part just to make my life easier.  As you can see, my assembly has only two components: the bronco and a square base that represents the ground where the ride will be attached to. The linear spring will be placed between these two parts, but keep in mind that it’s not a real component so the spring itself isn’t enough to guarantee the movement will always go according to plan.

While preparing my assembly for the study, I added a coincident mate between the front planes of both the bronco and the base, another coincident mate between the right planes of the same two components, and a distance mate to position the bottom of the bronco twenty inches above the base. When creating the new motion study, however, I eliminated the distance mate from the study, while still leaving it in the model.  This is done easily from the Motion Manager, thanks to the fact that SolidWorks Motion allows you to have what it’s known as local mates.  Local mates are mates that are added to or deleted from that motion study exclusively, without affecting the model or any other motion study you may have.  To add, delete or suppress a local mate, always do it from the Motion Manager, while in the motion study tab of interest.  If you then click on the model tab and look at the mates folder, you’ll see that they haven’t been affected by any local mates you applied in your study.  

Now, about that spring…  Adding a spring to a motion study is not so hard. Choose the motion study mode to be Motion Analysis and click on the spring icon to add a spring. You will see a property manager appear on the left, where you will have to specify certain parameters for your spring. The first one has to do with the kind of spring you want to add, which in this case is a linear spring. Next, you will have to specify the spring endpoints; you can do this by selecting a point, an edge or a face for each endpoint of the spring. I used a couple of faces.  The idea behind applying those two coincident mates was to center the bottom of the bronco above the square base. This is because I used the rectangular face of the bronco’s bottom and the top face of the square base to define the endpoints of the linear spring.  Each endpoint was positioned right at the center of each of the faces I chose.  By making sure that the faces are centered with respect to each other, I also made sure that the spring would go straight along the Y axis.

bronco1

As soon as the endpoints are specified, the free length of the spring is calculated as the distance between the two endpoints. If you leave it like that, it means your spring isn’t preloaded. You can change it, however.  If you increase the value, then it means your spring is already under compression. If you decrease the value, then your spring is already under tension, because in that position it’s stretched out beyond its free length. This is important to keep in mind because the spring will tend to go back to its original free length and will then exert a force on the components that it connects, bringing them closer or pushing them apart. In my case, I wanted a spring that wasn’t preloaded and had a free length of twenty inches, and that was the purpose of the distance mate I added to the model in the beginning. I deleted this mate from the study, however, because it was simply to position the bronco.

bronco3

The spring constant is part of a relationship that describes the dependency between force and displacement and in this case is 1, for a linear spring.   The spring rate  is also part of the same spring relationship between force and displacement and can be described, for simplicity, as the amount of force needed to compress a spring a certain distance, or more specifically, how many pounds of force are required to compress the spring by one inch. Springs that have a low spring rate are said to be soft, while springs that have a higher spring rate are said to be stiffer. This only means that it takes a bigger load to compress a stiffer spring by one inch than it would take to compress a softer spring.  Here is the spring relationship for the linear spring:

F = -K(X-Xo) + Fo

Where:

            X = Distance between the two locations that define the spring

            Xo= Reference length (at preload)

            Fo= Reference force of the spring (at preload)

            K= spring stiffness coefficient also known as spring rate

            F= spring force

Some springs have two values listed for their spring rate. This means that the spring starts at one rate and ends at a different rate throughout compression, like in the case of a step linear spring or a progressive spring. I believe it’s possible to simulate this kind of springs in Motion, but I haven’t tried.

Back to defining the spring for the bronco…  Trying to figure out a spring rate for this example was a bit tricky at first.  By default, Motion starts with a value of 1, but if you add gravity to this example and run the study, you’ll discover that with that value this spring isn’t even able to bounce back and/or support the weight of the bronco at all. It needs to be much stiffer than that. I ended up with a spring rate close to 10 and it seems pretty decent.  

bronco2

Under Display in the spring property manager you will be able to enter values for the coil diameter, the number of coils and the wire diameter. While these values have real impact on the spring rate in reality, here they are merely for display purposes and won’t affect the result of the simulation.

If you add gravity in the negative Y direction and run the simulation with this spring, you’ll see the bronco bouncing up and down by the effect of its own weight for what seems to be an eternity, but we all know that springs in the real world don’t bounce forever, because they all have some sort of structural damping built in and that’s what that damper field in the spring property manager is for.  

bronco4

For my bronco, I used a linear damper and played with different values between zero and one for the damping constant.  By creating a plot of the displacement of the bronco in the Y direction against time (measured with respect to the global coordinate system), I was able to observe the effect of the damper constant in the simulation more clearly.  This plot shows the displacement of the bronco when a damper constant of 0.1 is used. 

bronco5

This other plot shows the displacement of the bronco when a damper constant of 0.4 is used. As you can see, the higher the constant, the faster the bronco comes to a stop.

bronco6

 

After the bronco had stopped completely, I added an action only force in the negative Y direction to the top of the seat to simulate a small child seating on the ride.  This is the new displacement plot after running this simulation.  Notice how the second time the bronco comes to a stop it does at an even lower position than before.

bronco7

These studies are highly simplified, I know, but they still have some educational value. I hope to learn more about Motion and Simulation soon, or at least enough to come up with more complicated examples. 

 

Hey guys, you know we bloggers love comments and we always welcome our readers to share their point of view on everything we write about, right? I mean, at least I do. However, what I really can’t have in this blog is nasty comments and flames, as well as profanity of any sort, even if it’s not exactly directed towards me, and especially when it’s directed to other readers of this blog. I will not allow that! That’s not the purpose of this blog! For that reason, I’ve recently removed  the last few comments that were made today, all of them for the post “On Doing Davinci”, and closed comments for that particular post altogether.  Sorry guys, but it was getting out of control!  I don’t mean to appear as the comment police. I’m really very laid back and I want to listen to what others have to say, even if what they have to tell me is “Gabi, sorry but you got it all wrong, girl, let me show you how it’s done”.  Everybody is welcome to contribute their thoughts and ideas here, as long as it’s done in a respectful way.  Please, refrain from profanity and flame wars!

As I mention in my last post, I was encountering a series of issues and strange behavior when running some examples in Basic Motion. While I’m still waiting for what SolidWorks developers may have to say about this, I was very lucky to hear from someone that really knows his stuff when it comes to Animation and SolidWorks Motion.  Jim Boland, who does not represent SolidWorks Corp., but has worked as a contractor for SolidWorks for many years in the development of training materials, including the original Animator training manual, took a look at my arbor press example and made a few comments about the issue that I find really interesting and think may be useful to others, as well.  As I said before, these are Jim Boland’s thoughts and do not speak for SolidWorks Corp. or the software developers, but you may learn a thing or two from them. Trust me! So, here it goes…

What made me contact you was that the Arbor Press video you made was right along the lines of what I’m doing in many of the case studies in the book in that it shows multiple ways of achieving the desired results.  In all the years of teaching SolidWorks, I always get the standard question of “What’s the right way to do this……?”  My response has always been the “right way” is whatever way allows you to achieve your design intent and the “wrong way” is what keeps you from meeting the design intent.  That said, among the many “right ways” some are better than others because they are easier to solve, more flexible to change, etc.

After just attacking the problem of the contacts in the Arbor Press head on, I finally took a step back and looked at the broader picture, so here are some thoughts. 

  • Why would you ever want to use Basic Motion instead of Animation for this video?  Over the past 9 months, Jindrich and I have had lots of discussions about the three products and the correct use of each.  If you look in the SolidWorks Motion book, there is a section on page 225 about Kinematic Systems vs. Dynamic Systems. To help clarify this issue, I’ve spent some time in the new version of the book talking about this difference and the fact that as a general run, you use Animation for Kinematic systems and Basic Motion for Dynamic systems. The Arbor Press is a Kinematic system because for every position of the rotating shaft, there is one, and only one, position for every other part. Always remember that our goal is to create an animation, NOT an analysis.  If I use Animation instead of Basic Motion, it can be done in half a dozen different ways in a matter of seconds and I can be off to the next task.
  • One confusing comment in the Help and tooltips is that you get a more realistic result with Basic Motion over Animation.  I think that’s a simplification in that it is true for Dynamic systems but not for Kinematic systems.  Look closely at the case with the linear motor.  While motion stops at contact, there is visual penetration, which is unrealistic. In a simulation run, that’s expected because we are using a mesh to define the boundary and material properties are considered, so it is OK.  In an animation it’s not OK, but I can easily fix it in an animation by turning off the drive motor at the correct time or drive the motion with a distance mate.
  • What do we expect the results to be when using Basic Animation with a motor driving and Contact between the table and rack pad?  Besides the two situations you did, where you use the rotary motor and linear motor, I also did two other studies where in one case I used the rotary motor but replace the rack and pinion mate with contact between the two gears.  In the other I used a double rack where a linear motor drove the first rack which drove the pinion which drove the second rack.  There were three different results.
    • Rotary motor and rack and pinion mate.  Problem solves but does not stop at contact.
    • Linear motor, no mates involved.  Problem solves and stops at contact.
    • Rotary motor with gear contact.  Solution stops (fails) at contact and timeline shows in red.
    • Linear motor with double rack and pinion. Solution stops (fails) at contact and timeline shows in red.

 

The question is which is correct?  I would think that the third and fourth cases are correct as we have an over defined system.  The motor is told to keep driving but the contact prevents it.  Kind of like putting a coincident and a non-zero distance mate between two faces.  It cannot solve both cases simultaneously. Then the question becomes, if the third and fourth cases are correct, why does the linear motor case you did solve without error?  Simple answer is I don’t know.  That’s what the developers will have to tell us.

  • When Basic Motion is used with a Dynamic system, contact is normally the result of a component rolling on another, or impact where both components are still free to move.  When Basic Motion is used for a Kinematic system, we run into a problem because the parts are not free to move after collision.  I think this is what gives us the two types of errors, either contact is ignored or the solution fails.
  • If we were doing an analysis, we wouldn’t use a motor unless it had a control to turn it off at contact or at some load.  Otherwise either the motor would burn out at contact or the gears would fail.  In reality, we would define the analysis with a force rather than a motor.  In that case the contact should stop the motion properly.