Freesteel » Machining

Monday, November 23rd, 2009 at 12:21 am - - Machining 8 Comments »

Horrors! This happened in our shiny CAM system when demoed in front of a customer. Everything was performing swimmingly slick and faster than anyone had seen, until this buggered-up boundary appeared, and the customer decided he liked his old CAM system better because it gave smoother, more consistent results.

wobbly

(more…)

Wednesday, November 4th, 2009 at 7:48 pm - - Vero

Vero reported the conclusion of its 2 November 2009 General Meeting thus:

The The[sic] Board of Vero Software plc (AIM: VERO) announces that following a General Meeting of the Company held today at 10:00 a.m. at the Company’s offices, the Resolution set out in the Circular sent to Shareholders on 15 October 2009, has been duly passed.

What? They don’t even say how many people showed up? Did they have a debate? Was the vote unanimous? How about the minutes of the previous meeting? Were they read and agreed to?

What was their last General Meeting?
(more…)

Thursday, October 29th, 2009 at 12:43 pm - - Vero

More entertaining financial farting going on at Vero which, in my opinion, is socially and productively useless — as is practically everything that is currently part of our godforsaken corporate financial structure.

Let’s start with some tedious biased history gleaned from 5 years of company annual reports…

(more…)

Monday, October 12th, 2009 at 5:09 am - - Cave, Machining 6 Comments »

Two days of hard coding on Tunnel Cave Drawer for this piece of crap! The orange tinsel bit on the right going down to the silver hammerhead shark shape is supposed to be Razor Dance.

java3dtunnel

Back in 1998 when I began this godforsaken Java project, it was to do caves in 3D by modeling by their passage cross-sections joined into tubes, but after a lot of work I concluded that the necessary data wasn’t going to be collected by surveyors who weren’t thinking like CAD designers.

(more…)

Thursday, October 1st, 2009 at 9:35 am - - Vero 2 Comments »

This is a follow-on from Financial nonsense at Vero.

The line Noble Enterprise VCT has dropped out of the table. Searching for this name on google returns a Foresight VCT webpage, which says:

In the late 1990′s, during the Technology “Bubble”,[sic] Foresight significantly outperformed the wider technology market and generated returns that made it the leading VCT Manager. It has continued to prove itself more recently by having been awarded three existing VCT mandates from other managers. It is testament to Foresight’s standing within the industry that in 2004 it was offered the mandate to take over the management of two Advent VCT funds, subsequently rebranded Foresight 3 and Foresight 4 VCT and the Noble/Enterprise VCT, subsequently rebranded Foresight 3 ‘C’.

So it appears that some paper is being shuffled around.

But what the heck are these VCT’s anyway?

According to this 2004 BBC article, VCT investments receive an almost matching tax-payer subsidy:

In order to encourage investment in these companies, VCTs were designed with generous tax breaks.

Investors receive an upfront 40% tax relief.

In other words if you put £10,000 in, this could only cost you £6,000 by the time you have had your tax rebate.

And the tax free boost doesn’t stop there.

Any capital gain or dividend paid from the VCT is also completely free of tax.

A 2005 article published by everyinvestor decrying the reduction of this tax break to 30%, explains the money-making potentials:

How a loser can still be profitable … [S]ince a £1 share actually costs you 60p, the managers can make a lot of mistakes before they lose 40% of your money. In other words, you only need a very modest rate of return on the investments to come out with a healthy return thanks to the tax break. Say the £1 share is still only worth £1 after five years. Since it cost you 60p, you have actually made an annual return of 10%, which is of course net of tax. Even if the shares were worth under £1 you could still be making a reasonable profit on your real net investment.

The same article adds at the bottom:

(more…)

Tuesday, September 29th, 2009 at 5:06 pm - - Machining 3 Comments »

Things are moving fast over in America-land, with the now litigation-free Celeritive Volumill being licensed into Gibbscam:

“VoluMill is the first third-party product that my resellers are talking about and asking for,” says Bill Gibbs, founder of Gibbs and Associates. “Early Gibbs users are raving about the impact VoluMill is having on their operating costs. The VoluMill option will become part of Gibbs’ standard offering and will be promoted, shown and demonstrated at trade shows and in webinars.”

Everyone is excited about this new thing. As they explain in their video exhibiting their new three-axis rest roughing capability:

“Volumill begins by roughing the core using the maximum depth of cut of 0.5. It then reduces these steps to the final step height of 0.1. Volumill is unique in that it doesn’t simply machine the entire part in 0.1 increments.”

Well, they can call it unique if they like, but it’s a lie, because we’ve had it since 2005.

Details, details.

I find this traditional corporate style literature astoundingly irritating, the way everyone has to pretend theirs is the only product in the world. No other thing exists.

It makes it difficult to compete and improve by competition. How are customers supposed to assemble the information and compare their options, when the only stuff that’s ever published is this nonsense?

I’m still searching in vain for the alleged volumill patent filing. Any tip-offs? Like an application number?

Meanwhile, we’ve got some toolpath examples from Mastercam’s Dynamic Milling. I’ll be examining them in techno-geometric detail at some point soon when I’ve got the inclination. When I get some Volumill toolpath samples, I’ll be able to study and report on them as well.

Monday, September 28th, 2009 at 11:41 am - - Vero 2 Comments »

The Freesteel blog has a history of being interested in the Vero Software company, among others.

Here is an unusually interesting Vero Software 17 September 2009 press release:

The Board of Vero notes the recent movement in the Company’s share price. The Company has received a provisional approach from a financial institution that may or may not lead to an offer being made for the Company. Discussions are at a very early stage and there can be no certainty that an offer will be forthcoming.

In accordance with Rule 2.10 of the City Code on Takeovers and Mergers, the Company confirms that it has 37,261,166 Ordinary Shares of 0.5p each in issue and admitted to trading on the London Stock Exchange under UK ISIN code GB0002678273

Here’s what that looks like:

veroshareprice

The daily breakdown in volume is 173,907 at £14.50 on 15 September, 366,264 at £20.50 on 16 September, and 164,969 at £18.25 on 17 September from the News Analysis tab on the London Stock Market page linked to from here.

I don’t know exactly what the numbers mean (being a mere software engineer), but it looks like a blip, particularly in light of the following press release:

NOTIFICATION OF MAJOR INTERESTS IN SHARES

Full name of person(s) subject to the notification obligation (iii): Foresight 3 VCT plc
Date of the transaction: 16 September 2009
Date on which issuer notified: 17 September 2009
Threshold(s) that is/are crossed or reached: 3%

This information hasn’t yet been entered into the table here:

Shareholder Ordinary 0.5 pence shares % of issued share capital
P. Gyllenhammar 8,253,722 22.2
D. A. Babbs 4,903,380 13.2
E. Galardo 3,440,474 9.2
Artemis AIM VCT plc 2,325,582 6.2
Baronsmead VCT 2 plc 2,325,582 6.2
Baronsmead VCT plc 1,600,000 4.3
Baronsmead VCT 3 plc 1,395,349 3.7
Noble Enterprise VCT 1,330,233 3.6
M. Cignetti 1,259,866 3.4

Now that I have archived it, when they update the webpage it’ll be possible to infer who sold the shares to Foresight. Later in the year, if I stay on this story, Foresight may disclose how much they paid for Vero stock in one of their brochures.

Speaking as a mere Software Engineer, I know that the further you get away from the coal face, as it were, the less you know. The Vero management — according to their website materials — lead you to believe that they have an extremely limited interest in the software engineering (all they ever talk about is financial engineering).

The VCT investors, being even further from the centre of activity, almost certainly know nothing about the state of the software development of the company. And there’s nowhere they’ll find the information out because the financial structuring is entirely walled off from the actuality.

When you know nothing, all you can do is follow others. A good lot to track are the company directors, as they ought to know a thing or two about the value:

verodirectordealings

As you can see, the company poured a load of shares into the pockets of the directors in 2004, and they haven’t sold them yet. Either they have confidence in the company, or they are not selling to prevent others losing confidence.

If I had time to go through all their Annual Accounts again, I’d be able to tell whether any of the programmers have been given shares. (I don’t think so.)

The programmers are going to know if they are being beaten on features by their competitors, or whether they have just thought of a brilliant killer feature, so they buy some shares in advance because they know their work is going to make the company a lot more valuable, they hope.

Somehow I don’t find that story very convincing, even as an idealistic argument.

As has been demonstrated conclusively over the last few years, the whole financial engineering methodology in the western world is bunk. It has resulted in a severely damaging misallocation of wealth away from places where it could result in a lot of value being created, and towards socially useless activities.

In the Vero company, the distinction between such activities is stark. Value (for everyone concerned) is created by the debugging and improving of the software which they sell and is widely used, whilst farting around with share dealings and corporate technicalities (though probably much harder to do), is arguably totally useless.

Unfortunately, you can get a lot more power and money by focussing all your efforts on the latter while virtually ignoring the former.

There hasn’t been a much public debate as to why the financial system doesn’t work — according to the way it diverts resources away from where it is useful. I am not interested in moralistic ideological arguments about ownership rights, freely entered into contracts, capitalist libertarian theory and related bollocks. The question is, does it actually perform well? Can we introduce rules and regulation so that the results are not so self-evidently poor?

Often the diagnosis of the problem centres on the presence of conflicts of interest. Brutal transparency is the current prescription, tried only when the corporate-owned government is broke and can no longer treat the symptoms with bail-out money.

But I don’t think that’s the full story.

I think the root cause of the problem is that those who disburse the money have no knowledge and no information about the businesses they are investing in. This makes their decisions easy to cheat on the one hand. And on the other — when they are not being cheated — likely to be based on bollocks. They may as well be picking lottery numbers.

But, you say, people don’t have time to check out every company they invest in to the detail necessary. It’s too complicated and fast moving. And they have no right to speak to the employees directly.

And I say, Exactly.

Perhaps it’s a consequence of the extreme concentration of wealth today. The few who have control of most of the wealth don’t have any time to consider where they are putting the money. So it gets done poorly and with little concern for the effect.

And the people who do know how stuff work — for example, the employees in the businesses — are not at any time represented in the market place.

So why is anyone surprised when there is so much systematic misallocation of wealth?

Thursday, September 10th, 2009 at 11:34 am - - Machining

This is a follow-on from the Diamond Angle article about useful encoding of plane angles without trigonometry.

The same trick can be applied to 3D vectors using a regular octahedron instead of a diamond.

The corners of the regular octahedron are:

  { (1, 0, 0), (-1, 0, 0), (0, 1, 0), (0, -1, 0), (0, 0, 1), (0, 0, -1) }

Another way of writing it that shows off how rubbish mathematical notation can be sometimes is:

  { (x, y, z) | x, y, z in {-1, 0, 1} where 2 of the values are 0 }

The corners of the cube, on the other hand, can be expressed as:

  { (x, y, z) | x, y, z in {-1, 1} }

Let’s start with the conventional angular encoding of a vector into latitude and longitude:

def RadianPolarAngle(x, y, z)
    r = sqrt(x*x + y*y)
    return (atan2(x, y), atan2(r, z))

This is obviously decoded by:

    (x, y, z) = (sin(a)*sin(b), cos(a)*sin(b), cos(b))

The ranges for the two encoding angles are 0 < a < 360 and 0 < b < 180, but the disadvantages include the use of slow trigonometry, and the existence of two poles where the encoding density is high.

An uneven density means an unnecessary loss of precision:

Suppose I encode this pair of values into two bytes (16 bits) by rescaling them like so:

   int(a/360*256) * 256 + int(b/180) *256

Then the directions near b=0 and b=180 will be preserved far more accurately than the directions near b=90. This represents an inefficient waste of my small and finite number of encoding values.

Here is a picture of the point distribution stepping every 5 degrees:

trigoctoarg

The three blue lines are the x, y, and z (pointing up) axes.

The slow trig functions problem can easily be solved by substituting DiamondAngle in place of atan2 so that 0 < a < 4 and 0 < b < 2. This gives a picture like so:

diamoctoarg diamoctoargn

The right hand picture plots the vectors without normalization so you can see how they lie on the surface of an octahedron. But looking at the left hand picture, you can see a very slight higher density in line with the x and y axes (due to the DiamongArg encoding), as well as the very high density near the points (0,0,1) and (0,0,-1) axis.

A better solution is to extend the concept of the DiamondAngle to the OctahedronAngle by breaking the 3D direction into octants (rather than quadrants) and encoding the intersection with the triangle spanning the relevant octant.

We can number the octants between 0 and 7 like so:

    octantnumber(x, y, z) = (x > 0 ? 0 : 1) + (y > 0 ? 0 : 2) + (z < 0 ? 0 : 4)

and then, given x, y, z > 0, we can encode the vector’s intersection with the triangle spanning the octant:

    triangle[ (1,0,0), (0,1,0), (0, 0, 1) ]

like so:

    (a, b) = ( x/(x+y+z), y(x+y+z) )

where a, b, > 0 and a + b < 1

The inverse function (subject to normalization) is:

   (x, y, z) = (a, b, 1 - a - b)

So, the first version of our encoding is obvious: We can encode the number of the octant in 3 bits, and the direction within the chosen octant with two positive values whose sum is less than 1.

But we can make this more compact.

There are 8 such right-angled triangles in the square defined by -1 < a, b < 1, so we could use the number of the triangle to number the octant:

    trianglenumber(a, b) = (x > 0 ? 0 : 1) + (y > 0 ? 2 : -2) + (abs(a) + abs(b) < 1 ? 0 : 4)

and substituting a valid range for a and b like so:

    (a, b) = (abs(a) + abs(b) < 1 ? (abs(a), abs(b)) : (1 – abs(a), 1 – abs(b)) )

What we are working towards here is a wrapping of the 2×2 square onto the octahedron, and trying to have the same effect we wrapped the line segment [0, 4] around the diamond.

octagonanglearg2

But can we make it continuous?

We can get continuity on the top pyramid of four triangles easily. For z > 0

   OctahedronArg(x, y, z) = (x / (abs(x) + abs(y) + z), y / (abs(x) + abs(y) + z))

And the inverse (subject to normalization) is:

   (x, y, z) = (a, b, 1 – abs(a) – abs(b))

Here is the picture of it.

toppyroctoarg

You can see the DiamondArg style slight elevation in density in the planes of the x, y, z axes, but it is nothing like the huge density near the point (0,0,1) axis when we do it the traditional way.

Maybe a slightly better visualization involves imposing a checkerboard pattern by discarding the points where:

   int((a + 2) * 10 + 0.4) + int((b + 2) * 10 + 0.3) mod 2 == 1

to make it out of phase with the axes and plot how it crosses them

toppyroctoargcheck

Extending this down to the lower pyramid is less straight forward. The outer triangles of the quadrants (where abs(a) + abs(b) > 1) have to equate their open edges, preferably without discontinuities.

The x, y > 0 double-octant spans the upper and lower pyramids like so (see middle diagram above):

   (x, y, z) =  (x + y < 1 ? (a / (x + y + z), b / (x + y + z)) : ((1 – y) / (x + y – z), ((1 – x) / (x + y – z)))

The x and y coordinates seem to reverse, because at the x + y = 1 line (x, y) = (1 – y, 1 – x).

The inverse function, for a, b > 0 is:

   (x, y, z) = (a + b < 1 ? (a, b, 1 – a – b) : (1 – b, 1 – a, 1 – a – b) )

It’s possible to continue for the final 3 octants and and have something that is as good as it’s going to get:

def InverseOctahedronAngle(a, b)
    h = abs(a) + abs(b)
    if h < 1
        return (a, b, 1 – h)

    if a > 0 and b > 0
        (x, y) = (1 – b, 1 – a)
    if a > 0 and b < 0
        (x, y) = (1 + b, -1 + a)
    if a < 0 and b > 0
        (x, y) = (-1 + b, 1 + a)
    if a < 0 and b < 0
        (x, y) = (-1 – b, -1 – a)

    return (x, y, 1 – h)

For the sake of completion, the encoding function is:

def OctahedronAngle(x, y, z)
    s = abs(x) + abs(y) + abs(z)
    if z > 0
        return (x / s, y / s)

    if x > 0 and y > 0
        return (1 – y / s, 1 – x / s)
    if x > 0 and y < 0
        return (1 + y / s, -1 + x / s)
    if x < 0 and y > 0
        return (-1 + y / s, 1 + x / s)
    if x < 0 and y < 0
        return (-1 - y / s, -1 - x / s)

I’ve been using greater than signs (>) rather than greater than or equal signs, because I don’t know the code for them, and because these are the boundaries where it gets interesting.

Let’s see how everything stacks up with regards to continuity across the z = 0, abs(a) + abs(b) = 1 boundary in the InverseOctahedronAngle(a, b) function.

  a > 0, b > 0  ==> a + b = 1 ==>   (1 – b, 1 – a) = (a, b)
  a > 0, b < 0  ==> a - b = 1 ==>   (1 + b, -1 + a) = (a, b)
  a < 0, b > 0  ==> -a + b = 1 ==>   (-1 + b, 1 + a) = (a, b)
  a < 0, b < 0  ==> -a - b = 1 ==>   (-1 - b, -1 - a) = (a, b)

That accounts for all the internal boundaries of the -1 < a, b < 1 square. But the 8 half edges of the square equate to the 4 lower edges of the octahedron, and the four corner points equate to the bottom vertex of the octahedron at (0, 0, -1).

Let’s start with those corners where a, b in { -1, 1 }

  a > 0, b > 0  ==> (a, b) = (1, 1) ==>   (1 – b, 1 – a) = (0, 0)
  a > 0, b < 0  ==> (a, b) = (1, -1) ==>   (1 + b, -1 + a) = (0, 0)
  a < 0, b > 0  ==> (a, b) = (-1, 1) ==>   (-1 + b, 1 + a) = (0, 0)
  a < 0, b < 0  ==> (a, b) = (-1, -1) ==>   (-1 - b, -1 - a) = (0, 0)

Now consider b = 1. For t > 0, I would hope for (t, 1) to equate to (-t, 1):

  a > 0, b > 0  ==> (a, b) = (t, 1) ==>   (1 – b, 1 – a) = (0, 1 - t)
  a < 0, b > 0  ==> (a, b) = (-t, 1) ==>   (-1 + b, 1 + a) = (0, 1 - t)

So it works!

The same applies to the halves of the other three sides of the square, proving that we have a good mapping and are not going to have to worry too much about precisely knowing which octant a point is within (as implied by all those missing greater-than-or-equal to signs in the above snippets).

It also suggests we could do a pretty good distance function in this space that would satisfy the metric space rule, though this would need to be checked out.

This function was developed for the scallop bisector algorithm in order to pack the directions into one 32 bit word.

A long time ago, when I was working for NC Graphics, I solved the same problem when designing a depth buffer structure by encoding (x, y, z) into three bytes by mapping each -1 < x < +1 into an integer less than 256. The fourth byte was was the colour.

The following year OpenGL became available and we started writing Machining Strategist.

Please post any errors in the comments below.

Friday, August 21st, 2009 at 6:29 pm - - Machining, Whipping 3 Comments »

Martin and I had an inner cabin without a window on deck 9 of the Dana Sirena on the journey back from Denmark. We passed the time eating and drinking beer in the cabin and coding.

In the morning Sky News were running this story:

A ship sent to Brazil from Britain allegedly full of nappies, condoms and other toxic waste has arrived home [to Felixstowe] after being sent back in disgust.

When the MSC Serena docked in the port of Santos, near Sao Paolo, authorites opened up a container and, instead of the clean recyclable plastic expected, they found a stinking mess of rubbish.

Cool, I thought. I’m getting a little sick of plying the waters between Harwich and Esbjerg up to two times per year on this ship where the meals are over-priced and going downhill, so it was interesting to hear it shared a name with a toxic waste ship in the same harbour at the same time. (BBC news story.)

Anyway, here’s my photo.

mscserena

It’s probably only a few containers of many that contain the crap. Pretty minor issue. If you have some ships that are complete rusting hulks full of asbestos and other toxins that you haven’t been bothered to clean up for the last 40 years, they are welcome at a place further up the coast.

While at sea, the Danish captain came on the intercom and told everyone to go out on deck to see the fleet of 25 “tank ships” parked off the coast of Great Yarmouth waiting for the recession to be over so they could get a better price for their oil. He said it represented one month’s supply of oil for the whole of Europe. I think he was glad he wasn’t having to drive through the area at night. They were all higgledy piggledy.

yarmtankships

Since this fleet hasn’t been involved in an instantaneous newsworthy event of any kind, there isn’t a story about it in the regular papers. However, I’ve found the following July 2009 letter in the Southwold Organ:

I read, with more than a little interest, the letter from the District Emergency Officer in response to local concern over the recent increase in the presence of oil tankers offshore. I first found out about the licensed ship-to-ship oil transfers about 18 months ago. This is a very serious issue, with potentially catastrophic implications for local tourism and the environment. I’ll come back to this later, but, first, I’d like to fill in some of the background and thereby take issue with some of Mike Topliss’ contentions.

Southwold is the only place in England where this activity occurs. The only other places in the UK are three Scottish locations associated with the oil industry. Oil-transportation companies tried to obtain licenses for three other locations: the Firth of Forth, Falmouth Bay and Lyme Bay. These applications encountered very strong local opposition and, in the case of the latter, it seems that STS activity has been suspended.

The reason for the oil transfers is that large tankers cannot get through to Russian oil terminals in the Baltic, so relatively small tankers (eg 60,000 tonnes) travel through into the North Sea and disgorge into supertankers, which then travel to the Far East. The type of oil is Russian Export Blend Crude, a Grade 4 very heavy and persistent product. Clearly, if ship-to-ship oil transfer was carried out in a much safer harbour/jetty situation, then the oil transporters would be liable for dues, which would impinge upon the £120-million revenue generated per trip (2005 prices). (See www.graypen.com for Southwold STS operators.)

Although Mr Topliss mentions ‘several ships’, I’m afraid that the reality is very different. It may look like a mere handful of vessels off Southwold beach, but, if you use binoculars, then the scene changes. The farther out you look, the bigger the supertankers are. On 5th May this year, I counted 18 tankers off Covehithe cliffs; today, 16th June, there were 17 visible from outside the Sailors’ Reading Room.

Then in August the same correspondent writes:

On 23rd June, there was a sharp reminder of the goings on just off shore from Southwold. Many people in the town were assailed by a sudden strong smell of gas and even in Reydon, almost three-quarters of a mile from the sea, a short-lived, but powerful odour swept through some parts of the village.

Left with a definite ‘scorched’ feeling on the back of the throat, we wondered if someone had dropped their bottle of the new Beckham fragrance, but a call to the Marine and Coastguard Agency at Yarmouth quickly confirmed the true nature of the waft. We were victims of methyl mercaptan, a chemical used to give the ‘gassy smell’ to natural gas, and where had it come from? Yes, you’ve guessed, the floating chemical complex sitting just off shore. It seems that a rise in temperature meant that the liquified natural gas (LNG) bulk carriers had to vent their tanks for safety reasons.

Lowestoft had suffered the day before, with hundreds of calls about gas leaks and the evacuation of some schools and offices. The chemical itself is reputedly safe, but the disruption to coastal life and the masking of genuine gas leaks is simply not acceptable.

So, it seems that Southwold is now a concentration zone for a floating toxic timebomb. Not only do we have the potentially catastrophic ship-to-ship transfer of oil occurring at unprecedented levels, but added to the cocktail are LNG carriers and, according to the Wall Street Journal, amongst other sources, very large crude carriers (300,000 tonnes plus) acting as floating storage tanks for up to eight months or more.

On 13th July, there was a new and different addition to the fleet of 25 or so tankers visible from Benacre Cliffs. Quite close to the shore sat a small tug. This suggests that there is now an awareness that severe weather, coupled with a loss of power, could lead to the beaching of any one or more of these tankers. Exactly how effective this ‘protection’ might be, or who is paying for it, remains a mystery.

There is clearly an unprecedented rise in very hazardous activity just off our coast, clearly within so-called ‘territorial waters’. The Marine and Coastguard Agency seems hamstrung by the lack of effective legislation to deal with this issue in anything other than reactive fashion; in other words, after a spillage has occurred.

Maybe I’m wrong about the newspaper thing. But I can’t log on to the Wall Street Journal and look up this story. But I wonder if these license applications to do dangerous shipping maneuvers are on-line anywhere and available for webscraping. Just another thing to look into.

And so, we got off, had a coffee, and caught the next train out of town. At least they weren’t on strike like they were on the way out when I had to get my sister to drive us from Cambridge to Harwich.

Wednesday, August 19th, 2009 at 7:40 am - - Machining

walesnitte

Another week, another long day in the office in Copenhagen being frog-marched through scallop bugs that I have quietly been ignoring over the past year. Who knows which ones are the most important. No time for blogging or anything like that. I’ll push back any plans for the scallop bisectors, which would be another feature that will merely bring in a whole lot of new bugs once people started using and depending on it. Maybe it’ll have to wait until another CAM system does it, and then there’s a reason to have it.

It’s a bit like the developments in the Adaptive Clearing, now being driven by what others are doing. I had a too-brief look at the Mastercam Dynamic Milling and got pointed out a couple of features that are liked in it which we don’t have. In particular, having different shapes for ramping down into a level, instead of always doing a helix. I think I can frig some algorithm to find an approximate bisector of a pocket for the purpose of zig-zag ramping. Here the average cut depth is half the step-down, but there is a spike in the load at the tool approaches the end of each the zig-zag swipe when the cutter is doing a full width full step-down cut — followed by no load as it goes back in the opposite direction. Maybe the dynamics of this are fine in practice because it has time to cool off. But that would suggest that there is an optimum length for the zig-zag, because if it’s too long then we would have a proportionately long period at the max load. Not that I know anything about real world machining. I’m just guessing.

Tomorrow we catch the ferry back from Esbjerg to Harwich, and then onwards. Hopefully the trains won’t be on strike this time.