27 Replies Latest reply on Feb 12, 2019 4:59 PM by Brian Catlin

    How do I determine why a sub-assembly stops moving?

    Brian Catlin

      Solidworks Student Edition 2018-2019

       

      I have an assembly that contains some sub-assemblies that move. One of my sub-assemblies no longer moves, and I cannot figure out why. Its properties show that it is Flexible. How do I determine what is preventing the assembly from moving?

        • Re: How do I determine why a sub-assembly stops moving?
          Glenn Schroeder

          Expand that component in the tree, expand its Mates folder, and start suppressing them until you get movement back.

            • Re: How do I determine why a sub-assembly stops moving?
              Brian Catlin

              Seriously? Trial and error is the only way?

                • Re: How do I determine why a sub-assembly stops moving?
                  Andy Sanders

                  Basically, yes.  It's an art you eventually get better at.

                  • Re: How do I determine why a sub-assembly stops moving?
                    Alex Lachance

                    The program cannot know what kind of movement you are intending it to do... You should know what mates you have and what controls your assembly so it shouldn't be too hard to find which mates stops you from doing your movement.

                     

                    Edit: Probably that you have 2 parts fixed inside your assembly and are mated along both parts. Maybe the part or assembly you are trying to move is fixed. You can tell if it is fixed if there's a little (f) next to the component name in the feature manager.

                    • Re: How do I determine why a sub-assembly stops moving?
                      Kevin Chandler

                      Brian Catlin wrote:

                       

                      Seriously? Trial and error is the only way?

                       

                      Or upload your files for the forumites to peek at?

                      Or add some screen shots?

                      Or explain better?

                      Or rollback things?

                      Or suppress assemblies?

                        • Re: How do I determine why a sub-assembly stops moving?
                          Brian Catlin

                          It is 41MB as a Pack 'n' Go zip file, which is larger than can be attached here. If anyone is interested in looking at it, here is a link to the zip file: https://1drv.ms/u/s!AnHYCbebxUCp5fRGt7008oen3rMIMQ

                          The sub-assembly that used to move, and no longer does, are the green legs in the back of the robot. They should rotate about the shaft they are attached to

                              • Re: How do I determine why a sub-assembly stops moving?
                                Brian Catlin

                                Jim, what version of Solidworks are you running?

                                How can I debug this?

                                  • Re: How do I determine why a sub-assembly stops moving?
                                    Alex Lachance

                                    Brian,

                                     

                                    See if you deactivated the setting that allows you to do so. It should be in Options>Assemblies> Move components by dragging (checkbox)

                                     

                                     

                                    2012 SOLIDWORKS Help - Moving a Component

                                      • Re: How do I determine why a sub-assembly stops moving?
                                        Brian Catlin

                                        It is set. I can drag the pink arm, but the legs no longer move for me.

                                         

                                        Since someone else was able to get the legs to move, it appears to be a bug in the Education 2018-2019 version of Solidworks :-(

                                          • Re: How do I determine why a sub-assembly stops moving?
                                            Kevin Chandler

                                            Brian Catlin wrote:

                                             

                                            It is set. I can drag the pink arm, but the legs no longer move for me.

                                             

                                            Since someone else was able to get the legs to move, it appears to be a bug in the Education 2018-2019 version of Solidworks :-(

                                            I have SW18-19 at home.

                                            If I get the time, I'll see if this is an accurate statement.

                                             

                                            Kevin

                                            • Re: How do I determine why a sub-assembly stops moving?
                                              Kevin Pymm

                                              Brian,

                                               

                                              I am using SW2019 SP1 & just to confirm,  I have opened your assembly & I am able to rotate the green arms OK.

                                              • Re: How do I determine why a sub-assembly stops moving?
                                                Kevin Chandler

                                                Brian Catlin wrote:

                                                 

                                                It is set. I can drag the pink arm, but the legs no longer move for me.

                                                 

                                                Since someone else was able to get the legs to move, it appears to be a bug in the Education 2018-2019 version of Solidworks :-(

                                                Another item, resist the urge to blame the software, as most of the time, it's you who is at fault.

                                                Better to develop the mindset that you are the one who created the issue and you are the one who will remedy the issue.

                                                 

                                                "A poor carpenter blames his tools."

                                                 

                                                Kevin

                                                  • Re: How do I determine why a sub-assembly stops moving?
                                                    Brian Catlin

                                                    If the model works in another version of Solidworks, then clearly the model is not the problem! That leaves the configuration and the differences in versions of the software. The configuration values that control movement appear to be the same, therefore, the software must be the problem.

                                                      • Re: How do I determine why a sub-assembly stops moving?
                                                        Josh Brady

                                                        Brian Catlin wrote:

                                                         

                                                        If the model works in another version of Solidworks, then clearly the model is not the problem! That leaves the configuration and the differences in versions of the software. The configuration values that control movement appear to be the same, therefore, the software must be the problem.

                                                        So... In your car you have a gear shift lever.  You have a gas pedal, brake pedal, lots of controls.  You can do lots of different things with your car, and for the most part the car will let you.  But there are certain things that'll give you better results.  If you choose to drop it into low and then drive 200 miles to Atlanta on the interstate at 70mph, (as my wife recently did) it will let you do that.  But you won't be happy with its behavior (she wasn't either...).  One vehicle might make it there in one piece, another vehicle might drop the transmission in the middle of I-75.  I'm not sure the vehicle is entirely to blame in either case... 

                                                         

                                                        Regarding setting things as flexible, they only have to be flexible if you want the subassembly components to move relative to one another in the higher level assembly.  If you group your subassemblies such that things that move as a unit make up the subassembly, then all you have to do is mate it in the main assembly. 

                                                          • Re: How do I determine why a sub-assembly stops moving?
                                                            Brian Catlin

                                                            I'm not sure that the analogy is relevant, because the behavior of the model varies depending upon the version of Solidworks that is being used, but I thank you for your advice and your time.

                                                             

                                                            I'm trying to understand your meaning regarding using Flexible. Do you mean that I shouldn't have modeled the 4-bar linkage of the arm as a single assembly? How else should I have modeled it? It seems to me that it would always have to be set Flexible for it to move in the main assembly

                                                              • Re: How do I determine why a sub-assembly stops moving?
                                                                Josh Brady

                                                                Brian Catlin wrote:

                                                                 

                                                                I'm not sure that the analogy is relevant, because the behavior of the model varies depending upon the version of Solidworks that is being used, but I thank you for your advice and your time.

                                                                 

                                                                I'm trying to understand your meaning regarding using Flexible. Do you mean that I shouldn't have modeled the 4-bar linkage of the arm as a single assembly? How else should I have modeled it? It seems to me that it would always have to be set Flexible for it to move in the main assembly

                                                                It's more of a performance thing than a bug... Your current version of SW has just sorta ground to a halt trying to process it (the tranny fell out).  SW knows that it should still be able to move because there's a minus( - ) showing, it's just not able to do all the calculations it needs to in order to move it live relative to an attempted linear drag.  Mates in SW are analagous to a giant system of equations.  Every mate adds more variables and equations that have to solve simultaneously.  Rigid subassemblies break that system up into chunks.  SW can solve the mates of the subassembly, then ignore those mates from then on.  When you make a subassembly flexible, SW has to include all of that subassembly's mates into the top level mate solving, and it has to push things back and forth between main assembly and subassembly etc., you lose all performance benefit of subassemblies.  Making flexible subassemblies drive the position of other flexible subassemblies is a nightmare computationally.

                                                                 

                                                                Regarding the 4-bar linkage, I would have grouped things sorta like this:

                                                                 

                                                                All of the items I highligted in green always move together as rigid body.  There is no relative motion between them.  So they make a great subassembly.  I would make:

                                                                -That upper thing a subassembly (Probably go ahead and include the bearings on the left side that I missed selecting)

                                                                -The lower one that's just like it a subassembly, (Actually, I'd probably just cut the corner off both of 'em so that they're 2 copies of the same subassembly)

                                                                -The two short end linkages are just independent parts at top level

                                                                -The two vertical support stand/arms a subassembly.

                                                                 

                                                                Each of those subassemblies makes up a rigid body. Then you can add mates appropriately to the subassemblies at the top level to allow motion.  You'll end up with a few more components in your feature tree at the top level, but the overall performance will be MUCH better if each subassembly is rigid.

                                                                 

                                                                If you really want to make that whole pink thing a subassembly that would not be too bad.  You would still only be driving changes one level deep, and for performance you could turn flexible on and off as needed for that one subassembly.

                                                        • Re: How do I determine why a sub-assembly stops moving?
                                                          Josh Brady

                                                          Brian Catlin wrote:

                                                           

                                                          It is set. I can drag the pink arm, but the legs no longer move for me.

                                                           

                                                          Since someone else was able to get the legs to move, it appears to be a bug in the Education 2018-2019 version of Solidworks :-(

                                                          Your model and mating scheme has a lot of complexity.  Any time you have a subassembly, but you have to set it flexible, it's best to step back and ask yourself why, and if you can avoid it.  You have multiple levels of flexible subassemblies inside other flexible subassemblies.  When you use flexible subassemblies, you get almost none of the benefits of a subassembly, at least with regard to top level performance. It's actually worse than just having everything in the top level.  Technically, if you carefully manage the mates, it should work.  However, SW doesn't like to position multiple flexible subassemblies that all depend on one another.  Your fixed orange stand has mates that depend on the position of the green frame.  Since the orange stand doesn't move, it's a waste of resources to make SW figure out that when the green frame moves the orange stand should not move.  Mate the orange stand to something fixed.  Bring your fixed mounting brackets out of the green subassembly and mate them to the base.  Then mate the orange stand to those instead of mating to the green frame subassembly.

                                                           

                                                          Design-wise, I would recommend not mounting your fixed orange frame to the rotating hex shaft anyway.  You have nothing rigid to keep the arms of the orange frame from sliding back and forth on the hex shaft.  The bearings appear unretained, and they may pop out of the (I assume) press fit holes as they waller out.  In general, never use a moving joint when a fixed one will do.

                                                            • Re: How do I determine why a sub-assembly stops moving?
                                                              Brian Catlin

                                                              Yes, it grew by accretion with several kids working on it. Overall, I'd say they did a pretty good job, but I take your point. I'm certainly not an expert at Solidworks, either.

                                                               

                                                              The orange arm was designed to lean forward. It isn't currently, but that capability may be resurrected once the robot is built and testing starts. That's why it is still hinged on the hex shaft. I was about to add the retaining clips to the hex shaft, but after I added the green leg assembly is when I ran into the movement problems, and hadn't gotten to it yet.

                                                               

                                                              It was my understanding that sub-assemblies always had to be marked Flexible if they were to move. That is not the case? Is there a Best Practices guide for Solidworks?

                                                               

                                                              Thank your for your analysis and the time you spent on this. It is much appreciated!

                                                              • Re: How do I determine why a sub-assembly stops moving?
                                                                Alex Lachance

                                                                To add on to what Josh said about flexible sub-assemblies, they are not all that reliable.

                                                                 

                                                                One thing that can prevent you for instance of moving a component in a flexible sub-assembly that you were previously able to move could be something as feeble as the fact that you shut SolidWorks down and restarted it. For some reason when you restart SolidWorks it generally forgets that sub-assemblies are flexible, probably to alleviate the loading time.

                                                                 

                                                                As Josh Brady pointed out, flexible sub-assemblies tend to cause more problems then they can help with so you are better off asking yourself if your assembly really requires to be flexible. It is a good thing to note that you can have ''flexible sub-assemblies'' that are entirely mated.

                                                                 

                                                                We have a similar case to yours, our landing gears. What we like to use here is the following, 3 configurations; Max height, minimum height and a flexible configuration that slides between maximum and minimum height. Having a limit distance mate can help on the flexibility of sub-assemblies.

                                                                 

                                                                Cheers.

                                                                 

                                                                Edit: Our landing gear is further down a few levels of our sub-assemblies. If we need to do a study to know how far the legs can stretch we will not set all the sub-assembly levels to flexible as that is way too intensive. Instead we will reinsert the landing gear in the assembly where we require the study just for the current need and after that either supress or entirely delete it from there.

                                                                  • Re: How do I determine why a sub-assembly stops moving?
                                                                    Brian Catlin

                                                                    As far as I know, all I did was shutdown Solidworks for the day and the next day it didn't work again. That seems to be very odd behavior! Is there a way to get back to the previous state? I did notice that when I restarted, the leg assembly was not marked Flexible and that area of the property page was grayed out. I pressed the Rebuild button and then it was back to being marked Flexible, but it didn't move.

                                                                     

                                                                    I don't think that we have time to restructure the model (this is for a robotics competition, and time is running out), even if we knew how the assemblies should have been designed. Is there a Design Guide or Best Practices Guide that you would recommend? I've taught several of the kids to the point where they've gotten their CSWA, but clearly I need to know a lot more.

                                                                     

                                                                    Thank you for your time. It is much appreciated!

                                                    • Re: How do I determine why a sub-assembly stops moving?
                                                      Glenn Schroeder

                                                      Yes, trial and error is the only way.  As Alex Lachance said, the software can't read your mind to know what movement you want to allow.  If it's constrained it's almost certain that it got that way because of something you did.

                                                  • Re: How do I determine why a sub-assembly stops moving?
                                                    Sergio Monti

                                                    Have you tried to drag using right-mouse-button?

                                                      • Re: How do I determine why a sub-assembly stops moving?
                                                        Brian Catlin

                                                        Oddly, that worked. Sort of. It moves, but not in a predictable way; its movement seems random. When I use the right mouse button on the orange arm, both it and the green legs move together. I suspect it has to do with the mates that others have pointed out.

                                                         

                                                        Why is it that I can move the large orange arm with the left mouse button, but not the green legs? How does left mouse button differ from right mouse button when dragging assemblies?