Feature requests

Read this before requesting features: http://ometer.com/features.html

Get inspiration from other open-source projects

Core Features

DWG Support?

  • 1. How about using OpenDWG to add DWG support to PythonCAD? DXF sucks…

About menu item

  • 2. Include a menu item called “About” that shows the current software version number and other useful info. DONE

Dimensions in feet and inches

  • 3. Allow entering points and dimensions in feet and inches (e.g. 2'-9 1/2”). Display dimensions in feet and inches. Settable precision (e.g. whole inches, 1/2”, 1/4”, 1/8”, 1/16”,1/32”,1/64”)

The position readout should show the position units

  • 4. And should show the current length of a segment as it is rubber-banding, or the current radius of a circle as you are drawing it.


Scroll Bars!

  • Also scroll using arrow keys and pageup-pagedown keys



  • 7. expand the circle entity Top Priority

Bezier curves

  • 8. curved lines

Selecting items is funky

  • 9. What is the strategy/design for selecting objects? Do you select the object, then perform a function on the selected objects, or you choose the function from the menu then choose the object to affect? It is hard to tell what's going on. How do you select a text block, change its attributes?

How do you unselect everything (so I *know* nothing is currently selected?) What are are those little squares for? A selected object changes color to orange?

Drag to move

  • 10. Drag item to move it, displaying the offset distance as you drag. Use shift or Ctrl to constrain move to horizontal or vertical.

Drag to rotate

  • 11. Display object rotating as you drag. Show the current angle of rotation as you drag.

Right-click to inspect object attributes

  • 12. when you right-click, something useful should happen.

What mode am I in?

  • 13. It should display the current mode you are in (e.g. circle, segment, move, stretch, etc)


  • 14. Allow selecting multiple objects to form a group. A group acts as a single entity for commands like move. Ungroup command to access the individual components of a group. Top Priority

Save a group as a re-usable object

  • 15. Like autoCAD Blocks or Vectorworks symbols



by Layer preferences

  • 17. each layer should have its own defaults for color, style, thickness, etc.

Text styles

  • 18. store a set of attributes for text entities as a named text style


  • 18. Define a named subset of the drawing that is rectangle of interest with a scale (magnification). Be able to switch the current display to a named view.

Printing to scale

  • 20. Print out a drawing with accurate scale (e.g. 1:48 or 1/4” = 1'-0”)

User scripting

  • 21. Users can write scripts to automate tasks and add new functionality. The programming language for these scripts is Python. Registered scripts appear in a menu.

Error messages and prompts for commands

  • 22. When the user types in a command, a message should indicate if it failed or succeeded.

Prompting the user to save the changes when closing the program

  • 23. When you are working in a drawing and close the program, you should be prompted to save or discard the changes. If not, you will lose all the changes since the last time you saved the drawing.


Python interactive window

  • 24. Provide an interactive GUI editor window (accessed from a PythonCAD menu) that will allow users to enter Python code that accesses PythonCAD objects, that will be executed immediately. Perhaps use the iPython shell for this. Or code from here http://www.loria.fr/~rougier/index.php?n=Software.Software

or here http://www.sync.com.br/faq/pygtk/index.py?req=show&file=faq23.002.htp


* 25. While entities are selected, use arrow keys while shift is held to “nudge” the X or Y position by a very small increment.

Delete key

* 26. Delete selected entities by pressing the delete key.

Platform Features

Conform to Open Software Suite

Use WxPython?

Using the wxpython libraries might be a better way to get cross-platform to work well.



After 5 years of development time in a HIGH-LEVEL LANGUAGE!!!, one would probably expect PythonCAD to be twice as powerful as Autocad ;-) instead of just having a few very basic drawing options and that's about it… not sure if this project has such a bright future ;)

I think that this “feature request” is not too constructive, is it? ;-) Nonetheless, if you want to help the project, maybe it could get more powerful. Regarding its bright future, nobody has made any promises about that. Once again, your help would be apreciated.

PyCad and Apt360 and EMC

PyCad and Apt360 are natural companions. (and EMC). The way PyCad describes geometry seems like it's taken from the APT manuals (no offense meant, i think thats great ). and Apt360 really needs a front end!. Plz visit freenode & join #cam. APt360 is part of a suite that generates gcode for machine tools, and can be executed in EMC (join #emc on freenode / visit linuxcnc.org ) TomP

More information about Apt360 in EMC Documentation Wiki.

feature_requests.txt · Last modified: 2010/12/05 08:57 by carlopav