Skip to content
Sébastien Mestrallet edited this page Oct 1, 2024 · 4 revisions

Warning

The documentation is not ready yet.

Wait for my PhD to finish or dive into the code at your own risk.

Overview

Installation

Important

HexMeshWorkshop is just a set of wrappers, dependencies must be installed manually and the path to the executables must be given through settings.json.

Dependency Notes Required for
automatic_polycube labeling algorithm. not public yet most of the things
Mayo CAD viewer view called on a CAD data folder
Graphite mesh processing platform view called on a tet_mesh data folder
Gmsh mesh generation Gmsh script
fastbndpolycube surface polycube generation from a labeling fastbndpolycube script or view --what fastbndpolycube called on a labeling data folder
preprocess_polycube tet mesh preprocessing for a given labeling not needed in the pipeline but called by the preprocess_polycube script
HexBox interactive hex mesh creation/edition HexBox script
evocube labeling algorithm evocube script
ovm.io conversion tool for the OVM file format to convert the output of AlgoHex (while calling view for ex.)
AlgoHex hex mesh generation AlgoHex script
polycube_withHexEx hex mesh extraction from polycube labelings polycube_withHexEx script
robustPolycube hex mesh extraction from polycube labelings robustPolycube script
marchinghex grid-based hex meshing marchinghex script

For HexMeshWorkshop itself, I'm using Rye, the hassle-free Python experience. It's an all-in-one tool for environment management, Python version management, package building and management, code linting and formatting. See all commands you have access to in a single executable!

Installation should be just a matter of:

  1. Install Rye on your system
  2. Go to your copy of HexMeshWorkshop
  3. rye sync to create/update the virtualenv based on pyproject.toml
  4. source .venv/bin/activate to activate the virtualenv

To interact with the data folder from the command line (like in the README), move to the from_cli/ subfolder. The from_python/ subfolder contains script showing how to interact directly with Python, for complex operations applied once.

Warning

The code, config and CLI will completely change soon (project renamed dds, see WIP yaml-based branch)

Tutorial

Subfolder types

step

Store a CAD model in the STEP format

tet_mesh

Store a tetrahedral mesh

labeling

Store a polycube labeling (+/-{X,Y,Z} association to each surface triangle)

hex_mesh

Store an hexahedral mesh

Algorithms

Gmsh

naive_labeling

labeling_painter

graphcut_labeling

evocube

automatic_polycube

HexBox

AlgoHex

marchinghex

polycube_withHexEx

robustPolycube

global_padding

Clone this wiki locally