A New Era for Mechanical CAD - a "Commit to Memory" article

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!
User avatar
hammax
Veteran
Posts: 1985
Joined: Thu Jan 19, 2017 5:03 pm
Location: Ammersee DE

Re: A New Era for Mechanical CAD - a "Commit to Memory" article

Post by hammax »

... thanks for that link and the summary it contains:

MechCAD_2.PNG
MechCAD_2.PNG (74.94 KiB) Viewed 3231 times
User avatar
onekk
Veteran
Posts: 6144
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: A New Era for Mechanical CAD - a "Commit to Memory" article

Post by onekk »

Calling OpenSCAD a CAD program, is somewhat exagerated, from what I know it could output only mesh formats, that are not precisely a CAD format.

Every information about the underlying geometry is lost in a mesh or a solid only format.

FCStd file will retain "generating objects" and "operation that operate on them" at least if you use FreeCAD primitives from start and not use some imported solids.

Blender is another misunderstanding, but at least it could produce some real CAD format as output, the interface is more similar to a graphic program than to a real CAD.

in this discussion there is no trace of many efforts (mostly OpenCascade Based) to make a scriptable CAD products, some of them very interesting:

https://dlr-sc.github.io/tigl/

https://declaracad.com/

https://github.com/trelau/pyOCCT

https://github.com/tpaviot/pythonocc

And as I'm not an expert there are many around.

In my humble opinion a programmatical approach to CAD is more geared toward future for at least some reasons:

- the compactness of the format, a script is usually a text file and could be inspected modified and adapted even across several version advancement.
- the fact that the future of programming seam geared toward natural language programming and graphical "logic block assembly" (see as example Scratch), that at the very end should rely on some high level language to be used to obtain final goal, so passing through a programming interface is a necessity.
- there could be some level of abstraction when using a "scripted CAD", you could program it using several methods, but if the "generating format" is a script, it cound nothing on which platform or method it has been generated, so it will be "OS agnostic" and somewhat "machine agnostic".

EDIT: I've read the article even if not in deep, and I agree with most of his consideration.


But these are consideration done by an hobbyst that use CAD only for fun. (at least for now)

My two cent, and you are welcome to reply to his post telling I'm totally wrong, have the decence to say why I'm wrong, and be gentle please.

Regards

Carlo D.
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/
drmacro
Veteran
Posts: 8865
Joined: Sun Mar 02, 2014 4:35 pm

Re: A New Era for Mechanical CAD - a "Commit to Memory" article

Post by drmacro »

I skimmed the first article.

Seemed like a lot of armchair bloviating to me. But, then again, I've been reading similar articles since the late 1970's...so maybe I'm jaded. :mrgreen: :lol:

Thinking about it...I might have written some of them in the distance past. :lol:
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
User avatar
onekk
Veteran
Posts: 6144
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: A New Era for Mechanical CAD - a "Commit to Memory" article

Post by onekk »

Hello.

Innovation is a "new way" of doing things.

And "by definition" and historically is not done by people that are used to do things, that at their maximum efforts could do some "constant improvement".

Rarely a "horse trained cars builder" has been a "automobile" innovator, more likely it has seen that using a motor he could have been made something "very similar" to what he was actually building, with not much hassle.

Said so.

One of the most old CAD is BRLCAD that has used scripting from the start, but it has been a niche CAD (used in US military research and development sector).

So scripting a CAD is not a "so innovative thing".

Same thing as we all are speaking about "artificial intelligence" that is not an "intelligence" at all and not "artificial" as it is a sum of complex algorithms that maybe don't use some linear approach, but use some "fuzzyness" or some "inference motors" (mostly based on statistic or similarities of things) that at the very end are simply complex programs written in some programming language (Python is one of the most used thing in this field, as a little search will reveal).

And "artificial intelligence" is innovative only because journalist have discovered some thing that I've seen as a simple enthusiast when I was a little boy some time ago 1975 regarding some "inference motors" used in medicine and "Mycin" was the most advanced thing around.

see: https://en.wikipedia.org/wiki/Mycin


Sorry for the possible OT.

Regards

Carlo D.
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/
drmacro
Veteran
Posts: 8865
Joined: Sun Mar 02, 2014 4:35 pm

Re: A New Era for Mechanical CAD - a "Commit to Memory" article

Post by drmacro »

There is a lot of myth developed around the concept of innovation.

The concept has taken on meanings, thanks to being used as a marketing ploy and motivational tool, that give it powers that it doesn't own.

The natural course is to progress in a non-linear fashion. These processes were shown in programs like "The Secret Lives of Machines" where the concept of telegraphy was followed from early times of humans with smoke, then flags, to the fax machine. Or, television series Connections by James Burke where, in one episode, he shows the connections (innovations if you will) between the water wheel and the space shuttle.
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
User avatar
kwahoo
Posts: 680
Joined: Fri Nov 29, 2013 3:09 pm
Contact:

Re: A New Era for Mechanical CAD - a "Commit to Memory" article

Post by kwahoo »

To be honest, more than the article itself, I found comments on Hacker News more interesting:
There are a few problems with making new CAD, especially open source:

- CAD math is hard and severely limits contributors. Unlike many open source projects, you need a pretty big core team to make something worth using. FreeCAD/OpenCASCADE, etc. have remained hobbyist CAD, where we've seen the success of open source in software.

- Another core problem is that MechE's can't easily edit the tool they're using when they run into a bug/feature they want to work on, unlike open source software where the users can more easily be contributors.

- High switching costs: there are four big CAD companies: Dassault, Autodesk, Siemens, PTC, and once a company commits to one ecosystem, it's very hard to change. Ex: Boeing isn't putting the CAD for the 787 in OnShape - ever. There also aren't that many new huge hardware companies, meaning that folks like OnShape get SMEs, but virtually all enterprise is taken. This has essentially led to an oligopoly in mechanical CAD, and slow pace of innovation in the space. I believe CAD tools have 50x less $ investment (including big companies) than software dev tools.
(..)
and
All of the CAD kernels basically date from the 1980s. The mathematics involved in extending them is not widely taught, and while this knowledge still lives in books, it is not finding its way into minds.
and finally about version control systems:
The version control software that we use (I'm most familiar with Windchill, and just a wee bit familiar with SolidWorks PDM) is dumb. It's a B2B market with fat margins that is ripe to be disrupted.

Typically in Windchill, a part has a part number, and can be checked out and checked in, iterated, and revised, in operations that are non-intuitive and difficult to reverse. If you ever wanted to build an assembly using older versions of current parts, the process to figure it out might take 100 clicks, or might not be possible depending on how your system administrator set things up.

Merging (in the style of git) is generally a completely foreign concept, and engineers generally avoid collaborating on a single part or assembly file for that reason. Dividing up the interior of a vehicle's engine bay, for example, is best done as separate assembly files that are only later brought together as a parent assembly. Communicating about the volumetric boundaries of these assemblies is complicated.

I'm often aware that I could be more productive and adaptable using a git repo (or similar) containing my parts, assemblies, and drawings than I currently am with Windchill's specialized system. Haven't ever seen it in the wild, though.
From my personal experience, using professional, commercial CAD software is getting more and more frustrating. Projects are bigger and bigger, more and more people work at the parts of a project. Meanwhile CAD software is stuck in 80's, single-threaded, demanding "professional" GPU's, yet not using them for anything except rendering, producing proprietary files. And version control is just a disaster.

I think, scripting as design technique is not the answer for 95% of users. But using it as intermediate step: GUI produces script, that is human readable and can be used in git-like version control - this could have some sense.
drmacro
Veteran
Posts: 8865
Joined: Sun Mar 02, 2014 4:35 pm

Re: A New Era for Mechanical CAD - a "Commit to Memory" article

Post by drmacro »

In a corporate setting, a good deal of the version control issue is only the CAD software attempting to meld with long established company systems that are controlled by the IT department. Typically they are indeed mired in decades of database and corporate processes that do not tend to migrate. Typically because they have decades of data that can't easily be ported to new systems and many minion (and many cases now a dwindling number of over worked minions) that would require retraining.

As for functionality or workflow improvements. Customizing the engineering environment (using software customizations, such as macros, etc.) is the way to really see the return on investment that a company has made (because, in the end, one size does not fit all). Unfortunately, few companies get it that what they spent on the software is only the down payment to get the ROI and that further investment is required in training and customization.

As for GPU usage, multi thread, etc. sure, there are places where gains can be had. But, that is simply throwing hardware horsepower at existing mathematics. There was a reason why the older CAD companies had custom hardware to accelerate the display and compute the models. The industry has moved to the software sitting on top of generic hardware. This is a difficult model to optimize since the hardware, for example a GPU, is intentionally designed to cast a wide net.

The comment is about teaching the maths involved is worth a chuckle. I'm not sure the math involved in CAD was every taught generally. And, the basis for the math is barely discussed in most modern educational settings.
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
user1234
Veteran
Posts: 3330
Joined: Mon Jul 11, 2016 5:08 pm

Re: A New Era for Mechanical CAD - a "Commit to Memory" article

Post by user1234 »

For me, it looks like that the writer of the article have not many CAD and workflow execution experience.

CAD with git? Good luck with working with the operators (they will hate you) and buying hard disks.

The gui point, hahaha, good luck with engineering determinate functions in parts with sketchup or onehape, when nothing is 100% constraint. You will produce so many rejects parts, that the working process from operators, customers and consortiums will be decelerated or worse. From fixing all the problems (re-engineering, remakeing, cost, .....) i wont even start to talk.

Pretty ever point in the article is seen from a geek point, but not from RL working.

Greetings
user1234
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: A New Era for Mechanical CAD - a "Commit to Memory" article

Post by Zolko »

what a load of empty whishiwashy ! There is only 1 interesting bit:

Taking a lesson from software development, what you really want is a form of pointer to the model. In the CAD world, these are called instances. Then you can have one copy of the model stored, and all the other instances are actually just references to the original copy
Isn't this what App::Link does ? And all scene-graphs, for that matter ?

realthunder wrote: Tue Dec 05, 2017 6:55 am ping
try the Assembly4 workbench for FreCAD — tutorials here and here
Post Reply