programmer's point of view, user's point of view

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
hauseru
Posts: 1
Joined: Sun Jun 26, 2022 10:17 am

programmer's point of view, user's point of view

Post by hauseru »

Hello FreeCAD user community,

I am new here, so please kindly correct me, if I get things wrong.
Introduction: I am a lecturer for embedded systems programming in Switzerland but have a background as a systems engineer. This means, I have quite some experience in SW and some limited background in mechanical engineering. For years I have tried to get my fingers dirty with free and open CAD, especially for LINUX, but have never found anything decent enough. FreeCAD, though, seems to be a worthy candidate. It is a great piece of SW or, perhaps, an agglomeration of great pieces of SW. So I want to give my feedback as a 'unbiased outsider' after a number of attempts over the years and a new attempt which I started some days ago. This might give some ideas to the insiders.
If FreeCAD as a community project wants to become a real alternative, it needs to tackle some fundamental issues. Why? The learning curve is slow on all complex CAD. Even fusion360, which I would state to be one of the most user friendly CAD out there, it takes time to get to gips. The construction concepts are to be understood, the UI concepts, the toolchain. But inconsistencies in the UI and things which produce 'Why can't I do that?' or "What does that mean?' make it much more difficult:
1. Community SW needs a strict development process at least as badly as any industrial SW out there. This seems not to be the case. Examples for this assumption.
1.2. The documentation is not complete and not up to date at all. I know, that's not the fun part, but it's essential.
1.2. The report window always shows a plethora of errors and warnings, most of them not helpful at all. They completely reflect the programmers point of view, not the users point of view. There is rarely proper information to the users. Again, error handling is not the coolest part of development, I know.
1.3. Terminology is very unclear, inconsistent and (as far as I searched) hardly documented. What are the concepts behind "shape", "part", "body"? Where does one of these expressions mean what? Why do I have parts and bodies as different concepts? This, to me, indicates, there has not been or there is not an effective requirements management with FreeCAD development.
There are more indications that the SW process has a lot of potential for improvements. These two should be sufficient at the moment.
1.4. The topological naming problem is an extremely serious flaw. The associated part of the documentation (https://wiki.freecadweb.org/Topological_naming_problem) is one single support of my argument, that FreeCAD follows a programmer's point of view. Why are fancy features introduced (e.g. FEM), when basic construction is not rock solid. OK, again, debugging and eliminating flaws are not the sexiest parts of SW development. But nevertheless, they are crucial for success.
1.5. The FreeCAD forum is buzzing with the words 'workaround' and 'issue'. This should indicate quite something to the developers.
2. FreeCAD has -as many other pieces of SW- a programmer centered pont of view considering the UI. Although old, Jef Raskin's "The Humane Interface" still is a valuable source for UI design. FreeCAD makes many of the most basic mistakes mentioned there. Examples for bad UI design:
2.1.Using a context dialog in the project window should -apart from showing state-dependent options- always show the same options for manipulating the view, e.g. 'zoom fit'. If being in the start workbench, this is not the case.
2.2. If the document window is undocked it behaves quite differently to the docked version. This is very confusing until one finds out. E.g. I never managed to create a line in the draft workbench using undocked views. I even were unable to draw a draft line marking one point in one view, the second point in another view, which to me sounds like a matter of course.
2.3. (reflecting to 1.3) Why can I do a lot of things with parts and bodies -which makes me think: "Why do they need to be different?"- and why is it impossible to do things with one of the types and not with the other, although it seems sensible to be able to. I can vaguely understand from a programmer's point of view, but not from a mechanical engieer's point of view.
2.4. Why is it close to impossible to build a loft between two sketches located on two different parts or bodies with a simple approach?
2.5. Why is it so difficult to get a plane to place a sketch on from a free 3D? It is possible (draft line->Sketcher->new sketch->normal to edge), but with no intuitive control over the position of the plane or over its rotation. This is a very basic feature. I am sure there is a solution (via attachment?), but not an intuitive one.
2.6. When points are snapped during construction and the -e.g. in a parametric design- the object one snapped to are moved, it is intuitive to assume that the object that snapped to this point is altered accordingly. This seems not to be the case. So I assume there is no permanent link between the point which snapped and the point to which it snapped to.
A central suggestion of mine is to have each and every element of a construction have its own uid, assigned at creation and never changed. This would eliminate the topological naming problem and allow easy implementation of e.g. linking from and to wherever it seams feasible.
I think I could on for hours, which is not very helpful as I just scratched the surface of FreeCAD.
Please don't get me wrong. I do not want to say that FreeCAD is a piece of ..., I just want to point out, that development, according to my opinion, should concentrate on a rock solid basic funtionality, followed up by tweaking the functions in a way that they work way more intuitively from a mechanical engineer's point of view than they do now. If the project cannot accomplish a usability which is on par with e.g. fusion360, it will -according to my opinion- go down the same route as a lot of other open source SW. This would be a shame. A shame for the huge amount of creativita and work effort which must have been swallowed by this project. A shame for the chance to break the dominance of proprietary CAD solutions.

hauseru
chrisb
Veteran
Posts: 53945
Joined: Tue Mar 17, 2015 9:14 am

Re: programmer's point of view, user's point of view

Post by chrisb »

Hi and welcome to the forum!

We see such posts evry now and then, often they are much more aggressive, so thanks for not getting too emotional.

There is much truth in your words but you are also missing some important things, where the most obvious are the following two points: FreeCAD is not competing against some commercial product, it wants to be good on its own.
The second point is, that you are not familiar with how such a community project is really developped. You seem to assume that there is some guy, woman or other who can just tell people what they have to do, and the difference to a commercial product being just that these people will not get payed.

So what would you say if I tell you to 1) Implement a strict development process and 2) to collect all requirements in a formal way. Is 6 weeks enough for that?

If you are through with that, please fix the topological naming problem, because your idea is really a good one. I would give you 3 months for that, because you will have to rewrite the geometric kernel, now coming as an external library ...

Honestly, would you do it? If so, please let me know, and I can create a detailed assignment for you

=====================

Let me now discuss a couple of the concrete points. It would probably have been better to discuss them in separate topics, but as you have the collection here, let's start.
hauseru wrote: Sun Jun 26, 2022 2:01 pm 1.5. The FreeCAD forum is buzzing with the words 'workaround' and 'issue'. This should indicate quite something to the developers.
And so it sure does. But as you may know from commercial software: as soon as there is a workaround, it is no longer classified with the highest priority.
The Help forum is just here to help with issues, so it is no surprise that it is mainly about, well, issues.
2.3. (reflecting to 1.3) Why can I do a lot of things with parts and bodies -which makes me think: "Why do they need to be different?"- and why is it impossible to do things with one of the types and not with the other, although it seems sensible to be able to. I can vaguely understand from a programmer's point of view, but not from a mechanical engieer's point of view.
You are of course right again; and you are of course invited to fix this. Which means in non provoking speech nothing else than: "it is not done yet".
2.4. Why is it close to impossible to build a loft between two sketches located on two different parts or bodies with a simple approach?
Here comes something interesting: It is only close to impossible, if you don't know how to: Create a FaceBinder on each side and add a Part Loft - done!
2.5. Why is it so difficult to get a plane to place a sketch on from a free 3D? It is possible (draft line->Sketcher->new sketch->normal to edge), but with no intuitive control over the position of the plane or over its rotation. This is a very basic feature. I am sure there is a solution (via attachment?), but not an intuitive one.
You are by far not alone wanting to see the create sketch dialog to be augmented with the usual attachment dialog.
2.6. When points are snapped during construction and the -e.g. in a parametric design- the object one snapped to are moved, it is intuitive to assume that the object that snapped to this point is altered accordingly. This seems not to be the case. So I assume there is no permanent link between the point which snapped and the point to which it snapped to.
Don't use the non parametric tools if you want things to be parametric. Use the Sketcher and everything will stay parametric.
I think I could on for hours,
Please invest these hours into the improvement of FreeCAD, you have found enough corners where you can start!
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Bance
Veteran
Posts: 4190
Joined: Wed Feb 11, 2015 3:00 pm
Location: London

Re: programmer's point of view, user's point of view

Post by Bance »

Thank you for your, detailed assessment of FC.

I'm sure it will change quickly when your code contributions are applied. :D
User avatar
thomas-neemann
Veteran
Posts: 11801
Joined: Wed Jan 22, 2020 6:03 pm
Location: Osnabrück DE 🇩🇪
Contact:

Re: programmer's point of view, user's point of view

Post by thomas-neemann »

hauseru wrote: Sun Jun 26, 2022 2:01 pm ...
I disagree. there are people with a talent for cad who shouldn't have a problem with freecad, many work results and feedback confirm that. the choice of a cads system is ultimately also a matter of taste. you can e.g. not build a house that pleases everyone. I would never have thought it possible that something like this would ever appear as open source software. it is an unimaginable effort for me. i also programmed a 3d system (in the 80s).
Last edited by thomas-neemann on Sun Jun 26, 2022 5:54 pm, edited 2 times in total.
Gruß Dipl.-Ing. (FH) Thomas Neemann

https://www.youtube.com/@thomasneemann5 ... ry=freecad
User avatar
onekk
Veteran
Posts: 6149
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: programmer's point of view, user's point of view

Post by onekk »

hauseru wrote: Sun Jun 26, 2022 2:01 pm Hello FreeCAD user community,

I am new here, so please kindly correct me, if I get things wrong.
Welcome on board

hauseru wrote: Sun Jun 26, 2022 2:01 pm Introduction: I am a lecturer for embedded systems programming in Switzerland but have a background as a systems engineer. This means, I have quite some experience in SW and some limited background in mechanical engineering. For years I have tried to get my fingers dirty with free and open CAD, especially for LINUX, but have never found anything decent enough. FreeCAD, though, seems to be a worthy candidate. It is a great piece of SW or, perhaps, an agglomeration of great pieces of SW. So I want to give my feedback as a 'unbiased outsider' after a number of attempts over the years and a new attempt which I started some days ago. This might give some ideas to the insiders.
If FreeCAD as a community project wants to become a real alternative, it needs to tackle some fundamental issues. Why? The learning curve is slow on all complex CAD.
...

hauseru
Not to add much to the detailed reply you have get from other users, as if you see something about users that have you gave an answer, you will se that some insides of FC are well know to them, so as a simple user I could not add too much.

But I could add something, as I 've written more than 50.000 lines of code (I don't count them so they are more I guess, but this is not a competition, only to say that are not simply "test files").

FC is usable, it is not perfect, and is fairly well documented in sources and using "Python help system" in "Python Console" will give you a better inside of what is behind.

Speaking for GUI I don't use too much, and I admit that I haven't spent many hour to cope with Body, parts and similar things, as I'm mostly scripting my work, so if my program will run and produce desired solids, I'm quite happy.

How difficult is to solve TNP, it is not trivial, as you are facing some problems, that are "deep in the core" of FC, as for some reason it has not build from the start an "internal database" of entities that are returned from his "modelling engine" (OCCT).

So it is a complex problem and it will involve touching some delicate parts, you could make an idea reading these documents:

TNP explanation by RealThunder

https://github.com/realthunder/asm3-wik ... -Naming.md

TNP mitigation

https://wiki.freecadweb.org/Feature_edi ... ble_models

---

Probably documentation is not complete, but it is improving for the "1.0 release" (probably you have noted that FC is not considered complete yet).

Sadly many "gems" are hidden in forum posts, but they are not too difficult to find.

A guy that was here some time ago, was used to say:
Stop complaining! Start coding
So as usual, as FC is developed by users, partecipate in his development!

How:

1) discuss with other on where actual documentation is lacking, and maybe what are the most difficult concepts that are not clear
2) find bugs
3) discuss with developers ways to fix bugs, maybe proposing some "code corrections"

But please be "less generic" and more precise as you are Swiss so probably one of the most precise people in the world, as "most of the people" thinks Swiss are :-D.

Sadly what most people thinks is not always (or better is rarely) similar to what things are in reality.

Last consideration, for FC is woth much of what you have paid for it. (something even 0.00000000001 is grater than zero).

Be constructive!

Best Regards

Carlo D.
Last edited by onekk on Sun Jun 26, 2022 5:15 pm, edited 1 time in total.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.

Blog: https://okkmkblog.wordpress.com/
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: programmer's point of view, user's point of view

Post by adrianinsaval »

Another thing that I would like to point out is that just trying things out and assuming things is not a good approach to learning CAD and even more so FreeCAD, Parts and bodies each have their own local coordinate system, that is why it's not trivial to do operations between each other, when you work with everything placed in the origin you would not notice this but once you start moving parts and bodies around you'll notice why it can't be as straightforward as you want. There is a rationale behind this and this "limitation" also makes freecad very powerful and flexible.

Regarding your comments on topological naming problem, I understand why you would expect this to be tackled before making new workbenches, I'll just say this is a much more complex subject than you think so it's not just a matter of "assign an UUID" and be done, also take into account this is strictly done by volunteers who work on what they are interested in and are capable of, if we would have waited for the topological naming problem to be solved before making other features freecad would have stalled and abandoned 15 years ago. This is an inherent disadvantage of community driven projects and it's unavoidable unless we get enough money to have paid dev staff.

I somewhat agree on the unclear terminology, what wiki pages have you read? We can always use some help in documenting.
2.1.Using a context dialog in the project window should -apart from showing state-dependent options- always show the same options for manipulating the view, e.g. 'zoom fit'. If being in the start workbench, this is not the case.
I don't understand this one, are you asking for 3d view controls in the start page? (which is not 3d) What is a context dialog for you?
drmacro
Veteran
Posts: 8872
Joined: Sun Mar 02, 2014 4:35 pm

Re: programmer's point of view, user's point of view

Post by drmacro »

While it is refreshing to see a non-emotional dissertation on the foibles of FreeCAD.

As noted you are FAR from the first to make virtually all these observations and points.

As noted, some are just because you are unfamiliar with how to accomplish some things.

But, all that said, you say: "The FreeCAD forum is buzzing with the words 'workaround' and 'issue'.

It would seem to me you found this buzzing, yet missed all the previous dissertations of this nature.

And: "This should indicate quite something to the developers."

Again, you missed all the previous comments of this nature as well? This point indicates you don't truly understand "the developers"...a handful of volunteers, who work on FreeCAD in their spare time. And, they, in addition to a bunch of avid users help create and maintain the documentation, for free in their spare time.

Reiterating previous comments, I'll quote one of the founders: "FreeCAD has a very small team of developers. We have not as much time as we would like to dedicate to FreeCAD, and things are not planned ahead, they are done when some developer sees it fit and when he finds time to do it. So we don't maintain a list of tasks to be done. It is up to you to find something you would like to do, for example a defect you would like to correct, or a small feature you think is missing."

Also, as has been noted, it has been stated there is no desire or intent to replace commercial products.
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: programmer's point of view, user's point of view

Post by adrianinsaval »

friendly reminder: let's not get emotional ourselves
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: programmer's point of view, user's point of view

Post by Zolko »

hauseru wrote: Sun Jun 26, 2022 2:01 pm If FreeCAD as a community project wants to ...
as you say: *IF* ... and if not ?

... it needs to tackle some fundamental issues.
As another user says: "It is a poor workman who blames his tools... "
try the Assembly4 workbench for FreCAD — tutorials here and here
User avatar
thomas-neemann
Veteran
Posts: 11801
Joined: Wed Jan 22, 2020 6:03 pm
Location: Osnabrück DE 🇩🇪
Contact:

Re: programmer's point of view, user's point of view

Post by thomas-neemann »

Zolko wrote: Mon Jun 27, 2022 7:20 am ...
As another user says: "It is a poor workman who blames his tools... "
+1
Gruß Dipl.-Ing. (FH) Thomas Neemann

https://www.youtube.com/@thomasneemann5 ... ry=freecad
Post Reply