[PythonCAD] Consistency in operations in PythonCAD

Wilbert Knol w.knol at niwa.co.nz
Wed Dec 14 07:04:57 CET 2005

> but I'd like to hear from
> people familiar with other CAD packages, particularly AutoCAD, how
> similar operations are performed. Does the program require you to select
> entities first, or do you start some move command mode and then specify
> which entities will be moved?

I can't recall how AutoCAD does it, but it used to be annoyingly inconsistent.

My elderly version of IntelliCAD allows both:

1. When idle, a click selects objects. A right-click then pops up the context 
menu, which has 'move' as a choice.

2. On the other hand, if I select 'move' from the pull-down menus, I get 
prompted to make a selection, a displacemet etc.

Option 1 (the context menu move) has my preference: no need to travel to the 
top of the screen to pull down a menu, the pointer goes straight to the 
object to select and stays there.

An alternative way - used by gschem - would be to use a combination of a 
keyboard hotkey (e.g. 'm' to move something) and a mouse click (to select the 
object). This is really quick. once you get the hang of it.


> How about other operations like entity 
> stretching or splitting?
> Here's some more background on why I'd implemented things as they are.
> When I used ME-10 at my job, I was doing finite element analysis, and I
> would draw the element meshes in ME-10 instead of using some type of
> auto-meshing procedure available in the FEA package we used (Ansys). So,
> given some part to analyze, I'd sit and draw segments over the outline
> of the shape, sometimes selecting a large number of segments and then
> splitting them at their intersection points, other times drawing the
> individual elements one at a time. After I had the basic shape complete,
> I'd go and move some of the points around to make the elements look more
> uniform, as well as making the four-sided elements as square as possible
> so the results would be better. ME-10 had a nice interactive mode of
> moving points where you would click on the point, and then as you moved
> your mouse/digitizer to where you pleased all the segments that used
> that point would be redrawn as the point moved. Eventually I'd like
> PythonCAD to do this as well. Still, this point movement was performed
> by starting the 'move' operation, and then selecting what to move, and
> I found this procedure very easy and quick to use. So much so that
> generating decent FEA meshes was much, much faster than the attempts to
> use Ansys auto-meshing, something that I did try every now and then.
> Many (most?) of ME-10 edit type operations were performed by starting
> the operation first, then selecting the entities on which the action
> will be applied. Changing entity color, thickness, and linetypes were
> all done this way, as was changing the various attributes of complex
> entities like hatching and dimensions. It is due to my years of working
> with ME-10 in this manner that I'd written PythonCAD to behave in a
> similar fashion.
> As for PythonCAD's editing functions other than moving, such as entity
> splitting, I know that I want to keep the ability to click on an object
> in a drawing and have it split without first having to select it. Also,
> splitting numerous entities at intersections by invoking 'split' and
> then drawing a box around the desired entities requires fewer mouse
> clicks than selecting first and then invoking 'split'. Expanding on
> this, in addition to making PythonCAD possibly behave like other CAD
> packages in regards to editing, we need to consider making the actions
> as simple to perform as possible. By reducing the number of mouse clicks
> or commands needed to perform some action we can achieve this, though
> potentially at the price of program behavior differing than what is
> initially expected. I do want to make things easy for people to transition
> to using PythonCAD, but I don't want to be constrained in emulating
> tedious behavior in other programs.
> Please feel free to add comments about this, and also send in some
> reports about how other CAD packages handle operations like moving,
> splitting, mirroring, and changing the attributes of entities in
> a drawing.
> Art

More information about the PythonCAD mailing list