descriptionAn open-source CAD package written in Python
homepage URLhttp://www.pythoncad.org
ownerahaas@airmail.net
last changeSun, 19 Aug 2007 18:38:21 +0000 (19 13:38 -0500)
content tags
add:
README
Introduction
============

PythonCAD is an open-source CAD package built designed
around Python. As such, it aims to be a fully scriptable
and customizable CAD program. It is initially designed
to run under Linux, one of the BSD flavors, or Unix.

Using an established, powerful, and expressive language
like Python as the core of the program saves an enormous
amount of work for developers and, for users who are
already familiar with Python, you don't have to try and
learn a new language if you want to extend or customize
the code. If you've never written Python code before,
there are extensive resources available for you. A good
place to start is at the Python home page ...

http://www.python.org

Goals
=====

The primary design goal is to provide a good CAD package.
The open-source world has been moving steadily from providing
superior tools for proprietary systems (i.e. GCC), to
world-class operating systems (i.e. Linux), and has advanced
remarkably in providing complete desktop environments (GNOME
and KDE). It is hoped that PythonCAD will grow to be an
excellent addition to the desktop programs now available
for users of open-source software.

A design goal with the program code is to keep the user
interface completely separated from the back end or generic
code. In doing so, it should be possible for developers to
write code porting PythonCAD to their chosen interface with
less work. The initial release is written using GTK-2.0 as the
interface (utilizing the PyGTK library). The addition of
a front end utilizing the Py-Objc bindings on Mac OS X and
Cocoa demonstrates that this approach of separating the
interface from the core program is a viable approach of
application design. It is hoped that interfaces for GNOME,
QT, KDE, and other packages will eventually be added to
PythonCAD.

A second code design goal is to write a powerful graphical
program without writing much, if any, C or C++ code. The Python
language frees the programmer from many of the difficulties
that are associated with C (memory allocation, buffer handling,
etc.) or C++ code (i.e. compiler and platform issues). No
language is perfect, but it is hoped that PythonCAD can
demonstrate that choosing Python as the primary language
for development provides good performance, ease of maintenance,
and a fun language to work with.

Requirements
============

Python: Version 2.2 at a minimum, with the zlib module. At the
time of the thirtieth release the final 2.2 based release is
2.2.3, the (final?) 2.3 release is 2.3.5, and the latest 2.4
release is 2.4.2.  PythonCAD should run without problem in any
of the releases. There are as yet no plans to raise the minimum
Python release to the 2.3 series.

PyGTK-2.0: Version 1.99.16 at least, with version 2.0 recommended.
The PyGTK developers have released PyGTK-2.6, which has support
for more features in the latest GTK code. The PyGTK-2.4 release
as well as the PyGTK-2.2 release work also, but these releases
are tied to older GTK releases and are consequently in maintenance
mode (at best).

GTK and its dependencies: It is strongly recommended
to use the latest release of GTK, Pango, ATK, and Glib. At the
thirtieth PythonCAD release, GTK is at version 2.8.16, Pango
is version 1.12.0, ATK is release 1.11.3, and Glib is release 2.10.1.

The fifteenth release of PythonCAD offered a native Cocoa interface
utilizing the Py-Objc bridge for Mac OS X users. Unfortunately
the developer maintaining the Cocoa interface is no longer able to
do so, and current PythonCAD releases do not work with the Py-Objc
bindings. Developers wishing to pick up this code and maintain
it would be welcomed.

License
=======

PythonCAD is distributed under the terms of the
GNU General Public License (GPL).
shortlog
2007-08-19 Art HaasUpdating download.html page with Git informationmaster
2007-06-22 Art HaasUse valid variables for drawing angular dimensions
2007-06-14 Art HaasUse getUnits() and setUnits() to set the Image units...
2007-06-14 Art HaasActually set the DIM_STYLE and associated key/values
2007-06-14 Art HaasSet LINE_TYPE, LINE_COLOR, and LINE_THICKNESS when...
2007-06-14 Art HaasAdjust .gitignore to avoid *~ backups and remove a...
2007-06-12 Art HaasFix stupid typo - DIM_EXTENSION -> DIM_COLOR
2007-06-12 Art HaasCall setUnits() when setOption() is changing 'UNITS'
2007-05-28 Art HaasAdding .gitignore files
2007-05-26 Art Haaswww/index.html: Fix typo.
2007-05-12 Art Haaswww/index.html: Updates for thirty-sixth release.DS1-R36
2007-05-12 Art Haasgtkpycad.py: Update copyright year and version.
2007-05-12 Art Haaspythoncad.spec: Updates for thirty-sixth release.
2007-05-09 Art HaasPythonCAD/Interface/Gtk/gtkmenus.py: Update copyright...
2007-05-09 Art HaasPythonCAD/Generic/tools.py: Add new tool classes for...
2007-05-09 Art HaasPythonCAD/Interface/Gtk/gtkentities.py: Update copyrigh...
...
tags
unknown SECOND_LAYOUT
unknown FIRST_LAYOUT
unknown DS1-R9
unknown DS1-R8
unknown DS1-R7
unknown DS1-R6
unknown DS1-R5
unknown DS1-R4
unknown DS1-R36
unknown DS1-R35
unknown DS1-R34
unknown DS1-R33
unknown DS1-R32
unknown DS1-R31
unknown DS1-R30
unknown DS1-R3
...
heads
16 years ago master