Variable Exposure Timing (Built In)

There are three examples of Variable Exposure Timing spread throughout Photonic3d. The first two are calibration routines specified here: The final third example is a duplication grid that exposes your print at different exposure levels. That button is located here:

Variable Exposure Timing (For Custom Calculators)

Not only does Photonic3D allow variable exposure times per layer with a exposure time function, Photonic3D also allows dynamic drawing of the print screen while a print is in progress. Generally this is only used for blacking out regions of the screen during an exposure, but you can also use it to produce new printable regions, or alpha fade regions as well.

All of this is done with the `exposureTimers` array. Just pick any JavaScript calculator and add a timer to the list like this:

       exposureTimers.add({
           "delayMillis":1000, 
           "parameter":"HelloWorld"}, 
           "function":function(message) {
              java.lang.System.out.println("This will print HelloWorld after 1 second of exposure:\n" + message);
           }
       });
       

You can add as many timers as necessary, and are designed to be much more practical than the one above. You are able to add your own exposure timer to any available JavaScript calculator in Photonic3D like this:

       exposureTimers.add({
           "delayMillis":$LayerTime - (pegSettingsMM.exposureTimeDecrementMillis * x), 
           "parameter":{
               "x":startingX, 
               "y":startingY, 
               "width":pegSettingsPixels.pegStandWidthX, 
               "height":pegSettingsPixels.pegStandWidthY}, 
           "function":function(blackRect) {
              buildPlatformGraphics.setColor(java.awt.Color.BLACK);
              buildPlatformGraphics.fillRect(
                 blackRect.x,
                 blackRect.y,
                 blackRect.width,
                 blackRect.height);
           }
       });

The timer above was written to be integrated into the peg example on the Calculator examples page https://wiki.photonic3d.com/doku.php?id=calculator_examples. It allows each peg to be independently printed at a different exposure levels based on the master exposure level calculated by the printer. The trick to remember here is that if you use the “parameters” variable above, you can capture the state of any local variable at the time that your JavaScript calculator was running. Then Photonic3D will pass that object into the exposure function to be used during the actual exposure of your image.

There are of course, several examples of this throughout Photonic3d.