In this day and age, a pen plotter isn’t going to be doing anything *useful*, because we have better ways to draw schematics and make presentation graphics, but it can produce Algorithmic Art:

Well, granted, that’s a rather small value of Art, but it does show that the plotter can draw 10 k points using serial port hardware handshaking.

That’s one of an infinite variety of Supershapes produced by the Chiplotle `geometry.shapes.supershape()`

function:

from chiplotle import * import math plt=instantiate_plotters()[0] plt.set_origin_center() plt.write(hpgl.VS(5)) ss=geometry.shapes.supershape(3900,3900,5.3,0.4,1,1,point_count=10*1000,travel=10*2*math.pi) plt.select_pen(1) plt.write(ss) plt.select_pen(0)

The plotter uses absolute plotter units that range from (0,0) to (10365,7962). Telling the plotter to put its origin in the middle of the page makes perfect sense, because that automagically centers the figure.

Dialing the speed back to 5 cm/s works much better with the Sakura pens than the default 38.1 cm/s = 15.0 inch/s; hand-drawing pens just don’t have the flow rate for prolonged vigorous scribbling. HP was obviously on the edge of converting to metric engineering units in the early 1980s, with the HP 7475A designed before the transition and shipped afterward.

The supershape parameters:

`3900,3900`

sets the maximum coordinate value along each axis. The plot may or may not exceed that value, depending on how weird the supershape turns out, but it’s generally pretty close`5.3,0.4,1,1`

correspond to coefficients m, n1, n2, n3- By default,
`a=1`

and`b=1`

, but you can change those as you like `point_count=10*1000`

sets how many total points appear in the plot`travel=10*2*math.pi`

sets the number of complete cycles, in units of 2π

The function spits out a list of Cartesian XY coordinates, not the polar rΦ coordinates you might expect.

Slightly non-integer values, particularly for m, produce more interesting patterns. Other than that, there’s just no telling.

Use `io.view(ss)`

to get an idea of what you got, it’s *much* faster than plotting!

You may find the online superformula explorers better suited to rapid prototyping, though. There’s a list at the bottom of the Wikipedia article, although some links seem defunct.

Notice that the end of the plot doesn’t quite reach the beginning over on the far right, which is a consequence of how Python produces sequences. Adding *one more point* does the trick:

ss=geometry.shapes.supershape(3900,3900,5.3,0.4,1,1,point_count=1+10*1000,travel=10.001*2*math.pi)

I’ll try remembering that the next time around…