“The problem with Janeway is I cannot suspend my disbelief that she wasn’t thrown out an airlock twice an episode.”

— leyonhjelm@freespeechextremist.com

Importing Bézier curves into OpenSCAD


OpenSCAD has some fairly basic 2D drawing primitives. If you can’t draw it with circles and polygons, you have to either approximate with line segments or construct your shape with unions, intersections, differences, and scalings. Or you can import DXF files, with some limitations.

Sadly, the primary limitation is “does not support things like curves/splines”, which means that any nice curves have to be rendered to lines by the converter. Adobe Illustrator won’t even make the attempt, so most people use Inkscape for this.

However, with the most recent release, there’s a way to get high-quality curves into OpenSCAD with only a modicum of pain: custom fonts. Draw up a nice shape in Illustrator or Inkscape, save it as SVG, run it through FontForge, and then call the new text() module from your SCAD file. And you don’t even need to learn to use FontForge; you just need to download a version that has Python scripting enabled, and run a script like this:

#!/usr/bin/python
import sys
import fontforge
font = fontforge.font()
letter=65
for arg in sys.argv[1:]:
	char = font.createChar(letter)
	char.importOutlines(arg)
	letter+=1
font.familyname = "testfont"
font.generate('testfont.ttf')

Now you just need to copy the font into the same directory as your OpenSCAD file and tell it to render a letter (first SVG file is ‘A’, etc):

use ;
rotate_extrude() 
	text(text="A", size=100, font="testfont");

[Updated] In order to get the placement and sizing perfect, you should set the origin of your SVG file at (0,200) with a height of 720, in a 1000x1000 document with the unit set to pixels. It will render any SVG you throw at it, but because it’s being treated as a font, it will be aligned by the baseline and capheight parameters; no doubt a more robust script could adjust those for you. If you add a print char.boundingBox() line to the script, you’ll see how FontForge has translated your dimensions. Inkscape comes with a “FontForge Glyph” template that works well; just add a second guideline at y=920, and resize the page to match the width of your drawing before saving.

[Updated: I wrote a more robust svg2ttf script that resizes and repositions each SVG file to make them work. Character tracking is off a bit, so you want to use separate text() commands for each character, and not try to render multiple characters in one string.]

As usual, set $fs and $fa to adjust the rendering quality.

And here it is in action. The item on the left is a sake cup modeled in OpenSCAD (SCAD file). The one on the right is the same shape imported into Inkscape and tweaked inside and out. (SVG files: OpenSCAD, Inkscape)

Sakecup

Why a sake cup? Somewhere in the 120+ pages of “when do we get our Shapeoko 3’s” on the forums was a suggestion about what sort of thing to make first. Someone mentioned a common practice among 3D printer builders of making a shot glass and toasting their success (quickly, because alcohol doesn’t work well in those plastics). A typical shot glass is hard to make with a CNC mill, between the tapered sides and the depth, so I grabbed a sake cup off the shelf and knocked together a model of it. Both the top and bottom depths are possible with my 2.5-inch YG-1 ballnose end mill (getting it perfectly centered so the two sides match will require a bit of jigging…), and as long as you ignore exotic tropical hardwoods, you can drink out of it safely.

After the toast, I’ll put some sort of finish on it, most likely CA glue.

I actually did a 3D print of the original version at the office. It came out pretty nice, but the bottom was a bit rough due to the unsupported areas, which is another reason to do this sort of thing as a two-sided CNC job.

Dungeon pickup artist


The new series “Is it wrong to try to pick up girls in a dungeon?” has the look of a very predictable harem comedy. Indeed, it probably is a very predictable harem comedy. Our Hero is a typical hapless loser, who’s not only in over his head, but who almost loses it on the first level of the local dungeon until he’s rescued by the girl of his dreams, a sexy swordswoman. Over the course of the first episode, we’re also introduced to his big-sisterly advisor, his cute waitress, and his (platonic) live-in busty goddess.

After watching the first one on Crunchyroll, my quick judgement is “competent but uninspired”. For amusement, hapless loser-boy is the voice of Kirito, but Haruka Tomatsu is not voicing the sexy blonde swordswoman; she’s handling the big-sister role.

It was a pleasant enough diversion while I was on the elliptical, so I’ll likely watch the second one.

The Hugo wake-up call


"None of you seem to understand. I'm not locked in here with you. You're locked in here with me."
--- Rorschach

For the third year running, a group of people who felt that the Hugo awards for science fiction and fantasy were, shall we say, “unrepresentative of the generally popular works of the genre”, banded together and encouraged people to sign up and vote for the nominations and the awards. They even put together a suggested list of nominees.

They were mocked, belittled, libeled, and accused as a group of sharing the worst characteristics that could be identified in or attributed to any one member. A vocal group of longtime Worldcon-goers hates them with the fire of a thousand suns, and greeted their success in this year’s nominations with a promise that They Shall Not Pass. (more precisely, “I’ll vote ‘No Award’ above anyone they nominated”).

Mind you, a lot of that crowd still thinks George W. Bush stole two elections, so raging against reality is kind of their specialty.

They also have failed to think things through. For background, anyone who attended the previous year’s con or bought a supporting membership for the current year ($40) can both nominate and vote. The Worldcon community is tiny in comparison to major cons like Gencon, Dragoncon, or Comic-con, and only a small percentage of eligible voters ever vote.

The “Sad Puppies” campaigns brought a lot of longtime SF/F fans out of the woodwork, enough to significantly skew this year’s nominations towards their recommendations. In many cases, this was the direct result of people discovering for the first time that it was possible to nominate and vote for the Hugos. Worldcon is expensive, and if you weren’t in the habit of going, you’d never have known. Hell, I went to one and had no idea; they didn’t go out of their way to encourage you.

So now a lot more people know that it’s cheap and easy to participate in the Hugo awards. And unlike real politics, they can see that their votes counted. They’re likely to nominate and vote again next year, and spread the word to other formerly-unrepresented fans. A lot of the wailing and rending of garments is about the “unfairness” of organized participation by a group with a clear list of nominees, but that’s just the tip of the iceberg. They’re not an army of drones marching in lockstep to the dictates of their leaders, they’re something much worse: fans. They’ll vote for the things they like, and they like things that haven’t been winning Hugos recently.

(They also, it turns out, can vote for the location of future Worldcons. It requires a little more planning, since this year’s bids are for 2017’s con (I say Shizuoka), and the fee for voting becomes a supporting membership to that con, but if you’re going to continue nominating and voting, there’s no reason not to participate. Essentially, you pay twice as much for the first two years, and then you’re set)

Yeah, what he said


I won’t even try to excerpt Ace’s epic rant.

Dear "funny" employee,


Please do not forge scary emails from HR and accounting on April Fools Day. Nobody’s laughing.

Dash, Dash Button, and Dash API


Amazon has three new entries in the Internet of Things That Buy Other Things space. Dash is a wifi-connected magic wand that uses voice recognition and a barcode scanner to replenish your stock of household consumables. Dash Button is a wifi-connected magic button that orders a specific product when pushed. Dash Replenishment Service is an API that allows anyone to give their Internet-connected device the ability to order its own consumables.

At this time, I am not the target market for this. I buy an awful lot from Amazon, but I buy bulk consumables at the local Costco, so Dash wouldn’t do much for me. And I can’t think of any single item that I buy in bulk that would merit a dedicated Dash Button. Okay, maybe ammo.

What would be fun is a Dash Reward button, which purchased a random item from your wish list. “Hey Amazon Japan, I’ve been working out really hard this week; send me a Bluray from my ‘busty cheesecake’ list.”

If this goes on...


The latest bullying by gay activists is being led by Apple CEO Tim Cook, demonstrating once again that tolerance isn’t good enough: they demand praise. They’ll gleefully punish any photographer, baker, or florist who refuses to affirmatively support gay marriage, and now they’ve moved on to shunning an entire state for an unexceptional law that might allow photographers, bakers, and florists to escape from their angry mobs.

Maybe someone should send Tim Cook a nice White Sheet Cake.

[Update: that pizzeria in Indiana that said they (hypothetically) wouldn’t cater a gay wedding? Closed, possibly permanently, due to death threats. Extra credit to the high-school coach that solicited accomplices for arson. And of course the thousands of people who harassed them on Twitter and Yelp would be offended if you called them hate-filled intolerant bigots.

Reporter Alyssa Marino was sent out to create a fake news story, and she and her editor willfully destroyed the lives of people whose only crime was honestly answering a hypothetical question about an extremely unlikely event, while at the same time affirming that they had never discriminated against gay customers in the past and had no plans to start. Alyssa Marino is not the one being threatened by strangers around the country. She’s not the one whose livelihood was taken away from her by fear of retaliation. She’s also, apparently, without regret or shame.]

Searching for end mills on Amazon


There is a significant overlap between the categories “router bits” and “end mills”, something Amazon reflects by freely switching between the two in search results, so that it can be a bit tricky to find the exact tool you’re looking for. In almost all ways, a search that begins by drilling down (sorry) through the category path Industrial & ScientificCutting ToolsMilling ToolsEnd Mills will be far more useful than a top-level search that inevitably takes you to the Router Bits section of the Tools & Home Improvement category.

The reward for careful navigation is the ability to refine your search by almost every possible characteristic of an end mill: material, coating, overall length, end cut type, cut type, flute count, and cutting diameter. If they added shank diameter, it would be perfect.

(still don’t have my Shapeoko 3 yet, sigh; according to the last update, there was One Last Part that Finally Shipped, and once it arrived and had some finish work done, they’d start charging credit cards and shipping out product)

“Need a clue, take a clue,
 got a clue, leave a clue”