Drag and drop in furniture design software.
People e-mail in asking, or more specifically, demanding that SketchList 3-D should have drag and drop abilities in the design mode. With the exception of the shaped board editor SketchList 3-D does not allow dragging and dropping of assemblies or components. This is a specific design decision that I made for several reasons.
First of all, I almost always find drag and drop to be cumbersome. I drag something, and either my screen resolution, my mouse, or my questionable eyesight keeps me from dropping it at the right spot. There are graphics programs which allow you to set up a grid of points where you can do a “snap-to”. The thing about using snap-to is that when you want to snap somewhere between two snap-to points — well, you can’t. So then you either turn snap-to off or re-size snap-to grid. And on and on and on. But that’s just my point of view, based on my experience.
More importantly, I think it’s challenging to the point of impossibility to be working on a kitchen project that is 18 feet wide and hope that you can drag and drop something to the nearest 3/16 of an inch. Never happen, not quickly at least!
If I want to have a cabinet 4 feet 6 3/8 of an inch from the left, the most direct way to do that is simply typing in 4 feet, 6 3/8 of an inch as the left locating dimension! Every single time, the cabinet goes precisely where I wanted. The software developers in the graphics design area called this parametric or parameter driven design.
The use of the drag-and-drop technique that people are asking for seems to be to make two objects butt together. More than one user would like, in addition to drag and drop, the ability for a board to know when it’s butted against another board. On one level, this has the same problem as the snap to grid approach. What happens if, for whatever reason, I don’t want to board the butt but overlap. I know this might not make sense. But what happens if? Besides, it’s a pretty challenging technical feat for every board to know where every other board is.
In the parameter driven approach if I know a right edge of the board is at 18 7/8″, to butt a board against it I would enter the left value of the second board as 18 7/8″. The boards meet no question about it. And as far as speed goes, while never actually testing it, I’d bet a dollar to a doughnut, drag-and-drop is slower.
Well then why do we allow drag-and-drop in the shaped boards editor? It’s really hard to say. Maybe to some degree it’s a marketing concession to the drag-and-droppers of the world:)
To an extent, it makes sense in a limited and controlled geometry of a single board when you want to see exactly where the points are going to be. But points can always still be entered by typing in their distances from the bottom-left corner of the board.
All of this comes to the larger question of peoples’ perceptions of what design program should be and do. New users come to SketchList 3-D from some other sort of drawing program — like a paint program on Windows. From that point of view it sensible to think in terms of depositing rectangles on a flat plane and dragging the rectangles to create size and space, and then grabbing those rectangles in their entirety and dragging them to other places on the to be workspace. That is easy to understand and many, many people use that type of program.
But SketchList 3-D is more than a simple drawing program. It is a 3-D furniture design software that incorporates the functions and reports needed to help woodworkers in the shop. It’s able to do this because in SketchList 3D the virtual board you create on the screen is much more than a 2D or even a 3D image. That virtual board is a visual representation of a record in the database that contains information such as grain appearance, grain direction, source material, cost of the material, type of joinery, type of edging…
The point is there’s a lot going on with virtual boards that you don’t get with a drawing program. It’s hard to compare apples and oranges. And after all, I don’t like drag-and-drop not because I don’t like it but because I don’t think it’s as effective as it needs to be.