NURBS.jl

This package provides functionality to define and evaluate B-spline and NURBS (non-uniform rational B-spline) basis functions, their derivatives, as well as curves and surfaces based on both considered basis functions.
Author HoBeZwe
Popularity
11 Stars
Updated Last
1 Month Ago
Started In
December 2022

Docs-stable Docs-dev MIT license Build Status codecov DOI

Introduction

This package provides functionality to define and evaluate B-spline, Curry-Schoenberg, and NURBS (non-uniform rational B-spline) basis functions, their derivatives, as well as curves and surfaces based on B-spline and NURBS basis functions.

The following aspects are implemented (✓) and planned (⌛):

B-spline, Curry-Schoenberg & NURBS evaluation
  • ✓ Basis & derivatives
  • ✓ Curves & derivatives
  • ✓ Surfaces & derivatives
Fundamental operations
  • ✓ File I/O (.step)
  • ✓ Knot manipulation
    • knot insertion / refinement
    • knot removal
    • splitting of curves and surfaces
  • ✓ Transformation of curves and surfaces
    • scaling
    • translating
    • rotating
    • mirroring
  • ⌛ Degree elevation / reduction
  • ⌛ Construction of common geometries
Connectivity
  • ✓ Determine patch connectivity
    • identify interfaces between patches
    • introduce per patch local numbering for vertices and edges
  • ✓ Virtual Bezier mesh connectivty (for FEM)
    • introduce on each patch a virtual Bezier mesh
    • determine adjacency information of mesh cells

Citation

Please cite this package following the information on Zenodo.

Documentation

Used By Packages

No packages found.