SHOW:
|
|
- or go back to the newest paste.
| 1 | local machine = {
| |
| 2 | width = 8, | |
| 3 | height = 8, | |
| 4 | depth = 8, | |
| 5 | ||
| 6 | head_pos = {
| |
| 7 | x = 0, | |
| 8 | y = 0, | |
| 9 | z = 0 | |
| 10 | }, | |
| 11 | ||
| 12 | motorz = peripheral.wrap("top"),
| |
| 13 | motorx = peripheral.wrap("left"),
| |
| 14 | motory = peripheral.wrap("back")
| |
| 15 | } | |
| 16 | rednet.open("right")
| |
| 17 | function machine.stopMotion() | |
| 18 | machine.motorz.stop() | |
| 19 | machine.motorx.stop() | |
| 20 | machine.motory.stop() | |
| 21 | end | |
| 22 | ||
| 23 | function machine.zero() | |
| 24 | sleep(machine.motorx.translate(machine.width, 256)) | |
| 25 | machine.stopMotion() | |
| 26 | sleep(machine.motory.translate(machine.depth, 256)) | |
| 27 | machine.stopMotion() | |
| 28 | sleep(machine.motorz.translate(machine.height, 256)) | |
| 29 | machine.stopMotion() | |
| 30 | machine.head_pos.x = 0 | |
| 31 | machine.head_pos.y = 0 | |
| 32 | machine.head_pos.z = 0 | |
| 33 | end | |
| 34 | ||
| 35 | function machine.setX(x) | |
| 36 | local x_difference = machine.head_pos.x - x | |
| 37 | print("Moving x by " .. x_difference .. " from " .. machine.head_pos.x.." to " ..x)
| |
| 38 | sleep(machine.motorx.translate(x_difference, 256)) | |
| 39 | machine.stopMotion() | |
| 40 | machine.head_pos.x = x | |
| 41 | end | |
| 42 | ||
| 43 | function machine.setZ(z) | |
| 44 | local z_difference = machine.head_pos.z - z | |
| 45 | print("Moving z by ".. z_difference .. " from "..machine.head_pos.z.." to "..z)
| |
| 46 | sleep(machine.motorz.translate(z_difference, 128)) | |
| 47 | machine.stopMotion() | |
| 48 | machine.head_pos.z = z | |
| 49 | end | |
| 50 | ||
| 51 | function machine.setY(y) | |
| 52 | local y_difference = machine.head_pos.y - y | |
| 53 | print("Moving y by ".. y_difference .. " from " .. machine.head_pos.y.." to " .. y)
| |
| 54 | sleep(machine.motory.translate(y_difference, 256)) | |
| 55 | machine.stopMotion() | |
| 56 | machine.head_pos.y = y | |
| 57 | end | |
| 58 | ||
| 59 | function machine.setPos(x, y, z) | |
| 60 | machine.setZ(z) | |
| 61 | sleep(0.25) | |
| 62 | machine.setX(x) | |
| 63 | sleep(0.25) | |
| 64 | machine.setY(y) | |
| 65 | end | |
| 66 | ||
| 67 | function machine.placeBlock() | |
| 68 | sleep(0.5) | |
| 69 | rednet.broadcast("place", "3dprinter")
| |
| 70 | while true do | |
| 71 | event, sender, message, protocol = os.pullEvent("rednet_message")
| |
| 72 | if protocol == "3dprinter" and message == "placed" then | |
| 73 | break | |
| 74 | end | |
| 75 | end | |
| 76 | end | |
| 77 | ||
| 78 | machine.stopMotion() | |
| 79 | machine.zero() | |
| 80 | ||
| 81 | return machine |