[PythonCAD] Plans for next release

Art Haas ahaas at airmail.net
Tue Dec 30 14:53:34 EST 2003


The eleventh release is out there, and after taking a quick peek at the
logs on the website it appears to be making its way out. So now we start
looking at what to do for the next release and beyond.

Take a peek at the following page to see my short summary regarding the
development efforts of this year. Fixing some of the problems listed in
the page are always on the development agenda, as well as adding new


For the short term I want to add much more to the new Ellipse and Spline
entities. Right now the Ellipse entity is somewhat complete in that it
has visual attributes as well as its basic functionality. The spline
stuff is still in its infancy. Adding to both entities means PythonCAD
becomes more useful, especially when splines start working.

Another goal for the short term is to do some more work in saving files.
There is a simple optimization that can be made by only storing
references to points, circles, and arcs that are used by dimensions.
Currently a reference for each one of these objects is stored, but that
is wasteful. If a drawing had a million points, but only used two out of
that vast number in a dimension, then only those two points should be
stored for writing the dimension entity in the file.

A medium-term goal for the next couple of months is reworking the way
the entities are stored in a layer. The current method of using sorted
lists has worked when the entity count is small, but as the number of
entities increases the list approach is seeming to become inefficient.
I'll write a bit about how I plan to address this problem in another

I'd also like to make use of more Python goodies like weak references in
future releases. Weak references will not increase the reference count
on an object, so objects don't stick around longer than they should. I
think that adding weak references will flush out a few bugs in the code,
and then these exposed bugs can get fixed.

Adding the ability to undo or redo an action is something I've been
thinking about lately, and I've had a few ideas on how to implement it.
I will play around a bit with my approach and, if it looks promising,
try to get it implemented into the code as quickly as possible.

Printing and hatching, the two largest deficiencies in the code, are
both medium-term and long-term goals for next year's development

Happy New Year to everyone.


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