CAD.py

r rt8396 at gmail.com
Fri Oct 31 12:56:33 EDT 2008


Hello
I am currently looking to create a small CAD  program with python.
This has been a major challenge for some like myself with very
limited math skills, and only a year of self taught programming
experience.
But being the kind of hard headed, determined person I am, I won't
give up.  ;^)

A little History...
Right now I use SketchUp and Blender, both great programs but each has
a
very specific use. Blender is great for modeling/rendering complex
shapes
but not for the exactness of a CAD program. SketchUp on the other
hand is lighting fast at creating architectural stuff, unfortunately
it is
proprietary and uses RUBY for scripting :P"  BUMMER,  and also has
poor
rendering and material properties.

For CAD drawing, Blender is missing some very important tools:
	Precise measurement of entities
	Line entity
	Easy manipulation of faces
	Offset of faces
        Dimensions

So my idea to create a very simple CAD program similar to SketchUP's
design.
The main use for this program is to create simple models like
buildings,  homes,
park benches, toilets, whatever and then import them into blender for
texture/color/rendering, etc...

I know Python is not best suited for CAD, but i think with the
simplicity I am looking
for this could work, and I could always optimize with C where needed
later on.
I really want to push Python to the edge to see what it can do.

Here is my basic model of the program.
The Main Parts Are:

        -Very simple UI: (done-2d)
                no problem here

        -Export to Blender compatible format: (not done)
                whatever is easy

	-Entities: (done-2d)
		lines, polygons, circles, curves... very basic stuff, nothing more
                Faces would be needed for 3d
		Grouping of entities

	-Manipulations: (done-2d)
		rotation, offset, scale, translation, extrusion... normal stuff

	-Visualization: (not done, 3d-specific)
                Real time rendering of basic Entities. Wire frame to
start, but defiantly
                 would need surface representation and shading later
on...
                 Nothing fancy, just enough to help convey the 3d
look.
		And of course 3d projection...could be ortho, perspective, or both

I started out originally to write this from scratch but have only an
incomplete 2d version.
Making the "3D jump" is a stumbling block for me at this time.
I am open to using a graphics library now, until i learn more about
this subject.
I would like to get something going that i can build from fairly
quickly, but that also has good speed(of course).
I know exactly what i want as far as design is concerned, I just
cannot get past the math part.
My current 2d version uses Tkinter.Canvas...  probably not the best
choice but it works.

So now to the point. (whew...finally)

        In the end, my goal is to produce a fully funtional CAD
program and release it as open software,
        because as far as i know no such thing exsist. That will
definetly have to be coded in C, but i will
        make sure Python is there for scripting purposes.(because
Python is so damn cool).
        This project will be a  jumping off point to that end.

        I have googled extensively on this subject yet found nothing
of use,
        mostly just people asking the same questions as me.
	So if any body has any suggestions where i should go to learn more
about this subject,
	or any good graphics library's or whatever, Please let me know.

        Any suggestions, ideas, or anything is greatly appreciated.
        I am very serious about this project, and very determined to
make it happen.
	Something like this would be of great benefit to me and a lot of
other Blender/python folks.

Thanks



More information about the Python-list mailing list