Module Walls.Sides

type t = {
  1. west : Side.t;
  2. north : Side.t;
  3. east : Side.t;
  4. south : Side.t;
}

Four cardinal Side.ts for a body/thumb.

val translate : OCADml.V3.t -> t -> t
val xtrans : float -> t -> t
val ytrans : float -> t -> t
val ztrans : float -> t -> t
val rotate : ?about:OCADml.V3.t -> OCADml.V3.t -> t -> t
val xrot : ?about:OCADml.V3.t -> float -> t -> t
val yrot : ?about:OCADml.V3.t -> float -> t -> t
val zrot : ?about:OCADml.V3.t -> float -> t -> t
val axis_rotate : ?about:OCADml.V3.t -> OCADml.V3.t -> float -> t -> t
val quaternion : ?about:OCADml.V3.t -> OCADml.Quaternion.t -> t -> t
val scale : OCADml.V3.t -> t -> t
val xscale : float -> t -> t
val yscale : float -> t -> t
val zscale : float -> t -> t
val mirror : OCADml.V3.t -> t -> t
val affine : OCADml.Affine3.t -> t -> t
val manual_body : west:Side.config -> north:Side.config -> east:Side.config -> south:Side.config -> Columns.t -> t

manual_body ~west ~north ~east ~south columns

Construct a t with the given Side.configs for each of the edges of the provided Plate.t body columns (columns oriented along the Y-axis (N-S)).

val manual_thumb : west:Side.config -> north:Side.config -> east:Side.config -> south:Side.config -> Columns.t -> t

manual_thumb ~west ~north ~east ~south columns

Construct a t with the given Side.configs for each of the edges of the provided Plate.t thumb columns (columns oriented along the X-axis (W-E)). Note that the relevant indices are increment in directions reflecting the 90 degree rotation of the thumb columns relative to the body.

val auto : ?d1:[ `Abs of float | `Rel of float ] -> ?d2:float -> ?north_clearance:float -> ?south_clearance:float -> ?side_clearance:float -> ?n_steps:Wall.Steps.t -> ?min_step_dist:float -> ?scale:OCADml.V2.t -> ?scale_ez:(OCADml.V2.t * OCADml.V2.t) -> ?end_z:float -> ?index_scale:OCADml.V2.t -> ?north_lookup:(int -> bool) -> ?south_lookup:(int -> bool) -> ?west_lookup:(int -> bool) -> ?east_lookup:(int -> bool) -> ?thumb:bool -> Columns.t -> t

auto columns

Construct a t from a collection of parameters to be applied consistently across the generated Wall.ts.

  • d1, d2, n_steps, min_step_dist,scale, scale_ez, and end_z are as described in the documentation of Wall.make
  • index_scale can be used to override scale for the first two columns of the body.
  • {north,south,side}_clearance provide clearance to Wall.make for the corresponding sections (defaults = 0.).
  • thumb flags whether columns represents a thumb plate (default is false)
  • {north,south,west,east}_lookup parameters are functions from index to bool, indicating whether there is a wall present at a position or not.
val get : t -> [ `N | `E | `S | `W ] -> Side.t
val to_scad : t -> OSCADml.Scad.d3