From 0b8664213b9e242b7c1ebdbcc18a1b1a4fc6ef70 Mon Sep 17 00:00:00 2001 From: strawdog <1618555+str4w@users.noreply.github.com> Date: Mon, 23 Oct 2023 07:32:37 -0400 Subject: [PATCH 1/8] Writing instructions --- README.md | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 81db62a..a369c66 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,75 @@ # DrawingMachines -Code and instructions for operating the drawing machines at Foulab, mainly the plotters. +This repository contains code and instructions for operating the drawing machines at Foulab, mainly the plotters. + + +## Long instructions are boring, I want to plot something + +- Plot a precreated file + - On a modern linux, git clone this repo + - Probe the plotter + - Load paper and pen + - Run the test and plot the test file +- Create a file and plot it + - Run this notebook, download the resulting file + - Plot the resulting file + +Rejoice, you have plotted a drawing! + +## Driving the plotter + +The plotter understands HPGL, and it has to be fed this HPGL over a serial port. You can probably achieve this with most serial port communication programs, but a piece of software especially useful for this is Chiplotle. + +Create a python3 virtual environment, and pip install Chiplotle3 (note that pip can also find the chiplotle package, but that is python 2 only) + +Testing + +Loading paper + +Choosing paper + +Choosing pens + +## Making HPGL + +A HPGL file for a specific drawing is plotter specific. The software vpype can be used to generate it, but it needs a configuration file specific to your plotter. You can get this file here. + +Most plotters support 5-8 different pens. In general, registration is good so long as the paper is left in place, so an alternative method of changing pens is to just send separate drawing files. + +Plot requests outside the paper area will be ignored by the plotter – performing this geometric trimming is quite slow, so it is best not to rely on it, but it is a nice safety feature. + +The efficiency of carrying out a plot is related to the geometric instructions given to the plotter. For example, if it is instructed to jump repeatedly from one side of the paper to the other, this will make the plot slower, than if the lines are organized to minimized pen movement. + +Remember this is a physical drawing. You may wish to consider ink and pen effects – e.g. the point where the pen started and ended is often slightly visible. If drawing many circles, and they all start from the same angle, this will be apparent in the final drawing. These effects may or may not be desirable depending on your artistic goal. + +Vpype can be used to draw directly, but this is a bit clunky. It also reads SVG as input. + +## Basic SVG manipulation - VPYPE + +Vpype can be used to perform various simple manipulations which can be used to prepare a file for plotting. These include + +### Sizing +### Layer manipulation +### Framing +### Adding text +### Assembling a page +### Optimizing plot paths + +## Other SVG tools + +### Inkscape + +### Shapely + +### Processing + +## Plotter art – Case studies + +### A postcard, including text + +### Some geometry + +### A map + +### Rendering images 1: Simple Shading + +### Rendering images 2: Single line drawings (TSP) From db9a55249ab617782893ce0bdce9cca62750dbaf Mon Sep 17 00:00:00 2001 From: str4w <1618555+str4w@users.noreply.github.com> Date: Mon, 30 Oct 2023 21:16:42 -0400 Subject: [PATCH 2/8] The config for the large plotter at Foulab --- plotter_configs/hp7595.toml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 plotter_configs/hp7595.toml diff --git a/plotter_configs/hp7595.toml b/plotter_configs/hp7595.toml new file mode 100644 index 0000000..e5ed5b3 --- /dev/null +++ b/plotter_configs/hp7595.toml @@ -0,0 +1,22 @@ + +######################################################################################################################## +# HPGL output devices +######################################################################################################################## + +[device.hp7595a] +name = "hp7595a" +plotter_unit_length = "0.02488mm" +pen_count = 8 + +[[device.hp7595a.paper]] +name = "letter" +aka_names = ["Letter"] +info = "Letter mode is assumed landscape" +paper_size = ["11in", "8.5in"] +x_range = [-4844, 4844] +y_range = [-3177, 3177] +y_axis_up = true +origin_location = ["5.5in", "4.25in"] +final_pu_params = "0,0" +set_ps = 4 + From b06d88a01d78e62b9a62e0279b384e1c60707bbd Mon Sep 17 00:00:00 2001 From: str4w <1618555+str4w@users.noreply.github.com> Date: Mon, 6 Nov 2023 20:52:08 -0500 Subject: [PATCH 3/8] WIP --- README.md | 29 ++++++++++++++++++++++++++++- build_environment.sh | 24 ++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100755 build_environment.sh diff --git a/README.md b/README.md index a369c66..dc8165f 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,36 @@ This repository contains code and instructions for operating the drawing machine ## Long instructions are boring, I want to plot something +- Prequisite + - A working python 3. Can be a conda, or a system python. + - Plot a precreated file - - On a modern linux, git clone this repo + - Linux + - check if you are in the dialout group + ``` + groups + ``` + - if dialout is not listed, add it with + ``` + sudo usermod -a -G dialout user + ``` + logout login may be required + - git clone this repo + ``` + git clone git@github.com:FOULAB/DrawingMachines.git + ``` + - Build an environment with the necessary code + ``` + ./build_environment.sh + ``` + - Activate this environment + ``` + . environment_name/bin/activate + ``` - Probe the plotter + ``` + python + ``` - Load paper and pen - Run the test and plot the test file - Create a file and plot it diff --git a/build_environment.sh b/build_environment.sh new file mode 100755 index 0000000..67e73bb --- /dev/null +++ b/build_environment.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -e +if [[ -z "$1" ]] +then + echo "Usage: build_environment.sh environment_name" + echo "Expects to find a workable python3 as 'python'" + exit 1 +elif [[ -e "$1" ]] +then + read -p "$1 exists, delete it? " -n 1 -r + echo # (optional) move to a new line + if [[ $REPLY =~ ^[Yy]$ ]] + then + rm -rf "$1" + else + echo "Not creating env" + exit 1 + fi +fi + +python -m venv "$1" +. "$1"/bin/activate +pip install --upgrade pip +pip install Chiplotle3 vpype vpype-ttf From 33eec0e842dc5f48067911e05d3b03b8572caa5d Mon Sep 17 00:00:00 2001 From: strawdog <1618555+str4w@users.noreply.github.com> Date: Tue, 7 Nov 2023 07:58:09 -0500 Subject: [PATCH 4/8] Update build_environment.sh --- build_environment.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build_environment.sh b/build_environment.sh index 67e73bb..1570615 100755 --- a/build_environment.sh +++ b/build_environment.sh @@ -21,4 +21,5 @@ fi python -m venv "$1" . "$1"/bin/activate pip install --upgrade pip -pip install Chiplotle3 vpype vpype-ttf +# once PR merged and pip uploaded can replace git below with just Chiplotle3 +pip install git+https://github.com/str4w/chiplotle3.git vpype vpype-ttf From 25b2a7c7f072017854fbcba0635ff6a6bee807cc Mon Sep 17 00:00:00 2001 From: str4w <1618555+str4w@users.noreply.github.com> Date: Sun, 12 Nov 2023 09:01:06 -0500 Subject: [PATCH 5/8] Cantarell font, thin form --- fonts/Cantarell-Thin.readme | 3 +++ fonts/Cantarell-Thin.ttf | Bin 0 -> 163444 bytes 2 files changed, 3 insertions(+) create mode 100644 fonts/Cantarell-Thin.readme create mode 100644 fonts/Cantarell-Thin.ttf diff --git a/fonts/Cantarell-Thin.readme b/fonts/Cantarell-Thin.readme new file mode 100644 index 0000000..b37262e --- /dev/null +++ b/fonts/Cantarell-Thin.readme @@ -0,0 +1,3 @@ +Original download somehow vanished from the web and only distributed as variable now. +Font family designer and license https://cantarell.gnome.org/#download + diff --git a/fonts/Cantarell-Thin.ttf b/fonts/Cantarell-Thin.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c8f883e5065106e94dc1c0b6943715b26d0a6111 GIT binary patch literal 163444 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%0Dk0&F&VQpU&Qmq{685hBFFo=GaKFeU(n|S!L�_^VlH!|n9FRtWeIHn?>_U1)4cx%V@ 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 OmprO@q0>@TFZ~}sbGxnp literal 0 HcmV?d00001 From ae4ab7af9c8feddc7a820a81bb83919b0bd4d122 Mon Sep 17 00:00:00 2001 From: str4w <1618555+str4w@users.noreply.github.com> Date: Thu, 23 Nov 2023 18:59:22 -0500 Subject: [PATCH 6/8] Ruperts home plotter --- plotter_configs/dxy885.toml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 plotter_configs/dxy885.toml diff --git a/plotter_configs/dxy885.toml b/plotter_configs/dxy885.toml new file mode 100644 index 0000000..b0862e4 --- /dev/null +++ b/plotter_configs/dxy885.toml @@ -0,0 +1,29 @@ +[device.dxy885] +name = "Roland DXY-885" +plotter_unit_length = "0.02489mm" +pen_count = 8 + +[[device.dxy885.paper]] +name = "b" +aka_names = ["tabloid", "ansi_b"] +info = "The switch must be in ansi mode. The drawing offset is from bottom left." +paper_size = ["17in", "258mm"] +x_range = [0, 16640] +y_range = [0, 10365] +y_axis_up = true +origin_location = ["0mm", "0mm"] +origin_location_reference = "botleft" +final_pu_params = "16000,10000" + +[[device.dxy885.paper]] +name = "a3" +aka_names = ["A3"] +info = "The switch must be in iso mode. The drawing offset is from bottom left." +paper_size = ["420mm", "297mm"] +x_range = [0, 16800] +y_range = [0, 11880] +y_axis_up = true +origin_location = ["0mm", "0mm"] +origin_location_reference = "botleft" +final_pu_params = "1r67000,11000" + From 192bfbab21647613950a51fb1944618a6d497d4c Mon Sep 17 00:00:00 2001 From: str4w <1618555+str4w@users.noreply.github.com> Date: Thu, 23 Nov 2023 18:59:33 -0500 Subject: [PATCH 7/8] Update docs --- README.md | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index dc8165f..7413c7c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,9 @@ This repository contains code and instructions for operating the drawing machines at Foulab, mainly the plotters. -## Long instructions are boring, I want to plot something +# TL;DR + +Long instructions are boring, and my attention span is short. I want to plot something right now. - Prequisite - A working python 3. Can be a conda, or a system python. @@ -22,25 +24,41 @@ This repository contains code and instructions for operating the drawing machine ``` git clone git@github.com:FOULAB/DrawingMachines.git ``` - - Build an environment with the necessary code + - Build a python environment with the necessary code ``` ./build_environment.sh ``` - Activate this environment ``` - . environment_name/bin/activate + . /bin/activate ``` + - Connect the plotter + + Most plotters are driven over serial, using an interface wired in a nonstandard way. For the large HP at Foulab, this is prepared for you. + + INSERT PHOTOGRAPH + - Probe the plotter ``` - python + chiplotle3 ``` - Load paper and pen + + INSERT PHOTOGRAPHS + - Run the test and plot the test file + ``` + plot_hpgl_file + ``` + - Rejoice, you have plotted a drawing! - Create a file and plot it - Run this notebook, download the resulting file - Plot the resulting file + - Rejoice more, you have algorithmically created, and then plotted a drawing! + +# Detailed Discussion -Rejoice, you have plotted a drawing! +In the following discussion, we will work from closest to the paper to greater and greater levels of abs ## Driving the plotter From 24d863f4de73d4a861380d2796c507ab4a2a0f05 Mon Sep 17 00:00:00 2001 From: 0x5c Date: Sun, 26 May 2024 11:11:56 -0400 Subject: [PATCH 8/8] Switch the chipotle3 url back to upstream The PR has been merged by upstream --- build_environment.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build_environment.sh b/build_environment.sh index 1570615..3f3d101 100755 --- a/build_environment.sh +++ b/build_environment.sh @@ -21,5 +21,4 @@ fi python -m venv "$1" . "$1"/bin/activate pip install --upgrade pip -# once PR merged and pip uploaded can replace git below with just Chiplotle3 -pip install git+https://github.com/str4w/chiplotle3.git vpype vpype-ttf +pip install git+https://github.com/cyprienh/chiplotle3.git vpype vpype-ttf