MyNixOS website logo
Description

ADT wrapper and renderer for OpenSCAD models.

An algebraic data type for describing OpenSCAD models, functions to make building such models easier, and functions for rendering an ADT into an OpenSCAD program.

What's Graphics.OpenSCAD

This is a library whose primary component is an algebraic data type for describing OpenSCAD models, and a function that converts that data type into a string. There are convenience functions to make building the model easier.

What's different

Given the primitive and quirky nature of the OpenSCAD language, the idea of "using OpenSCAD" as an assembler is both obvious, and promoted in lieu of adding major extensions to OpenSCAD. So there are a number of such projects, for a variety of languages.

Any compiler that generated "assembler" that caused the assembler program to generate errors would be considered buggy. However, none of the alternative projects I looked at seemed to do anything about that (my apologies if I missed one - I only looked at languages I was interested in using). Graphics.OpenSCAD takes the attitude that errors from OpenSCAD on the generated code are errors in Graphics.OpenSCAD. If you manage to generate code that causes OpenSCAD to issue an error message, please open an issue here.

More info

Read the online docs at hackage.

Metadata

Version

0.3.0.2

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows