Saturday, October 21st, 2006 at 6:13 pm - - University

Friday was a day at the psychology department. I battled with wxwidgets to get a full screen frame without any window decorations on Mac OS X, not with the desired outcome. The best I can get is a screen filling frame, but with a title bar and a ‘close window’ button at the top. Acceptable. Shame that it works as desired under windows. The other thing I looked at was using py2app to wrap up a python application that uses Python Imaging Library and wxwidgets to run on another mac. After some unsuccessful attempts I decided to upgrade python and site packages to newer versions. I upgraded python from version 2.3 to 2.4 and downloaded wxwidgets latest available version. The new site-packages installation meant I had to reinstall py2app. Success, with the latest versions py2app created mac a working application. A lot of these different packages come with their own installation tools. Ever heard of (say eazee(!))? Well, that is used for setuptools and py2app. Or python eggs? Don’t quite know what they are good for, but some got laid in my working directory.

And I had a chat with another scientist at the department about programming some experiments for her.

Thursday, October 19th, 2006 at 8:07 am - - University

On Tuesday afternoon I went to the engineering department and together with Carl rejigged the python script he uses to control their machine. We now use two python threads, one controls all moves of the motors, updates the user interface edit boxes with the current position and speed data, and also controls buttons that are pressed or unpressed automatically when the machine is rotating. We have a separation of user interface and motor control so that the user interface is always responsive. The UI passes requests for movements through a queue to the motor thread.

In the past we could use just one thread because we always ever had to handle one request for the motors to move. The calls to the DLL for the controller card always return immediately, the controller maintains it’s own motion queue. But we had to implement sequences of movements of different speeds and pauses. The queueing system we have now in place in the python thread allows that now easiy.

Thursday, October 12th, 2006 at 7:01 pm - - University

I did some work in the engineering department of Liverpool University today. Some time ago Carl did a write up of something we had programmed to print undistorted images with one or more rotating print heads, assembled in a row. The inkjet print heads they use are meant for normal printing with paper moving rectangular to the print width. But in their machine the medium to print rotates underneath the print head, with one side of the head closer to the centre of rotation than the other. So, a rectangular bitmap would be distorted to a pie wedge. We wrote a little algorithm that transforms a bitmap into a new bitmap that, when printed on this setup, prints undistorted.
I had read it on the train last night and had a few comments and suggestions to make it clearer what this does.

Then looked into extending the controller of the machine that performs these rotations. In order to shine a light on the same area on the print medium for a specified time they want to be able to stop the rotation, then start it again, and so on. We use a python thread that monitors the machine position and when it has reached the target of the rotation joins the main thread that in turn can sleep for the specified time, then start the motion again.

I had hoped we could use some sort of callback mechanism in the DLL that controls the digital controller card: When a motor has reached it’s target position we get a user specifiable callback. We had found something in the documentation for the DLL and started coding. But we got stuck and had to call the support phone line for the card manufacturer. The friendly support person told us we were following a red herring: The documentation we had used was for a different card, using a different (probably real-time) operating system.

Last week I also spend a day there:
We had looked into rewriting the user interface of the motion controller: The old user interface got out of hand, partly because a master student had used unsuitable GUI code generators on it (python glade). We had decided to shelve this code and write a much simpler new interface. Now that this motion controller has been in use for more than a year we could also reduce the functionality to what was really needed.

Another half day last week was spent in the department of psychology. I am working on a framework to programme visual perception experiments using python, wxwidgets and python image library (PIL) on a mac os x system. More about that some other time.

Friday, October 6th, 2006 at 12:15 pm - - Whipping 1 Comment »

For statistical purposes the country has been divided into small blocks of land called Output Areas. These allow us to look in more detail at smaller local areas. Output Areas have been combined to form two layers of Super Output Areas known as Lower Layer Super Output Areas (LSOAs) and Middle Layer Super Output Areas (MSOAs)
Quoted from here

I live in an area of Liverpool that has been a ‘Neighbourhood Renewal Area’ for a number of years now. There’s a long (more than 20 years) history behind it:
The Granby area of Toxteth had it’s share of rioting back in the 1980’s and also later. It was about mainly black youth being fed up with the police harassing them for no other reasons than their skin colour. I don’t know too much about the housing situation back then. One problem must have been that ‘slum landlords’ neglected the houses, only interested in the rent they could squeeze from people at the bottom rank of the social ladder. People who cared tried to change this by getting the authorities to use compulsory purchase orders (CPO) against irresponsible landlords to take these houses into public ownership and improve living conditions. CPOs had not been used like this before, they were meant for road building, for airports and so on. Now these houses were given to housing associations who gave them to tennants that needed the social welfare system to find somewhere to live. Houses and living conditions were improved.
But over the years the area became more and more a dumping ground for people who were not wanted in other, more afluent, areas of the city. Eventually plans emerged to demolish the whole area and build something new. The housing associations were all for it and stopped using the houses for tennants. Instead the houses were tinned up, after stripping them of pipes, light fittings, toilets, sinks… things that you need to live in a house. Windows were smashed, roof windows left the inside open to the destructive forces of wind, rain and pigeons.
Deteriortation of the area was sped up and with the empty houses came other problems: Squatters, drug abuse, fly tipping…

pic of house in Cairns Street
But times have changed and my neighbourhood is trying to leave the bad reputation it still has, not just in Liverpool, behind. The few neighbours left are really nice people, there is a sense of community. We have window boxes with flowers in front of the houses, including the empty ones. We even won an award in the North West in Bloom competition for Improvement. My neighbour from opposite goes round and clandestinely paints butterflies on to the boarded up windows of empty houses. She calls the tinned up houses voids.
There are now four streets left, and the latest scheme to take away the houses is called Housing Market Renewal Initiative. The people who live here, including me, want to keep their houses. We have to fight the plans of a developer called Lovell, a company liked by Liverpool City Council and chosen to be their preferred developer for Granby Toxteth. The other day was a meeting of the ‘Three Parks Neighbourhood Committee’ where the residents organised in the Granby Residents Association were allowed to make a presentation about the effects the plans already have and will have on us. While trying to find what this committee actually does I came across the quote on top. The meeting went well, we got applause and the councillors present made the right noises signalling that they are sympathetic to our cause. But the decisions are made somewhere higher up, we are waiting for the executive board of the council to approve the plans Lovell has presented. Then the next stage in the fight to keep our houses will start.

Tuesday, June 6th, 2006 at 7:53 am - - Machining 5 Comments »

I keep a simple logbook of IPs using the web interface and roughly what people are doing. So far we had users from all continents but Africa. Somebody in Brazil used it a few times, we have users in India, Australia, Canada, USA, all over Europe. Most people only spend a short amount of time, never change to another STL file and don’t seem to use the interactive rotation/zoom/pan. (Could these be bots? I don’t think so, because their IP are often pointing to broadband service providers, and a bot would have to pretend it is a mozilla firefox browser to come as far as seeing a STL file). Others come back regularly, uploading STL files and calcluating toolpaths on them. I think we should invite our users to fill out a survey of how they found out about us, what they use the web interface for, what they don’t like about it … that kind of stuff. Given that people from virtually all corners of the world find us, I find it a little disappointing that we get so few comments in this blog.

Thursday, May 18th, 2006 at 9:25 am - - Machining 2 Comments »

I had to remove a couple of STL files from our collection of uploads. (One was called Geneva.stl, the other Suspension Upright.stl). The files were broken: in the header section claiming to be binary files, and indeed containing binary data, but also containing keywords only allowed in ASCII formatted STL files. No idea who uploaded these files, but if the person who uploaded them reads this and wants some more information on what is wrong with these files, please comment here.

Tuesday, April 25th, 2006 at 7:17 pm - - Machining

We’ve got our hack of a brochure more or less done. The word “brochure” might be an over-the-top description of this single sheet of glossy paper. The PDF version is here. Some of its material may find its way onto our web-page.
The amount of effort this stuff takes up leaves me in awe of the work that must go in to producing all the heaps of printed junk mail that I get sent. Maybe there are tricks of the trade. The effort it takes to make even the most basic 3D diagram look good and be informative is staggering.

Admittedly, we aren’t using any proper software. Just Open Office to stick it together. The main 3D picture was made by writing python scripts for VTK, and the rest of the images are simply screenshots from Cimco Inspect, which allows you do to everything except switch off those nasty little axis arrows on the origin.

I think we should run off about 50 down at the stationer’s.

Monday, April 10th, 2006 at 11:04 am - - Machining

A reader asked about the hardness of steel we can knowingly cut with our Adaptive clearing method. He asked:

“Got the general gist of the method, hard steel I read, P20 should I presume?”

We have some reliable data, produced by the machine tool manufacturer OPS Ingersoll, and demonstrated on Euromold in December 2005 and other trade shows. The image shows one of the samples they cut live on the show. (It was a good set up, we could talk to people and if they were sufficiently interested we could take them to OPS Ingersoll’s stand to show ‘Adaptive Clearing’ in use):

  • Cutter: Toroidal 10 x 0.5 mm
  • Spindle speed: 8000 min-1
  • Feedrate: 8000 mm/min
  • Z step: 10mm
  • Side step: 0.6mm
  • Material: 1.276 7HRC54

HRC54 stands for Rockwell hardness 54, which is high in the scale of hardness.

Whilst trying to find out what exactly P20 stands for I found this interesting article. So, it seems that P20 means different things in different parts of the world. But is P20 a standardised way of describing toolmaking steel, how does it compare to HRC (Rockwell hardness) which is a standardised way of measuring steel hardness, I don’t know. If you do, please leave a comment!

Saturday, March 4th, 2006 at 11:55 am - - Machining 1 Comment »

Released a new version of our online version of the Adaptive Clearing today. This is again a lot closer to what we are aiming for, but it isn’t quite there yet. We found a few bugs already, and of course there are still some features missing that would visualize what we are on about all the time with this innovative way of roughing out a block of steel.
But now you can download a G-code toolpath file, after the machining has finished, right click on the text “”, and save to your local disk. You might want to edit the feedrates, see explanation at the top of the file, in the comments. Ultimately we will have a dialogue for the feedrates.
New feature is that you can draw a partial toolpath, and that you can select any point along the toolpath, I believe Julian explained how to use this feature in the instructions. Please give it a go!!!

Thursday, March 2nd, 2006 at 10:27 pm - - Machining 4 Comments »

The few times (maybe too few) I check this blog for unmoderated comments I tend to find spam, and it seems that there is more of that than genuine comments.

I hope this problem is solved now after installing a spam blocking plugin.