B.L.U.F.
hh465: I didn’t come to FreeCAD as a novice. I jumped in because I thought my experience in AutoDesk Inventor would just transfer over. It didn’t. On the other hand, I’m very, very pleased with the results. This article is from your prompt. Thank you.

Maybe the write-up below will help you get started, then start looking for YouTube videos about the thing you want to do.

Some of it is just wrapping your mind around different ways of accomplishing the same tasks.
(1400 words, lots of images, two videos)


I have been working in computer graphics since around 1976. My first introduction to “CGI” was in the show The Man From Atlantis. In the show, they had a fancy echo locator/sonar/radar system. You heard this wonderful sound, and then they showed you the visual results.

Those visual results were a standard demo for the Apple II. My parents were amazed by the technology of the TV show. Next time I had an Apple II home, I showed them the demo. It took a bit away.

While at University, I did a little more with computer graphics, but it was mostly just line drawing stuff. We had some Tektronix 4010s. The only reason these were of interest to me was that I recognized the graphics in Battlestar Galactica were generated using Tektronix displays.

After University, I did work at BRL. I was introduced to my Mentor and to CAD. My Mentor ruined CGI for me because suddenly, I could see all the artifacts of CGI in movies and TV shows.

What is CAD? CAD stands for Computer Aided Design. In its simplest form, it is a computer acting as a drafting table.

There are better, more expensive versions, this is an Open Source drafting program. If you look on the left-hand side, you can see the things you can draw. Those are just basic 2D lines and curves. The power of a system, such as this, is that it is easy to fix errors, it is easy to accurately draw lines and curves, and when you print it, it is easy to read.

The commercial version of this program is AutoCAD which is not cheap.

But that is the only thing it can do, print pretty drawings. Don’t get me wrong, there are millions of things that exist today that were created from drawings constructed from these types of drawings.

If we want to do anything more, we have to turn those lines and curves into a representation of a real-world object.

So we describe an object in three dimensions.

What you see is still a drawing. It is a 2D drawing in the FreeCAD Sketcher workbench. But we see a couple of different things. We see there are four lines, but that those four lines are “constrained”. We have constraints that make the sides perpendicular to the X axis and constraints that make the top and bottom parallel to the X axis. We also have constraints that say that the ends of the lines are connected.

As long as those constraints are exist and are enabled, I cannot move the lines outside those constraints.

The four constraints that make the edges parallel to the axis also mean that the lines have to have matching lengths.

So we add a couple of more constraints. We are going to set the lengths of the lines.

We still have a warning that the sketch is under constrained. It has two Degrees of Freedom (DoF). But now it is to size.

We will add one more constraint to lock the lower-left corner to the origin. This will remove all the DoF and leave the sketch fully constrained.

Now we will turn this into a 3D model. We will do this by padding the sketch to give it height. We will set the height to 1.75 inches.

We now have a thing that could be a block of metal, or a block of plastic. But it doesn’t capture what I want. So I’m going to edit the sketch and create the 2D geometry to get the correct shape.

I now want to add some threaded holes and a slot. I do this by creating sketches on two faces.

Now that I have the sketches drawn, I can subtract material. I will use the pocket tool to create a slot on the face. The sketch could have been drawn on the front face or the side face, as I did. By drawing on the side face, this allows me to add other features to the pocket, such as a V grove.

Now that we have the slot, we can add the holes. I will use the hole tool because it allows me to specify threads.

I now have a “part” that can be machined, but I can’t look at this picture and tell what it is. I need a technical drawing, a blueprint.

My drafting mentor might not be happy with this drawing, but I can machine this part from this drawing. Things that I left out because I was rushing, there is a relief cut into the dovetail center. I left off the chamfers. Regardless, this would be enough for me, and I hope a real machinist.

The point to see, in all of this, is that everything is done to dimensions. The result is a solid. We can use FreeCAD to do different types of analysis on this solid, including Finite Element Analysis. We can even combine this part with other parts in an assembly. Once it is in an assembly, we can do interference tests, to see if it will all fit together.

There are modules for FreeCAD that will turn that solid into an STL file which can be 3D printed.

Unfortunately, there is an issue with this type of modeling, those circles are fake. For what I am doing, that does not make any difference at all. My final drawing, after all, is just a representation that can be machined. If I’m doing a FEM analysis, that breaks the solid into small elements and does the analysis on those small elements.

A circle is made from a series of lines. The more lines, the more it looks like a round feature. Sometimes a model knows that something is a circle and adds more lines as you magnify it. But eventually, it turns into discrete lines.

Consider the curved front glacis of a Sherman tank. If we want to know what happens when a projectile hits that surface, we need to know what the angle is. The angle changes for every point on the curved surface. If the surface is represented by facets, we are not going to have the correct angles.

Using Combinatorial Solid Geometry, we represent objects/bodies by combining different types of solids. Thus, a sphere, which is represented by the location of different facets in surface modeling, is represented by a radius and center in solid geometry.

I learned to model with CSG. I’m not good. The people I worked with were the absolute best in the world at it. Yes, I’ve seen CSG models of complex vehicles and it was very detailed.

Using CSG and allows a different type of analysis that might not be possible with facets.

FreeCAD uses facets for display purposes. It is the fastest way to do it. Each of the facets contains color information, and then a “shader” is applied. That shader can fake the color so that surface look curved, even if they are actually flat.

CGI has entirely different goals. Its primary goal is to make something look real enough.

This was a test in Blender. Everything you see is simulated. The movement of the clothing is done via a physics simulation. The way the woman moves is a combination of motion capture with added physics.

When everything is said, in that movie, nothing can be actually measured. No matter how real it might look.

Blender can do things that CAD programs cannot do.

And here is the Blender interface. I will admit that it’s been a bit since I used Blender. I can’t remember anything about how to use it. Just getting this one image took longer than I wanted.

Spread the love

By awa

14 thoughts on “CAD, CAM, CGI, oh my!”
  1. The fly in the ointment comes when that block is machined and you find features that are not exactly as dimensioned… is it usable or is it scrap? Tolerances matter.

    1. That’s where the experience of the designer comes in. My boss is constantly insisting on making things fit as tight as humanly possible. And then bitches when they don’t fit…

      1. I am attempting to take my design and drafting work to the next level. That means that I have to do tolerance call-outs. It means I need to make sure that things will fit in a production run. It means that I have to make sure that the tolerances I pick allow pieces to fit together when tolerances are at opposite extremes.

    2. I did put tolerances in. ASME Y14.5 has default tolerances. The gist for me is that 0.xx has a positional tolerance of 0.005 and 0.xxx has a positional tolerance of 0.0005. For the dimensions where I wanted a tolerance of 0.005 I used two digits.
      .
      Looking at it in the light of day, I would add a reference dimension for the depth of the dovetail. I have an annotation for distance over pins for the width of the dovetail, but I didn’t show that. I also did not mark as reference when I double specified the spacing on the tapped holes.
      .
      My issue with the tolerances is that I often want to hit 0.125 +/- 0.005, and I’m too lazy to do the call-out, so it is displayed as 0.12 with a default of 0.005 giving a range of 0.115 through 0.125 when what I should say is that I want a range of 0.120 through 0.130.

    1. I was using AutoDesk Inventor. Using Inventor gave me everything I needed. Most specifically, it gave me tool paths for CNC work. Fusion 360 would not have given me anything more than Inventor, so it was not worth the time to learn how to use Fusion 360. In addition, I wasn’t thrilled with using a cloud-based offering. I’ve seen too many of those go “for pay” after a bit.
      .
      I wanted to try FreeCAD after having given it a pass 4+ years ago as unstable. What I found was more than enough for what I want to do, and it gives me a level of flexibility that no commercial product will ever give me. Full Python access.

  2. I don’t like that you need internet for fusion 360.
    .
    I’ve been quite impressed with freecad. And it runs as a self contained portable app on Linux.
    .
    Admittedly I’m more of a 2D guy and never really made the transition in 3D because I was done as a draftsman at that point. I’ll whip up anything in AutoCAD in 30 min. Model it though, hours. I dabble though and I’ve successfully used freecad and solid works to model a few things I’ve made or had printed.

    1. Have you looked at the FreeCAD draft workbench? They have a workflow for people that want to draft the object and then extend it into a 3D model. I’ve not gotten past the “wow, a grid pattern. How do I get rid of that pattern?”

      1. Not really much more than you have lol. It seemed confusing to me and I felt the brain power put towards modeling was better spent, but I did also spend all of 2 minutes or less looking at it.

  3. Dang. Brings back memories of when I picked up an Amiga 1000 when they came out.

    Joined an Amiga user group, and one of the guys used to have a sticker on his machine that said ‘My other computer is a CRAY.’ Weellll, he DID work at Hanford.. (Yeah, THAT Hanford, the nuke site..)

    That being said, most of the graphics on Babylon 5 were Amiga / Toaster generated..

    Kids LOVED Lemmings on the Amiga, and Deluxe Paint..

  4. Thanks for that. I’ll give FreeCAD another try. I use Blender primarily for forensic pathology work — documenting bullet paths through bodies and positions of bodies during crashes and such. Here’s an example of building a skull from photographs using Meshroom and Blender:

    https://www.billoblog.com/wordpress/index.php/2022/12/04/3d-mesh-of-a-skull-created-fromm-2d-photos/

    Generally, for the level of the work I do, eyeballing stuff works fine, since the the graphics are used as “demonstrative” illustrations and are not the basis of a forensic conclusion (and hence no Daubert problems, if you’re familiar with that). And, just like medical illustrations, they don’t have to be perfect — they just need to clearly display the point at hand.

    Now that I’ve started trying to *build* things, measurement and such becomes much more important. I can’t just grab a block of aluminum and a drill and see what happens…

    1. Depending on which version of MeshRoom you are using, you can place targets in the scene which will do wonders for matching things. One of the great things it can do is it can allow you to know real world location of the targets. This is input to the flow of mesh room to give more accurate results.
      .
      For my Sonic demo, I used Blenders built in version of MeshRoom. It worked well enough for a video for my grandson. I played with MeshRoom a bit but didn’t get to the point where I was satisfied. My issue is that I wanted to use high quality still images from my DSLR to create the enviornment and then use a video taken with another device. That video should then fit seamlessly with the stills I take.

  5. Great writeup! As I mentioned in my earlier reply to hh, my use of FreeCAD has been pretty much the Python scripting machinery and not the “workbenches”. I did play a bit with the robot workbench, that’s neat (it will model 6 axis robot motions).
    On “not real circles”, yes and no. FreeCAD does let you speak of circles as such, and it will then have that as a feature in the model. The trouble comes when it exports the model. I tried the ray tracing export, and sure enough, that exports the model as facets. Ouch. Facets may be fine in places but when you’re doing ray tracing — which by definition means you want photorealistic images — you don’t want facets just as you don’t want JPG compression artefacts.

    My solution, and quite possibly this would work for FEM and suchlike as well, is to include in my Python classes for the FreeCAD objects I created methods for exporting the POVRay CSG descriptions that actually call a circle a circle. So with those, I get POVRay models that are both much smaller and visually way better.

    If you’re interested, I could let you see the scripting tools I created.

    By the way, if you want to play with CSG, POVRay is a very nice tool. It takes its models in text form (no UI, unless someone has created one as a separate package) but they aren’t hard to create. And it does quite a lot of amazing things, including translucent materials, fog, clouds, and so on. The tool doesn’t hasn’t seen a lot of change in recent years but it works just fine, supports multicore machines and 64 bit processing… https://hof.povray.org is the “hall of fame” which shows some nice work done with that program.

Only one rule: Don't be a dick.

This site uses Akismet to reduce spam. Learn how your comment data is processed.