Tools to make fonts with

I’m an amatuer hobbyist typographer. The first piece of commercial software I bought with my own money was Altsys’ Fontographer. As a youngster interested in fonts, I produced a small handful of typefaces with that software. 

Many years later I found into what we now call FontForge and managed to produce a typeface or two. While the application itself is the right price (open source and free) and extremely full featured, the unix/X11 interface was new for me, so I had a learning curve to overcome to finish anything.

More recently, my interest was raised again by FontStruct. I produced several typefaces, with my most notable effort being netlabel square ends at 1104 glyphs drawn.

The iPad has opened up another opportunity to create typefaces with the reasonably priced iFontMaker. I love this app. It’s awesome. It’s so easy and fun to use.

Recently, I made a web toy to check out my fonts. Take a look! Look for the “toggle controls” button in the upper right corner.

https://sc-fa.com/fonts/portfolio.html?fontSize=16&letterSpacing=0&lineHeight=18&font=cooley%2520trampoline&anchor=

https://sc-fa.com/fonts/portfolio.html?fontSize=100&letterSpacing=-15&lineHeight=70&font=cooley%2520shapesquareendsregular&anchor=

https://sc-fa.com/fonts/portfolio.html?fontSize=100&letterSpacing=-6&lineHeight=100&font=cooley%2520robot%2520arms&anchor=#Uppercase-Words

https://sc-fa.com/fonts/portfolio.html?fontSize=44&letterSpacing=-5&lineHeight=48&font=cooley%2520cats%2520two&anchor=

https://sc-fa.com/fonts/portfolio.html?fontSize=100&letterSpacing=0&lineHeight=100&font=cooley%2520masking%2520tape%2520block&anchor=#mIxEd-CaSe-WoRdS

laser cutter design portability

I’ve had my full spectrum engineering gen5 hobby laser for about 8 months, and I’m enjoying using it. I’m not a total newb to using a laser. I had a couple months of intensive usage at Tech Shop years ago.  After that, I bought a CNC Router, and after that a 3d Printer.  I tinker with a lot of different things.

Over the years, I’ve seen a range of design files that people have shared.  For the 3d printer, typically you’d go to Thingiverse to get and share designs that you can use in your device.Thingiverse has some design files for CNC routers…   Some things make sense to share for a 2.5D personal manufacturing device.  And I guess if you’re making 2d things with the laser cutter, then of course you can share all kinds of clip art and whatnot.

A 3d printer is fairly straight forward.  The output is handled by the media you’re printing with. Your slicing software just accounts for everything and spits out machine code to do the right thing.  And things usually go well and you end up with what you were trying to end up with.

If you’re making 3d things from 2d media with the laser cutter, things get more complicated. If you pick up someone’s design on thingiverse, it’s designed for a specific thickness sheet good to cut the shapes out of.  If the design has finger joints or cross braces or is a box of any kind, it has to be designed with parts precisely cut to fit with whatever you’ve chosen to make your project out of.

Exhibit A:

The iPhone 5 stand by Kip

iPhone_5_Stand_by_Kip_-_Thingiverse-2

I like this design. A lot. It’s clean, thoughtful, and looks like it would take all of 10 minutes to cut out.  The description says it’s cut from 4mm thick plexiglass.

I guess “plexiglass” is the same thing as a sheet of acrylic.  So I’d go with a sheet of acrylic. I just went out to my garage and measured easily 20 pieces of acrylic, and NONE of them are 4mm thick.  So if I threw a 4.75mm thick sheet of acrylic onto the laser and ran this file as-is, none of the joints would fit because they’re expecting a thinner material.  So it would be a total waste of time and materials.

So, I’m here to do some wishing.

I wish there was a 3d cad program that would let me draw an abstracted design without specific thicknesses until I know what material I have in my hand that I’m going to use in my project. For the iPhone stand above, we know there are 4 pieces.  So if my wish came true, I could say “here’s the overall dimensions, this piece should have this critical angle, this edge should not be programmatically variable, but the rest of these pieces are dynamic.

iPhone_5_Stand_by_Kip_-_Thingiverse

Oh. I guess that would be a parametric cad program. Anyone ever heard of a parametric cad program aimed at designing for a laser cutter?

april 2013 works in progress

I helped kickstart Full Spectrum Laser’s 5th gen 20×12 hobby deluxe laser last year. They delivered the laser, and I tried and failed really quickly at building my own fume extractor.  I bit the bullet and purchased an industrial strength fume extractor, and now I can use the laser without polluting the air. Yay!  So: game on!

BZZZJJJJJJGSSSHH!!
Cuts so nice you gotta hear it twice.
ideas taking flight
hard to see cousin
more...
More.
More!
MOAR!!

My head is overflowing with new ideas that feed off these initial tests. All very exciting!

3dpixelcam processing 3d pixels from live video

this isn’t even full size!

Many years ago, I wrote a processing sketch to take live video and generate a 3d pixel grid, varying the height of each 3d box based on the brightness of the video pixel it was sampling. And it was good. Times have changed, and so has processing. Now it’s easier to do what I was doing then in regards to accessing the video input and controlling the 3d camera in the sketch.  There aren’t as many bells and whistles on this version as the original, but hey, it works today.

As such, you will need JMyron and Peasycam to run this sketch.

 

/*
* 3dPixelcam
* steve cooley
* http://beatseqr.com
* license for use: creative commons non-commercial attribution share-alike
* Do Not Omit This Information From Whatever You Make With It. Thanks! -steve
*/
import processing.opengl.*;
import peasy.*;
import JMyron.*;
PeasyCam cam; // a virtual, 3d camera control
JMyron m;//a physical, actual camera object
int resolution = 20;
void setup(){
size(640,480, OPENGL);
cam = new PeasyCam(this, 320.0, 240.0, 100.0, 500);
cam.setMinimumDistance(50);
cam.setMaximumDistance(2000);
m = new JMyron();//make a new instance of the object
m.start(width,height);//start a capture at 320×240
m.findGlobs(0);//disable the intelligence to speed up frame rate
println("Myron" + m.version());
rectMode(CENTER);
noStroke();
}
void draw(){
background(255);
lights();
m.update();//update the camera view
int[] img = m.image(); //get the normal image of the camera
float r,g,b;
for(int y=0;y<height;y+=resolution){ //loop through all the pixels 
 for(int x=0;x<width;x+=resolution){ //loop through all the pixels
float av = (red(img[y*width+x])+green(img[y*width+x])+blue(img[y*width+x]))/3.0;
fill(red(img[y*width+x]),green(img[y*width+x]),blue(img[y*width+x]));
pushMatrix();
translate(x,y);
//ellipse(0,0,(255-av)/8.0,(255-av)/8.0);
box(resolution,resolution,(av));
popMatrix();
}
}
}
void keyPressed(){
// m.settings();//click the window to get the settings
resolution -= 2;
if(resolution <=1)
{
resolution = 40;
}
}
public void stop(){
m.stop();//stop the object
super.stop();
}

2013-03-12 Updated to fix wp code manglation

 

3d printed artwork

Lest you think I’ve been languishing in some kind of artless state, Here are some photos of what I’ve been using my 3d printer for on the fine art front. My machine is stable, I understand how to fix it when it stops working, and I’m now using some software that’s letting me really scratch the surface of what I can do to use the 3d printers best traits, versus a laser cutter or cnc router. Pretty cool stuff. More to come.

20120721-021632.jpg

20120721-021654.jpg

20120721-021706.jpg

20120721-021747.jpg

20120721-021817.jpg

magnificent machinery

I was working on a thing on sketchpad.cc for work and, well, one thing lead to another. Click to save the frame. Close the new tab to restart the drawing.

an OpenSCAD script for 3d printing potentiometer knobs

I learned some OpenSCAD!

OpenSCAD - potknob_parametric.scad-7
OpenSCAD - potknob_parametric.scad
OpenSCAD - potknob_parametric.scad-1-1
OpenSCAD - potknob_parametric.scad-2-1
OpenSCAD - potknob_parametric.scad-3-1
OpenSCAD - potknob_parametric.scad-4
OpenSCAD - potknob_parametric.scad-5
OpenSCAD - potknob_parametric.scad-6
MeshLab v1.3.0-1
MeshLab v1.3.0-1-1
MeshLab v1.3.0-2
photo
photo

This script has a *lot* of variables you can tweak.  I don’t even feel like I’ve put everything into this script that I want to, either.

an incomplete list of parameters you can adjust:

  • knob radius
  • knob height
  • shaft hole radius
  • shaft hole height
  • set screw inclusion, radius, and location
  • flatness of shaft hole
  • rounding on top (thanks very much to http://iheartrobotics.com for the articles on edge rounding!)
  • indentations
  • directional indicators
  • plus a lot more!

About

One of the most stressful things about making multiple copies of an electronics project is reliably locating interface controls that you like. Maybe you can locate them one time, but can you locate them a year from now? two years from now? And how much do they cost?

For example, I found some slide potentiometer knobs at Mouser.com for about $0.50 apiece two years ago, and they ran out of them… forever. I tried sourcing them elsewhere, and the best I could find was a seller that had them for $4.00 apiece (!!wtf!!). So that really sucks.

One strategy is to buy in bulk. But, buy too few and you may run out and pay twice for shipping.  Buy too many and you  end up with unused knobs sitting around not making your money back. That also sucks.

Round potentiometer knobs are somewhat readily available. But still, they can be from $0.80 to $5.00 each, and if you can’t find enough for your project, that can be problematic. Mostly I’m tired of paying multiple dollars for things that should basically cost $0.25 apiece. Aesthetics are important too, so having options beyond what’s out there is nice.

A different strategy is to print them yourself as you need them.  No shipping, no running out, and you get to call the shots on how it looks and how it fits. Now, I like this way. Plus, for my project, making the knobs just goes along with the rest of the stuff I’ve done myself.

knobs

Well… some are better than others. Limited success is better than no success at all.

Download

Click here to download the parametric potentiometer knob generator OpenSCAD script.

License

Creative Commons License
parametric potentiometer knob generator by steve cooley is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Based on a work at sc-fa.com.
Permissions beyond the scope of this license may be available at https://sc-fa.com/blog/contact.