Managing Project Structure

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
NickP
Posts: 2
Joined: Sun Sep 26, 2021 10:34 pm

Managing Project Structure

Post by NickP »

Hi,

Firstly I'm a newbie and I'd like to say hi.

Could not find any info so thought I'd ask the forum.

Question:

What is the best method to creating a project to manage multi parts that will be assembled.
1) Should you create a single part per file.
2) Should you create a multi part file.

Any other methods for organising your projects.

Appreciate any assistance.

Nick.
chrisb
Veteran
Posts: 53930
Joined: Tue Mar 17, 2015 9:14 am

Re: Managing Project Structure

Post by chrisb »

Moved to Assembly forum.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
LHC
Posts: 321
Joined: Thu Sep 17, 2020 4:21 pm
Location: Canadian Coffee Shop

Re: Managing Project Structure

Post by LHC »

Hi Nick - Welcome aboard. Both approaches are possible. I've not used either :lol: I have not done much assembly work but one of the issues you have to get a grip on first is which assembly workbench you will use - there are three of them - all maintained and improved and none are out of date. There is no one "official" assembly workbench per se. For beginners, you can also just position things together in the proper orientation and not rely on the assembly workbenches at all if you are not concerned so much with kinematic movements etc.
There's a ton of info here, on youtube, and in the wiki. The road is long, pace yourself, and don't fly into a rage too much. I'm working on that last part myself....

Good luck.
NickP
Posts: 2
Joined: Sun Sep 26, 2021 10:34 pm

Re: Managing Project Structure

Post by NickP »

Hi LHC,

Thanks, that's all I needed to we can consider this post closed, applicate the help.

Keeping my cool. :P

Nick.
anthonyg
Posts: 51
Joined: Mon Oct 25, 2021 10:30 pm

Re: Managing Project Structure

Post by anthonyg »

I'm also thinking a lot about project structure at the moment.

I believe that having a single part per file is the best approach to allow reusability, when I say part I mean single Partdesign body or other body that is not attached to anything else.

But I'm not sure about the approach to follow for project organization after that.

I'm using Assembly3 at the moment but I believe this could apply for any assembly.

After having the individual parts how should I structure them in directories?
We could have multiple separate assemblies or a big assembly. Let's imagine that we are building a car, we could have a single big assembly that uses all parts, but maybe it's best to have separate sub-assemblies, example an assembly for the engine and another for the gearbox.

I believe having separate sub-assemblies is best because the process gets more manageable and we could reuse entire assemblies.

Now, imagine that the engine could be used not only for this car, but for many different cars, how should you structure your project?
Also could any part of that engine be used in another different engine? If it could then maybe it should be placed in a separate directory.
These questions are what I think make it hard to structure the project and decide where to put the parts, if you put a part in a directory and then decide to change it's location it would break the assemblies it is used on.

Also how about file naming?
Should I name my files with a part ID or with a name that is easy to read, like spring. I personally like to be able to read the file name and know what it is instead of an ID.

Also how should I name assemblies? I though I could name assembly files as assy but if I have multiple assembly files it can get confusing as they all have the same name, and we can't change the internal name

So, for cars this is the structure I would imagine:

Code: Select all

cars/
├─ wheels/
│  ├─ 10/
│  │  ├─ 10_wheel.FCStd
│  ├─ 12/
│  │  ├─ 12_wheel.FCStd
├─ engines/
│  ├─ engine_1/
│  │  ├─ engine_1.FCStd
│  ├─ engine_2/
│  │  ├─ engine_2.FCStd
│  ├─ pistons/
│  │  ├─ piston_1/
│  │  │  ├─ piston_head.FCStd
│  │  │  ├─ piston_1.FCStd
│  │  ├─ piston_2/
│  │  │  ├─ piston_head.FCStd
│  │  │  ├─ piston_2.FCStd
├─ car_1/
│  ├─ car_1.FCStd
├─ car_2/
│  ├─ car_2.FCStd
If for example the piston head could be used for different pistons, then maybe we could put all piston heads in a separate directory. But how would we name each one?
Another issue, what if some piston heads could be used in some pistons but not in others?

Another thing to keep in mind is that maybe a part is not 100% finished, I mean it could be modified by parameters or have some extra features added for it to be finished, so it would be created by importing a link from a base part. How should one deal with this?
User avatar
FreeCutter
Posts: 93
Joined: Mon Aug 26, 2019 5:52 pm
Location: Germany
Contact:

Re: Managing Project Structure

Post by FreeCutter »

NickP wrote: Sun Sep 26, 2021 10:47 pm
Maybe these collections of information are of use:
https://ondsel.com/blog/default-assembly-workbench-5/

Cheers
FreeCutter
Visit my GitHub profile

Be nice to others! Respect the FreeCAD code of conduct!
Post Reply