XKCD Easter Egg #84

Merged
merged 12 commits into from Apr 12, 2013

Conversation

Projects
None yet
3 participants
Contributor

amackworth commented Mar 21, 2013

Usage:

make sandwich

(In homage to: http://xkcd.com/149/. I didn't figure sudo was necessary in this case.)

Not sure this works, though, since I don't have a Replicator, and I am absolutely new to Makefile scripting. If someone could test this, that would be great!

Also, the file is a little big for an easter egg, but I haven't been able to find a smaller model. Not exactly something you would print everyday!

alexanderpine added some commits Mar 21, 2013

@skalnik skalnik commented on an outdated diff Mar 21, 2013

data/README.md
+© 2011 by Mahoney
+
+Sandwich.stl is a version of "Reuben Sandwich on Plate" from http://www.123dapp.com/123C-3D-Model/Reuben-Sandwich-on-Plate
@skalnik

skalnik Mar 21, 2013

Owner

This is a 404 for me :( Looks like the right link is http://www.123dapp.com/123C-3D-Model/Reuben-Sandwich-on-Plate/599710

Also could you hard wrap this? ❤️

Owner

skalnik commented Mar 21, 2013

Could ya kill the .DS_Store file?

alexanderpine added some commits Mar 21, 2013

Contributor

amackworth commented Mar 21, 2013

I can't get rid of the .DS_Store file right now, due to the fact that I'm on a phone, and I will be for a while. I'll do it tonight.

Owner

sshirokov commented Mar 22, 2013

That Makefile won't make.

It would be easier to declare sandwich a .PHONY target, meaning it wouldn't be searched for on disk, then declaring it to be a call to make on the target you're actually trying to build, data/sandwich:

diff --git a/Makefile b/Makefile
index dcd82c8..1bee8f0 100644
--- a/Makefile
+++ b/Makefile
@@ -46,7 +46,12 @@ init:

 ## Main
 .DEFAULT_GOAL = help
-.PHONY: help init
+.PHONY: help init sandwich
+
+# Easter egg
+sandwich:
+   $(MAKE) data/sandwich

 help:
    @echo "Usage:               "

Alexander Ma... added some commits Mar 22, 2013

Contributor

amackworth commented Mar 22, 2013

Thanks for the advice. I still can't test it, for obvious reasons. (😉) However, I highly appreciate the help. Let me know if it works!

Time for a 🍞!

Owner

sshirokov commented Mar 22, 2013

There's a pseudo-valid way to test the Makefile without hardware.

If you run make data/thing and it gets as far as telling you no USB device is found then there's a good chance that it worked, so if make sandwich gets as far as slicing and reporting an error finding a USB device, it should work in the presence of a robot.

Contributor

amackworth commented Mar 23, 2013

After having to reinstall homebrew, rvm, etc. etc., I finally got it to work, and it successfully got to the stage of actually printing!

Here's the output for your enjoyment:

make data/sandwich
=> Loading submodules
git submodule update --init --recursive
=> Building deps
make -C vendor
Warning: Your Xcode (4.6) is outdated
Please install Xcode 4.6.1.
Error: avrdude-5.11.1 already installed
AVRDude already brew installed [or failed]
Warning: Your Xcode (4.6) is outdated
Please install Xcode 4.6.1.
Error: scons-2.3.0 already installed
scons already brew installed [or failed]
make grue
make[3]: Nothing to be done for `grue'.
make s3g
make[3]: Nothing to be done for `s3g'.
make -C stltwalker
make[3]: Nothing to be done for `all'.
Building gcode: At[data/sandwich.gcode] In[data/sandwich.stl]
Argument #0 name startGcode is #/dev/null
Argument #1 name endGcode is #/dev/null
Argument #2 name config is #/Users/alexander/developer/make-me/config/grue-default.config
Argument #3 name outFilename is #/Users/alexander/Developer/make-me/data/sandwich.gcode
:outlines [10%]  [20%]  [30%]  [40%]  [50%]  [60%]  [70%]  [80%]  [90%]  [100%]  [110%]  [120%]  [130%]  [140%]  [150%]  [160%]  [170%]  [180%] 2013-3-23 8:30:22
Loop Processing [10%]  [20%]  [30%]  [40%]  [50%]  [60%]  [70%]  [80%]  [90%]  [100%]  [110%]  [120%]  [130%]  [140%]  [150%]  [160%]  [170%]  [180%] 2013-3-23 8:30:22
insets [10%]  [20%]  [30%]  [40%]  [50%]  [60%]  [70%]  [80%]  [90%]  [100%]  [110%]  [120%]  [130%]  [140%]  [150%]  [160%]  [170%]  [180%] 2013-3-23 8:30:22
flat surfaces [10%]  [20%]  [30%]  [40%]  [50%]  [60%]  [70%]  [80%]  [90%]  [100%]  [110%]  [120%]  [130%]  [140%]  [150%]  [160%]  [170%]  [180%] 2013-3-23 8:30:22
roofing [10%]  [20%]  [30%]  [40%]  [50%]  [60%]  [70%]  [80%]  [90%]  [100%]  [110%]  [120%]  [130%]  [140%]  [150%]  [160%]  [170%]  [180%] 2013-3-23 8:30:22
flooring [10%]  [20%]  [30%]  [40%]  [50%]  [60%]  [70%]  [80%]  [90%]  [100%]  [110%]  [120%]  [130%]  [140%]  [150%]  [160%]  [170%]  [180%] 2013-3-23 8:30:22
infills [10%]  [20%]  [30%]  [40%]  [50%]  [60%]  [70%]  [80%]  [90%]  [100%]  [110%]  [120%]  [130%]  [140%]  [150%]  [160%]  [170%]  [180%] 2013-3-23 8:30:22
Path generation [10%]  [20%]  [30%]  [40%]  [50%]  [60%]  [70%]  [80%]  [90%]  [100%]  [110%]  [120%]  [130%]  [140%]  [150%]  [160%]  [170%]  [180%] 2013-3-23 8:30:22
gcode [10%]  [20%]  [30%]  [40%]  [50%]  [60%]  [70%]  [80%]  [90%]  [100%]  [110%]  [120%]  [130%]  [140%]  [150%]  [160%]  [170%]  [180%] 2013-3-23 8:30:22
No USB device found
make[1]: *** [data/sandwich] Error 1
rm data/sandwich.gcode
make: *** [sandwich] Error 2

It seems ready for a printer!

🍞

Owner

skalnik commented Mar 27, 2013

@alexanderpine I printed one of those sandwiches because they're awesome, and it worked properly. My only real concern is that model is really big (1 meg), so clone times will shoot up because of this. Anyway you could cut away the plate and lower the detail on the sandwich to save some space for this easter egg?

Contributor

amackworth commented Mar 27, 2013

I just deleted the plate from the model, and simplified the polygons, so now it's only 552KB rather than 1.4MB. I tried reducing it even more to 200KB, but it started looking really crappy. Hopefully this will help download times.

Owner

sshirokov commented Mar 28, 2013

I just tried to print the new model, and it didn't quite work. After removing the plate there are holes in the mesh, and when I tried to print it the result was... sub-optimal.

Could you use the original model, but of a slightly reduced quality? If it's under 1024K, then I think it's fine. It's 2013 after all.

Could you also scale the entire model by a factor of something like, 5.0-6.0? Right now the resulting physical object is very small without a large scale applied before print.

Alexander Ma... added some commits Mar 28, 2013

Alexander Mackworth Makes it all better...
Revert "Simplified sandwich model + removed plate"

This reverts commit fa32e2f.
52baea8
Alexander Mackworth reduced quality 7cbbeba
Contributor

amackworth commented Mar 29, 2013

Hopefully that worked. Had to do a bunch of git-voodoo to try and roll back. crosses fingers

I ended up resizing it by 5x, and reducing the quality to 75%, for a final tally of 1MB.

Owner

skalnik commented Apr 9, 2013

@sshirokov Did the last print of this look good? I don't remember due to recent distractions and I think we can go ahead and merge this 👍

Owner

sshirokov commented Apr 12, 2013

Looks good to me:

IMG_2419

sshirokov merged commit f69aade into make-me:master Apr 12, 2013

1 check passed

default The Travis build passed
Details
Owner

skalnik commented Apr 12, 2013

🤘 👍 ❤️

@alexanderpine You want one of these sandwiches?

Contributor

amackworth commented Apr 12, 2013

Wow! That sandwich looks delicious.

@skalnik Yes, please! I can't wait to show it off to all of my friends. Thanks so much.

❤️

amackworth deleted the unknown repository branch Apr 12, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment