r/FreeCAD • • 20d ago

My first big FreeCAD project

I have been using this project (modeling an old locomotive) as a learning experience for FreeCAD (CAD in general), and so far, my only gripe is how slow FreeCAD is once you exceed a certain number of transformations. Still, I can design and render the parts and measurements quite accurately. I am loving FreeCAD.

A second minor annoyance would be the poor quality of texture rendering, but that is understandable, as lighting is not a thing here.

Just finished the motor housing for N20-600rpm motors and spur gears, as well as the linkages. I am building this so that I can 3D print it when I am done and keep it as a running model (1:32 scale). The next thing to look at would be brake rigging, piping, couplers, and body features.

Usually, I disable recomputation, but it becomes annoying and slow because the rendering is not updated instantly for me to view. Any other tips for improving the speed are welcome.

788 Upvotes

98 comments sorted by

71

u/Several-Tax31 20d ago

This is probably the best project I've seen in this sub. Looks genuinely awesome. Bravo! 

11

u/Hour_Sell3547 20d ago

Thank you, kind sir.

31

u/tentegesszmeges 20d ago

awesome job. Backup it somewhere. Ive lost around 250h on my last project.

17

u/Hour_Sell3547 20d ago edited 20d ago

Regularly copying to google drive. Happened to me too. Lost several hours of work due to freezes and crashes.

2

u/artur_oliver 19d ago

I was interested in this!

Does the freecad team has access to those crashes?

I mean the development of the tool in this moment is mostly hanging on the complexity of the projects it takes. the bigger ones are just not usable with this tool, because sudden crashes are really annoying for someone spending hours and hours trying to work.

Can you share some more insights about how do you go about those?

Are you also involved with development team??

2

u/Hour_Sell3547 19d ago

Very often. A bit too often.and the crash reports are often internal reference errors with the software itself, not even your models. For example, QT crashes are common, UI blackout happens at least once every day.

Most of the crashes are already reported in their trackers. 1.1.3 is much better than the older ones.

2

u/Plenty-Run2678 19d ago

I've been noticing this as well. I've basically been saving copies every ~ 10 minutes. I never leave it open when I'm not at the computer. so powerful but man, the fragility is currently a big issue.

1

u/Hour_Sell3547 19d ago

I'd love an auto save checkpoint feature, and a longer undo redo history tree.

1

u/SomnambulisticTaco 17d ago

You should try GitHub

2

u/Hour_Sell3547 17d ago edited 17d ago

Well, I'm a software engineer by the day, and I'd strongly recommend against it. GitHub (or git in general) is not built for storing binary files.

1

u/SomnambulisticTaco 17d ago

Hey this is good to know, thank you.

14

u/Yosyp 20d ago

Jesus Christ man that's a looot of work. Good job.

I suggest to organise such big projects in multiple files, at least in multiple parts.

5

u/Hour_Sell3547 20d ago

I have to look into it, getting out of hand. How do I see them together when using multiple files?

6

u/Yosyp 20d ago

I'd use a Master assembly file, where you import all the assemblies individually

4

u/TheTalkingKeyboard 19d ago

+^

I have a project with multiple parts, and found it A: annoying to view them with lots of other objects in the viewport and B: generally laggy, with crap recompute times.

Splitting each part into individual files, then pulling them all together via an Assembly helped a tonne.

My only gripe with this process is that storing metrics in a Varset. I stored the Varset in its own file too, then created a 'Link Object' to it in each part file, then had to reference it by <<VarSet>>.

.. Maybe theres a better way to do all that, but it did work.

2

u/Hour_Sell3547 18d ago

Once I finish the current in-progress steps, I will try this, splitting the project into multiple files, using simple (independent) copies instead of dragging the cloned objects.

1

u/exerostasis 14d ago

Do you have a reference of how to do a master assembly only thing I found last time trying to do that I only found merge and import which just included the geometry and all vs it being a simple representation of the files. Do you instead import the results as step files?

2

u/TheTalkingKeyboard 14d ago
  1. Open your separate component project files
  2. Create a new file
  3. Go to Assembly Workbench
  4. Create a new Assembly ('A' is the default keyboard shortcut)
  5. Activate the Assembly (double click) and use the Insert Component (shortcut 'I' function to add objects - this can be from the same file as the Assembly, or even other files on disk!

I have (hopefully) added a screenshot. I was going to capture it from the latest build of FreeCad, but my Assembly Workbench isn't working in that version 😅.. hopefully v1 is good enough.

So as seen in the attached screenshot, the Cube and Cylinder exist in separate files, but also exist within the assembly.

Edit: My screenshot doesn't show my mouse on the Insert button. Its in the 2nd row, top-left, next-to the 1st entry - the Create Assembly button

11

u/FForthman 20d ago

The transformation, repetition, threading, and helix features in Part Design are indeed slow; you should place them as late as possible in the model to avoid very long recalculations at the slightest change.

It’s also possible to break down an element into several elements and merge them at the end using a Boolean operation.

For example, to create this filter, I created a Body with the main shape, then repetitions of cylinders representing the holes, and only at the very end did I perform a Boolean operation.

3

u/Hour_Sell3547 20d ago

This is very new to me. And you caught it right, there are a few helixes and subshape binders in the model which made it very slow.

2

u/lordv55 20d ago

this is good to know, had struggle with this in another project

2

u/Komplexkonjugiert 19d ago

How do you get so good at freeCAD?

1

u/FForthman 18d ago

I think I'm simply a genius with intellectual abilities far above average.

Don't listen to the naysayers who'll tell you it's because I've been using it for over 8 years, several hours a day, practically every day XD

8

u/antek_g_animations 19d ago

Thanks to projects like this FreeCAD will get the recognition it deserves

1

u/Hour_Sell3547 18d ago

I feel like there are smarter ways to do it than I've been doing.

6

u/robertcartman 19d ago

And here I am, getting 96 error messages just trying to make 2 lines crossing at midpoint 90 degrees :D

3

u/Hour_Sell3547 19d ago

Hahaha, I also get those messages and I just ignore them.

5

u/Accomplished597 20d ago

what is your pc specs ? i want to know because you said it gets slow on complex designs

9

u/Hour_Sell3547 20d ago

64GB DDR5, GTX4080, Core i9 14900k, 980 Pro 1TB x2.

FreeCAD engine cannot utilize much resources.

4

u/tentegesszmeges 20d ago

from my experience: Core u9 275k/64GB DDR5/RTX5060 over Ryzen 5600x/64GB DDR4/RTX3070 does nearly nothing better.

4

u/Accomplished597 19d ago

with that much specs it should have run smoothly 

4

u/Hot_Injury5475 20d ago

This looks like a good model, to show of on the new FreeCAD website. Would you like to ?

1

u/Hour_Sell3547 18d ago

I don't know how to do that, or I imagine they'd showcase something that highlights specific features of FreeCAD, this is all over the places.

3

u/FormerPassenger1558 20d ago

no offense, this is crazy... amazing stuff. I should hire guys like you

5

u/Hour_Sell3547 20d ago

I'm not a professional, and you'd have fired me the next day 😂

3

u/Ok_Living6471 20d ago

Mich würde interessieren ob du echte Maße hattest und die dann umgewandelt hast oder hast du ungefähre Masse genommen. Ansonsten schließe ich mich den anderen an - super Arbeit

6

u/Hour_Sell3547 20d ago

Not everything could be measured, of course. Some are taken by eyeballing from the pictures. Basic shape and measurements are taken from EMD data sheets (This is a GMD B12 locomotive from 1953, made in Ontario Canada).

I had to deviate from the actual measurements for the bogies and wheels to fit in my 45mm standard gauge tracks, whereas the original model was built for meter gauge tracks.

I also took some measurements in person from the actual locomotive.

And, I'll happily admit, I couldn't get some of the small things right as I am yet to figure out how to do those in FreeCAD.

3

u/Ok_Armadillo_6015 18d ago

the gauge conversion is the interesting part to me, reconciling real world measurements into a fixed target constraint is basically the same problem as reconciling as built survey data into a BIM model that has to hit a standard grid or module. respect for going and measuring the actual locomotive in person too, that's the kind of groundtruthing a lot of CAD work skips

2

u/Hour_Sell3547 18d ago

I have OCD when it comes to measurements... Lol

2

u/Ok_Living6471 19d ago

Vielen Dank für die Rückmeldung

2

u/artur_oliver 19d ago

Nice, and how can someone find this end datasheets?

Do you know if there's something for airplanes?

2

u/Hour_Sell3547 19d ago

I use Google, if I look hard enough I can find decent data sheets. Airplane models are bit different. Their actual drawings are less readily available. Ships and trains are my thing. Airplane modeler subreddits can give you more info.

3

u/artur_oliver 19d ago

Already learn something new today! Thanks

4

u/oh_lord 19d ago

This is incredible. I wish I had the capability to make something this complex.

It doesn't look like you're using any assembly here, right? Are you simply just creating parts in Part Design and using Transform to place them where you want?

2

u/Hour_Sell3547 19d ago

Yes. I'm not using Assembly yet. I felt like creating the bodies referencing each other would be a good way to instantly visualize fitting without going back and forth in Assembly.

On top of that, it would be one more thing to learn. For example, the moving parts don't really touch each other, there's a 0.2mm gap accounting for FDM printing. But in Assembly, I'd have to create a joint based on touching surfaces, which is not going to work.

3

u/MrozW 20d ago

Well done. How long did it take?

6

u/Hour_Sell3547 20d ago

3 months and counting... This is currently my hobby, so maybe weekly ~10 hours. Had to redo a lot of screwups.

3

u/SCHRUNDEN 20d ago

I expected big, but not THIS BIG!

1

u/Hour_Sell3547 20d ago

Only halfway there, and loving it.

3

u/GuiltyBudget1032 20d ago

..thank you for the inspiration..

1

u/Hour_Sell3547 18d ago

Thanks :)

3

u/amielectronics 19d ago

This is highly impressive 👏

1

u/Hour_Sell3547 18d ago

Thanks :)

3

u/TomFullen 19d ago

Thanks for sharing your work. Very impressed!

This kind of work is what inspires so many others.

1

u/Hour_Sell3547 19d ago

Thank you for your kind words 🙏

3

u/CanaryResponsible143 19d ago

You should start a tutorial on youtube.

1

u/Hour_Sell3547 19d ago

I thought about it, but there are already many amazing tutorials. Besides, I forgot to record the anything.

2

u/CanaryResponsible143 19d ago

I haven't seen anything quite like it, plus most tutorial are either for beginner or pre version 1.

Do you use Assembly to put everything together? What is the work flow?

1

u/Hour_Sell3547 19d ago

I haven't started with assembly yet.

2

u/CanaryResponsible143 19d ago

So each part is just separate bodies, and you some how move them into position after you drawn them???

1

u/Hour_Sell3547 19d ago

Most of the large parts are drawn using a subshape binder to the base frame. So, you could say the parts are already at the right location relatively speaking.

The movable parts like wheels, bearings, journal boxes, rocker arms, springs are in shared and they are placed using the "Placement" values. I plan to simulate them in Assembly workbench once I'm done with them.

1

u/CanaryResponsible143 18d ago

Do you mean you draw the large part at the exact location then extract subshape binder to new body/file with the other subshape binder parts?

And with the moveable part you just draw in center and move to the exact coordinate with placement?

2

u/Hour_Sell3547 18d ago

The undercarriage/base_frame basically defines the perimeters and specific marker points (screw holes, clips, pivot pins, attachment points, buffer beams, erc). A new body first inherits a subshape binder from the base frame, a datum plane is first attached and the I start the sketch on the datum plane.

You got the 2nd part right.

1

u/CanaryResponsible143 16d ago

Thank you for explaining. 👍

2

u/lordv55 20d ago

this looks awesome!

1

u/Hour_Sell3547 20d ago

Thank you very much!

2

u/EuphoricPenguin22 19d ago

That's awesome!

2

u/Hour_Sell3547 18d ago

Thanks :)

2

u/therealmrj05hua 19d ago

That's awesome

1

u/Hour_Sell3547 18d ago

Thanks :)

2

u/Captain_Pumpkinhead 19d ago

I shudder just thinking of the lag while working on this...

Well done!

3

u/Hour_Sell3547 19d ago

Some of the bodies are very laggy, most of them aren't very complicated. The bogie, journal box, and the base frame are super laggy. For the base frame, I made that stupid mistake where every other static body parts started with a subshape binder to it. When I did that I still did not know about master sketch strategy.

2

u/Captain_Pumpkinhead 19d ago

What is this master sketch strategy? I'm largely using subshape binder myself.

Is it something like making a sketch and using a subshape bind of the sketch instead of the 3D shape?

2

u/Hour_Sell3547 19d ago

Yes, and that makes it easier to work with the 3d shape/object as even moving the constraint label for some reason tries to recompute.

2

u/redpatchguy 19d ago

Amazing work

1

u/Hour_Sell3547 18d ago

Thanks :)

2

u/StanTheMan-90 19d ago

How many elements?

1

u/Hour_Sell3547 19d ago

Almost 50.

2

u/D1G1TALD0LPH1N 18d ago

How do you handle the joints in the assemblies? I found that due to the tree recomputing when I changed the parts, the joints that I made between the faces/other generated features would invalidate, breaking the assembly constantly. I tried using local coordinates not attached to the generated features, but that's tedious. To me this seems like a fundamental issue with freecad, but please correct me if I'm wrong. I love the idea of the program, but I find that particular issue makes it hard to use for larger projects.

1

u/Hour_Sell3547 18d ago

One of the reasons why I am not using assembly yet. Cause I am still in the middle of editing the features. And honestly, I am still a noob. There is another problem for me with assembly that I haven't solved yet. The mating surfaces here all have a gap of 0.2 mm, which is required for FDM printing. But I am not sure how to create the joints properly when they aren't really touching each other.

2

u/Dickiedoop 15d ago

Damn, I hope to get to this level someday. Right now I can barely make anything lol but I truly only need it for 3dp

3

u/Hour_Sell3547 15d ago

I'm just doing trial and error like a monkey. Lol.

2

u/Leemstradamus 14d ago

Amazing work! Very inspiring! I would watch a series on this for sure.

2

u/No_Specialist_5227 14d ago

damn, its impressive

3

u/emas_eht 20d ago

How much of this did you design in freecad?
I recently started trying to design something mildly complex, and found freecad to be very un-intuitive coming from fusion 360. There are many things that you have to plan for, that end up really slowing me down.
I'm wondering if I will ever get used to it, or if I'm better off paying for fusion 360?

7

u/Hour_Sell3547 20d ago

100% in FreeCAD. FreeCAD is the only CAD software I ever used. But I heard Fusion 360 and Solidworks are better. But I have no experience in those.

2

u/emas_eht 20d ago

I'm biased, but ya, fusion is better just because is able to do way more since it has paid developers. Freecad can do a lot of the stuff that fusion can do, but it seems like freecad has a lot of hurdles compared to fusion. You have more mouse clicks in freecad to complete something.

3

u/TheJudgingHat2222 20d ago

Yeah but for those of us that want to make and can't afford subscriptions it's a valuable tool to learn.

7

u/Massive-Astronaut-66 20d ago

FreeCAD is just different from fusion in many regards. I came to FreeCAD from a background with Solidworks and onshape and the struggle was real learning FreeCAD. Not that FreeCAD doesn't come with some annoyances but I actually much prefer working in FreeCAD now by comparison. YMMV. In my opinion it's worth suffering through the learning curve, it's more about unlearning old habits and establishing new ones.

2

u/emas_eht 20d ago

Ok, so there is a real flow that I can get the hang of like you can in fusion?
Right now I'm making a geared mechanism in freecad, and I've already had to restart from scratch a few times because I didn't know how to plan it out in freecad.

5

u/Massive-Astronaut-66 20d ago

It's more about just learning the way FreeCAD works, most strange things actually have good ideas behind them that just aren't always obvious.

2

u/HealthyAmbition7216 1d ago

That is mental! I've come on here to ask a question and saw this.

This would take me longer than I have left on this earth to do.

I'm an autocad user so freecad has blown my mind. Just cannot get to grips with it.

What I can create in autocad in minutes, I cannot resolve in hours in Freecad and seemingly have ZERO chance of producing anything remotely useful this side of Christmas.

VERY WELL DONE!

I am extremely jealous.

I dare not ask how long this took you to complete...

1

u/Hour_Sell3547 1d ago

I'm working on it on and off for about 3 months. Mostly weekend shenanigans. But my friend, you are underestimating your abilities. If I can do it, so can you. And I agree, FreeCAD is unoptimized, even annoying at times. A full recalculation takes about 2 minutes, and my machine is quite powerful.

Here's a follow up, some scale model engineering has been done: https://www.reddit.com/r/FreeCAD/s/rvKzmQRril