Flexifier: flexi 3D models generator (print-in-place)

Upload a custom image and make it flexi!
In the contest Quick Flexis
940
1513
7
13 k
updated January 9, 2024

Description

PDF

Make it flexi!

Design a print-in-place custom flexi 3D model from an image with the Web App or Python script!

Download the ZIP file with the app executables and run the one for your operative system! (The executable file will open the Web App in  dedicated browser window)

Or you can find the Web App link and info in the Github Readme file.

(GitHub page: https://github.com/Lucandia/Flexifier)

Export STL or STEP

You can choose the output format between STL and STEP.

You can choose the hinge parameters

  • Height of the model
  • Add or remove a Hinge
  • Hinge position and rotation
  • Hinge diameter
  • Hinge thickness
  • Thickness and length of the cut in the image

Hinge type supported

  • Normal hinge
  • Ball joint

Tips

  • Once clicked on a slider pointer, use arrows to move precisely
  • Using the model height as the hinge diameter maximizes the strength of the connection
  • Ball joints allow a 360° rotation between the two joint parts
  • Ball joints fold like a regular hinge when the “Expose ball joint” option is on
  • To free the ball joint after printing, slightly push the spheres.
  • Select “Number” in the “Interface” selectbox (top right) to have full control over the input

You can download an example model from this page. The Openscad module used is available in the files. The original code is maintained on GitHub (https://github.com/lmonari5/Flexifier.git).

Let your imagination run wild!

Enjoy!

    Luca

I am a student who enjoys 3D printing and programming. If you want to support me with a coffee, click here! 

Stay Tuned

Next steps:

  • Add a greyscale threshold for complex images.

Updates

  • Added ball joint (18/06/2023)
  • Added hinge diameter control; updated the preview to show the full hinge size  (19/06/2023)
  • Added expose ball joint option; added cut chamfer in a ball joint; improved slider ranges thanks to Cadquery bounding box (22/06/2023)
  • Decreased memory usage (26/06/2023)
  • Improved preview to be more lightweight, change rendering program to CadQuery, allow export STEP format (03/06/2023)
  • Started the transition from the Web App interface to the Desktop App interface (09/01/2024)

DISCLAIMER: Due to the high number of users and the size of STL files, the app usually exceeds the resource limits. I check it and reboot it periodically. If the Webb App doesn't work and I have not rebooted it yet, you can:

Web app errors/bug

If you encounter any error or bug, let me know!

Try the OpenScad module:

Generate a hinge in a model from your svg, import the module and try:

difference(){
 linear_extrude(height = HEIGHT) // extrude the svg
   translate(v=[X_TRAN,Y_TRAN,0]) // translate the svg image
     rotate(a=[0,0,Z_DEG]) // rotate the svg image
       scale([X_SCALE,Y_SCALE,1]) // scale the X and Y axis of the svg
           import(file = "YOUR_PATH/YOUR_FILE.svg", center = true);
translate([X_TRAN_HINGE,Y_TRAN_HINGE,0])
rotate([0,0,ROTATE_HINGE])
diff_hinge(HEIGHT_HING, hinge_h_thick=HINGE_THICKNESS, break=CUT_THICKNESS, break_len=CUT_LENGTH);
};
translate([X_TRAN_HINGE, Y_TRAN_HINGE,0])
rotate([0,0,ROTATE_HINGE])
uni_hinge(HEIGHT_HINGE, hinge_h_thick=HINGE_THICKNESS, break=CUT_THICKNESS);

Replacing the capital variables with your values. 

The same approach can be used for the ball joint, using diff_ball and uni_ball instead of diff_hinge and uni_hinge:

diff_ball(HEIGHT_HINGE, ball_diam=BALL_DIAMETER, break=CUT_THICKNESS, break_len=CUT_LENGTH, expose=true);

uni_ball(HEIGHT_HINGE, ball_diam=BALL_DIAMETER, break=CUT_THICKNESS);

Tags



Model origin

The author marked this model as their own original creation.

License