Giter Site home page Giter Site logo

raulbejarano / ultimate-joint-generator Goto Github PK

View Code? Open in Web Editor NEW
8.0 3.0 1.0 429 KB

The Ultimate Joint Generator is an open source project that provides a way to generate STL files of joint connectors to build greenhouses, pipe connectors, or whatever structure you need.

License: GNU General Public License v3.0

OpenSCAD 100.00%
3d-models 3d-printing greenhouse openscad stl

ultimate-joint-generator's Introduction

Ultimate Joint Generator

version license commits

The Ultimate Joint Generator is an open source project that provides a way to generate STL files of joint connectors to build greenhouses, pipe connectors, or whatever structure you need.

90 degree connector extended T connector

โœจ Features

Multi-arm Safe pipe connectors Three hole types Highly configurable
You can create connectors with as many arms as you want You can create margins to avoid pipes colisions inside the connector You can choose between 3 types of holes: full opened, ringed or closed Create the monster connector that you need in a simple way

๐Ÿ’ช Getting started

The Ultimate Joint Generator is meant to be used by anyone and it's not neccessary to code, BUT you have to touch some values that are in the code. Don't worry, it's easy and very strightforward. Let's start!

โฌ‡๏ธ Download stuff

Fist of all you have to download several things:

  1. This repository by downloading it or by cloning it (we assume that if you use this method you know how to do it). Then unzip the files.
  2. OpenSCAD: the sofware we need to render and create our STL files.

๐Ÿ”จ Creating our first connector

Let's start by opening the file example.scad with OpenSCAD.

You will see some code but we only are interested in the parameters inside the section Parameters. Let's change some of them:

This defines an arm:

arm1 = [
    ["pipe_diameter", 20],
    ["wall_thickness", 4],
    ["height", 20],
    ["rotationX", 0],
    ["rotationY", 0],
    ["spin", 0],
    ["margin", 5],
    ["hole", 2],  // 0:Full opened,1:Ring,2:No hole
    ["screw_diameter", 5],
    ["color", "#ffffff"] // (Optional) hex format (e.g. #ffffff) or color name (e.g. white) always between "".
];
  • pipe_diameter sets the inner diameter of each arm.
  • wall_thickness this sets the wall thickness of each arm.
  • height sets the height (length) of each arm.
  • rotationX sets the rotation in degrees in X plane of this arm.
  • rotationY sets the rotation in degrees in Y plane of this arm.
  • spin sets how many degrees rotates an arm over itself.
  • margin sets the margin (see parameters cheatset)
  • hole sets which kind of hole will be used in this arm. It can take the values: 0 for full opened, 1 for ringed and 2 for no hole.
  • screw_diameter if you want to use screws in an arm you should set this value to their diameter, if not set it to 0.
  • color (Optional) paint the arm with the chosen html color. You can use hexadecimal notation (e.g. "#ffffff") or color name (e.g. "white"). It's optional so you don't need to set it.

If you use this values and render with OpenSCAD you will get something similar to the image in parameter cheatsheet.

But, probably you want to have more than an arm so let's add something like this below arm1 definition:

arm2 = [
    ["pipe_diameter", 20],
    ["wall_thickness", 4],
    ["height", 20],
    ["rotationX", 90],
    ["rotationY", 0],
    ["spin", 0],
    ["margin", 5],
    ["hole", 2],  // 0:Full opened,1:Ring,2:No hole
    ["screw_diameter", 5]
];

โ— Note that in this one there is no color parameter specified.

Finally add our new arm2 to the arms vector:

arms = [ arm1, arm2 ];

That's all! Render it and you will have a new arm.

Now it's your turn. Play with the parameters and try adding more arms, different rotations, spins, etc. Let's make something awesome!

โš™๏ธ Parameters cheatsheet

Parameters

Contributing

Feel free to contribute to this project as much as you want.

๐Ÿšธ If you are new contributing we recommend you to start by playing with the core design file generator.scad.

๐Ÿ“ When you see something you want to add, modify or refactor first of all, you should create a new issue providing as much information as you can. We will appreciate if you can write as an user story (e.g. AS [a user persona], I WANT [to perform this action] SO THAT [I can accomplish this goal].)

๐Ÿ”€ Then you should create a fork of the project, clone it to your local, create a new local branch and you will be ready to start making changes. You'll need a recent version of OpenSCAD.

๐Ÿš€ When you finish making changes go to pull requests and create a new one selecting your fork as source. More info on GitHub Docs: creating a pull request from a fork. Please add as much information as you can explaining what have you done, strategies you followed, which issue resolves, etc.

๐Ÿ’ฌ Your PR will be commented, reviewed and, we hope, ๐ŸŽ‰approved and merged into main branch๐ŸŽ‰.

If you want to contribute but you feel lost with all this process please fell free to contact to any of the mantainers, they will help you a lot.

ultimate-joint-generator's People

Contributors

raulbejarano avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

plkumar

ultimate-joint-generator's Issues

Square and rectangular arms

AS a designer,
I WANT to create square and rectangular arms
SO THAT I can create more customizable pieces

Extend arm configuration

Merged from issues #14 #15 #16

AS a designer,
I WANT to configure each arm screw holes, pipe diameter and wall thickness
SO THAT I can have more flexibility to create joints

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.