Shipped Modules with FreeCAD

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
sliptonic
Veteran
Posts: 3459
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: Shipped Modules with FreeCAD

Post by sliptonic »

Zolko wrote: Tue May 02, 2023 6:29 am
adrianinsaval wrote: Tue May 02, 2023 1:43 am @sliptonic yes I just tried it and get this in cmake output:

Code: Select all

REQUIRES_MODS(BUILD_PATH               BUILD_PART BUILD_MESH BUILD_ROBOT)
and what happens when you comment that line out ?
I didn't comment the whole line but removed the robot bit. Path builds and works fine. If someone already has a PR in process, please proceed. Otherwise, I'll submit one.
User avatar
sliptonic
Veteran
Posts: 3459
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: Shipped Modules with FreeCAD

Post by sliptonic »

Zolko wrote: Sun May 07, 2023 9:01 am
The general idea is that I'd like to have a minimalistic core FreeCAD, that can be extended vie the AddonManager to include those modules that are really needed and which is one of the real strength of FreeCAD. I'd also like to see this combined with a "Profile" section in the AddonManager where high-level profiles could be defined, and that would then include several modules to make up such a profile : FEM, architecture, design, 3D print and CNC ... The advantage of a minimalistic core FreeCAD would be to concentrate on performance and stability, and let the extra features be handled by additional modules made for (and by) target user groups.This idea is of course nothing new, and is similar to what Linux distributions and MS-Office installers already practice.
At Fosdem there was a lot of discussion about the need for a 'first run wizard' which would tailor the environment for the user on startup. There's a lot of overlap with what you're describing. A first-run wizard goes a bit further in also configuring units, locale, theme, etc. There's a lot of consensus on the general idea which is why it's included in the roadmap. This should absolutely be a V1.0 priority.

As far as evaluating the current workbenches, the decision is more than just whether it's python or C++.
- The main criteria should be whether it's a core part of the user experience. If most user's are likely to need it, it should be part of the core experience.
- How central the functionality is to many different user workflows.
- We should also consider how much maintenance it's getting (one developer vs many)
- How consistent the UI is with the rest of FreeCAD

For each of the WBs in your list, we could consider one of five actions:

- Remove it from the source (like raytracing)
No value to users, deprecated or replaced by something better. No value to most developers. Not getting any attention.

- Relegate it to an addon repo
Some value to some users. Very niche use-case. Non-standard UI. One (or very few) developers working on it.

- Leave it in the source but disable it from the standard build
Experimental/In (active) development. Useful to developers.

- Leave it in source and in the standard build but disable it from view (at least for some users).
Useful functionality. Well-maintained source. Niche use-case.

- Leave it in, build it, turn it on.
Useful by many/most users. Broadly maintained.

I suggest we also consider which workbenches are needed that don't exist today or are insufficient.
User avatar
chennes
Veteran
Posts: 3909
Joined: Fri Dec 23, 2016 3:38 pm
Location: Norman, OK, USA
Contact:

Re: Shipped Modules with FreeCAD

Post by chennes »

The main thing that the OpenSCAD WB supplies is import of CSG and SCAD files -- in fact, @keithsloan52 already maintains an Addon that provides this. My sense of where the built-in Mod falls in @sliptonic's taxonomy is "Some value to some users. Very niche use-case. Non-standard UI. One (or very few) developers working on it." I'm open to removing it.
Chris Hennes
Pioneer Library System
GitHub profile, LinkedIn profile, chrishennes.com
User avatar
easyw-fc
Veteran
Posts: 3633
Joined: Thu Jul 09, 2015 9:34 am

Re: Shipped Modules with FreeCAD

Post by easyw-fc »

chennes wrote: Sun May 07, 2023 7:12 pm The main thing that the OpenSCAD WB supplies is import of CSG and SCAD files -- in fact, @keithsloan52 already maintains an Addon that provides this. My sense of where the built-in Mod falls in @sliptonic's taxonomy is "Some value to some users. Very niche use-case. Non-standard UI. One (or very few) developers working on it." I'm open to removing it.
If I recall correctly OPENSCAD has a lot of functions used in python for other workbenches ...
Just for information, how much dropping this would save in terms of file size?
chrisb
Veteran
Posts: 54201
Joined: Tue Mar 17, 2015 9:14 am

Re: Shipped Modules with FreeCAD

Post by chrisb »

Every now and then I use OpenSCAD ReplaceObject and OpenSCAD RemoveSubtree. There is now a parametric refine in Part workbench, but some people may prefer the tree representation of OpenSCAD RefineShapeFeature.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
easyw-fc
Veteran
Posts: 3633
Joined: Thu Jul 09, 2015 9:34 am

Re: Shipped Modules with FreeCAD

Post by easyw-fc »

I'm not on PC now, but IIRC there are many functions from OPENSCAD used in Draft wb
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Shipped Modules with FreeCAD

Post by GeneFC »

easyw-fc wrote: Sun May 07, 2023 7:16 pm Just for information, how much dropping this would save in terms of file size?
As pointed out on the first page of this topic, the entire exercise is largely academic, with little practical value. The overwhelming contributors to the size of the download package are core functions. Removing a few MB here and there may make sense if the WBs are not used, but there will be no noticeable impact to the resulting download size.

(I am not defending any of the proposed removals.)

Gene
User avatar
easyw-fc
Veteran
Posts: 3633
Joined: Thu Jul 09, 2015 9:34 am

Re: Shipped Modules with FreeCAD

Post by easyw-fc »

GeneFC wrote: Sun May 07, 2023 9:55 pm As pointed out on the first page of this topic, the entire exercise is largely academic, with little practical value. The overwhelming contributors to the size of the download package are core functions. Removing a few MB here and there may make sense if the WBs are not used, but there will be no noticeable impact to the resulting download size.

(I am not defending any of the proposed removals.)

Gene
I just checked ... OPENSCAD is about 2MB of 2.2GB (FC unzipped on win) ... we are talking about defeating FC installer for nothing at all.
chrisb
Veteran
Posts: 54201
Joined: Tue Mar 17, 2015 9:14 am

Re: Shipped Modules with FreeCAD

Post by chrisb »

easyw-fc wrote: Mon May 08, 2023 7:39 am I just checked ... OPENSCAD is about 2MB of 2.2GB (FC unzipped on win) ... we are talking about defeating FC installer for nothing at all.
It's not just about the size, it's also about clarity. Concerning size it woule be even more neglectable if the non OpenSCAD functions I mentioned above would be moved to Part workbench.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
easyw-fc
Veteran
Posts: 3633
Joined: Thu Jul 09, 2015 9:34 am

Re: Shipped Modules with FreeCAD

Post by easyw-fc »

chrisb wrote: Mon May 08, 2023 8:22 am
easyw-fc wrote: Mon May 08, 2023 7:39 am I just checked ... OPENSCAD is about 2MB of 2.2GB (FC unzipped on win) ... we are talking about defeating FC installer for nothing at all.
It's not just about the size, it's also about clarity. Concerning size it woule be even more neglectable if the non OpenSCAD functions I mentioned above would be moved to Part workbench.
it is also to let users not complains about missing features... why removing something useful and well known just to resize of 0.1%...
OPENSCAD has a lot of useful python functions in:

OpenSCAD2Dgeom
OpenSCADCommands
OpenSCADFeatures
OpenSCADUtils

What's the point of moving these already established functions as default FC functions to a different container, making the WB programmer's life hell?
Post Reply