User Tools

Site Tools


tamiwiki:projects:drawbot

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tamiwiki:projects:drawbot [2025/10/19 23:17] yairtamiwiki:projects:drawbot [2025/12/16 10:11] (current) yair
Line 1: Line 1:
-<code>+====== DRAWBOT ====== 
 + 
 +there are three repos needed to get this going 
 +  * GRBL [[https://git.telavivmakers.space/yair/grbl|git]] - the firmware running on the arduino+grbl shield 
 +  * drawbot_LY [[https://git.telavivmakers.space/yair/drawbot_LY|git]] - the Inkscape extension that converts vector to gcode 
 +  * Universal gcode sender- this [[https://universalgcodesender.com/|java app]] loads the gcode above and sends the gcode commands one by one to the Arduino over serial.  
 + 
 +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://he.aliexpress.com/item/1005005888174412.html|machine]] did not come with limit switches) 
 +  - adapting the number of steps per millimeter for x/y 
 +  - keeping steppers motorized ''$1=255'' (thanks paul) 
 + 
 +the drawbot Inkscape extension also got some love, with a few fixes. notably, disregarding hidden layers, addition of x/y offset control.  
 + 
 +{{tamiwiki:projects:video_2025-12-16_12-08-06.mp4 }}  
 + 
 +{{tamiwiki:projects:photo_2025-12-16_00-37-06.jpg?700}} 
 +==== links and more info ==== 
 +  * https://sameer.github.io/svg2gcode/ 
 +  * https://www.generativehut.com/post/ly-drawbot-a-70-pen-plotter 
 +  * https://hannahilea.com/blog/ly-drawbot-setup/#fn4 
 +  * https://he.aliexpress.com/item/1005005888174412.html 
 + 
 +==== llm lols ==== 
 +{{tamiwiki:projects:tami_draw.gcode}}<code> 
 cat drawbot_skeleton.gcode | llm -m openrouter/anthropic/claude-3.7-sonnet -x - | tee drawbot_claude37.gcode cat drawbot_skeleton.gcode | llm -m openrouter/anthropic/claude-3.7-sonnet -x - | tee drawbot_claude37.gcode
 </code> </code>
 +{{:tamiwiki:projects:pxl_20251019_225657827.jpg?400|}}
 +
 +{{tamiwiki:projects:drawbot_skeleton.gcode}}
  
 <code> <code>
 +; 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 40: Line 70:
 </code> </code>
  
-old  
  
-<code> 
-cat drawbot_skeleton.gcode | llm -s "extend this gcode to draw a rubic cube in esometric view , top left. 
-> " - 
-To draw a Rubik's Cube in an isometric view, you will need a series of G-code commands that move the pen in a specific pattern to represent the cube's edges and faces. The Rubik's Cube consists of 27 smaller cubes arranged in a 3x3x3 grid. Here is an extended G-code example to create an isometric view of a Rubik's Cube, starting in the upper left. 
  
-This code assumes that you'll be using a pen plotter or similar device and will draw on a 2D plane that represents the cube in isometric perspective.  
- 
-```gcode 
-G21 ; Set units to millimeters 
-G90 ; Set to absolute positioning 
- 
-M5 ; Pen up 
-G4 P1 ; Wait 1 second after pen up 
-M3 S1000 ; Pen down 
-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's Cube 
-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's Cube (slightly above the first face) 
-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's Cube (further back) 
-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's Cube. 
-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's performance and necessary drawing speed for better clarity. 
-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. 
-</code> 
tamiwiki/projects/drawbot.1760915853.txt.gz · Last modified: by yair