Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Things have improved quite a bit in the latest freecad versions, and I remember reading somewhere that the next one promises to solve whatever's left over.

My biggest gripe with freecad isn't necessarily that (it's easy enough to work around), but that going back few steps to edit things and apply it forward is very fragile. There are ideas floating around to better handle this workflow but we'll have to see how well that goes (it's probably a very difficult problem to solve with no general solution). In the meantime this gives me a lot of frustration and rework, but, running on Linux, there's no real alternative as far as I can see.



There is certainly no general solution. Consider:

You make a base sketch and pad it up to create a square part with a single hole in the centre. You chamfer the hole. You change the base sketch so that it is now a rectangular part with 2 holes, 1 at the left and 1 at the right.

Should the chamfer apply to the left hole, the right hole, or both holes?

Obviously there are special cases that FreeCAD doesn't currently handle optimally, but a general solution is impossible without FreeCAD reading your mind.

(You could also asy "any of those 3 options is better than trying to apply the chamfer to a random bit of un-chamferable geometry". But a general solution is still impossible.).


It should gracefully fail and call for the hole feature to be redefined.


Agreed. I have no problem with this looking and feeling like a rebase operation in a version control system: fix the "conflict" to continue re-applying the sequence of changes linearly, drop steps along the way that are irrelevant or edit those needing to.

I'm not even sure FreeCAD's editing model is anything like that (on the surface it seems that it understands geometries but disregards the process to obtain them).


It is, and in a lot of cases you will get exactly that: an error at a certain point in the list of operations that you need to fix up so that the rest of them can be done on top of it. The entire reason that the topological naming problem is such a problem is because it breaks FreeCAD's understanding of the sequence of operations.


Does FreeCAD have a feature tree like in Solidworks or Inventor? It's an excellent system and makes it easy to switch from one software to another.


The first thing I would expect is a visualization of the failure.

When you move things around and break stuff, let's say by creating two disconnected solids, then I would expect a preview to show that.

Also, one problem with FreeCAD is that you need to open a sketch to modify it but often the model you are modifying is then hidden. So now you have to roughly guess the optimal value, close the sketch and inspect the model and repeat this process until you have something usable. If you need to use clipping planes to see inside the model then enjoy setting those up every iteration.


The chamfer applies to the first hole only, unless it is a copy of the first.

Any changes to the first hole only apply to the first hole, unless that second hole is a linked copy of the first.

____

Is there an argument against this general solution?


Who's to say which hole is the "first"?


From the user's perspective, the circle that was originally drawn, which wasn't touched when adding a second circle to the sketch. If the original was deleted, then it's unclear (possibly assume the first replacement).

IIRC (not testing now) FreeCAD already handles this example sensibly. You can add circles to the sketch and the chamfer stays put. If you delete the circle and add a new one, it appears on the new hole. But if you add a square instead, it moves to a random edge of the rectangular hole.

The 'edge' of the rectangular hole is actually a loop of four edges, so this is understandable. Commercial software can fix some of these cases - I don't think the Freecad link branch can, but it does at least detect that the original geometry was deleted and raises an error asking you to reselect instead of allowing things to move around. And unrelated features downstream don't break. Not dissimilar UX to when I mess with something that Fusion can't handle, I say.


If the first is deleted then everything done to it afterward should be gone.


>a general solution is impossible without FreeCAD reading your mind.

The goal of a well-written program is to give the user the opportunity to express what is in their mind at an appropriate time, and to change their mind after seeing some output. And to be told explicitly or implicitly why their inputs don't work.

FreeCAD tends to get wedged so you can't back up, very unpredictably (for a newbie). This makes all its other issues worse because it inhibits experimentation.


You actually can back up, but it is time-consuming and not easy to discover. You need to manually step through the project tree until you find the first feature that is incorrect (this is not necessarily the first feature that fails to compute!), then either fix the sketch itself, or fix the sketch attachment, or the fillet/chamfer edges in the case of fillets/chamfers, and then proceed down the tree until it's all correct.

It's a lot of work, but often less work than starting from scratch.


The way it's difficult to reorder things in a valid way is at a higher level than what I meant.

What I mean is when you start getting errors that say things are invalid and every time you try to correct it flips to another window/tab.

Even that wouldn't be so bad if you could reliably undo out of it.


If you moved the hole, it's the same hole, everything on it should follow. That seems to be how realthhunder handles things.


Just moving the hole won't break anything, either in mainline or the realthunder branch. Not only that, but adding a second hole won't break anything either.

Changing the hole from a circle to a square on mainline will completely screw things up though.


It should remain on the hole it was applied to and new hole should not have the feature. Solvespace works this way although it doesn't do fillets or chamfers. The changes getting merged in the next version of freecad should help a lot with this.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: