Giter Club home page Giter Club logo

gugulele's Introduction

Gugulele (G6)

OpenSCAD scripts to generate parametric 3D models of gourd shaped ukuleles suitable for 3D printing. Check out some of the generated models here:

Usage

  1. include G6 into an openscad project

    e.g. In a new OpenSCAD file my-uke.scad

include <../G6.scad>;
  1. override any parameters in G6-params.scad e.g. In my-uke.scad
include <../G6.scad>;

// Overriding Default Rendering Resolution Params
HIRES = 30; 
DEFRES = 20; 
LORES = 20;

// High level params
MODEL = 3;
HEAD_STYLE = 2;
F_GAP = 90;
B_GAP = 90; 
C_GAP = 90; 
USE_SCREWS = true;
SNDHOLE_STYLE = 6;
SPINE_STYLE = 2;   
BRACE_STYLE = 2;   
TUNER_STYLE = 3;
PICKUP_STYLE = 1;
SHOW_LOGO = true; 
  1. run and see the generated result!

    e.g. from command line

> openscad -o my-uke.stl my-uke.scad
> open my-uke.stl

Warning

If you set the resolution as suggested in the example above, it could take a few minutes to generate the rough looking output STL file. This is often sufficient for debugging and preview. If you want a nice looking file for 3D printing, I would suggest setting HIRES to 180 or above, DEFRES to 30 or above, and LORES to 20 or above. This configuration may take hours to render, at least until OpenSCAD can optimize its performance with effective multi-threading.

Credits

G6 uses the excellent Nuts n Bolts library (https://github.com/JohK/nutsnbolts) to render screws and holes.

If you use G6 to generate and print a ukulele successfully please give credit to G6 and shoot me an email! brian dot guan at gmail dot com.

Random Thoughts

The hardest part for me is to deal with the lack of spline in OpenSCAD. I have to subtract scaled arc from rectangle and revolve it to get to a funnel shape for the shoulder, and similarly scaled different quadrants of sphere to get an ellipsoid. Also due to "functional" nature of OpenSCAD, I have to contort the fret calculation by using some crazy recursive function. Filleting also is a challenge as I have to accomplish that with Minkowski sum of small sphere and the main parts with sharp edges.

The most painful part is that OpenSCAD is painfully slow when rendering at high resolution, as it is single threaded and not utilizing GPU unlike professional 3D CAD tools. I have ported this to OnShape Feature Script. See the [Gugulele public document] (https://cad.onshape.com/documents/5d1958b45f2484ebebb64adf/w/d0b2164f9e843f6c6ce251e7/e/505e487213bab5c385cd9bb5) there.

gugulele's People

Contributors

bguan avatar

Stargazers

Marco Merlin avatar Zhao, Lei avatar  avatar Sylvain Garcia avatar  avatar Nikolay Seliverstov avatar Adam Thole avatar Shane Graber avatar Roberto Cabellon avatar  avatar Sean Stevens avatar Churuata3D avatar Jason Thrasher avatar  avatar Jeff Kohrman avatar Kevin Bedi avatar Jer-Wei Rau avatar Justin Kalanchoe avatar

Watchers

 avatar Jer-Wei Rau avatar Zhao, Lei avatar

Forkers

scalefield

gugulele's Issues

Trying to create a Baritone with Head

Hi,

Thanks for these script they work really well for soprano models.

I am trying to create a Baritone with head for normal closed geared tuners.

I find that when I generate the head it seems to be chopped off. The chop off section seems to go through the tuners furthest from the Nut.

Is there anything I am doing wrong?

Is there any way to reduce the size of the body on a baritone?

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.