Photonsters / PhotonFileEditor

Utilities to display, make and edit files for the Anycubic Photon printer
GNU General Public License v3.0
75 stars 13 forks source link

User UI feature requests #7

Closed X3msnake closed 6 years ago

X3msnake commented 6 years ago

Here's a first draft of some of the capabilities i can quickly think of. @All Feel free to edit this post and add or cross out items as we go


Input/Output

Navigation

Visualization

Tools

Distribution

NardJ commented 6 years ago

Import bitmaps is maybe already done. There is a functionality (Edit menu) which maybe is the same: All old bitmaps of the .photon fil are removed. The old setings of the first layer are applied to all new bitmaps/layers. (It is however not tested yet.) Is this what is needed?

NardJ commented 6 years ago

Great list! There are a few items, I need some extra info on. An example when and why it is needed would help me out..

1) Default values: Is this needed for new files or to set settings on existing/loadedfiles? 2) Replace image based on current layer/frame: For this one I need an example to understand it. 3) Allow up/down arrow to navigate layer / frames: Isn't this already present? See Arrows at topleft corner. What is needed/exepected? 4) Implement Slider drag: Isn't this already present? See and slider bar at right edge of layer image. What is needed/expected?

X3msnake commented 6 years ago

@NardJ

0 Maybe i'm reading this wrong, but import for me reads as i have to have the same number of images to replace in the file? can you clarify how you implemented it now?

What does import bitmaps take? Numbered files? How does it know what to put where?

if this replaces all files then number 2 makes sense if this replaces just file by file we need a replace all files


1 This ties to being able to load and save settings. kind of like the optin to chose PLA settings or save new from a list on Cura. this will allow a user to open up a file and repourpouse to use with a new resing for example.


2 Say you don't want to replace all images on your file just the one you are looking at. It is usefull to have a replace feature, you select the image you want from file and it modify the file in context.


3 I'm refering to keyboard keys in parallel to the ui arrows


4 I mean real drag-and-drop like the scrollbars in explorer, now you can click on a spot and it goes there but you can't use the bar to shuffle up/down with the mouse drag.


5 And it is super important to have export files as well i would put this in the top priorities since you can slice a file with chitu or watever, export all images and works on them, then re-import the mdified images and resave the file

NardJ commented 6 years ago

Thx this is clear now. Two answer your question regarding

  1. I store the settings from layer 0, then I delete all layer images and layer defs, iterate through all images in the given path and add them using the storer settings from the ood layer 0.

I will implement your use case also. However while bug hunting yesterday I found the import of images (or rather encode to B/W RLE data) is not working correctly. Will fix this first.

Regarding

  1. This will mean for quick enough access and display on mousedrag, I have to store all decompressed images in memory too. Will look into the amount of mem this uses.

Op di 19 jun. 2018 om 22:00 schreef X3msnake notifications@github.com

@NardJ https://github.com/NardJ

1.

This ties to being able to load and save settings. kind of like the optin to chose PLA settings or save new from a list on Cura. this will allow a user to open up a file and repourpouse to use with a new resing for example.

1.

Maybe i'm rading this wrong, but import for me reads as i have to have the same number of images to replace in the file? can you clarify how you implemented it now?

But what i was saying is; Say you don't want to replace all images on your file just the one you are looking at. It is usefull to have a replace feature, you select the image you want from file and it modify the file in context.

1.

I'm refering to keyboard keys in parallel to the ui arrows

1.

I mean real drag-and-drop like the scrollbars in explorer, now you can click on a spot and it goes there but you can't use the bar to shuffle up/down with the mouse drag.

β€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NardJ/PhotonFileUtils/issues/7#issuecomment-398526224, or mute the thread https://github.com/notifications/unsubscribe-auth/AK7bmPZ-C_ruPlCHy7myMBnJleuI4II6ks5t-Vh5gaJpZM4UsuHy .

X3msnake commented 6 years ago

You can store low rez versions of the layers if needed it is perfectly acceptable to have a lower quality preview while browsing with a dragbar

NardJ commented 6 years ago

Off coure, good one. With the current resolution in the application of 25% (360x640) it would take up 170MB with full height and 25micron layer height. Lower resolution seems best while sliding and we can draw the higher quality picture (360x640) picture on a pause in sliding.

Rob2048 commented 6 years ago

I would recommend keeping the layers stored in the RLE format and only decoding them when needed. My realtime layer preview in javascript had no performance issues with this.

X3msnake commented 6 years ago

Cool :) thanks for the insight

2018-06-20 12:03 GMT+01:00 Robert Gowans notifications@github.com:

I would recommend keeping the layers stored in the RLE format and only decoding them when needed. My realtime layer preview in javascript had no performance issues with this.

β€” You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/NardJ/PhotonFileUtils/issues/7#issuecomment-398711026, or mute the thread https://github.com/notifications/unsubscribe-auth/AKke-lAb1M7uuSBgiMLOszRmB0ltywUUks5t-iwTgaJpZM4UsuHy .

-- Com os melhores cumprimentos, Vinicius Silva

X3msnake commented 6 years ago

@Rob2048 where is your voxel engine git, can't seem to find it in your account, What am I missing?

Rob2048 commented 6 years ago

@X3msnake I havn't put it up yet. Will do tonight :)

X3msnake commented 6 years ago

Ok, add me to the project then ;)

NardJ commented 6 years ago

Another question about "Set default values for the fields": I gather this encompasses general exposure time, bottom exposure time, general off time, # of bottom layers.

However the 'bottom-exposure' time and off-time can be set individually for each layer (Is 'bottom exposure time' not just 'exposure time'? I got the name from the 010 hex template.)

So when loading settings/repurpose the file for another resin, do we want these layer settings to be

Reonarudo commented 6 years ago

@NardJ The name used on the 010 template is based on the name given to the field on their original software. I guess it makes sense to be variable depending on the resin.

NardJ commented 6 years ago

@Reonarudo Looking in 010 Editor at for instance layerDef of layer #23, the variable for exposure time is still named "bottomExposureTime". I think this is an 'error' in the template. See this image: image

If so I will rename the layer variable to 'Exposure Time' in PhotonFileEditor. Is this correct do you think?

Reonarudo commented 6 years ago

Yes. I just checked its a mistake. Should be exposure time. Bottom exposure is defined on the file header. Probably a copy-paste error πŸ˜„

X3msnake commented 6 years ago

these values have no effect on the file.

I can do some new testing tonight, but for what I remember from the tests i did this does not apply, only the top level settings are used...

Like i said i will reconfirm this

2018-06-20 16:44 GMT+01:00 Leonardo Marques notifications@github.com:

Yes. I just checked its a mistake. Should be exposure time. Bottom exposure is defined on the file header. Probably a copy-paste error πŸ˜„

β€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NardJ/PhotonFileUtils/issues/7#issuecomment-398798489, or mute the thread https://github.com/notifications/unsubscribe-auth/AKke-hiYxx74PRMcHtrUW4efJrtkD8tMks5t-m31gaJpZM4UsuHy .

-- Com os melhores cumprimentos, Vinicius Silva

NardJ commented 6 years ago

I have implemented:

Import bitmaps is slow, but I have set up new code in the testbranch which is much faster if the numpy library is available/installed.

Can anyone test these so we can strike these features as done?

Rob2048 commented 6 years ago

My slices to voxels code is up at https://github.com/Rob2048/PhotonTool

X3msnake commented 6 years ago

@Rob2048 Awsome, love the unlicense license, true open source attitude :)

NardJ commented 6 years ago

@X3msnake When applying new resin settings from a list, which settings are affected?

X3msnake commented 6 years ago

Only exposure times since messing with the height will squash and deform the model in z axis

No dia domingo, 24 de junho de 2018, Nard Janssens notifications@github.com escreveu:

@X3msnake https://github.com/X3msnake When applying new resin settings from a list, which settings are affected?

β€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NardJ/PhotonFileUtils/issues/7#issuecomment-399782290, or mute the thread https://github.com/notifications/unsubscribe-auth/AKke-mnAD1bFkXdUFZUTfIN8OTTRe_T0ks5t_-wUgaJpZM4UsuHy .

-- Com os melhores cumprimentos, Vinicius Silva

X3msnake commented 6 years ago

Exposure times and nr of bottom layers

No dia domingo, 24 de junho de 2018, Vinicius Silva x3msnake@gmail.com escreveu:

Only exposure times since messing with the height will squash and deform the model in z axis

No dia domingo, 24 de junho de 2018, Nard Janssens < notifications@github.com> escreveu:

@X3msnake https://github.com/X3msnake When applying new resin settings from a list, which settings are affected?

β€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NardJ/PhotonFileUtils/issues/7#issuecomment-399782290, or mute the thread https://github.com/notifications/unsubscribe-auth/AKke-mnAD1bFkXdUFZUTfIN8OTTRe_T0ks5t_-wUgaJpZM4UsuHy .

-- Com os melhores cumprimentos, Vinicius Silva

-- Com os melhores cumprimentos, Vinicius Silva

NardJ commented 6 years ago

@X3msnake: And per resin type do we have 1 exposure time for all bottom layers and one expore time for the other layers? Or can we have multiple exposure times across the bottom layers and also multiple for the other layers?

BTW we can split layers (reducing individual layer height) without effecting the model. Could this be benificial to resin settings?

X3msnake commented 6 years ago

@NardJ

The file structure ignores compleately the secondary exposure times. it even ignores the secondary off times so those values imo are just placeholders for future firmware.

I retested this and changing those values does not affect neither the bottom exposure per layer nor the normal layer exposure. so it is safe to think of those like unexistants for now. I would just set all those values to the same base/normal exposures

as for reducing by doubling the layer images, it would be interesting yes since you can get more XY detail with some resins.

It would be even cooler if @Antharon or @Rob2048 could code a function to create a new image based on the two layer to fill in

NardJ commented 6 years ago

@X3msnake Does the Photon printer also ignore the secondary layer height? (If so I could hide the complete block with values)

X3msnake commented 6 years ago

Layer height is used. We could design a variable layer from 2 files with different slices.

Also the layers are in absolute distance. So a 0.05 layer will be in L1 0.05 on L2 0.10 L3 0.15...

And so on

No dia segunda-feira, 25 de junho de 2018, Nard Janssens < notifications@github.com> escreveu:

@X3msnake https://github.com/X3msnake Does the Photon printer also ignore the secondary layer height? (If so I could hide the complete block with values)

β€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NardJ/PhotonFileUtils/issues/7#issuecomment-400040160, or mute the thread https://github.com/notifications/unsubscribe-auth/AKke-jQsk2TFVX2KlsgjNUPZHrYozU2Vks5uASRZgaJpZM4UsuHy .

-- Com os melhores cumprimentos, Vinicius Silva

X3msnake commented 6 years ago

Most of these are already implementing, closing