Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- Be respectful, on topic and if you see a problem, Flag it.
If you would like to contact our Community Manager personally, feel free to send a private message or an email.
Sketch becomes unsolvable when doing anything, how can I fix?
jeremy_laidman
Member Posts: 8 ✭
I have a sketch that is solved, but as soon as I do anything, even unrelated to any existing object, the sketch becomes unsolvable, saying "Sketch could not be solved". Even changing a dimension from 10mm to 10mm (ie, no change) causes almost every item to go red (only two dimensions stay black). I don't know what I can do to fix this. Can anyone help me troubleshoot it? See animated GIF below.
Link to drawing: https://cad.onshape.com/documents/0ba216c6d4b6634bdb89dd4c/w/b4428c3188ca0f28837b1c44/e/53e2a614f815fdfee5a465ee
Link to drawing: https://cad.onshape.com/documents/0ba216c6d4b6634bdb89dd4c/w/b4428c3188ca0f28837b1c44/e/53e2a614f815fdfee5a465ee
0
Best Answer
-
NeilCooke Moderator, Onshape Employees Posts: 5,688There's probably a conflicting contraint in there, but your sketch is way too busy to find it. Good practice is to try to keep sketch entity count low and if you need more detail add it in a second sketch or feature. For example, do you need the corner fillets and all the construction lines here?Senior Director, Technical Services, EMEAI0
Answers
I've deleted all of the curves around the edge and re-did them, and all of the broken relationships have gone. I don't know what caused it, but it's gone away now. Still seems like a bug, but I've worked around it.
A few points that might explain some of the apparent anomalies:
- The 70x70 square is not a square. There's a slight curve inward as you go from centre line toward the corners, so that when you get to the obviously rounded bit, the width has reduced by 1mm. This slight curve is required to fit inside the door lock housing, and it needs to be snug so that there's no wiggle room. The housing is slightly curved for aesthetic reasons. There are four points way out far from the part, which are the centres of these subtle curves.
- The 270 degree dimension, and some of the other items way out into space are related to a circular pattern. I drew one corner and one edge, then replicated them around the centre, ending at 270 degrees.
Thanks for making a fixed-up version (on a copy, not on the one linked in my question) for me to look at and learn from. As I mentioned, the edges need a slight curve, whereas those on your sketch are straight. I managed to do similar, essentially removing extra construction lines and circles, then removing the edges and corner curves (and the circular pattern), and doing them again, but simpler. On removing one of the edges, all of the broken constraints disappeared.
Weirdly, when I open the sketch now (which I haven't changed since posting) the problem has gone away. I'm able to draw a link, change a dimension, etc, and the sketch is happy with all of the constraints.
Lots of tangent arcs can get fussy with the sketch solver, and arcs which are close to being lines are also tricky. It’s all doable, but too many dimensions and constraints can make things overly complicated and lead to it being twitchy.
Sketch patterns are useful in certain situations, but this doesn’t seem like a good place to use them. You aren’t going to change the quantity or the angular spacing.
But I take your general point that I should think ahead a bit, and put in constraints in a logical way, so that I don't end up with conflicts. Until now, I've just been hacking away, and dealing with conflicts as they arise, by thinking about the last operation I did. It's a quick-and-dirty strategy but it's worked for the simple projects I've done, with this one exception.