""" Netgen OCC documentation This module provides the Netgen OCCGeometry class, as well as Python wrappers for OpenCascade functionality. This allows the construction from scratch, as well as editing geometries imported via STEP format. Most of the classes are directly py-wrapped from the OCCT classes. For more detailed documentation consult the OCCT docs, a good starting point is https://dev.opencascade.org/doc/refman/html/class_b_rep_builder_a_p_i___make_shape.html """ from .config import USE_OCC if not USE_OCC: raise ImportError("Netgen was not built with Opencascade support") from .libngpy._NgOCC import * from .meshing import meshsize, IdentificationType gp_Ax3 = Axes gp_Ax1 = Axis Translation = gp_Trsf.Translation Rotation = gp_Trsf.Rotation Mirror = gp_Trsf.Mirror def Rectangle(l,w): return WorkPlane().Rectangle(l,w) def MoveTo(x,y): return WorkPlane().MoveTo(x,y) def LineTo(x,y): return WorkPlane().LineTo(x,y) def Line(l): return WorkPlane().Line(l) unit_square_shape = WorkPlane().Line(1, name="bottom").Rotate(90) \ .Line(1, name="right").Rotate(90) \ .Line(1, name="top").Rotate(90) \ .Line(1, name="left").Rotate(90).Face() unit_square = OCCGeometry(unit_square_shape, dim=2) uc_shape = Box((0,0,0),(1,1,1)) uc_shape.faces.Max(X).name = "front" uc_shape.faces.Min(X).name = "back" uc_shape.faces.Max(Y).name = "right" uc_shape.faces.Min(Y).name = "left" uc_shape.faces.Max(Z).name = "top" uc_shape.faces.Min(Z).name = "bottom" unit_cube = OCCGeometry(uc_shape)