Giter Club home page Giter Club logo

ball_joint's Introduction

ball joint

an openscad library to generated ball joints, remix from Gael Lafond's solution he had a separate lib for the helix part, since i only use his lib with the ball joint i merged them.


Inherited README's

Helix library for OpenSCAD by gaellafond on Thingiverse

Summary

Yet another OpenSCAD library to create helices.

There is plenty of libraries out there, but most of them are unpredictable. The height, width, angle, etc are not respected, making it very hard to create precise model.

This library is very precise, flexible and easy to use. It takes a 2D polygon and extrude it just like linear_extrude and rotate_extrude.

2018-02-24: Added a default value for the number of segments (precision) when $fn is not defined. Issues

Using hull() to join polygons has some downsides:

Polygons needs to be extruded into 3D shape for hull to work properly.

Concave polygons are made convex.

Hull is overkill for what I'm doing, it takes too long to render.

The only way I can see to fix this without changing the API is to iterate through points of the polygon, and create the polyhedron manually. Unfortunately, this is not possible with the current version of OpenSCAD.

I could change the API and expect an array of points representing the polygon, but I don't like that idea. I want it to works like the other extrude functions.

A workaround for the concave issue is to create a convex polygon and extrude it with helix_extrude. Then create another polygon, extrude it with helix_extrude and create a difference between the two helices.

Usage
include <helix\_extrude.scad>
helix_extrude()
    translate([10, 0, 0])
        circle(r=3);
Some images

preview helix

Universal Ball Joint by gaellafond on (Thingiverse)[https://www.thingiverse.com/thing:5136665]

This is intended to be used as a library in other projects.

Example:

    use <balljoint.scad>;
    balljoint_ball();
    balljoint_seat();
    balljoint_nut();

If you need a smaller or larger ball joint, use "scale".

Example:

    use <balljoint.scad>;
    scale(2) balljoint_ball();
    scale(2) balljoint_seat();
    scale(2) balljoint_nut();

The ball joint was tested using the defined dimensions. Changing the dimensions may generate disfunctional parts. If you need to change the dimensions, import the library using "include" instead of "use" and overwrite the appropriate variables.

Example:

    include <balljoint.scad>;
    balljoint_ball_dia = 30;
    balljoint_ball();
    balljoint_seat();
    balljoint_nut();

Inspired from:

[Universal Ball Joint by MORONator](https://www.thingiverse.com/thing:5020323)

Unit: millimetres.

Some images

printed example ballpoint seat nut

ball_joint's People

Contributors

nohkumado avatar

Watchers

James Cloos avatar  avatar

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.