Pyacad Change Log
Changes from Release 0.4 to 0.4.1
Support for Intellicad 2000
The only difference between 0.4 and 0.4.1 is in added support
for Intellicad 2000. This change is implemented by adding a new
interface file that links to the SDS library, and a few modified
#ifdef clauses throughout the rest of the code. Those are
completely internal changes, which don't affect any of the
actual functionality of the module. There is
no need to build new binaries for Autocad/Intellicad.
Changes from Release 0.3 to 0.4
There is a new object type for accessing system tables
for the definitions of layers, blocks, linetypes etc.
The new objects are singletons, which can be accessed
through the "systables" attribute of the ads module,
which is a dictionary holding all available table objects
under the key of their respective name.
Pyacad now looks for a file "pyacad.py" in the same location
where the ARX binary was loaded from. The purpose of this file
is similar to what "acad.lsp" does on the lisp side. It can
be used to append a library directory to sys.path, where
"ads.py" and other support modules can be found. If pyacad
doesn't find this file there, it will search the directories
listed in sys.path for it. If this search also fails, then
the directory where the ARX was loaded from is added to the
end of sys.path, assuming that "ads.py" can be found there.
There is an "acadmake.py" support module, which makes it more
convenient to create entities in an Autocad/Intellicad drawing. The
functions in this module are wrappers to the ads.entmake()
function, and will create the association lists as required
for each type from the arguments supplied or from useful default
values for most parameters.
- The ads.trans() function was a null operation when the coordinate
systems were given by their number (or ads.CS_XXX constant).
- The truncation to 132 bytes imposed by the printing
functions for R14 and earlier was releaved (the new
limit is around 8 kb).
- Some missing resbuf type codes have been added to the
data conversion routines and the acad_cons initialization
- Python is now properly finalized when pyacad is unloaded.
We still do not unload the python DLL, as it might theoretically
be in use by another autocad extension in parallel (this
is fairly unlikely, but I just don't know how to
unload an implicitly loaded DLL... ;-).
- The docstrings have been farmed out to the files where each
documented function is defined. This will make maintenance
easier, and allows to add new modules (aced, acdb, acut, etc.),
which partly duplicate the services of the ads module, without
bloating the binary.
- The declarations for the various submodules have been split
up into seperate header files, which will also faciliate
adding more partly redundant builtin python modules.