t-oster / VisiCut

A userfriendly tool to prepare, save and send Jobs to Lasercutters
https://visicut.org
Other
226 stars 114 forks source link

Visualize execution order #104

Open mgmax opened 11 years ago

mgmax commented 11 years ago

It is not immediately clear from the mapping dialog that the order in the mapping also represents the order in which the profiles are executed. This: screen5

cuts first and engraves second, which is usually not what the user wants.

Suggestions:

t-oster commented 11 years ago

Another question is how to handle the execution order between multiple files. We could e.g. group them by laser-profile, or provide a complete table containing all mappings of all files .... suggestions welcome

peteruithoven commented 11 years ago

Changing the order of the files would require a table with the [+], [-] [up] and [down] buttons when there are multiple files, but that would add a lot gui... I have no good ideas about this yet.
Having a default order where you place engrave before cut until overriden is complicated I think. It would for example require reordering when you select another laserprofile in the mapping area... That's something I would advice against because it wouldn't not be something a user expects when he just wants to change the profile. Adding numbers would help, but then it becomes more important to tweak the column width's. Maybe consider not showing a label above the order and enable rows.

t-oster commented 11 years ago

I resized the columns, but not they can not be resized by the user anymore (JTable is strange....). Should we add the numbers before now... this looks also strange, because the numbers won't be editable by clicking and if you move a mapping up, the numbers will stay....

peteruithoven commented 11 years ago

I don't actually think it's necessary to add an order column. Shouldn't the move buttons communicate that order is important? Have there bin users that asked questions about this?

For reordering files I would suggest: A edit button next to the dropdown menu. Only showing up when there are multiple files. This opens up a window in which you can re-order, add and remove files. If we notice people use this a lot we think about a way to fold/unfold this files reorder ui in the main ui.

Or do we really think we need ways to group profiles (like engrave) together, from multiple files?

mgmax commented 11 years ago

I think combining different engrave jobs is important: the Epilog driver cannot do "engrave, cut, engrave, cut" as one job (it will split into different parts that have to be started separately). Because of this I still use copy-and-paste in inkscape for combining jobs.

Also it is often faster to engrave a big block at once (the lasercutter needs some time to reverse the direction for each line, no matter how long the line is).

t-oster commented 11 years ago

Correct. By the way, I am looking for a method to check if it is faster to engrave two filled rectangles separately or combined, depending on their size and position. Anyone a good idea? what i mean is: assume 1: XXX XXX XXX XXX now its faster to do one after another, because moving with laser on is slower than moving with laser off assume 2: XXX XXX XXX XXX now it is faster to do both as one.....

peteruithoven commented 11 years ago

@mgmax I get the problem. But this only happens when:

  1. You use a Epilog lasercutter.
  2. You 2 or more files with both engrave and cut.
  3. You didn't create those files yourself. So let's try to complicate the interface as little as possible.

@t-oster , assume 1 and assume 2 are the same? What do you mean?

I find the trickiest part that the current interface is build on editing things on file level and this ordering has to be above that. So it can't be another screen next to Mapping, Position and Laser Settings.

So... first idea... We add a Settings or Order button next to the file ui. Something like: format-justify-fill-5

This could open a window containing radio buttons: Order:

When By file is selected you see the list of files with up and down buttons next to it. When By laser profile is selected you see a list of used laserprofiles with up and down buttons next to it.

This order setting should be an option that is stored VisiCut wide, so opening other files shouldn't change it.

t-oster commented 11 years ago

@peteruithoven My assume-texts were changed by githubs markdown. Assume2 is the same but has a lot more spaces between the two blocks.

I like your idea... but maybe we should start more powerful and allow re-ordering of the complete list of file-mapping-row-pairs? If we have only your suggested modes, i think it is a bit limited:

peteruithoven commented 11 years ago

I don't agree, let's try to think of a way that applied progressive disclosure here as well.

Yes, both cuts (multiple mappings) would be merged. If you really want to separate them you could add a laserprofile so it's mentioned separately. Can we think of a use case where you need to order the specific mappings? We could add a third option:

When we select this option or the By laser-profile option we might want to consider hiding the up down buttons in the Map by single property and Advanced mapping screens.

About order order of By laser-profile. I would start with a default we define in code, for the predifined mappings like Cut everything, Mark everything etc. The rest of the laserprofiles would be added to the bottom of the list when they are created.

Now I'm doubting about only showing the used laserprofiles, because when you show all you could set a good default order. We could turn the By laser-profile into a table and also show a column with current mappings. In Thomas example we would show something like "color blue" and "color yellow" behind the cut profile.

What do you guys think?

t-oster commented 11 years ago

time for some UI mockups....

peteruithoven commented 11 years ago

Alright, first attempt. by file by profile by mapping

(Also first attempt at using Netbeans UI editor for this, great stuff) (Couldn't easily figure out how to use an image in a button, so I used labels instead)

Shoot.

mgmax commented 11 years ago

It could be helpful to include numbers "1., 2., ..." to clearly distinguish this list from other lists where sorting does not matter. (Just like in a text document where you distinguish between bullet points and numbered lists)

What happens if I have two files (A and B) with each engrave and choose "by file, A, B"?

peteruithoven commented 11 years ago

I don't really have a problem with adding a column with order numbers.

@mgmax You mean to ask how the mappings / profiles are ordered within files for the order by file option? In the main ui, in the mapping ui you determine this order, per file. (Just how it currently works). Moving this from this place has consequences for, for example, saved mappings. How will they be ordered? Is the order still a part of this mapping? Can you override this in the order ui?

I'm not sure what you rever to in the last part of your comment when you talk about "this". Maybe also add a mockup? (It's really easy in Netbeans. Create a new File of type Swing GUI Forms > JDialog Form. Go to design. Drag and drop. Click the Preview Design button and make a screenshot. )

peteruithoven commented 11 years ago

I put my very quick and dirty mockup on github. https://github.com/peteruithoven/VisiCutOrderMockups

t-oster commented 11 years ago

How about always using the last list (because that is what really happens) and add the "by file" and "by profile" as buttons like "group by file" and "group by profile", which then reorder the list?

peteruithoven commented 11 years ago

The problem might be that you overrule any other orderings, like in mappings. Which I find slightly unclear.That's why I was suggesting hiding the up and down buttons in the mapping ui when this option is selected. A bigger problem is that you need to do this again when you add files and add or change mappings in files. Also, I don't really get the benefit, in mgmax use case the only important thing is that engrave and cut profiles are grouped, and the order by laserprofile seems, by far, the easiest way to do this.

mgmax commented 11 years ago

I think it is a bad design idea that you set a part of the ordering in the "mapping" tab and another part of the ordering in the "order" tab. Why don't we completely remove all "ordering" settings from the mapping tab and put all of them into the separate "ordering" tab?

Are there any other use-cases than:

? I don't really get where you would want a different sorting for different files or mappings.

t-oster commented 11 years ago

Well think of some jobs, where you want to cut e.g. screw-holes first, which is not correctly handeled by the sorting-strategy...

peteruithoven commented 11 years ago

@mgmax I agree splitting up the order stuff is confusing. But if you split it up, you can't store order in the saved mappings. But then again I'm not sure how useful that is. So yes maybe we should remove the ordering from mapping.

But then, in which order are the mappings handled when you select order by file? Maybe we need both the order file and order laserprofile parts in the ui? So you can reorder in which order the files are handled when they are grouped under laserprofiles ( order by laserprofile ). And so you can reorder the laserprofiles when you order by file. This however might be confusing as well. I'm going to try to create a mockup.

@t-oster You could still do that by creating an extra cut laserprofile for screw-holes. That is slightly more complicated though, I admit.

t-oster commented 11 years ago

.. and you have to re-enter the laser-settings, because it is a new profile

peteruithoven commented 11 years ago

A new mockup. This allows you a bit more control, with the cost of a bit more complexity. Screen shot 2013-03-24 at 11 02 57 PM Screen shot 2013-03-24 at 11 03 04 PM

Two things I don't like.

  1. We should remove the ordering from the mapping part. I'm afraid it's going to be more complicated to sort for people, since they might expect the mapping order is the actual order.
  2. It can't handle Thomas's usecase.
mgmax commented 8 years ago

Can it be that we are horribly over-complicating the whole issue? Taking a look at 3D printer software like Cura, we should just make it simple and do the right thing ™. If someone wants to implement the really advanced selections nicely, he can do so, but obviously there is not enough time for that. As long as there are so many other bugs, we should rather choose the simple solution that makes 95% of the users happy.

Cura Screenshot image

I would be happy with just merging everything and forcing the order to the default one that you set up somewhere in the settings.