Hi. The recent discussion and patches regarding changing move operations to require first selecting the entities and then specifying the displacement(s) warrants more discussion. For move operations, I think that the proposed changes are worthwhile, 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? 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 -- Man once surrendering his reason, has no remaining guard against absurdities the most monstrous, and like a ship without rudder, is the sport of every wind. -Thomas Jefferson to James Smith, 1822 _______________________________________________ PythonCAD mailing list [email protected] http://mail.python.org/mailman/listinfo/pythoncad
