Updating download.html page with Git information
[pythoncad.git] / README
blobed44cbd7b9dd13664d43164d3b3b3541be26d079
1 Introduction
2 ============
4 PythonCAD is an open-source CAD package built designed
5 around Python. As such, it aims to be a fully scriptable
6 and customizable CAD program. It is initially designed
7 to run under Linux, one of the BSD flavors, or Unix.
9 Using an established, powerful, and expressive language
10 like Python as the core of the program saves an enormous
11 amount of work for developers and, for users who are
12 already familiar with Python, you don't have to try and
13 learn a new language if you want to extend or customize
14 the code. If you've never written Python code before,
15 there are extensive resources available for you. A good
16 place to start is at the Python home page ...
18 http://www.python.org
20 Goals
21 =====
23 The primary design goal is to provide a good CAD package.
24 The open-source world has been moving steadily from providing
25 superior tools for proprietary systems (i.e. GCC), to
26 world-class operating systems (i.e. Linux), and has advanced
27 remarkably in providing complete desktop environments (GNOME
28 and KDE). It is hoped that PythonCAD will grow to be an
29 excellent addition to the desktop programs now available
30 for users of open-source software.
32 A design goal with the program code is to keep the user
33 interface completely separated from the back end or generic
34 code. In doing so, it should be possible for developers to
35 write code porting PythonCAD to their chosen interface with
36 less work. The initial release is written using GTK-2.0 as the
37 interface (utilizing the PyGTK library). The addition of
38 a front end utilizing the Py-Objc bindings on Mac OS X and
39 Cocoa demonstrates that this approach of separating the
40 interface from the core program is a viable approach of
41 application design. It is hoped that interfaces for GNOME,
42 QT, KDE, and other packages will eventually be added to
43 PythonCAD.
45 A second code design goal is to write a powerful graphical
46 program without writing much, if any, C or C++ code. The Python
47 language frees the programmer from many of the difficulties
48 that are associated with C (memory allocation, buffer handling,
49 etc.) or C++ code (i.e. compiler and platform issues). No
50 language is perfect, but it is hoped that PythonCAD can
51 demonstrate that choosing Python as the primary language
52 for development provides good performance, ease of maintenance,
53 and a fun language to work with.
55 Requirements
56 ============
58 Python: Version 2.2 at a minimum, with the zlib module. At the
59 time of the thirtieth release the final 2.2 based release is
60 2.2.3, the (final?) 2.3 release is 2.3.5, and the latest 2.4
61 release is 2.4.2.  PythonCAD should run without problem in any
62 of the releases. There are as yet no plans to raise the minimum
63 Python release to the 2.3 series.
65 PyGTK-2.0: Version 1.99.16 at least, with version 2.0 recommended.
66 The PyGTK developers have released PyGTK-2.6, which has support
67 for more features in the latest GTK code. The PyGTK-2.4 release
68 as well as the PyGTK-2.2 release work also, but these releases
69 are tied to older GTK releases and are consequently in maintenance
70 mode (at best).
72 GTK and its dependencies: It is strongly recommended
73 to use the latest release of GTK, Pango, ATK, and Glib. At the
74 thirtieth PythonCAD release, GTK is at version 2.8.16, Pango
75 is version 1.12.0, ATK is release 1.11.3, and Glib is release 2.10.1.
77 The fifteenth release of PythonCAD offered a native Cocoa interface
78 utilizing the Py-Objc bridge for Mac OS X users. Unfortunately
79 the developer maintaining the Cocoa interface is no longer able to
80 do so, and current PythonCAD releases do not work with the Py-Objc
81 bindings. Developers wishing to pick up this code and maintain
82 it would be welcomed.
84 License
85 =======
87 PythonCAD is distributed under the terms of the
88 GNU General Public License (GPL).