tylermorganwall / rayshader

R Package for 2D and 3D mapping and data visualization
https://www.rayshader.com/
2.06k stars 214 forks source link

save_3dprint argument when rotate = "false" to print on the largest base #33

Closed hansthompson closed 3 years ago

hansthompson commented 5 years ago

Since I've been playing with printing topography the past couple weeks and using your suggestion for rotate = "false" to improve resolution.

I've found that for printing coastal areas especially, the base is too narrow and creates some small wobbles as it prints up. Could we add an argument that will rotate to make the side with the highest mean or median elevations the base?

tylermorganwall commented 5 years ago

Have you tried setting soliddepth to something deeper to get a thicker base in general? That would be an easy fix and would improve the stability of the print on all axes. It's hard to determine what the "best" axis is because it can be material/3D printer dependent, and rayshader also doesn't assume a rectangular shape for 3D prints.

That being said, I will look into implementing the ability to perform multiple rotations so the user can specify which side is the base.

hansthompson commented 5 years ago

I haven't played with soliddepth yet that yet but it's worth a shot.

I aggree that the best side to use as a base probably can't be determined with a hueristic like I suggested. Having the ability to rotate in R before exporting could really be helpful because although I can do it in the stl to gcode software, it can be pretty slow when I'm putting in a massive file.

tylermorganwall commented 3 years ago

I don't think I'm going to come up with a heuristic for this—since rayshader supports non-square bases, I don't think there's any good general solution. I'd just recommend orienting the model in 3D printing software.