package OSCADml

  1. Overview
  2. Docs
OCaml DSL for 3D solid modelling in OpenSCAD

Install

Dune Dependency

Authors

Maintainers

Sources

OSCADml-0.2.1.tbz
sha256=406e45c5df8122e8b065342e10ba9deb7a066683b256619462c405da69ba5baa
sha512=20db4192d6204d9fd5914562ec83d8edbbb1f5c89a72e61928bf662fdcc9ecea38760b26c99af801ddfc5b877c451ad11c16fc89a6a36ef8c20881375627295b

doc/spline.html

Cublic Spline

open OCADml
open OSCADml

Control points that our cubic spline will pass through.

let control = [ v2 0. 10.; v2 10. 40.; v2 20. 40.; v2 30. (-20.); v2 40. (-40.) ]

Mark our control points with the debugging helper Debug.show_path2 for reference. We don't really need to number these, so we'll ignore the index parameter and use the same sphere for each point.

let marks = Debug.show_path2 Scad.(fun _ -> color Color.Magenta @@ sphere 2.) control

Fit a cubic spline to the control points, and interpolate fn points along it using the helper Path2.cubic_spline (lower level functions available in the CubicSpline module), then sweep a rectangle along it.

let line =
  let rectangle = Poly2.square ~center:true (v2 2. 5.)
  and path = Path3.of_path2 @@ Path2.cubic_spline ~fn:100 control in
  Scad.of_mesh @@ Mesh.path_extrude ~path rectangle

Union our control point marks and line sweep shapes and output to file.

let () = Scad.to_file "spline.scad" (Scad.union [ line; marks ])

OCaml

Innovation. Community. Security.