Freesteel Blog » 2005 » November
Monday, November 28th, 2005 at 12:33 pm - Machining
We’re off to Euromold in Frankfurt tomorrow through Saturday morning. We’ll probably be festering at the Mastercam stand with Cimco looking for things to program, and recovering from the train journey. I’m a bit under the weather at the moment, so slightly depressed. Due to a transportation error at the weekend, I was in Yorkshire yesterday afternoon and caught a lift down in a minibus with Imperial College Caving Club to central London (journey time: 6 hours), then I hopped it over to Kings Cross train station, and caught a lift up to Cambridge where I’m staying in Francis’s front living room doing a few hours of work on Publicwhip. Not only do I have a nasty sore throat, but beer and wine have been giving me a bad head for the past two weeks, so I’m going to be on the wagon while everyone else is boozing in the evenings over free dinners. Hence, I’m going to find it all a bit boring, as well as not being able to talk too much with so much hoarseness on my vocal chords.
We are hoping to see some demonstrations of the Adaptive Roughing on some machines, and also find what kinds of micro machine tools could handle it and use EMC. Maybe we’ll see Surfware’s Truemill thin. Then there’s coordinating some coding with the Danes. Sharing work across continents is a little inconvenient, but it has the great advantage that I don’t have to live in Copenhagen, and they don’t have to live in Liverpool. The variety of programming teams isn’t limited geographically, and can overcome any local inefficiency to make what is in essence a tasty salad — my salads have tomatoes from spain, raisons from California, pepper from Indonesia, and carrots from the garden, which is an awful lot of transport just to make something crunchy to eat.
Mmmm. Frankfurt, here we come. German food. Not too much in the way of fresh salads. I’m going to have to try going to bed early and skipping those creamy, sugary desserts, for my health.
The World network of patent offices has finally seen fit to post up the US Software Patent Pending 20050256604 filed by Surfware on April 22, 2005, but finally published on November 17, 2005. And there’s also US Software Patent Pending 20050246052, filed March 2, 2005, and published November 3, 2005, which looks about the same. I can’t see the images on it because the US Patent Office website is shit — yes, shit — in that the scans of the documents only appear in Quicktime(tm) format, which is designed for motion pictures and doesn’t work in most browsers. They do not want people to actually see these patents, while at the same time being able to blame them for not having looked at them.
Luckily, the European Patent Office isn’t quite so superficially evil, and we can see the images at US2005256604, one page at a time. The document reports that it’s based on a provisional application filed on April 29, 2004 and kept secret (Martin made inquiries to the Patent office and got no information, whilst Surfware has been putting about the words “patent pending” on their website for over a year).
I suppose this means they think they can claim ownership on something 18 months before they actually told anyone what it was! And now I have ruined any chance of plausible deniability by looking at it. The consequences of knowing infringement are more severe than accidental infringement — at least since three weeks ago, two years into our work on a similar algorithm.
Never mind. It’s not meant to be fair, only to look fair through the eyes of the official narrative.
Luckily, we have two things in our favour. (a) Our algorithm is completely different, even though it solves the same problem — although when did that ever deter frivilous legal threats? Lawyers know how to create smoke that makes most people think there must be a fire. (b) The European Parliament overwhelmingly voted against authorizing Software Patents in the EU on 6 July 2005, which somewhat stemmed the tide.
One can but hope that this Surfware software patent is only a marketing exercise, playing on the public’s or investor’s gullibility that a software patent is worth something, rather than a mere waste of time that would have been better spent programming some more.
Still, the algorithm is nice, and I’ll have to read it up in this form, though it would have been pleasanter if it were written up as a sort of “Machining Gems” article designed to explain to people how it works, rather than as a lawyer-ready claim of property.
The inventors of the “Engagement milling” patent are listed as:
Glenn Coleman (Vice President of Surfware), Alan Diehl (CEO of Surfware), and Robert B. Patterson (from Bellevue, Washington) who might have actually come up with the idea and done the work, and is probably not this guy. Hello whoever you are. It would be nice to hear from a fellow soul in this field, rather than only from the capitalists whom we foolishly allow our work to be exclusively owned by as they profitably divide our profession into infinitesimal fragments when we should be working together like the Linux team do.
Remember: This is Business. It’s not progress.
The picture is the results so far. The nasty bits in the toolpath are disconnected fragments rather than glitches, which is good. That means they can be filtered out. Glitches are spikes in the toolpath, which makes them far harder to deal with. I think I can remember it being this way in Machining Strategist or Depocam, but I did my best to forget about it.
The const scallop algorithm has reached a point where I need a break. Surprisingly, the development of it, with all the fragmentary cases and fiddly bits, felt as though it was going down all the same paths as before. There are millions of little precision values that can make or break the result. It feels like I could teach it to someone as a lecture course over 8 hours. About the same as for classical group representation theory, only a lot less intellectually enlightening.
Maybe that’s an exaggeration. Teaching software is not like doing mathematics. You don’t have to write the code for the students in the same way as you have to write mathematical proofs.
Anyhow, the bulk of it seems done now, although it’s not the fastest implementation on the planet. I think I’ve run through all the important components of the algorithm in a week rather than the month it took the first time.
Work to do:
- Ensure all glitches are removed.
- Make it run with proper cutter location, rather than simply locating a ball nosed cutter against the points on. (I’ll have to rely on Cimco’s proprietary code until I find a reason for wasting my own time on a potentially public version).
- Make it faster. This is always going to be the demand. But it is not worth doing until there are no glitches. The right answer slow ought to be better than the wrong answer fast.
So it’s time for a break from this. I should get back to some of the real stuff instead of this repeat work. By that I mean the adaptive machining. Having gone into this depth, I can conclusively say that the traditional const scallop machining algorithm is not the way forward. There’s got to be a better theory.
Friday, November 18th, 2005 at 11:43 am - Whipping
We moved the freesteel website to a new server. The old server was in fact a so called ‘virtual server’, where a physical computer is running several installments of Linux, each behaving as if they are real computers. The new one is a real computer, standing somewhere on a rack in London.
A week of hacking later, I am so tired of this. Absolutely mindbogglingly fed up. I truly had forgotten how hard and awful this algorithm was to get functioning. The memories keep getting sparked off as I am doing it.
A large amount of the work happens in the vertical areas, where it becomes difficult to tell what’s inside and out, hence you get all these spikes. The game is to find ways to filter them out without accidentally filtering out toolpath that you want to keep.
As usual, with every approach, there are flaws in the way I am doing it. However, since the flaws are challenged in a way that means the program has to deal with them face forward, rather than avoided, there’s a chance they may all be handled.
Work on the constant stepover (aka scallop) machining is proceding at a pace. For the fourth time in my life. This really is the last time I ever intend to program this algorithm. I’d sworn never to do it again before, but here I am. This time, however, I am not an employee, and have managed to retain a stake in its copyright with the option of bringing it out into the open source environment in the fullness of time. So then nobody need ever suffer it again, if I get it right. That’s what’s motivating me through this ordeal — the idea that the software could stand for the next ten thousand years without getting lost during some corporate manoeuvre.
My first three versions were written while I was in NCGraphics. It started sometime around 1996 while I still worked in the office near Cambridge. The first attempt went horribly wrong because I was trying to offset the contours linear piecewise along the cutter location surface, and the results got folded and kinked in a way that I could not eliminate. The problem was due to the fact that short paths between the same two points on the cutter location surface could have radically different lengths. I had to delete four months of programming work in its entirety, and literally cried over all those wasted hours in that horrible office overlooking the A10, when I might as well have spent it on the beach in New Zealand.
Then I wrote a functioning version during the following year based on the trimming of meshes or weaves, which is a technique of area modelling rather than contour modelling.
I moved to Liverpool at the end of 1997 with Becka and worked away from the office, and had to start the third version at the beginning of the year 2000, since the old code was no longer up to the demands being made on it — fine detailing and smoothing of rest area detection boundaries.
At that time, Becka had her first sabatical and we had relocated to New Zealand for three months to take advantage of it. The theory behind this third scalloping routine appeared sound, but then it began to show failures. The boss was particularly annoyed because they were gearing up for a release, and I had slipped out for a two week diving tour of the North Island, as you do when you are in New Zealand. Occasionally, I had the pleasure of picking up an angry email from him at an internet cafe showing me a screen-shot of screwed-up toolpaths.
When we got back to Dunedin I had to put in one month of ten to twelve hour days retrofitting some kind of adaptive subdividing feature into the algorithm, and debugging all the horrible consequences that this entailed while the whole of New Zealand was outside my window. I can’t decide which is worse, that or overlooking the A10 Trunk Road when you have to get some work done.
So here I am doing it again. It’s 2005. I’m much wiser. The code is different. There are some very new ideas in it. The subdividing of the weave meshes is central to the design, rather than put in as an afterthought. We’ll see where it takes me this time.
Tuesday, November 1st, 2005 at 1:18 am - Whipping
Had one guy up from London learning the tricks, and invited Si from Cambridge as well. Both arrived Thursday late night. I had other friends, cavers, who were meant to be staying that night too, but they cancelled at the last minute because the ferry they were going to catch from Hollyhead was cancelled.
Si quit smoking when he came up, so was cold Turkey the whole time, groaning. Not even wearing a leather trilby seemed to help. On Friday night we went to Bill Hicks: A Slight Return over at the Unity Theatre. He does a lot of jokes about how good smoking is, especially since he died of pancreas cancer.
We did plenty of coding of the scraper and some of the parser, towards structuring the new Today in Parliament pages. Also had a little look at the publicwhip pages, until I took a break. Francis was supposed to come up to, but had cancelled because he was too preoccupied.
We’ve got our new seagrass server up. seagrass.goatchurch.org.uk Soon we should me relocating freesteel to that place.
We should have working visitors in Liverpool more often.
Martin is away, so I’m feeding his cat. It’s also getting towards bonfire night, so I have to lock the cat in when it’s dark and the fireworks are exploding. The cat was unimpressed and kept bashing against the catflap.