This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tamiwiki:projects:drawbot [2025/10/19 22:51] – yair | tamiwiki:projects:drawbot [2025/12/16 10:11] (current) – yair | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | < | + | ====== DRAWBOT ====== |
| + | |||
| + | there are three repos needed to get this going | ||
| + | * GRBL [[https:// | ||
| + | * drawbot_LY [[https:// | ||
| + | * Universal gcode sender- this [[https:// | ||
| + | |||
| + | the above fork of GRBL has been adapted to make servo handling easier (check commits). \\ | ||
| + | there are also EEPROM kept states that need to be adapted to our machine. \\ | ||
| + | - enabling of homing sequence (the [[https:// | ||
| + | - adapting the number of steps per millimeter for x/y | ||
| + | - keeping steppers motorized '' | ||
| + | |||
| + | the drawbot Inkscape extension also got some love, with a few fixes. notably, disregarding hidden layers, addition of x/y offset control. | ||
| + | |||
| + | {{tamiwiki: | ||
| + | |||
| + | {{tamiwiki: | ||
| + | ==== links and more info ==== | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | ==== llm lols ==== | ||
| + | {{tamiwiki: | ||
| cat drawbot_skeleton.gcode | llm -m openrouter/ | cat drawbot_skeleton.gcode | llm -m openrouter/ | ||
| </ | </ | ||
| + | {{: | ||
| + | |||
| + | {{tamiwiki: | ||
| < | < | ||
| + | ; drawbot_skeleton.gcode | ||
| ;extend the following gcode to draw an orthographic view of a rubic cube | ;extend the following gcode to draw an orthographic view of a rubic cube | ||
| ; speed is F2200 | ; speed is F2200 | ||
| Line 19: | Line 49: | ||
| </ | </ | ||
| - | + | we came a long way | |
| - | old | + | |
| < | < | ||
| - | cat drawbot_skeleton.gcode | llm -s " | + | cat drawbot_skeleton.gcode | llm -m 3.5 -x - | tee drawbot_gpt35-turbo.gcode |
| - | > " | + | |
| - | To draw a Rubik' | + | |
| - | This code assumes that you'll be using a pen plotter or similar device and will draw on a 2D plane that represents | + | G1 X0 Y0 F2200 ; Move to starting position |
| - | + | G1 X60 Y0 ; Draw first square of the rubic cube | |
| - | ```gcode | + | G1 X0 Y60 ; Draw second square of the rubic cube |
| - | G21 ; Set units to millimeters | + | G1 X60 Y60 ; Draw third square of the rubic cube |
| - | G90 ; Set to absolute positioning | + | G1 X60 Y20 ; Draw fourth square of the rubic cube |
| + | G1 X60 Y40 ; Draw fifth square of the rubic cube | ||
| + | G1 X20 Y60 ; Draw sixth square of the rubic cube | ||
| + | G1 X40 Y60 ; Draw seventh square of the rubic cube | ||
| + | G1 X20 Y0 ; Draw eighth square of the rubic cube | ||
| + | G1 X40 Y0 ; Draw ninth square of the rubic cube | ||
| M5 ; Pen up | M5 ; Pen up | ||
| - | G4 P1 ; Wait 1 second | + | G4 P1 ; Wait 1 second |
| - | M3 S1000 ; Pen down | + | M2 ; End of program |
| - | G0 F2200 ; Set movement speed | + | |
| - | ; Move to start position for the isometric view | + | </ |
| - | G0 X40 Y40 ; Move to the starting point | + | |
| - | ; Draw the front face of the Rubik' | ||
| - | G1 X60 Y60 ; Move to front right corner | ||
| - | G1 X40 Y80 ; Move to top left corner | ||
| - | G1 X20 Y60 ; Move to front left corner | ||
| - | G1 X20 Y40 ; Move to bottom left corner | ||
| - | G1 X40 Y20 ; Move to bottom right corner | ||
| - | G1 X60 Y40 ; Move to front right corner | ||
| - | G1 X40 Y40 ; Move to starting point | ||
| - | ; Draw the middle layer of the Rubik' | ||
| - | G0 X50 Y50 ; Move to the middle layer starting point | ||
| - | G1 X70 Y70 ; Move to front right corner | ||
| - | G1 X50 Y90 ; Move to top left corner | ||
| - | G1 X30 Y70 ; Move to front left corner | ||
| - | G1 X30 Y50 ; Move to bottom left corner | ||
| - | G1 X50 Y30 ; Move to bottom right corner | ||
| - | G1 X70 Y50 ; Move to front right corner | ||
| - | G1 X50 Y50 ; Move to starting point | ||
| - | ; Draw the back face of the Rubik' | ||
| - | G0 X60 Y60 ; Move to the back face starting position | ||
| - | G1 X80 Y80 ; Move to back right corner | ||
| - | G1 X60 Y100 ; Move to top right corner | ||
| - | G1 X40 Y80 ; Move to back left corner | ||
| - | G1 X40 Y60 ; Move to bottom left corner | ||
| - | G1 X60 Y40 ; Move to bottom right corner | ||
| - | G1 X80 Y60 ; Move to back right corner | ||
| - | G1 X60 Y60 ; Move to starting point | ||
| - | |||
| - | ; Draw the edges connecting layers (create depth effect) | ||
| - | G1 X50 Y50 ; Move to middle layer starting point | ||
| - | G1 X40 Y40 ; Draw edge to bottom layer | ||
| - | G1 X40 Y80 ; Draw edge to top layer | ||
| - | G1 X30 Y50 ; Draw edge to furthest left layer | ||
| - | |||
| - | G1 X50 Y50 ; Return to middle layer starting point | ||
| - | G1 X60 Y60 ; Draw edge to back layer | ||
| - | G1 X45 Y55 ; Draw slightly towards the bottom right to create depth | ||
| - | |||
| - | M5 ; Pen up again to end drawing | ||
| - | G4 P1 ; Wait 1 second after pen up | ||
| - | ``` | ||
| - | |||
| - | ### Notes: | ||
| - | 1. The coordinates (`X`, `Y`) should be adjusted based on the actual size of your drawing area and the desired size of the Rubik' | ||
| - | 2. This code assumes a basic movement sequence and will plot an isometric view of the cube, but it may require further refinement or more details depending on your exact plotting capabilities and requirements. | ||
| - | 3. Adjust the `G0` and `G1` speeds according to your plotter' | ||
| - | 4. The colors of different squares cannot be represented in G-code directly; thus, this drawing is simplified. Additional coding would be needed if you were using different pen colors to represent different cube colors. | ||
| - | </ | ||