Is there a "Large Scale Python Software Design" ?
Stephen Waterbury
golux at comcast.net
Tue Oct 19 02:57:58 EDT 2004
More information about the Python-list mailing list
Tue Oct 19 02:57:58 EDT 2004
- Previous message (by thread): Is there a "Large Scale Python Software Design" ?
- Next message (by thread): Is there a "Large Scale Python Software Design" ?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Andrea Griffini wrote: > I proposed python as the main language for our next CAD/CAM > software because I think that it has all the potential needed > for it. I agree, even without knowing the intended scope. ;) Speaking of scope, if you are allowed to divulge it, that would be interesting to know. Will it be 2D or 3D (3D I would assume), and what kind of geometry engine? Probably one of the open-source ones that already have a Python API, no? If it is 3D, a very desirable feature would be STEP (ISO 10303) geometry import/export, so that you will be able to exchange CAD data with virtually any commercial CAD tool, and some open source ones (such as OpenCascade). That will greatly increase its chance of adoption by experienced CAD users, who typically have existing libraries of CAD designs created using a COTS CAD tool. (This is even more useful if you are planning to support assemblies of components -- which might even be the most logical initial feature for a new Python-based CAD/CAM, since assemblies could be manipulated even without having native geometric-form-creation capabilities: all you would need is rendering, orientation, and interfacing of existing solids -- a.k.a., "parts".) If you have access to a license for ABAQUS, I recently discovered that they have implemented a Python API for their FEA engine, and have implemented STEP geometry as well. See: http://www.abaqus.com/PAPortal > ... I'm not sure yet if the decision will get through, but > something I'll need in this case is some experience-based set > of rules about how to use python in this context. > > For example... is defining readonly attributes in classes > worth the hassle ? Does duck-typing scale well in complex > software or should I go for a classic inheritance hierarchy ? For something as complex as CAD/CAM, you will probably want to make maximum use of interfaces and adaptors, with minimal and very judicious application of classic inheritance hierarchies. I am *not* an expert on interfaces and adapters, but several of the gurus on this list are. Since you will probably want to do lots of prototyping, you can probably delay decisions about matters such as read-only attributes until your API has stabilized somewhat. Keep us posted on your progress. Cheers, Steve
- Previous message (by thread): Is there a "Large Scale Python Software Design" ?
- Next message (by thread): Is there a "Large Scale Python Software Design" ?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list