Youtube lessons

Quaoar

Administrator
Staff member
Here we have the list of lessons that are already published or going to be published on our youtube channel. The list is kinda dynamic, and I do not really have any strict plan or schedule of what & when to publish. Since these lessons are entirely community-driven, feel free to share your ideas on the possible topics right below this post.

OpenCascade lessons done (too late to change...):
  1. Lesson 1: Configure Visual Studio to use OpenCascade
  2. Lesson 2: Bring OpenCascade and VTK together
  3. Lesson 3: Compile OpenCascade with MFC samples
  4. Lesson 4: Use native OpenCascade visualization
  5. Lesson 5: Use OpenCascade from CMake
  6. Lesson 6: OpenCascade in Docker
  7. Lesson 7: OpenCascade in a nutshell
  8. Lesson 8: Meet OpenCascade modules
  9. Lesson 9: OpenCascade’s interactive Draw console: build a prismatic block
  10. Lesson 10: First steps in OCAF
  11. Lesson 11: Design data model with OpenCascade OCAF
  12. Lesson 12: Visualize STEP models with colors and assembly structure
  13. Lesson 13: How to profile performance with Intel VTune Profiler
OpenCascade lessons TODO (well, just random ideas here; feel free to propose down below):
  1. How to survive geometric tolerances.
  2. Surface trimming in OpenCascade (https://forum.freecadweb.org/viewtopic.php?f=3&t=61832). This would require some advanced healing, maybe surface morphing.
  3. Boolean Operations in OpenCascade.
  4. Constrained filling of a surface by boundary edges.
  5. ShapeAnalysis/ShapeFix.
  6. Splines in OpenCascade.
  7. Custom DRAW commands (C++ prototyping).
  8. How to organize the non-regression testing system on top of Draw
  9. OpenCascade + Qt widgets
  10. OpenCascade in Python (PythonOCC?)
  11. OpenCascade basic types (smart pointers, geometry, topology)
  12. Modeling API
  13. FreeCAD’s sketcher
  14. FreeCAD modules (https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide/tree/master/pdf)
  15. Feature recognition with OpenCascade.
  16. Use OpenCascade from C# ( https://www.red-gate.com/simple-talk/dotnet/net-development/creating-ccli-wrapper/ )
  17. Set up Jenkins as CI/CD for OpenCascade-based project
  18. Give Coin3D a try?
CAD lessons TODO:
  1. CG quick start.
  2. Plug in NetGen mesh generator.
  3. BVHs explained.
  4. Surface fitting from point clouds (regular, irregular, interp/approx).
  5. Voxelization: ADF, F-rep, octrees.
Analysis Situs highlights done:
  1. Export colored parts to glTF.
  2. Voxelization and point cloud generation.
  3. Thickness analysis.
Analysis Situs highlights TODO:
  1. Tolerances.
  2. Feature recognition basics.
  3. STEP -> XDE -> STEP conversion.
  4. Mesh refinement.
  5. Surface fitting.
 
Last edited:

Quaoar

Administrator
Staff member
The next one is OCAF.

UPDATE: OCAF is started. We now have the 1-st lesson about it.
 
Last edited:

madureiraBrazil

New member
Hello,

I am trying to implement Lesson 10 (First steps with OCAF (OpenCascade Application Framework) using PythonOCC.

from OCC.Core.TDocStd import TDocStd_Document,TDocStd_Application
from OCC.Core.TDataStd import TDataStd_Integer
from OCC.Core.BinDrivers import bindrivers
from OCC.Core.TCollection import TCollection_ExtendedString
app=TDocStd_Application()
doc = TDocStd_Document(TCollection_ExtendedString("pythonocc"))
app.NewDocument(TCollection_ExtendedString("BinOcaf"),doc)
bindrivers.DefineFormat(app)
doc = TDocStd_Document(TCollection_ExtendedString("pythonocc.cbf"))
app.NewDocument(TCollection_ExtendedString("BinOcaf"),doc)
mainLab=doc.Main()
TDataStd_Integer.Set(mainLab,199)
print(app.SaveAs(doc,TCollection_ExtendedString("C:/pythonocc.cbf")))

The result of last print is 3=PCDM_SS_Failure

If some one could help me.
 

madureiraBrazil

New member
Hello,

I am trying to implement Lesson 10 (First steps with OCAF (OpenCascade Application Framework) using PythonOCC.

from OCC.Core.TDocStd import TDocStd_Document,TDocStd_Application
from OCC.Core.TDataStd import TDataStd_Integer
from OCC.Core.BinDrivers import bindrivers
from OCC.Core.TCollection import TCollection_ExtendedString
app=TDocStd_Application()
doc = TDocStd_Document(TCollection_ExtendedString("pythonocc"))
app.NewDocument(TCollection_ExtendedString("BinOcaf"),doc)
bindrivers.DefineFormat(app)
doc = TDocStd_Document(TCollection_ExtendedString("pythonocc.cbf"))
app.NewDocument(TCollection_ExtendedString("BinOcaf"),doc)
mainLab=doc.Main()
TDataStd_Integer.Set(mainLab,199)
print(app.SaveAs(doc,TCollection_ExtendedString("C:/pythonocc.cbf")))

The result of last print is 3=PCDM_SS_Failure

If some one could help me.
Hello all!

I did some modifications and now it works! TDocStd_Document need to receive the 'BinOcaf' as astorageformat: TCollection_ExtendedString

from OCC.Core.TDocStd import TDocStd_Document,TDocStd_Application
from OCC.Core.TDataStd import TDataStd_Integer
from OCC.Core.BinDrivers import bindrivers
from OCC.Core.BinDrivers import bindrivers_DefineFormat
from OCC.Core.TCollection import TCollection_ExtendedString
from OCC.Core.PCDM import PCDM_SS_Failure,PCDM_SS_OK,PCDM_SS_WriteFailure,PCDM_SS_No_Obj,PCDM_SS_Doc_IsNull,PCDM_SS_DriverFailure,PCDM_SS_Failure
app=TDocStd_Application()
doc = TDocStd_Document(TCollection_ExtendedString("BinOcaf"))
app.NewDocument(TCollection_ExtendedString("BinOcaf"),doc)
bindrivers_DefineFormat(app)
mainLab=doc.Main()
TDataStd_Integer.Set(mainLab,199)
print(app.SaveAs(doc,TCollection_ExtendedString("D:/Projetos/OccTestes/GeoExtract/test.cbf")))
 

Quaoar

Administrator
Staff member
Hey @madureiraBrazil, welcome to the forum! It's cool that you sorted it out. Could you please guide me on how to set up PythonOCC? I've never used it and did not find any easy-to-follow tutorial quickly. :confused:
 

A-U

New member
Great series! I'd upvote 12 (Surface filling) and propose to add a lesson on ShapeAnalysis/ShapeFix.
 

Quaoar

Administrator
Staff member
Great series! I'd upvote 12 (Surface filling) and propose to add a lesson on ShapeAnalysis/ShapeFix.
Done. Both topics are non-trivial and would require some more preparation, but thanks for giving your feedback. Do you have any specific questions related to shape healing and shape processing?
 

A-U

New member
Thanks! Regarding shape healing I have two specific interests:

(1) Fixing planar faces based on possibly incorrect wires/edges - how to do it in an optimal way/which fixes are strictly necessary?
(2) General shape diagnostics in the case of filed bool ops - where to get started in such a situation?
 
Top