Giter Club home page Giter Club logo

ultimate-toroidal-propeller-generator's Introduction

Ultimate Toroidal Propeller Generator

release license commits

The Ultimate Toroidal Propeller Generator is an open source project that provides a way to generate STL files of toroidal drone propellers.

3 blades propeller 5 blades propeller

✨ Features

Multi-blade Safe blades intersections Attack angle Customizable hub
You can create propellers with as many blades as you want Each blade prevents getting into another one and you can customize what to do when it happens Specify the attack angle blade that you need in a simple way Customize that specal hub you want to design

πŸ’ͺ Getting started

The Ultimate Toroidal Propeller 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 propeller

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 toroidal definition. Let's change some of them:

This defines a propeller:

$fn = 100;                          // how polligonall you want the model

toroidal_propeller(
    blades = 3,                     // number of blades | Default(3)
    height = 6,                     // height | Default(6)
    blade_length = 68,              // blade length | Default(68)
    blade_width = 42,               // blade width | Default(42)
    blade_thickness = 4,            // blade thickness | Default(4)
    blade_hole_offset = 1.4,        // blade hole offset | Default(1.4)
    blade_attack_angle = 35,        // blade attack angle | Default(35)
    blade_offset = -6,              // blade distance from propeller axis | Default(-6)
    blade_safe_direction = "PREV",  // indicates if a blade must delete itself from getting into the previous (PREV) or the next blade (NEXT) | Default("PREV")
    hub_height = 6,                 // Hub height | Default(6)
    hub_d = 16,                     // hub diameter | Default(16)
    hub_screw_d = 5.5,              // hub screw diameter | Default(5.5)
    hub_notch_height = 0,           // height for the notch | Default(0 = [No support])
    hub_notch_d = 0                 // diameter for the notch | Default(0 = [No support])
);
  • $fn: defines the number of facets by default. In other words how smoother the propeller will be. If you are just experimenting we recomend you to comment that line.
  • blades: just the number of blades you want
  • height: total propeller height
  • blade_length: blade lenght or total radius. If you have a 5'' drone set this to 63 (mm).
  • blade_width: blade width
  • blade_thickness blade thickness. Be aware of your printer capabilities.
  • blade_hole_offset: displacement between outer and inner sides of the blades. It shouldn't be greater than thickness.
  • blade_attack_angle: this sets how is going to be the attack angle. A positive value will generate a CW propeller and a negative one a CCW.
  • blade_offset: blade distance from propeller axis
  • safe_blades_direction: indicates if a blade must delete itself from getting into the previous or the next blade.
  • hub_height: hub or holder height.
  • hub_d: hub or holder diameter.
  • hub_screw_d: motor axis screw diameter.
  • hub_notch_height: support hole height.
  • hub_notch_d: support hole diameter.

That's all! Render it with this values with OpenSCAD and you will get something similar to this:

3 blades propeller

Now it's your turn. Play with the parameters and try adding more blades, different lengths, attack angles, etc. Let's make something awesome!

Contributing

🚸 If you are new contributing we recommend you to start by playing with the core design file toroidal_propeller.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-toroidal-propeller-generator's People

Contributors

dieseltravis avatar little-night-wolf avatar raulbejarano avatar schiele avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ultimate-toroidal-propeller-generator's Issues

Customizable hub height

AS A designer
I WANT to set a parameter to define the hub height
SO THAT I can customize the hub height

optional hub recess

Would it be possible to add configurable recess in hub, so that it can "slip over" thicker tapped shaft ?
effectively it would be second configurable hub removed from the original one..

Rename parameters to better understandability

AS designer
I WANT TO have clear parameters
SO THAT it would be great changing this parameters:

eh_l = 0,                       // length of the emptying of the hub
eh_d = 0                        // diameter of the hollowing of the hub

to something like:

hub_notch_height= 0,        // height of the emptying of the hub
hub_notch_diameter= 0     // diameter of the hollowing of the hub

Erron on creating a double propeller

I want to ask if it is possible to put a variable to modify the helix form ​​here are pictures of a different helix

What im asking for:
image

Thanks

Nozzle size ??

Hi, I don't know if this is the place to ask this but :- I would like to know what size extruder nozzle I should use to print this, I have tried with my stock ender 5 S1 and all I get is a flimsy paper this propellor I have increased the thickness to 5 with no noticable difference what does the blade_thickness represent as it doesn't seem to be mm. here are all my settings just incase I'm an eejit and messed it up

$fn = 100;                      // how polligonall you want the model

toroidal_propeller(
blades = 3, // number of blades | Default(3)
height = 5, // height | Default(6)
blade_length = 90, // blade length | Default(68)
blade_width = 56, // blade width | Default(42)
blade_thickness = 5, // blade thickness | Default(4)
blade_hole_offset = 1.4, // blade hole offset | Default(1.4)
blade_twist = 15, // blade twist angle | Default(15) CW
//blade_twist = -15, // blade twist angle | Default(15) CCW
blade_offset = -6, // blade distance from propeller axis | Default(-6)
safe_blades_direction = "PREV", // indicates if a blade must delete itself from getting into the previous (PREV) or the next blade (NEXT) | Default("PREV")
hub_d = 16, // hub diameter | Default(16)
hub_screw_d = 6, // hub screw diameter | Default(5.5)
eh_l = 2, // length of the emptying of the hub | Default(0 = [No support])
eh_d = 8 // diameter of the hollowing of the hub | Default(0 = [No support])
);

aerodynamic airfoil

Hey.

I don't know anything about 3D-printing and OpenSCAD, but I do know stuff about airfoils and aerodynamics. I am wondering how it would be possible to implement the usage of NACA-profiles / airfoils. I know sharp edges are not good for printing. But I would like to investigate designs using cfd and I don't want to be limited by 3D-printing capabilities. Also efficient propellers have to be optimized by the blade-curvature and thickness anyhow. If we could choose from NACA-airfoils, we could predict the capabilities and necessary geometry-parameters for given rpm's.

How would you implement this?

Support of any blade base shape

Right now the only available blade base shape is a circle or elipse (by resizing the circle).But it will be awesome if any kind of blade base shape can be set. So....:

AS designer
I WANT to use any kind of blade base shape
SO THAT I can create more customizable propellers

Thougts on this: I think this can be achieved using children, so maybe it will be posible transform this module into an operator. But it can be difficult to manage the blade thickness.

Refactor for performance

A code refactoring is needed to improve performance.

One approach might be create all the blades in 2D with the safety stuff an then extrude them.

design for the outboards.

I wish I could design something like this, for the ship. Can you add a future to move blades like in the photo? Thanks
render (1)

Allow change safe blade direction

AS a designer
I WANT to select which direction use to prevent a blade getting into another
SO THAT I can make more configurable propellers

image

CW and CCW propellers are not equivalents.

There is a problem with the generation of CW and CCW propellers because he are not equivalents.

It seems that when is substracting what it's inside another blade it don't take in account the direction.

image image

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.