1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Constraints incorrectly reporting "Over constrained"

Discussion in 'General Discussion' started by S. Mahnken, May 3, 2020.

  1. S. Mahnken

    S. Mahnken Member

    I have a hinge assembly that is constrained properly, and operates correctly. I insert multiple copies of this hinge into a larger assembly consisting of two boards and four hinges. In this higher-level assembly, the hinges are set to "make flexible", and "Minimum Motion" is turned off.

    One half of each hinge is constrained to the first board. I can constrain the second half of ONE of the hinges to the second board. Motion of the two boards is correct, but the other three hinges do not move (of course), because their second half is not constrained to the second board.

    When I try to constrain the second half of the three remaining hinges to the second board, Alibre INCORRECTLY reports that the system is over constrained. This would be true if the hinges were not "make flexible", but in the case that the hinges are flexible it is not correct -- nothing is binding the second half of the hinge.

    And to preemptively quash the arguments -- No, there are not any problems with the alignments, etc. in the hinges, nor the boards. Every indication is that things are co-planar, parallel, perpendicular, etc. The behavior is that Alibre is only looking at the degrees of motion of the two boards, and not considering the flexibility of the hinges.

    Is there a workaround for this behavior? I would consider this a bug, but don't know where to file it.
     
  2. netcp

    netcp Member

    Difficult to say without Seeing the Assembly. Could you Upload it as a Package?
    Have you tried to constrain the 3 remaining hinges to the second half of the first hinge?
     
  3. HaroldL

    HaroldL Alibre Super User

    The way I have gotten around this issue is to install all the hinge assemblies. Then mate all of the moveable hinge blades so they move together without the second board or panel. Then mate the moveable board to only one of the moveable hinge blades.

    Another method would be to spit the hinge assembly and install the fixed blade on the "body" and the moveable blade on the moveable panel. Then mate teh panel assembly to the body assembly. This method will likely not populate the BOM table with the hinge assembly but with the individual hinge blades.
     
    JST likes this.
  4. oldfox

    oldfox Alibre Super User

    Here is an old project of mine that uses many hinges in different manners. Open the assembly and feel free to slice, dice and just generally take it apart to see how the constraints work with the different hinges. Which constraints were used, which part was constrained first, etc. etc.

    This 'box' will open up into a storage space plus pegboard hangers plus a work bench with vices (not now present) and dog holes.

    Play with it, have fun and maybe garner a better understanding of how Alibre works. I've been using it for 15 years now and I'm still learning. ;)

    I remember uploading it to the gallery. If it's still there, you can see the different phases of it's operation.
     

    Attached Files:

  5. S. Mahnken

    S. Mahnken Member

    Yeah, I thought of that, too. It still reports being over-constrained.

    One detail I failed to mention in my original post -- If I don't make the hinges "flexible", they all mate just fine with no errors. The panel won't move, of course, but all the constraints pass. The "over constrained" error only happens when I try to make the hinges flexible.

    I hope this is right. I haven't exported a package before. Let me know if it does or does not work.

    In the file, I've got the full set of constraints, but some are suppressed. You'll get the "over constrained" error if you try to enable any of them with the hinges flexible.
     

    Attached Files:

  6. S. Mahnken

    S. Mahnken Member

    Thanks, oldfox. I appreciate the example. I opened it up and had two initial observations.
    The first is that you tend to use edge constraints to position your hinges. In my file I'm using face constraints to position them. Do you find that there are differences in the way Alibre behaves when comparing the two methods? When I try to do my file with edge constraints, I have the same problem.
    The second observation is that the main assembly doesn't seem to move (drawers and doors don't open, etc.). The subassemblies seem to work just fine if I open one of them separately. Is the main assembly locked somehow, like a puzzle box? Just thought I'd ask before I try to puzzle it out... :)
     
  7. DavidJ

    DavidJ Alibre Super User Staff Member

    One hinge is enough to mathematically define how 'door' relates to 'frame'. In real life it's typical to have more than one hinge - but if we do that in an assembly the door to frame relationship may be duplicated when the constraints are added.

    Think of it another way, its very easy to create a circular loop of constraints (like a snake eating its own tail).

    The constraint solver doesn't like these situations.
     
    Drutort likes this.
  8. S. Mahnken

    S. Mahnken Member

    @DavidJ: Yup. I understand completely. I want to know how to (effectively) tell Alibre that the four hinges should all behave the same. The only way to do that (mathematically) is for Alibre to include the subassembly flexibility in its equations. It needs to recognize that the second half of the hinge is not constrained due to its flexibility.
     
  9. DavidJ

    DavidJ Alibre Super User Staff Member

    I think Harold gave the answer to that in his earlier post.
     
  10. idslk

    idslk Alibre Super User

    have you tried it?
     
  11. DavidJ

    DavidJ Alibre Super User Staff Member

    Stefan - Harold reported that his method works, that's good enough for me. It is also logical as it avoids creating the 'loop of constraints' mentioned earlier.

    Did you have a point to make?
     
  12. idslk

    idslk Alibre Super User

    @DavidJ ,
    i only wanted to know.

    @HaroldL ,
    can you please be so kindful and post your solution as a package?

    TIA
    Stefan
     
  13. Lew_Merrick

    Lew_Merrick Alibre Super User

    I am seeing this (with V21) as well. I have a "SubAssembly" that keys everything within the "Assembly." It is constrrained using the "Z-Axis," the "XY-Plane," and the "Y=Axis." It reports as being "Over Constrained" as well. It worked fine with V20. -- Lew
     
  14. oldfox

    oldfox Alibre Super User

    True.

    True.

    2 face constraints won't produce a solid constraint. It will still be free in that 3rd vector. 2 constraints will produce a locked constraint.

    This idea works. Takes a lot of constraints.

    I don't think you will be able to move the movable panel with respect to the fixed panel.
     

    Attached Files:

  15. oldfox

    oldfox Alibre Super User

    The 2 edge constraints to the axes would be enough to lock the assemblies. The face constraint to the plane would be the culprit that would trigger the "Over Constrained" message I'm thinking.

    I've been using the 2 edge constraints for a long time, through a few versions and it always works for me.
     
  16. idslk

    idslk Alibre Super User

    Hello Chris,

    well done. I've added the limited angle constraint for the hinge angle (0-180°)...;)
    I also knew this "work around" (and have to use it to get things constrained), but this isn't obviously for a "beginner" and not user friendly. May it could be optimized some day...

    Regards
    Stefan
     

    Attached Files:

  17. oldfox

    oldfox Alibre Super User

    Hi Stefan,
    Thanks. I'm still working on learning the new constraints. Just another step on the learning ladder.
     
  18. HaroldL

    HaroldL Alibre Super User

    Well this disappointing, I did have an assembly, built in v 2019, that had a couple of hinged doors that did work with the method I described. Now when I open it in v21 I cannot get it to move at all let along like it did before. Not sure what, if anything, changed in the constraint tool but it seems more sensitive now and will over-constrain a lot easier.

    The best I could do, short notice, is recreate an assembly that has the hinge split between the frame and the door panel.

    You didn't mention that you had a hidden hinge. My example is just a simple leaf hinge. That design has a lot of constraints just to keep it together. :eek: Splitting that hinge design is impossible.
     

    Attached Files:

  19. S. Mahnken

    S. Mahnken Member

    Thanks to all for your help!

    As best I can tell, the final example from @idslk has two primary differences from my original:
    1. It uses a coaxial edge constraint instead of coincident face constraints.
    2. It deletes the angle limiting constraint from the hinge and puts it in the assembly instead.

    It still seems like there's a hole in the constraint solver equations for the Alibre folks to resolve. The new constraints (which work) and the old constraints (which didn't) *should* have resolved to the same conclusion. And the quirk that the new limit constraint on the angle needs to be applied at the master assembly level instead of the sub-assembly level seems like something isn't quite right somewhere. Regardless, I appreciate everyone taking the time to have a look at this for me and providing a workaround.

    *Laughs* Yes, it is complex. Not quite impossible to split, but definitely ugly. :)

    Thanks again!
     
  20. NateLiqGrav

    NateLiqGrav Alibre Super User

    My first instinct and the simplest thing to do with multiple things in a line was to do a linear pattern on the hinge assembly but that did not work - the 'make flexible' positions were not carried through the pattern. o_O
     

Share This Page