Skip to content
Snippets Groups Projects
Commit ad1067e3 authored by Quentin Bolsee's avatar Quentin Bolsee
Browse files

progress on CoreXY doc

parent c125ddb3
No related branches found
No related tags found
No related merge requests found
Showing
with 33 additions and 8 deletions
......@@ -14,17 +14,38 @@ Acceleration:
## CoreXY
Assembly:
For a simple coreXY motion system, here is the list of parts you need to make:
<img src=img/doc/corexy_kit.png width=100%><br>
It is advised to 3D print `capstan_motor` and `capstan_pulley`, while all other parts can be machined or laser cut. 3D models files are available under [./files/3d](./files/3d), and dxf files under [./files/2d](./files/2d).
For assembly, you will also need:
- 2x NEMA 17 motors
- 9x bearings
- 8x V bearings
- 4x small bearings
- M5 screws (structure and bearings)
- M5 nuts and washers
- M3 screws (string tensioners)
- M3 nuts and washers
Here is the main frame after assembly:
<img src=img/corexy.jpg width=100%><br>
CoreXY constant speed:
Note how the string is inserted on the capstans. The string can be attached to temporary anchor points to provide enough tension during this step. Inside `capstan_pulley`, you should insert a small bearing at the top and bottom. Use appropriate washers to have the correct height; there are 4 levels on `capstan_pulley`, and they should be aligned between each levels of `capstan_motor`.
<img src=img/capstan.jpg width=100%><br>
Here is a video of the motion at constant speed:
<img src=video/corexy_linear.mp4 width=100%><br>
Capstan:
<img src=img/capstan.jpg width=100%><br>
## Pen plotter
Pen:
......
......@@ -254,8 +254,10 @@ def parse_arguments():
help="COM port for B")
parser.add_argument("-s", default="COM24",
help="COM port for servo")
parser.add_argument("-u", "--unit_scale", default=1,
parser.add_argument("-u", "--unit_scale", type=float, default=1.0,
help="Scaling factor")
parser.add_argument("-d", "--dryrun", action="store_true",
help="Perform a dryrun")
return parser.parse_known_args()
......@@ -295,7 +297,7 @@ def main():
p1.start()
feedrate = args.feedrate
feedrate_homing = 15
feedrate_homing = 20
servo_up = ServoAction("servo", 1265, wait=0.5)
servo_down = ServoAction("servo", 800, wait=0.5)
......@@ -307,8 +309,10 @@ def main():
with open(args.filename, "r") as f:
for line in f.readlines():
if line.upper().startswith("UP"):
if not args.dryrun:
action_queue.put(servo_up)
elif line.upper().startswith("DOWN"):
if not args.dryrun:
action_queue.put(servo_down)
else:
action_queue.put(Line([float(x)*args.unit_scale for x in line.strip().split(",")], feedrate))
......
File added
File added
File added
File added
File added
File added
File added
File added
File added
File deleted
File deleted
File deleted
UrumbotXY/img/doc/bearing_plate.png

63.8 KiB

UrumbotXY/img/doc/bearing_plate2.png

47.1 KiB

UrumbotXY/img/doc/capstan_motor.png

131 KiB

UrumbotXY/img/doc/capstan_pulley.png

145 KiB

UrumbotXY/img/doc/corexy_kit.png

494 KiB

UrumbotXY/img/doc/feet.png

23.9 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment