Basic knowledge required for understanding CAD kernels.

Ashok

Looking around for some CAD
Hi,
This is Ashok.
First of all I thank you for starting this Analysis Situs project.
I am really fascinated by the CAD kernels and CAD design. I want to step into this subject.
Please let me know what are the fundamental concepts that I need to grasp to understand the CAD kernel.
Please point me to some resources - papers/textbooks so that I can start with.

Thanks a lot for your time.
Ashok
 

Andrey

Active CAD practitioner
Staff member
Dear Ashok,

You can watch the lessons on our channel.

There's also a site for AS if you're interested.

In addition, we use the open core OCCT. You can see the documentation for it.

There are tutorials on the forum.

Sergey's blog.


and so on.
 

Quaoar

Administrator
Staff member
I am really fascinated by the CAD kernels and CAD design. I want to step into this subject.
Hi @Ashok and welcome to the forum. If you can elaborate a bit on what you'd like to achieve with the kernel and stuff, we can probably give you some more precise references.
 

Ashok

Looking around for some CAD
Hi @Quaoar,
I want to be able to create a interactable/scriptable simple CAD utility with Analysis Situs - having functions such as:
drawing lines, 2D polygons, 3D shapes, extrude, fillet, move, curves, assemble - that's it. No 'more functions' for now. I may add later.
After this I further want to understand how create models such as one shown below - as you have done in your home page.
I understand that the aim to high but I am willing to learn. There is no timeline. I can learn at my own pace.
Please suggest me the steps - I would be very thankful to you.
To give my background - I have deep knowledge in Finite Element Analysis - and previously worked on many open source FEM packages.
Now I want to demystify this CAD black box - How to create a geometry and mesh it ?
For a long time I was searching some open source CAD software. FreeCAD was too daunting to me. I was looking for exactly something like Analysis Situs.
I don't want to do research on geometric modeling. I just want to learn low level geometric modeling.
Thanks,
Ashok

1655844481954.png
 
Last edited:

Quaoar

Administrator
Staff member
After this I further want to understand how create models such as one shown below - as you have done in your home page.
Well, this specific model is exported from some advanced CAD package, likely NX. It is hypothetically possible to design something like this with OpenCascade, but you can see lots of smooth blends and spliny transitions over that model. The latter is definitely not the strongest side of OpenCascade.

Please suggest me the steps - I would be very thankful to you.
Given your background, I think you're not going to have much troubles with the library. The typical learning path consists of passing a training on OpenCascade. That's something the OCC company sells for money and something we try to do on youtube for free (not sure if this content is clear and concise enough though). Methodologically speaking, trainees pass the following steps:

1. Learn OpenCascade basics, such as memory management, utilities, etc.
2. Study geometry, the mathematical form for curves and surfaces, parameterization, tools to construct geometric primitives.
3. Connect geometry with topology, getting to B-rep principle of modeling.
4. Learning modeling API.
5. Higher-level services, such as OCAF, visualization, data exchange, shape healing.

Speaking of practice, the following steps are typical:

1. Create a sketch (without a constraint solver as there's no solver in the lib) as a train of trimmed curves converted to edges and wires.
2. Extrude a prism and this way switch from 2D to 3D.
3. Run different modeling API on the prism, e.g., Booleans, fillets, etc.
4. Export the modeling result to STEP.

The items above compose a typical agenda for a workshop if you do not have any specific needs for what exactly you're trying to create. For people developing some CAD application, the learning path is usually full of trials and errors.

What you definitely can do is keep hanging out with us on the forum and ask random questions whenever you come across some modeling or programming issue.
 

Ashok

Looking around for some CAD
Thanks @Quaoar for your detailed answer.
Yeah - like you said may be I will get my feet wet and ask questions here.
 
Top