Compiling on Windows has been done by installing dependencies OpenCASCADE by conda-forge or official OpenCASCADE installer. Conda-forge package building seems has problem, older C++ compiler version does not support C++17.
Currently only support utf8 std::string
for non-ascii string and file path, will that cause problem on windows? seem not
If non-ascii string will be used in terminal, it is assume the terminal uses UTF8 encoding which is true of unix-like OSs.
Paths in Windows (since XP) are stored natively in Unicode. The path class automatically does all necessary string conversions. It accepts arguments of both wide and narrow character arrays, and both std::string and std::wstring types formatted as UTF8 or UTF16. source: https://docs.microsoft.com/en-us/cpp/standard-library/file-system-navigation?view=vs-2019
build on github workflow CI is undergoing. Homebrew formula will not be provided
High priority build into CI:
- code style check: clang-format
- cppcheck
- coverage report: currently unit test coverage is about 60%, needs improvement
Low priority
- memory security lint
- threading safety check
Currently package does not include test data in the data/
folder, because it is not decided where data should go.
- Unit: as a input parameter, currently default to mm, which is standard for CAD
- Geom::Shape base class, to replace OccUtils.h
- refactor Geom module to replace TopoDS_Shape with Geom::Shape
- create new submodule/subfolder
- more geometry readers, such as JT format open support
- binary module/plugin system
Note: each task is worth of a journal paper, so it will not be available soon.
-
parallel enclosure, section operations (assuming geometry is valid, boolean operation will not fail)
-
geometry fixing (geometry data may not valid to perform boolean operation)
-
parallel geometry merging (currently imprint has been parallelized, but merging on single thread)
-
water-fill: for a given assembly, construct a shape for the volume that water can fill
- decomposition/partitioning
- data structure/class for large assembly decomposition
- efficient algorithm for large assembly decomposition
- part recognition (connection to machine learning)
- interface and boundary identification
- solid and faces global identification
- coordinate boundary items for the decomposed subassemblies
- multi-physics solver input writing
- parallel volume meshing (gmsh has parallel meshing feature)
- parse some native CAD format to detect fillet, chamfer, etc
- smaller edge, small face, fillet detection.
VTK: paraview post processing FreeCAD: exchange TopoDS_Shape in python or just by files
- API refactoring: should model after VTK pipeline
- Soft architecture design refer to tensorflow