Multiple coincident constraints overlapping one another?

Multiple coincident constraints overlapping one another?

ipmcc
Enthusiast Enthusiast
2,522 Views
33 Replies
Message 1 of 34

Multiple coincident constraints overlapping one another?

ipmcc
Enthusiast
Enthusiast

If I have a bunch of sketch elements -- it seems especially problematic if I cut and paste polygons in a sketch, but it also happens without C/P'd polygons -- where sketch elements will appear to be in the right place, constrained to the origin in some way, but actually won't be. I'll sometimes have 10+ sketch points overlapping the origin. I want to constrain all of these to be coincident with the origin, but, in the starting condition, some points are, and some points aren't. Here we go:

 

I thought I was a smart guy: I set my selection filter to "Sketch Points" only, select them all by 'rubber-banding' them, and then I try to add a coincident constraint over all of them. If even one of those points is already coincident with the origin (or if two are coincident with each other), the operation fails (often silently).

 

I have, over and over, moved sketch elements such that the origin point moves away from the origin, and then I re-constrain each point, one at a time. Sometimes though, the act of moving the sketch element seems to have awful ripple effects that do not resolve even when I re-constrain the point. 

 

Is there a way to filter selection to unconstrained points only? Alternately, is there a way to say "all points coincident, even if some of them are already coincident"? I feel like I lose notable design time to this problem on a somewhat regular basis.

 

Surely there must be something simple that I'm missing, no?

 

-Ian

 

0 Likes
2,523 Views
33 Replies
Replies (33)
Message 21 of 34

ipmcc
Enthusiast
Enthusiast

Yeah, let's do this thing!

 

I'm reading your annotated image as suggesting that I have quasi-duplicate constraints. I concede that there are a lot of constraints in this sketch. I have never developed a full, solid understanding of how Fusion decides whether a constraint is a diameter constraint or a radius constraint, so I just work with whichever it gives me. (The best rubric I've ascertained is that a "whole" circle gets a diameter and a "partial" circle gets a radius, and then, once written, it stays as either diameter or radius, but again, I don't claim to know, only to have observed.)

 

Also, a lot of these constraints are 'function' references to other constraints, so I'm not really duplicating data, but I do concede that the sketch can feel overcrowded with even referential constraints. 

 

Would you not agree, from the "logical perspective", that patterning the holes within the sketch makes it more clear, if one is looking at just the sketch, what the ending result intended was?

 

If I'm perceiving @billbedford's criticism correctly -- that I "come to Fusion from a vector graphics background" (which I do) -- my desire for the sketch to be comprehensive/descriptive of the desired result makes sense. Similarly, from working with non-CNC machines, I always like to have a comprehensive drawing that charts a clear path from zero to the part -- not a drawing that tells me how to drill one counterbored hole, and then an admonition proverbially saying, 'do this X more times', especially if I have to go somewhere completely different to find out about the 'X more times' replication. I like to look at the sketch and not have to speculate or dig to figure out how the resulting body came to be. Putting everything in the sketch is one way to do that. 

 

I'm struggling to see what I lose doing it this way. OK, my sketches are a little more crowded with the additional constraints. But even so, with the function/value references, I can still change the diameter of all holes by simply changing one of them.

 

To me, it seems like a question of, "Do you want everything in one box (i.e. the sketch)?" or "Do you want spread the complexity over multiple boxes, but have every box contain as little as possible (i.e. minimalist sketches, accompanied by a bunch of patterning features)?" Am I missing something? This feels like a to-may-toh/to-mah-to thing to me.

FWIW, I have found that Fusion is a lot easier to work with when you know exactly what you intended from the get-go, and that the times when I've 'figured it out as I go' usually end up in a from-the-ground-up redesign once I figure out what I wanted. I don't say that as a bad thing, just that I've redone enough parts (hell, this my fourth recreation of THIS part alone!) to have recognized that things just go a lot more smoothly when you have the fully-formed version in your head already. If I make a rudimentary design in a sketch, do some extrusions/sweeps/revolves/etc, and then nudge things around piecemeal, push and pull faces, fillet/chamfer/etc, add/subtract/etc. I tend to end up with an unmanageable mess in the timeline.

 

- Ian

 

0 Likes
Message 22 of 34

jeff_strater
Community Manager
Community Manager

"I have never developed a full, solid understanding of how Fusion decides whether a constraint is a diameter constraint or a radius constraint, so I just work with whichever it gives me. (The best rubric I've ascertained is that a "whole" circle gets a diameter and a "partial" circle gets a radius, and then, once written, it stays as either diameter or radius"

 

That is the rule for the default for diameter vs radius.  However, you can always change it after the fact, by right clicking:

Screenshot 2025-10-05 at 9.39.03 AM.png

 

"I'm struggling to see what I lose doing it this way. OK, my sketches are a little more crowded with the additional constraints. But even so, with the function/value references, I can still change the diameter of all holes by simply changing one of them."

"To me, it seems like a question of, "Do you want everything in one box (i.e. the sketch)?" or "Do you want spread the complexity over multiple boxes, but have every box contain as little as possible (i.e. minimalist sketches, accompanied by a bunch of patterning features)?" Am I missing something? This feels like a to-may-toh/to-mah-to thing to me."

 

To some extent, yes, it is your choice.  You can have very complex sketches, including patterns and symmetry, but what @TheCADWhisperer and others are trying to say is that you might have a better experience using more, smaller sketches.  The larger a sketch gets, the slower it gets (the solver has to solve all those constraints and dimensions), and to some extent, the more unstable it gets.  But, yes, in the end it is certainly your choice which way to go.

 

"FWIW, I have found that Fusion is a lot easier to work with when you know exactly what you intended from the get-go, and that the times when I've 'figured it out as I go' usually end up in a from-the-ground-up redesign once I figure out what I wanted"

 

Yes.  This is not limited to Fusion, but is true for any CAD system.  You will always end up with a better design (and it will take half as long) if you do it twice.  Even experienced users find this to be true.  Over time, you will gain some insight, based on past insights, and find that you need to start over less and less.  Many CAD instructors teach that you should ALWAYS plan to do any non-trivial design more than once.  I'm no CAD expert, but I have spent a lot of time designing and modeling stuff in Fusion and Inventor, and I often find that I need to start a part or entire design over once I realize what parameters I want to change, and even what set of features I want to use to model it.


Jeff Strater
Engineering Director
Message 23 of 34

TheCADWhisperer
Consultant
Consultant

@ipmcc wrote:

Yeah, let's do this thing!


This is a simple design - but I think it can be used to illustrate where you can change techniques that will significantly benefit more complex designs.

I am going to go through this slightly differently than how I would actually do the design for the purposes of illustrating the logic.

I will explain some logic as I go and leave other explanations of logic until the end after it is all completed.

 

Step 1. 

Sketch a circle at the Origin and dimension (either as Diameter or right click as Radius as shown by @jeff_strater).

TheCADWhisperer_0-1759684066416.png

Now sketch a 2-Point Rectangle selecting approximate Points 1 and 2 on the Circle.

Add a Coincident Constraint at Point 3 between the Rectangle corner and the Circle.

The Rectangle is now centered. 

TheCADWhisperer_1-1759684191325.png

Now add the two dimensions to the Rectangle as shown.

The second dimension will prompt you that it isn't really needed and will create a (reference) dimension in parenthesis.

TheCADWhisperer_2-1759684532464.png

I worked for 8 years out on the shop floor making actual parts from 2-D drawings.

I would go to the stock rack and pick the round stock.

To cut the flats it would be all but impossible to measure the 175mm dimension that was in your original sketch, but trivially easy to measure the 65mm dimension.

Delete the 175 dimension - it doesn't make logical sense.

Right click on the 60 dimension and select Driving.

TheCADWhisperer_3-1759684825409.png

So now the 60 controls the Rectangle and is easy to measure and manufacture on the shop floor.

 

Select the two vertical lines of the Rectangle and hit x on the keyboard (or right click - right click everything) to toggle to Construction (dashed linetype).

TheCADWhisperer_4-1759685023807.png

Now, DON'T trim the circle.  Remember the formula for a circle from HS math class?  The circle is defined.  If you trim it, the geometry would be more complex 2 arcs with 4 endpoints.

Extrude the profile midplane just as you did before.

 

TheCADWhisperer_5-1759685240864.png

As we go through this, we are going to create one and only one sketch - just as you did before.

Next, we will look at the Sketch Slot command...

TheCADWhisperer_6-1759685357765.png

There is much much more to investigate in this so stick with me, but my wife wants to go to the beach (I am retired in Hawaii, just do this for entertainment) so I will have to stop here for a while... ...check back.

We will take a look at Fusion AI too.

Message 24 of 34

ipmcc
Enthusiast
Enthusiast

I'm quite grateful to have learned about "Toggle Driving" and "Toggle Radius" today! Many thanks to both of you for those.

 

Now, let me say, I was with you right up until you said "Now, DON'T trim the circle.Because not trimming the circle hides the intent; The intent here isn't to create a circular part. And when you said "I would go to the stock rack and pick the round stock." I immediately thought, "But this is exactly what I'm talking about. This part should (obviously, to me anyway) start from bar stock, not round stock. The intent is to create a fundamentally bar-like thing. Not a fundamentally round-type thing." And although there's no operational reason this couldn't have flat/square ends, when it's flying around at 1,000RPM when/where your hands might be close by, the fewer sharp corners you want to have available to cut those hands.

 

It looks like I can achieve both goals by doing two "Break" operations on the circle, and then marking the non-extruding parts of the circle as construction lines. Is there any downside to that which I'm not seeing?

 

I'm stoked to see where you go next with this. 🙂

 

-Ian

 

 

0 Likes
Message 25 of 34

TheCADWhisperer
Consultant
Consultant

@ipmcc wrote:

(obviously, to me anyway) start from bar stock, when it's flying around at 1,000RPM when/where your hands might be close by, the fewer sharp corners you want to have available to cut those hands.

 

It looks like I can achieve both goals by doing two "Break" operations on the circle, and then marking the non-extruding parts of the circle as construction lines. Is there any downside to that which I'm not seeing?


@ipmcc 

Bar stock is what I meant by "round stock".  (If I am using manual machines rather than a CNC machine.  I might cut from flat plate if I have something appropriate thickness that I don't have to mill too much to get to final thickness or if I happen to have exact thickness.)

 

I take the bar to the lathe and turn the diameter and face the end. Simply a spinning cylinder (no sharp corners).

I cut approximate thickness in cut-off saw.

Return to Lathe and Face the other side to the 13mm.

(or some variation of these operations depending on what stock I have to start with)

 

I now set the 13 x Ø185 cylinder planar faces to the vice jaws in the Mill and mill off one side as needed.

Flip the part over and mill the other side to the 60mm dimension.

 

Thinking in 3D subtractive processes to get to the correct geometry.  If you are only used to 3D-Printing, you might be used to only thinking in net form.

 

Do not split the circle, again, you are creating more geometry types than needed.

Now actually, I am being a bit extreme for geometry that is so simple, you could trim the circle and be just fine, I am trying to emphasize the most computationally efficient techniques rather than what make sense to the human.  We'll discuss this more towards the end.

 

Next, I will show how I would do the Slot.

Check back.

 

Message 26 of 34

TheCADWhisperer
Consultant
Consultant

@ipmcc wrote:

 

Would you not agree, from the "logical perspective", that patterning the holes within the sketch makes it more clear, if one is looking at just the sketch, what the ending result intended was?


I would agree, clearer and more logical to the human, but not to the dumb machine (we don't really have AI in CAD yet).  We will discuss this at the end.

 

(view in My Videos)

Message 27 of 34

TheCADWhisperer
Consultant
Consultant

@ipmcc 

Next, let's discuss these 6 dimensions (the geometry requires 6 arcs, 6 centerpoint coincident constraints for the arcs and 12 endpoint coincident constraints).

Ever taken a programming course?  I'm not programmer - but I have taken a couple of beginner classes back in the last century.  It would be a nightmare just to write a program to error check all of these parameters).  One circle with one centerpoint will suffice as far as the program logic is concerned. Might help the human to visualize but doesn't help the computer to have all that extra geometry.

 

TheCADWhisperer_0-1759716265618.png

We could argue that this would be better done with the Hole command, but we will follow the original and Extrude a circle.

 

But before we continue - this geometry does not look aesthetically pleasing to me (customers like aesthetically pleasing sometimes more than function).

It would also be more expensive to manufacture as originally designed (unless all you ever do is 3D Printing).

TheCADWhisperer_1-1759716515498.png

 

Do you have to have the dimensions as specified in the original design, 

or can we alter the design to make this larger circle Tangent to the smaller circle?

TheCADWhisperer_2-1759716663113.png

 

The difference amounts to about the thickness of a sheet of paper for the larger circle to be a bit bigger (Tangent) but reduces the cost and improves aesthetics.

We will do whatever you answer.

Message 28 of 34

TheCADWhisperer
Consultant
Consultant

@ipmcc 

I just realized that another option would be to leave the circle at your specified size, rather than change to my suggested Tangent size, but not trim and would have these divots.

TheCADWhisperer_0-1759773234095.png

 

0 Likes
Message 29 of 34

ipmcc
Enthusiast
Enthusiast

OK, catching up a bit after a few days away...

 

I would agree, clearer and more logical to the human, but not to the dumb machine (we don't really have AI in CAD yet).

At the end of the day, isn't this is why CAD/CAM exists? It takes something that's logical/comprehensible to a human, stores it in a way that's comprehensible for the computer (that's interacting with the human), and then it can further create other representations (i.e. tool-paths for a CNC-ified machine, 3D renderings,  2D drawings, etc.) I've seen this when I've worked hand-in-hand with pre-CNC-era machinists: They either just want a 2D Drawing (in the Fusion parlance), or they jump all the way to thinking about tool paths without giving as much consideration to the desired output.

Another relevant engineering phrase is, "Tell me what you want done, or tell me how you want me to do it. But not both." I feel that the role of CAD (and in this case Fusion) is me telling it what I want done, and letting it (or some downstream CAM package) figure out how to do it.

 

Ever taken a programming course?  I'm not programmer - but I have taken a couple of beginner classes back in the last century.  It would be a nightmare just to write a program to error check all of these parameters).  One circle with one centerpoint will suffice as far as the program logic is concerned. Might help the human to visualize but doesn't help the computer to have all that extra geometry.

Not only have I taken a programming course, I've had a wonderful 30+ year career in software development and engineering management at places like Apple and Uber, and I've taught programming courses in the past, so yeah, I guess you could say I've learned a thing or two, but I always try to stay humble, and eager to learn. 😀 FWIW, I also have extensive experience both working with, and micro-optimizing, linear simultaneous inequality solvers based on packages like Cassowary. I don't have any proprietary information about Fusion's solver, but in the abstract, I'm not puzzled about what's going on under the hood here in the least. I wouldn't "write a program to error check all of these parameters". I'd write an abstract error checker that ought to deal with any number of constraints/rules up into matrices with millions of constraints (and I've actually done this before.)

 

I think that I get what you're driving at though; My philosophy is generally that I don't 'bend a knee' to my tools until I absolutely must in order to get the job done. In other words, my sketch filled with a bunch of (ham-fisted) constraints to achieve full-constraint doesn't bother me, so long as it gets the job done in a reasonable amount of time. The Fusion solver's iterations are still much faster (on my computer, anyway) than I can react to them (except for knurling, but I digress...), so I see no reason to prematurely optimize my sketch to make things easier/quicker for the Fusion solver, unless/until it becomes too slow for me to tolerate at my 'speed of mind' (getting slower by the year). Donald Knuth, perhaps the most preeminent computer programmer ever, has a famous quote: "Premature optimization is the root of all evil." I live by that. My point here is that a sketch should communicate intent, even if that's sub-optimal for the performance of the solver. In this case, I stand by what I said: not breaking/trimming the circle, and deleting the segments that don't contribute to the form (or at least converting them to construction lines)? That hides the intent, and that feels "wrong", or at least sub-optimal, to me.

 

I think my next step, with respect to the original question re: point stacks at the origin, is to use multiple sketches, as people have suggested. I'm fine with multiple sketches when they embody a genuine separation of concerns, and I do admit that I've piled a lot into a single sketch before and had to revisit and refactor those sketches. But if the separation is based on manufacturing constraints, I would argue that's not a true separation of concerns. In a way, to my mind anyway, it's like 'letting the tail wag the dog.'

 

If these point stacks annoy me enough, maybe I'll eventually write a Python script to look for this situation and repair them. It just happens so often, and it seems like such a basic need, that there ought to be an operation that says, "Mark all selected points (with n > 2) coincident with one another". Coming from other types of drawing and 3D packages, the Fusion way of 'doing everything about the origin' was initially a challenge for me, but I kinda like it now, with the exception of this particular problem (point stacks at the origin). 

 

All that said, I've gotten a bunch of great tips here. Thank you all! 

 

Regards,

- Ian

0 Likes
Message 30 of 34

jeff_strater
Community Manager
Community Manager

"I see no reason to prematurely optimize my sketch to make things easier/quicker for the Fusion solver, unless/until it becomes too slow for me to tolerate at my 'speed of mind'"

 

this is a good plan.  However...  Once you get to that point in a Fusion sketch, it can become MUCH hard to optimize later.  If you have a single large sketch that eventually gets to the point of interfering with interactive usage, breaking it into multiple sketches will then break any references to geometry in that sketch.  So, as long as you get to that point of intolerance before you consume it, you will probably be OK with that plan.  But, once you consume a sketch with features, deleting any consumed geometry will cause many worse headaches than a slow sketch will.  This is where your analogy to optimizing software breaks down.  You can easily split a 1000 line function into 10 100 line functions, and, as long as you do that carefully, nothing bad will happen.  The closest analogy I can layer on top of yours is:  If you used gotos in your code, where the goto target was a specific line in the text file, then, when you refactor, all of those gotos will have to be edited to jump to the correct place in the newly refactored code.  Of course, that example is nonsensical (no one uses gotos, much less to a line number), but hopefully you get the idea.

That is all we are trying to tell you here.  Yes, I understand that changing the way you work because of the tool is not ideal.  It would be great if Fusion could support many widely different working styles, all of them without losing efficiency.  But, that is not the world we live in.  All tools work better if you use them as intended.  I have used a visegrip to pound in a nail, because I was too lazy to go get a hammer, but, really, a hammer would have worked better.


Jeff Strater
Engineering Director
0 Likes
Message 31 of 34

TheCADWhisperer
Consultant
Consultant

Are you familiar with Grace Hopper's work.

TheCADWhisperer_0-1760028367972.png

My interest is who/how is the AI going to be trained?

Most users here don't have the slightest interest in learning how to do things "right" and will accept work that is not only not aesthetically pleasing but is also not functionally ideal and certainly not computationally efficient.

 

Edit: I forgot to mention that editing a sketch pattern does not update to the features. Another powerful reason to Pattern Components, Bodies, Features, Faces rather than sketch elements. As in many things, there is a good, better and best way of doing things.  And then there is also rubbish... ... you never addressed the quality questions in your design.

0 Likes
Message 32 of 34

billbedford
Advocate
Advocate
Theres lots of ways to skin a cat, but how can we know when we've found the most found the most computationally efficient way?
0 Likes
Message 33 of 34

TheCADWhisperer
Consultant
Consultant

@billbedford wrote:
Theres lots of ways to skin a cat, but how can we know when we've found the most found the most computationally efficient way?

@billbedford 

Probably easier to identify when we haven't found the most computationally efficient way.

When sketches are not robust to edits and not predictable and slow - probably a better way.

 

For this design I would use more than one sketch - I used only one to mimic the original.

0 Likes
Message 34 of 34

ipmcc
Enthusiast
Enthusiast

I somehow have just lost another three hours today to sketch points not being coincident with the origin that should have been (and which appeared to be). This is even AFTER splitting one sketch out into three. This is beyond infuriating. This time it was a point that was ~1 micron off (barely appreciable at max zoom), but then got 'projected' into multiple other sketches before I caught it.

 

I guess it's time to dig out the API docs and write some Python, because this is getting ridiculous. I don't know if it's my personal failure or what, but even if I'm the only person in the universe that experiences this problem, I feel perfectly comfortable saying that this is an absolutely awful user experience.

 

Another tip I've heard a lot is, "Don't create your sketch elements in place. Deliberately create them away from their destinations, and then create coincident constraints after the fact!" In my mind, this is equivalent to "measure zero times, cut twice" which is utter nonsense. My conclusion is the same: There should be a straightforward way to detect and fix this problem.

 

EDIT: Yes. I'm exasperated with this. I'm sorry for barking about it. Is there a way to change/darken the colors of the highlights that signal coincidence/midpoint/etc?

 

:facepalm:

- Ian

 

0 Likes