---
jupyter:
description: 'planex2d faces become netgen geometries in one call: names become materials
and boundary conditions, and maxh and hpref control the mesh that netgen makes.'
---
# netgen and NGSolve
planex2d faces and shapes become netgen geometries in one call. The geometry reaches netgen through OpenCASCADE, in the
build that netgen ships as `netgen-occt`, so everything on the [OpenCASCADE](../occ/index.md) pages applies here too,
and every plane argument takes netgen's `occ.Axes` besides a `px.Plane`. Face names turn into materials, edge names into
boundary conditions, and vertex names into point names. `maxh` and `hpref` on faces, edges and vertices set the mesh
size and refine towards corners. Faces glued into a shape share their edges, so the regions of the mesh fit together
without gaps. Results come back onto the geometry: `px.PlotField` draws NGSolve and FEniCSx fields on the exact planex2d
geometry, also in cuts through 3D parts. A measurement can pass the part to netgen for meshing and to NGSolve for
solving, and `px.FromLevelSet` turns a level set function into a planex2d shape.
In this section
## Getting started
- [Coming from netgen's WorkPlane](workplane.md)
- [Naming and marking](naming.md)
- [Identifications](identifications.md)
## Meshing and fields
- [Meshing a face](meshing.md)
- [Fields and cuts](fields.md)
- [Solids and meshes in the webgui](webgui.md)
- [Field solvers as measurements](field-solvers.md)
- [From level sets](levelset.md)