From ahaas at airmail.net Fri Dec 3 23:22:46 2004 From: ahaas at airmail.net (Art Haas) Date: Fri Dec 3 23:22:54 2004 Subject: [PythonCAD] New stuff at repo Message-ID: <20041203222246.GG19115@artsapartment.org> Hi. The latest code changes in the repo include a number of significant changes to the undo/redo code. Each release of PythonCAD since the introduction of undo/redo abilities has enhanced this feature, but the storage of the data indicating which object in the drawing can have an undo or redo operation on it has been confusing. Objects within layers (segments, circles, etc) that had a change would store this change in their log, but the Image containing these entities would record the change as a modification to the layer holding that changed entity. This is no longer the case - the Image instance stores this information now - anytime a Layer sends a 'modified' message out it means the layer itself was changed, not an entity within the layer. Look at the 'image.py' file for the objectChanged() method, and look at the undo() method to see how an undo operation is now handled. There is still the old undo() code in the file - it is now called old_undo() and will disappear shortly. When I'm making changes I'll often rename a method to keep the code around until I'm satisfied with the enhanced one, then the old one gets deleted. A number of bugs were squished, such as the reconstruction of a deleted construction circle, and various other fixes and enhancements are present as well. I'm still targetting late December as the time for the next release. The current batch of changes are definite improvements in undo/redo handling, but there are still more changes to be made, as well as hopfully catching any latent or new bugs these changes have either exposed or added. Art -- 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 From ahaas at airmail.net Mon Dec 6 23:38:26 2004 From: ahaas at airmail.net (Art Haas) Date: Tue Dec 7 02:23:30 2004 Subject: [PythonCAD] Subversion upgraded Message-ID: <20041206223826.GE32273@artsapartment.org> Hi. I've upgraded the Subversion binary on the machine that hosts the public repository. The version info is : $ svn --version svn, version 1.2.0 (dev build) ... $ Art -- 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 From ahaas at airmail.net Tue Dec 7 22:17:11 2004 From: ahaas at airmail.net (Art Haas) Date: Tue Dec 7 22:17:20 2004 Subject: [PythonCAD] Latest undo/redo changes now available Message-ID: <20041207211711.GD12710@artsapartment.org> Hi. The latest batch of changes that have made their way to the public repo over the last few days have almost entirely been dealing with undo/redo operations. Layer addition, deletion, and clearing are all now actions that can be undone or redone. For example, open a new drawing, then add a sublayer, then draw some stuff in the sublayer. Now, delete all the entities in the sublayer, then delete the sublayer itself. Hit 'undo' and watch the sublayer reappear, and better still you can 'undo' again to recreate the deleted entities in that back-from-the-dead layer. There have also been some changes regarding the use of the message controlling function ignore(). The program will now raise an error if you try to ignore() a message you are already ignore()ing. This change was made as the ignore() and receive() functions are not recursive, so it was probable (and indeed happening) that you could prematurely receive() a message type that you still want to ignore. Lastly, a few changes were made to the 'gtkpycad.py' script in an effort to better handle errors loading drawings listed on the command line. The changes were simple repositioning of try/finally and try/except blocks but the result should be that any drawing that fails to load will now just print some error message but the program will still start, whereas previously the error would stop PythonCAD from running. The subversion upgrade has seemed to work without a hitch, and the changes all going into the code look like they are working smoothly, so things are still on track for a release in a couple of weeks. I'll be away for much of the next week so there won't be new stuff at the repo after tomorrow until late next week or thereabouts. Art -- 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 From rkishore at att.net Tue Dec 14 05:45:36 2004 From: rkishore at att.net (R.K.K) Date: Wed Dec 15 13:57:55 2004 Subject: [PythonCAD] pythoncad configuration error "AttributeError: 'str' object has no attribute 'getName'" Message-ID: <41BE6FF0.5030409@att.net> when ever I uncomment the line: default_dimstyle = 'dimstyle01' dimstyle01, being the dimstyle I configured, pythonCAD failed to start and I get the error: Traceback (most recent call last): File "/usr/bin/gtkpycad.py", line 331, in ? main() File "/usr/bin/gtkpycad.py", line 311, in main img = GTKImage() File "/usr/lib/python2.4/site-packages/PythonCAD/Interface/Gtk/gtkimage.py", line 645, in __init__ Image.__init__(self) File "/usr/lib/python2.4/site-packages/PythonCAD/Generic/image.py", line 129, in __init__ add_defaults(self) File "/usr/lib/python2.4/site-packages/PythonCAD/Generic/image.py", line 1723, in add_defaults _dname = _dstyle.getName() AttributeError: 'str' object has no attribute 'getName' Any ideas? From ahaas at airmail.net Wed Dec 15 14:29:16 2004 From: ahaas at airmail.net (Art Haas) Date: Wed Dec 15 14:29:35 2004 Subject: [PythonCAD] pythoncad configuration error "AttributeError: 'str' object has no attribute 'getName'" In-Reply-To: <41BE6FF0.5030409@att.net> References: <41BE6FF0.5030409@att.net> Message-ID: <20041215132916.GA13799@artsapartment.org> On Mon, Dec 13, 2004 at 08:45:36PM -0800, R.K.K wrote: > when ever I uncomment the line: > default_dimstyle = 'dimstyle01' > > dimstyle01, being the dimstyle I configured, > pythonCAD failed to start and I get the error: > [ ... snip error ... ] Hi. The problem was bad coding in the 'preferences.py' file. This problem has been fixed in the repo for some time, and I believe the latest release (19) has the fix. Are you using that release? Art -- 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 From ahaas at airmail.net Fri Dec 17 20:47:15 2004 From: ahaas at airmail.net (Art Haas) Date: Fri Dec 17 20:47:22 2004 Subject: [PythonCAD] More good stuff at the repo Message-ID: <20041217194715.GC32704@artsapartment.org> Hi. As the subject stated, there's more good stuff now available at the public 'svn' repository. Most of the changes are, as has been the case lately, undo/redo related. There have been some adjustments to the Log classes for TextBlocks, DimStyles, and Dimensions, and at long last the addition and deletion of Chamfers and Fillets is undoable and redoable. The chamfer/fillet stuff seems to have a slight redraw issue that suggests the reconnected segments don't share an endpoint - I'm working on finding what's going on with that right now. Some chamfer/fillet bugs were fixed when working on this, btw. Also, a new set of methods to complement the startUndo(), endUndo(), and inUndo() methds were added. Amazingly enough these new methods are startRedo(), endRedo(), and inRedo(). Their purpose should be self-evident by their names, and right now only the Layer class is using the new redo methods, but you'll find changes in the various Log subclasses where these new methods have been added. It's looking like next week will see the next release as getting this chamfer/fillet stuff in will probably be the last thing to tackle prior to release. PythonCAD turns two next week! Art -- 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 From ahaas at airmail.net Tue Dec 21 21:13:36 2004 From: ahaas at airmail.net (Art Haas) Date: Tue Dec 21 21:14:34 2004 Subject: [PythonCAD] [ANNOUNCE] Twentieth release of PythonCAD now available Message-ID: <20041221201336.GA2725@artsapartment.org> Hi. I'm pleased to announce the twentieth development release of PythonCAD, a CAD package for open-source software users. As the name implies, PythonCAD is written entirely in Python. The goal of this project is to create a fully scriptable drafting program that will match and eventually exceed features found in commercial CAD software. PythonCAD is released under the GNU Public License (GPL). PythonCAD requires Python 2.2 or Python 2.3. The interface is GTK 2.0 based, and uses the PyGTK module for interfacing to GTK. The design of PythonCAD is built around the idea of separating the interface from the back end as much as possible. By doing this, it is hoped that both GNOME and KDE interfaces can be added to PythonCAD through usage of the appropriate Python module. Addition of other PythonCAD interfaces will depend on the availability of a Python module for that particular interface and developer interest and action. The twentieth release of PythonCAD improves the undo/redo abilities of the program by making layer creation and deletion actions that can be undone or redone. Also, the addition and removal of chamfers and fillets is now an undoable and redoable action. The code for managing undo/redo operations has been improved, and various bug fixes for these actions have been applied. Another improvement in this release is a reworked set of file saving operations. The code for saving a file onto disk has been made more robust by adding additional error checks and by ensuring the new version of a file is stored successfully prior to replacing the existing copy. A good number of bug fixes and code improvements are included in this release as well. PythonCAD is now two years old! The first public release was on December 21, 2002. Celebrate PythonCAD's second birthday by downloading and installing the twentieth release! The mailing list for the development and use of PythonCAD is available. Visit the following page for information about subscribing and viewing the mailing list archive: http://mail.python.org/mailman/listinfo/pythoncad Visit the PythonCAD web site for more information about what PythonCAD does and aims to be: http://www.pythoncad.org/ Come and join me in developing PythonCAD into a world class drafting program! 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 From ahaas at airmail.net Thu Dec 23 15:51:03 2004 From: ahaas at airmail.net (Art Haas) Date: Thu Dec 23 15:51:11 2004 Subject: [PythonCAD] Post-twentieth release plans Message-ID: <20041223145103.GB19022@artsapartment.org> Hi. Now that the twentieth release is out, it's time to look at where to go next. There are a couple of fixes of various bugs already in the public subversion repository, a few of which I wish I'd caught prior to sending the release, but they'll be in the next release. One change I'm planning on making is removing the 'mute' argument from startUndo(). In hindsight the default muting of an entity during an undo operation was wrong, so you'll see that startUndo() is called with a 'False' argument. There were two calls where it was invoked with 'True', but they've been fixed. I also want to enhance the file storage so that the locked or visible state of an entity is saved. Currently that is not the case, but as the interface doesn't make it easy to lock or hide individual entities the lack of file save support hasn't been an issue. I'm tentatively planning the next release to occur around the middle of January as the changes I've listed above are relatively small. Also, I've upgraded Subversion again on the machine hosting the public repository. The new binary still returns a '1.2.0-dev' release, but it is current as of yesterday (Dec. 22). Happy New Year to everyone! Art -- 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 From ahaas at airmail.net Tue Dec 28 20:36:10 2004 From: ahaas at airmail.net (Art Haas) Date: Tue Dec 28 20:36:14 2004 Subject: [PythonCAD] RPM packages for twentieth release now available. Message-ID: <1104262570.24675.11.camel@localhost.localdomain> Hi. D. Scott Barninger has contributed RPM packages for Mandrake, Suse, and RedHat/Fedora of the twentieth release of PythonCAD. These packages are available from the download page: http://www.pythoncad.org/download.html My thanks to him for building and contributing these files. Happy New Year to everyone. Art Haas