[PythonCAD] Port to Maemo/Nokia 770

Art Haas ahaas at airmail.net
Fri Mar 31 20:56:02 CEST 2006

On Thu, Mar 30, 2006 at 05:03:26PM -0300, Gustavo Sverzut Barbieri wrote:
> Hello,
> I have a nokia 770 (http://nokia.com/770) and want to port PythonCAD to it.


> I'm not a CAD user, but I follow PythonCAD development because it's an
> interesting project and I have some friends from closed-source world
> that want to move to open alternatives.
> Why PythonCAD? My company, http://www.indt.org.br, is porting Python
> to maemo platform and I think that PythonCAD would be a great test
> program to it. It would also help engineers to have their drawings at
> hand while on field analysis.
> Limitations:
>  - 770 is really low on performance and memory, it doesn't have a FPU
> and have low RAM available.
>  - 770 has a great screen, 800x480, but it's high DPI, which make
> drawing on the device not a great thing.
> So I plan to disable most "edit" features, like undo steps and
> optimize to "view".
Elimination of undo/redo will help somewhat in reducing memory, and I'm
certain that a number of other memory saving opportunities exist in the
> Any feedback is welcome, but mainly on these areas:
>  - How to improve startup times? I did put PythonCAD dir in a zipfile
> and used zipimport, it helps a bit, but need to make it faster... I
> want to know if some imports could be lazy imports.

My initial thoughts are that some sort of lazy 'import' calls will not
work. If I had some patches that demonstrated how it could be done I
would happily admit I was wrong.

>  - How to improve viewing/zoom?

The current implementations are not great but they do work. I've wanted
to improve viewing/zooming operations by replacing the 'GTKImage' class
currently used for drawing display to other classes in the 'gtkshell.py'
file. Last summer I'd started working towards this goal but I have not
completed the coding unfortunately.

>  - How to improve memory usage, the lower the better

Reducing memory will be difficult as PythonCAD is built on top of both
Python, the PyGTK bindings, and GTK+. I don't have any immediate ideas
other than working to ensure the code does not keep unnecessary
references around on entities it no longer needs. Accomplishing this
goal requires more eyes scanning through the code, or perhaps some
clever Python coding that will flush out stray references.

Let me know what I can do to help you make your porting easier.

Art Haas
Man once surrendering his reason, has no remaining guard against absurdities
the most monstrous, and like a ship without rudder, is the sport of every wind.

-Thomas Jefferson to James Smith, 1822

More information about the PythonCAD mailing list