fuccaro Posted November 21, 2021 Posted November 21, 2021 Hello all! I recently came across this youtube video. I'm not very good at origami but I do know some AutoLisp, so here is my version. If you'd like to make your own, download the attached Lisp and edit the text with something like Notepad. I admit that I'm not an artist, so for sure you will make a better choose on colors. Also choose a nice font *before* you run the Lisp. About the W parameter in the Lisp file: while a smaller value may lead to a nicer looking cube, you will have hard time putting the parts together, and also the final cube will probably fall apart easier. For your first cube make it at least at 25 units (for an edge of 100 units). Run the Lisp & print the faces at the desired scale (I printed them all on the same A4 sheet). Then cut the faces. The bend lines should be visible over the colors, but unfortunately AutoCAD made them disappear. First locate the bending lines. There is no bending line where the color ends! Make 4 bends along each face. Next 2 more bends across. Now you can start putting the faces together. Don't use glue. See the youtube video above and also the next images. And don't forget to watch the colors and the text orientation so that the faces go in the right place! Sometimes I feel that I should've been born an octopus, because two hands are never enough. But don't worry, it can all be done with some patience. An important aspect for this project is accuracy! I can't wait to see images of your gift boxes. Here is mine: Have fun! ;| This program draws the flat pattern of the 6 faces on can use to make a gift-box. More rxplanations to be found in the CADTutor forum November 2011 m_fuccaro@hotmail.com |; (defun c:giftbox() (setq e 100 ; cube edge length w 25 ; wraping ribbon width BackColor 10733985 ; use true collors colors (list 16724137 12929535 16738370) ; change the texts and the colors to customize texts(list "Packaged with love" "CADTutor Forum is a nice place" "Happy Cristmas!") gap 20 ) (setq linecolor 2) (setq x0 0 y0 0) (blockmaker) ; to make the scizor cut-mark symbol (face 0 0 0) (face (+ e e gap) 0 0) (face 0 (+ e w w gap) 1) (face (+ e e gap) (+ e w w gap) 1) (face 0 (+ e e (* 4 w) gap gap) 2) (face (+ e e gap) (+ e e (* 4 w) gap gap) 2) ) (defun face(x0 y0 i) ; this draws a complete face with ribbon and tex (setq w4 (/ w 4.0)) (setq lineColor 1) (mapcar 'vert (list 0 (/ e 2) (/ (* 3 e) 2) (* 2 e))) (mapcar 'horiz (list 0 (/ e 2) (+ (/ e 2) (/ w 2)) (+ (/ e 2) (/ w 2) w) (+ (/ e 2) w w) (+ e w w))) (solidcolor w4 0 (+ e e (- w4)) (- (/ e 2) w4) backColor) (solidcolor w4 (+ (/ e 2) w4) (+ e e (- w4)) (+ (/ e 2) (/ w 2) (* 5 w4)) (nth i colors)) (solidcolor w4 (+ (/ e 2) (* 9 w4)) (+ e e (- w4)) (+ e w w) backColor) (entmake (list '(0 . "TEXT") (cons 1 (nth i texts)) (list 10 0 0 0) (cons 40 1)(cons 41 1)(cons 420 14281177))) (setq en (entlast) el (entget en) box(textbox (entget en)) factor (/ (* 0.8 w) (- (cadadr box) (cadar box)))) (setq el (entmod (subst (cons 40 factor) '(40 . 1) el))) (setq box(textbox el) factor (/ (+ e e (* -1.4 w)) (- (caadr box) (caar box)))) (setq el (entmod (subst (cons 41 factor) '(41 . 1) el))) (entmod (subst (list 10 (+ x0 (* 0.7 w)) (+ y0 (/ e 2.0) (* 0.75 w)) 2) (assoc 10 el) el)) (entmake (list '(0 . "INSERT") '(2 . "CUTMARK") (list 10 x0 y0 0))) (entmake (list '(0 . "INSERT") '(2 . "CUTMARK") (list 10 x0 y0 0) (cons 50 (/ PI 2)))) (entmake (list '(0 . "INSERT") '(2 . "CUTMARK") (list 10 x0 (+ y0 e w w) 0))) (entmake (list '(0 . "INSERT") '(2 . "CUTMARK") (list 10 (+ x0 e e) y0 0) (cons 50 (/ PI 2)))) ) (defun line(x1 y1 x2 y2) (entmake (list '(0 . "LINE") (list 10 (+ x0 x1) (+ y0 y1) 1) (list 11 (+ x0 x2) (+ y0 y2) 1) (cons 62 LineColor))) ) (defun horiz(y) (line 0 y (+ e e) y) ) (defun vert(x) (line x 0 x (+ e w w)) ) (defun solidColor(x1 y1 x2 y2 color) ; all the rectangular color areas are solid hatches (entmake (list '(0 . "HATCH") '(100 . "AcDbEntity") '(100 . "AcDbHatch") '(10 0 0 0) '(210 0 0 1) '(2 . "SOLID") (cons 420 color) '(70 . 1) '(71 . 0) '(91 . 1) '(92 . 7) '(72 . 0) '(73 . 1) '(93 . 4) (list 10 (+ x0 x1) (+ y0 y1) 0) (list 10 (+ x0 x2) (+ y0 y1) 0) (list 10 (+ x0 x2) (+ y0 y2) 0) (list 10 (+ x0 x1) (+ y0 y2) 0) '(97 . 0) '(75 . 1) '(76 . 1) '(47 . 1) '(98 . 1) '(10 0 0 0) '(450 . 0) '(451 . 0) '(460 . 0) '(461 . 0) '(452 . 0) '(462 . 0) '(453 . 2) '(463 . 0) '(421 . 1) '(463 . 1.0) '(470 . ""))) ) (defun blockMaker() ; makes a simple scizor-like mark (entmake (list '(0 . "BLOCK") '(2 . "CutMark") '(10 0 0 0) '(70 . 0))) (entmake (list '(0 . "CIRCLE") (list 10 -15 3 0) (cons 40 1.5)(cons 62 lineColor))) (entmake (list '(0 . "CIRCLE") (list 10 -15 -3 0) (cons 40 1.5)(cons 62 lineColor))) (line -15 1.5 -4 -2) (line -15 -1.5 -4 2) (line -6 0 0 0) (entmake (list (cons 0 "ENDBLK"))) ) 2 Quote
rlx Posted November 21, 2021 Posted November 21, 2021 cant comment on the origami part (yet) but the lisp part works perfect! thanx for your gift fuccaro Quote
Emmanuel Delay Posted November 22, 2021 Posted November 22, 2021 (edited) Well, here's an origami cube I just made Edited November 22, 2021 by Emmanuel Delay Quote
Steven P Posted November 22, 2021 Posted November 22, 2021 Nice, Just added in this before "(setq linecolor 2)" and took out "texts(list "Packaged with love" "CADTutor Forum is a nice place" "Happy Cristmas!")" (setq texta (getstring T "Enter Text 1: ")) (setq textb (getstring T "Enter Text 2: ")) (setq textc (getstring T "Enter Text 3: ")) (setq texts (list texta textb textc)) to change the text Quote
BIGAL Posted November 23, 2021 Posted November 23, 2021 Working for a Japanese company we recieved a christmas present a origami wrapped box of biscuits, for the challenge the wrapping was at 45 to the orientation of the box, it was a pity to un wrap it. Also 1 piece. Quote
fuccaro Posted December 12, 2021 Author Posted December 12, 2021 Hello again! Here it comes a nicer one. I shortly saw this box in a video and I managed to replicate it. If you wish to make one yourself follow these steps. Download the lisp, change in the program the dimensions a, b and c (sorry, this time there is no user-friendly interface). Run the lisp -the command is “giftbox1” – and print the drawing. Protect your desk: place a cardboard or more sheets of used paper. Put the drawing over that protective layer. To get accurate folds, I use to “draw” first over the fold-lines with a drayed-out ball-pen. Next cut the outlines. Also cut out those internal triangles. You should have something like this. Fold along the red lines (you used a color printer, right?). First fold along the transversal lines. Make sharp bends, and fold/unfold the paper a few times in both directions. Unfold the paper, keep just the blue ribbon bent as in the image. Fold along the longitudinal lines, the printed side goes inside and the blue ribbon remains outside. You should get something like a prism or a tube with square cross section. Glue those two trapeze shapes at the margin to complete the tube. Let the glue to set. Really, don’t go further while the paper is still wet! Shape the tube so that its cross section becomes a square and glue the bottom end. To press together the glued faces, I turned the box with the bottom side facing the table and I pressed it from inside with a pencil. Again, let the glue to harden. Gentle press down the top edge. You should see the upper lid closing the box. Rising the lid, the upper face will split in 4 and nicely gets aside to leave the box open. In fact, there is no “box and lid”, there is only one part, tailored from a single sheet of paper. Final thoughts: If you intend to make a box for her, before printing, change the blue ribbon in red (or pink or something like). There are horizontal lines giving the color, select them all and change their color at once. Using regular thin paper is fine. I used normal office paper (80 gr/m2). If you can get something a bit thicker, even better. But the weakness of this box is its bottom. Cut a square from thicker paper, the same size as the footprint of the box, and glue it to strengthen the bottom face. This is important especially if the lid’s height is close to the overall height of the box: to open it, you must pick the margins down, near the bottom, and when you apply pressure to hold down the box while lifting the lid, the pressure is applied mainly to the bottom face. Also, I made a box with the lid covering the sides all the way down and there left no room for my fingers. The resulting box was almost impossible to open. I’ve cut two half-circular openings, like in the next image. But in this case, it is mandatory to strengthen the bottom face as previously described. Or even better, glue two square patches, one from outside and one from inside. Enjoy! (defun c:GiftBox1() (setq a 20 b 42 c 53) (setq p0 (list 0 (* 0.1 a))) (setq x1 (* a 0.25) x2 (* a 1.25) x3 (* a 2.25) x4 (* a 3.25) x5 (* a 4.25)) (setq y1 b y2 (+ a b) y3 (+ a b c) ym (+ b (* a 0.5))) (setq cut (list (list (* a 0.5) (* a 0.5)) (list (* a -0.5) (* a 0.5)))) (setq color 7) ;cut lines (drawpline p0 (list (list x1 (* a -0.1)) (list (* a 4) 0) (list 0 y3) (list (/ a -10.0) (/ a 2.0)) (list (* a -0.8) 0) (list (* a -0.1) (* a -0.5)) (list 0 x1) (list (- a) 0) (list 0 (- x1)) (list (/ a -10.0) (/ a 2.0)) (list (* a -0.8) 0) (list (* a -0.1) (* a -0.5)) (list 0 x1) (list (- a) 0) (list 0 (- x1)) (list (- x1) (* a -0.1)) (list 0 (- (* 0.2 a) c)) (list x1 (* a -0.1)) (list (* a 0.5) (* a -0.5)) (list (* a -0.5) (* a -0.5)) (list (- x1) (* a -0.1)))) (drawPline (list (* 1.25 a) b) cut) (drawPline (list (* 2.25 a) b) cut) (drawPline (list (* 3.25 a) b) cut) (setq color 1) ; fold lines (mapcar 'line (list x1 x1 x1 x1 x1 x2 x2 x3 x3 x4 x4) (list y1 y2 y3 0 y2 0 y2 0 y2 0 y2) (list x5 x5 x5 x1 x1 x2 x2 x3 x3 x4 x4) (list y1 y2 y3 y1 y3 y1 y3 y1 y3 y1 y3)) (mapcar 'fold (list x1 x2 x3 x4)) (setq st (* 0.02 a) sm (- st)) (setq color 32) ;tree trunk (hatchMe (* 1.7 a) b (* 1.8 a) b 0 st 0 st 5) (setq color 96) ;tree branches (hatchMe (* 1.75 a) ym (* 1.75 a) ym sm sm st sm 21) (hatchMe (* 3.75 a) (+ st b) (* 3.75 a) (+ st b) sm st st st 10) (hatchMe (* 3.75 a) (+ b (* 9 st)) (* 3.75 a) (+ b (* 9 st)) sm st st st 9) (hatchMe (* 3.75 a) ym (* 3.75 a) ym sm sm st sm 8) (hatchMe (+ (* 2.75 a) (* 8 st)) (- ym (* 8 st)) (+ (* 2.75 a)(* 8 st)) (- ym (* 8 st)) sm st sm sm 9) (hatchMe (* 0.75 a) ym (* 0.75 a) (- ym (* 16 st)) sm sm sm st 9) (setq color 4) ;box cover (hatchMe x1 0 x5 0 0 (* st 0.5) 0 (* st 0.5) (fix (/ b st 0.5))) (command "zoom" "e") ) (defun fold(x) (line (+ x (* a 0.5)) (+ b (* 0.5 a)) (+ x a) (+ b (* 0.5 a))) ) (defun drawPline (start pList) (setq el (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 90 (length pList)) (cons 62 color) '(70 . 1) '(38 . 0) '(210 0 0 1)(list 10 (car start) (cadr start) 0))) (foreach p pList (setq start (mapcar '+ start p)) (setq el (append el (list (cons 10 start)))) ) (entmake el) ) (defun line (x1 y1 x2 y2) ; It draws a line between the given points. The color is global. (entmake (list '(0 . "LINE") (cons 62 color) (list 10 x1 y1 0) (list 11 x2 y2 0))) ) (defun hatchMe(x1 y1 x2 y2 dx1 dy1 dx2 dy2 n) ; hatch-like lines (repeat n (line x1 y1 x2 y2) (setq x1 (+ x1 dx1) y1 (+ y1 dy1) x2 (+ x2 dx2) y2 (+ y2 dy2)) ) ) 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.