UVtools.Core Gets UVtools born date and time Gets UVtools years Return full age in a readable string Checks if today is UVtools birthday Converts a speed from one unit to another Converts seconds to milliseconds Converts seconds to milliseconds Converts milliseconds to seconds Gets or sets the maximum number of concurrent tasks enabled by this ParallelOptions instance. Less or equal to 0 will set to auto number 1 = Single thread n = Multi threads Gets the ParallelOptions with set Gets the ParallelOptions with set to 1 for debug purposes Gets the ParallelOptions with and the set Gets the ParallelOptions with and the set Gets or sets if operations run via CUDA when possible Gets if we can use cuda on operations Gets or sets the default compression type for layers The average resin 1000ml bottle cost, to use when bottle cost is not available. Use 0 to disable. Gets the default folder to save the settings Gets the default folder to save the settings A contour cache for OpenCV Gets the area of the contour Gets the perimeter of the contours Gets the centroid of the contour Gets or sets the contour points Gets if this contour have any point Checks if a given is inside the contour rectangle bounds Gets if a given is inside the contour Utility methods for contour handling. Use only with Tree type Gets the contours inside Gets the contours hierarchy Gets if this collection have any contours Gets contours inside a point If true it will include all limiting area, otherwise only outer contour will be returned Gets a contour given a location. Contour index, -1 if not exists null if not exists Gets only the outer most external contours Only compatible with Tree type of contour detection Gets contours inside contours that are black pixels Gets contours that are positive and negative pixels and group them by areas Only compatible with Tree type of contour detection Gets contours that are positive pixels and group them by areas Only compatible with Tree type of contour detection Gets contours inside contours that are black pixels and group them by areas Only compatible with Tree type of contour detection Gets contour real area for a limited area Gets the largest contour area from a contour list Contour list Gets contours real area for a group of contours Grouped contours True to run in parallel Array with same size with contours area Checks if two contours intersects and return the intersecting pixel count Contour 1 Contour 2 Intersecting pixel count Checks if two contours intersects Contour 1 Contour 2 A disposable Mat with associated ROI Mat Gets index start number, if starts on 0 or 1 Flip direction, same as , but add None which must be taken care/ignored on code Rotate direction, same as , but add None which must be taken care/ignored on code Rotate 90 degrees clockwise (0) Rotate 180 degrees clockwise (1) Rotate 270 degrees clockwise (2) mm/s mm/m cm/m ms s Default order of issues to show on the UI list The Excellon drill format is a subset of RS274D and is used by the drilling and routing machines made by the Excellon corporation. Because of Excellon's long history and dominance of the PCB drilling business for many years their format is a defacto industry standard. Almost every PCB layout software can produce this format.However we have noticed that many PCB layout tools do not take full advantage of the header information which makes reading the drill file more difficult than it should be. https://www.artwork.com/gerber/drl2laser/excellon/index.htm https://gist.github.com/katyo/5692b935abc085b1037e Defines tool as having a diameter. For each tool used in the data the diameter should be defined here. There are additional parameters but if you are a PCB designer it is not up to you to specify feed rates and such. Use float system Include left zeros Include right zeros Indicates the start of the header. should always be the first line in the header Number of padding zeros on coordinate system Use Format 2 commands; alternative would be FMAT,1 Gets or sets the X offset for drawings in millimeters Gets or sets the Y offset for drawings in millimeters Gets or sets to inverse the polarity on drawing Gets or sets the scale to apply to each shape drawing size. Positions and vectors aren't affected by this. Generic exception to show only the message instead of the full stack-trace Gets the Unix timestamp since Jan 1, 1970 UTC Gets the Unix timestamp in seconds since Jan 1, 1970 UTC Gets the Unix minutes in seconds since Jan 1, 1970 UTC Gets the from a unix timestamp in seconds Gets the from a unix timestamp in minutes Calculates the age in years of the current System.DateTime object today. The date of birth Age in years today. 0 is returned for a future date of birth. Calculates the age in years of the current System.DateTime object on a later date. The date of birth The date on which to calculate the age. Age in years on a later day. 0 is returned as minimum. White color: 255, 255, 255, 255 Black color: 0, 0, 0, 255 Create a byte array of size of this Blank byte array Creates a new empty with same size and type of the source Creates a new empty with same size and type of the source Creates a new blanked (All zeros) with same size and type of the source Blanked Creates a new blanked (All zeros) with same size and type of the source Blanked Creates a with same size and type of the source and set it to a color Creates a new and zero it Creates a new and zero it Creates a new and set it to a Allocates a new array of mat's Array size Allocates a new array of mat 's Array size Image size to create, use to create a empty Mat New mat array Create a new from Gets the mat bytes as Gets the byte pointer of this Gets the whole data span to manipulate or read pixels, use this when possibly using ROI Gets the whole data span to manipulate or read pixels, use this when possibly using ROI Gets the whole data span to manipulate or read pixels Gets the whole data span to manipulate or read pixels Gets the data span to manipulate or read pixels given a length and offset Gets a single pixel span to manipulate or read pixels Gets a single pixel span to manipulate or read pixels Gets a row span to manipulate or read pixels Gets a row span to manipulate or read pixels Gets a col span to manipulate or read pixels Fill a mat span with a color Mat to fill Start position, this reference will increment by the Length to fill Color to fill with Ignore and fill to if is less than the threshold value Fill a mat span with a color Mat to fill Length to fill Color to fill with Ignore and set to if is less than the threshold value Fill a mat span with a color Mat to fill Length to fill Color to fill with Ignore and fill to if is less than the threshold value Step return the original Mat step, if ROI step still from original matrix which lead to errors. Use this to get the real step size Gets the total length of this The total length of this Gets a pixel index position on a span given X and Y X coordinate Y coordinate The pixel index position Gets a pixel index position on a span given X and Y X and Y Location The pixel index position Gets a byte array copy of this Byte array Gets a byte pixel at a position Gets a byte pixel at a position Gets a byte pixel at a position Sets a byte pixel at a position Sets a byte pixel at a position Sets a byte pixel at a position Sets a byte pixel at a position Sets a byte pixel at a position Sets bytes Gets PNG byte array Copy a region from to center of other Source to be copied to Size of the center offset Target to paste the Copy a region from to center of other Source to be copied to Region to copy Target to paste the Copy a to center of other Source to be copied to Target to paste the Gets a Roi, but return source when roi is empty or have same size as source Gets a Roi at x=0 and y=0 given a size, but return source when roi is empty or have same size as source Gets a Roi from a mat size, but return source when roi is empty or have same size as source Gets a Roi from center, but return source when have same size as source Gets a new mat obtained from it center at a target size and roi Gets if a is all zeroed by a threshold Pixel brightness threshold Start pixel position Pixel span length Finds the first negative (Black) pixel Start pixel position Pixel span length Pixel position in the span, or -1 if not found Finds the first positive pixel Start pixel position Pixel span length Pixel position in the span, or -1 if not found Finds the first pixel that is Start pixel position Pixel span length Pixel position in the span, or -1 if not found Finds the first pixel that is at less than Start pixel position Pixel span length Pixel position in the span, or -1 if not found Finds the first pixel that is at less or equal than Start pixel position Pixel span length Pixel position in the span, or -1 if not found Finds the first pixel that is at greater than Start pixel position Pixel span length Pixel position in the span, or -1 if not found Finds the first pixel that is at equal or greater than Start pixel position Pixel span length Pixel position in the span, or -1 if not found Rotates a Mat by an angle while keeping the image size Angle in degrees to rotate Rotates a Mat by an angle while keeping the image size Rotates a Mat by an angle while adjusting bounds to fit the rotated content Rotates a Mat by an angle while adjusting bounds to fit the rotated content Scale image from it center, preserving src bounds https://stackoverflow.com/a/62543674/933976 to transform X scale factor Y scale factor X translation Y translation Destination size Interpolation mode Resize source mat proportional to a scale Correct openCV thickness which always results larger than specified Thickness to correct Draw a rotated square around a center point Draw a rotated rectangle around a center point Draw a square around a center point Draw a rectangle around a center point Draw a polygon given number of sides and length Number of polygon sides, Special: use 1 to draw a line and >= 100 to draw a native OpenCV circle Radius Center position Left aligned without trimming, openCV default call Left aligned and trimmed Center aligned and trimmed Right aligned and trimmed Extended OpenCV PutText to accepting line breaks and line alignment Extended OpenCV PutText to accepting line breaks, line alignment and rotation Extended OpenCV PutText to accepting line breaks, line alignment and rotation From gets the SVG path's. Tags are not included. Compression method for the contours True to binary threshold first Array of path's Retrieves contours from the binary image as a contour tree. The pointer firstContour is filled by the function. It is provided as a convenient way to obtain the hierarchy value as int[,]. The function modifies the source image content The source 8-bit single channel image. Non-zero pixels are treated as 1s, zero pixels remain 0s - that is image treated as binary. To get such a binary image from grayscale, one may use cvThreshold, cvAdaptiveThreshold or cvCanny. The function modifies the source image content Retrieval mode Approximation method (for all the modes, except CV_RETR_RUNS, which uses built-in approximation). Offset, by which every contour point is shifted. This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context The contour hierarchy Retrieves contours from the binary image as a contour tree. The pointer firstContour is filled by the function. It is provided as a convenient way to obtain the hierarchy value as int[,]. The function modifies the source image content The source 8-bit single channel image. Non-zero pixels are treated as 1s, zero pixels remain 0s - that is image treated as binary. To get such a binary image from grayscale, one may use cvThreshold, cvAdaptiveThreshold or cvCanny. The function modifies the source image content The contour hierarchy Retrieval mode Approximation method (for all the modes, except CV_RETR_RUNS, which uses built-in approximation). Offset, by which every contour point is shifted. This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context Detected contours. Each contour is stored as a vector of points. Determine the area (i.e. total number of pixels in the image), initialize the output skeletonized image, and construct the morphological structuring element Number of iterations required to perform the skeletoize Determine the area (i.e. total number of pixels in the image), initialize the output skeletonized image, and construct the morphological structuring element Reduces iterations to 1 and generate a kernel to match the iterations effect Dispose this if it's a sub matrix / roi Mat to dispose Read from current position to the end of the file Seek to a position, do work and rewind to initial position Returns sqrt(x2 + y2) without intermediate overflow or underflow. Returns sqrt(x2 + y2) without intermediate overflow or underflow. Returns rad to deg Rad value Convert bool to byte (0/1) Gets the number of digits this number haves Digit count Gets the number of digits this number haves Digit count Gets the number of digits this number haves Digit count Gets the number of digits this number haves Digit count Gets the number of digits this number haves Digit count Gets the number of digits this number haves Digit count Gets the number of digits this number haves Digit count Gets the number of digits this number haves Digit count Gets a temporary directory path Prepend a string to temporary directory name True to create that directory, otherwise false The temporary directory path Gets a temporary directory path True to create that directory, otherwise false The temporary directory path Gets a temporary file with a extension and a prepend string Extension name without the dot (.) Optional prepend file name Gets the smallest rectangle among all rectangles The smallest rectangle Gets the smallest rectangle among all rectangles The smallest rectangle Gets the largest rectangle among all rectangles The largest rectangle Gets the largest rectangle among all rectangles The largest rectangle Gets if this size have a zero value on width or height Exchange width with height Gets if this size have a zero value on width or height Converts stream into byte array Input Byte array data Upper the first character in a string Input string Modified string with fist character upper Repeat this string times String to repeat Number of times to repeat repeated times Converts a string into a target type Target type to convert into Value Converted value into target type Creates a new instance of this type Creates a new instance of this type Target type New instance of {T} 1 inch to 1 mm 1 mm to 1 inch Used to specify what our overwrite policy is for files we are extracting. Used to identify what we will do if we are trying to create a zip file and it already exists. Unzips the specified file to the given folder in a safe manner. This plans for missing paths and existing files and handles them gracefully. The name of the zip file to be extracted The directory to extract the zip file to Specifies how we are going to handle an existing file. The default is IfNewer. Unzips the specified file to the given folder in a safe manner. This plans for missing paths and existing files and handles them gracefully. The zip file to be extracted The directory to extract the zip file to Specifies how we are going to handle an existing file. The default is IfNewer. The number of extracted files Safely extracts a single file from a zip file The zip entry we are pulling the file from The root of where the file is going True to preserve full name and create all directories up to the file, otherwise false to extract the file just to Specifies how we are going to handle an existing file. The default is Overwrite.IfNewer. The extracted file path Allows you to add files to an archive, whether the archive already exists or not The name of the archive to you want to add your files to A set of file names that are to be added Specifies how we are going to handle an existing archive Specifies what type of compression to use - defaults to Optimal Get or put a file into archive Filename to create Created Create or update a file into archive and write content to it Filename to create Content to write Created Create or update a file into archive and write content to it Filename to create Content to write Created Create or update a file into archive and write content to it Filename to create Content to write Created This file format is based on B9Creator job file (.b9j) with defined version = 3 and added several new fields (as example, preview image). Some of the format features are not recommended to use (BaseLayersCount and FilledBaseLayersCount). Printer uses incorrect BMP header for preview image so we need to use it as-is instead of generating. White pixels region (border including corner pixels) Gets a magic number identifying the file type. 0x12fd_0019 for cbddlp 0x12fd_0086 for ctb Gets the software version Gets dimensions of the printer’s X output volume, in millimeters. Gets dimensions of the printer’s Y output volume, in millimeters. Gets dimensions of the printer’s Z output volume, in millimeters. Gets the height of the model described by this file, in millimeters. Gets the layer height setting used at slicing, in millimeters. Actual height used by the machine is in the layer table. Gets the exposure time setting used at slicing, in seconds, for normal (non-bottom) layers, respectively. Actual time used by the machine is in the layer table. Gets the exposure time setting used at slicing, in seconds, for bottom layers. Actual time used by the machine is in the layer table. Gets the light off time setting used at slicing, for normal layers, in seconds. Actual time used by the machine is in the layer table. Note that light_off_time_s appears in both the file header and ExtConfig. Gets number of layers configured as "bottom." Note that this field appears in both the file header and ExtConfig.. Gets the printer resolution along X axis, in pixels. This information is critical to correctly decoding layer images. Gets the printer resolution along Y axis, in pixels. This information is critical to correctly decoding layer images. Gets the file offsets of ImageHeader records describing the larger preview images. Gets the file offset of a table of LayerHeader records giving parameters for each printed layer. Gets the number of records in the layer table for the first level set. In ctb files, that’s equivalent to the total number of records, but records may be multiplied in antialiased cbddlp files. Gets the file offsets of ImageHeader records describing the smaller preview images. Gets the estimated duration of print, in seconds. Gets the records whether this file was generated assuming normal (0) or mirrored (1) image projection. LCD printers are "mirrored" for this purpose. Gets the print parameters table offset Gets the print parameters table size in bytes. Gets the number of times each layer image is repeated in the file. This is used to implement antialiasing in cbddlp files. When greater than 1, the layer table will actually contain layer_table_count * level_set_count entries. See the section on antialiasing for details. 1 for ctb Gets the PWM duty cycle for the UV illumination source on normal levels, respectively. This appears to be an 8-bit quantity where 0xFF is fully on and 0x00 is fully off. Gets the PWM duty cycle for the UV illumination source on bottom levels, respectively. This appears to be an 8-bit quantity where 0xFF is fully on and 0x00 is fully off. Gets the key used to encrypt layer data, or 0 if encryption is not used. Gets the slicer tablet offset Gets the slicer table size in bytes Gets the distance to lift the build platform away from the vat after bottom layers, in millimeters. Gets the speed at which to lift the build platform away from the vat after bottom layers, in millimeters per minute. Gets the distance to lift the build platform away from the vat after normal layers, in millimeters. Gets the speed at which to lift the build platform away from the vat after normal layers, in millimeters per minute. Gets the speed to use when the build platform re-approaches the vat after lift, in millimeters per minute. Gets the estimated required resin, measured in milliliters. The volume number is derived from the model. Gets the estimated grams, derived from volume using configured factors for density. Gets the estimated cost based on currency unit the user had configured. Derived from volume using configured factors for density and cost. Gets the light off time setting used at slicing, for bottom layers, in seconds. Actual time used by the machine is in the layer table. Note that light_off_time_s appears in both the file header and ExtConfig. Gets the light off time setting used at slicing, for normal layers, in seconds. Actual time used by the machine is in the layer table. Note that light_off_time_s appears in both the file header and ExtConfig. Gets number of layers configured as "bottom." Note that this field appears in both the file header and ExtConfig. Gets the machine name offset to a string naming the machine type, and its length in bytes. Gets the machine size in bytes CBDDLP: 0 [No AA] / 8 [AA] for cbddlp files. CTB: 7(0x7) [No AA] / 15(0x0F) [AA] Not totally understood. 0 to not support, 0x20 for v2, 0x30 for v3 and 0x40 to 0x50 for v4 ctb files to allow per layer parameters Gets the minutes since Jan 1, 1970 UTC Gets the user-selected antialiasing level. For cbddlp files this will match the level_set_count. For ctb files, this number is essentially arbitrary. Gets a version of software that generated this file, encoded with major, minor, and patch release in bytes starting from the MSB down. (No provision is made to name the software being used, so this assumes that only one software package can generate the files. Probably best to hardcode it at 0x01060300.) 17170480 Gets the machine name. string is not nul-terminated. The character encoding is currently unknown — all observed files in the wild use 7-bit ASCII characters only. Note that the machine type here is set in the software profile, and is not the name the user assigned to the machine. The files contain two preview images. These are shown on the printer display when choosing which file to print, sparing the poor printer from needing to render a 3D image from scratch. Gets the X dimension of the preview image, in pixels. Gets the Y dimension of the preview image, in pixels. Gets the image offset of the encoded data blob. Gets the image length in bytes. Gets the build platform Z position for this layer, measured in millimeters. Gets the exposure time for this layer, in seconds. Gets how long to keep the light off after exposing this layer, in seconds. Gets the layer image offset to encoded layer data, and its length in bytes. Gets the layer image length in bytes. Gets a copy of layer data definition Gets the total size of ctbImageInfo and Image data Checksum of unix timestamp 7(0x7) [No AA] / 15(0x0F) [AA] Not totally understood. 0 to not support, 0x40 to 0x50 to allow per layer parameters The files contain two preview images. These are shown on the printer display when choosing which file to print, sparing the poor printer from needing to render a 3D image from scratch. Gets the X dimension of the preview image, in pixels. Gets the Y dimension of the preview image, in pixels. Gets the image offset of the encoded data blob. Gets the image length in bytes. Gets the size of the header Gets the header name Gets the size of the printer model Gets the printer model Gets the number of records in the layer table Gets the printer resolution along X axis, in pixels. This information is critical to correctly decoding layer images. Gets the printer resolution along Y axis, in pixels. This information is critical to correctly decoding layer images. Gets the size of the header Gets the header name Gets the size of the header Gets the header name Gets the number of records in the layer table Gets the printer resolution along X axis, in pixels. This information is critical to correctly decoding layer images. Gets the printer resolution along Y axis, in pixels. This information is critical to correctly decoding layer images. Gets the size of the header Gets the header name Gets a magic number identifying the file type. 0xBD3C7AC8 for fdg Gets the software version Gets the number of records in the layer table Gets number of layers configured as "bottom." Note that this field appears in both the file header and ExtConfig.. Gets the records whether this file was generated assuming normal (0) or mirrored (1) image projection. LCD printers are "mirrored" for this purpose. Gets the printer resolution along X axis, in pixels. This information is critical to correctly decoding layer images. Gets the printer resolution along Y axis, in pixels. This information is critical to correctly decoding layer images. Gets the layer height setting used at slicing, in millimeters. Actual height used by the machine is in the layer table. Gets the exposure time setting used at slicing, in seconds, for normal (non-bottom) layers, respectively. Actual time used by the machine is in the layer table. Gets the exposure time setting used at slicing, in seconds, for bottom layers. Actual time used by the machine is in the layer table. Gets the file offsets of ImageHeader records describing the larger preview images. Gets the file offsets of ImageHeader records describing the smaller preview images. Gets the file offset of a table of LayerHeader records giving parameters for each printed layer. Gets the estimated duration of print, in seconds. ? Gets the PWM duty cycle for the UV illumination source on normal levels, respectively. This appears to be an 8-bit quantity where 0xFF is fully on and 0x00 is fully off. Gets the PWM duty cycle for the UV illumination source on bottom levels, respectively. This appears to be an 8-bit quantity where 0xFF is fully on and 0x00 is fully off. Gets the height of the model described by this file, in millimeters. Gets dimensions of the printer’s X output volume, in millimeters. Gets dimensions of the printer’s Y output volume, in millimeters. Gets dimensions of the printer’s Z output volume, in millimeters. Gets the key used to encrypt layer data, or 0 if encryption is not used. Gets the estimated required resin, measured in milliliters. The volume number is derived from the model. Gets the estimated grams, derived from volume using configured factors for density. Gets the estimated cost based on currency unit the user had configured. Derived from volume using configured factors for density and cost. Gets the machine name offset to a string naming the machine type, and its length in bytes. Gets the machine size in bytes Gets the machine name. string is not nul-terminated. The character encoding is currently unknown — all observed files in the wild use 7-bit ASCII characters only. Note that the machine type here is set in the software profile, and is not the name the user assigned to the machine. Gets the light off time setting used at slicing, for bottom layers, in seconds. Actual time used by the machine is in the layer table. Note that light_off_time_s appears in both the file header and ExtConfig. Gets the light off time setting used at slicing, for normal layers, in seconds. Actual time used by the machine is in the layer table. Note that light_off_time_s appears in both the file header and ExtConfig. Gets the distance to lift the build platform away from the vat after bottom layers, in millimeters. Gets the speed at which to lift the build platform away from the vat after bottom layers, in millimeters per minute. Gets the distance to lift the build platform away from the vat after normal layers, in millimeters. Gets the speed at which to lift the build platform away from the vat after normal layers, in millimeters per minute. Gets the speed to use when the build platform re-approaches the vat after lift, in millimeters per minute. Gets the minutes since Jan 1, 1970 UTC The files contain two preview images. These are shown on the printer display when choosing which file to print, sparing the poor printer from needing to render a 3D image from scratch. Gets the X dimension of the preview image, in pixels. Gets the Y dimension of the preview image, in pixels. Gets the image offset of the encoded data blob. Gets the image length in bytes. Gets the build platform Z position for this layer, measured in millimeters. Gets the exposure time for this layer, in seconds. Gets how long to keep the light off after exposing this layer, in seconds. Gets the layer image offset to encoded layer data, and its length in bytes. Gets the layer image length in bytes. Represents a file extension for slicer file formats Stores a specific type that should be used to create with this FileExtension instance Gets the extension name without the dot (.) Gets the extension description Gets if the extension shows up on open file dialog filters Gets if the extension shows up on convert to menu Gets a tag object Gets the file filter for open and save dialogs Constructor The exact type The extension name without the dot (.) The extension description True if this extension is visible on open file dialog filters True if this extension is visible on convert to menu Tag object Slicer representation Gets the decimal precision for display properties Enumeration of file format types Enumeration of file thumbnail size types Firmware transition layers are handled by printer firmware Software transition layers are handled by software and written on layer data File decode type Decodes all the file information and caches layer images Decodes only the information in the file and thumbnails, no layer image is read nor cached, fast Image data type eg: Nova Bene4 eg: Uniformation GKone Available Print Parameters to modify Gets the name Gets the description Gets the value unit Gets the minimum value Gets the maximum value Gets the incrementing value for the dropdown Gets the number of decimal plates Gets or sets the current / old value Gets or sets the new value Gets if the value has changed Gets the available formats to process Gets all filters for open and save file dialogs Gets the count of available file extensions Find by an extension name to find True to create a new instance of found file format, otherwise will return a pre created one which should be used for read-only purpose object or null if not found Find by an extension name to find Number of file formats sharing the input extension True to create a new instance of found file format, otherwise will return a pre created one which should be used for read-only purpose object or null if not found Find by an type name Type name to find True to create a new instance of found file format, otherwise will return a pre created one which should be used for read-only purpose object or null if not found Find by any means (type name, extension, filepath) Name to find True to create a new instance of found file format, otherwise will return a pre created one which should be used for read-only purpose object or null if not found Find by an type Type to find True to create a new instance of found file format, otherwise will return a pre created one which should be used for read-only purpose object or null if not found Copy parameters from one file to another From source file To target file Number of affected parameters Compress a layer from a to compress Compressed byte array Compress a layer from a byte array byte array to compress Compressed byte array Decompress a layer from a byte array byte array to decompress Decompressed byte array Gets the file format type Gets the layer image data type used on this file format Gets the group name under convert menu to group all extensions, set to null to not group items Gets the valid file extensions for this The speed unit used by this file format in his internal data Gets the available Gets the available per layer Checks if a exists on print parameters True if exists, otherwise false Checks if a exists on layer parameters True if exists, otherwise false Gets the file filter for open and save dialogs Gets all valid file extensions for Avalonia file dialog Gets all valid file extensions in "*.extension1;*.extension2" format Gets or sets if change a global property should rebuild every layer data based on them Gets the temporary output file path to use on save and encode Gets the input file path loaded into this Returns the file extension. The returned value includes the period (".") character of the extension except when you have a terminal period when you get string.Empty, such as ".exe" or ".cpp". The returned value is null if the given path is null or empty if the given path does not include an extension. Gets the available versions to set in this file format Gets the amount of available versions in this file format Gets the available versions to set in this file format for the given extension Extension name, with or without dot (.) Gets the available versions to set in this file format for the given file name Gets the default version to use in this file when not setting the version Gets or sets the version of this file format Gets the thumbnails count present in this file format Gets the number of created thumbnails Gets the original thumbnail sizes Gets the thumbnails for this Layers List First layer index, this is always 0 Gets the last layer index Gets the first layer Gets the last bottom layer Gets the first transition layer Gets the last transition layer Gets the first normal layer Gets the last layer Gets the smallest bottom layer using the pixel count Gets the largest bottom layer using the pixel count Gets the smallest normal layer using the pixel count Gets the largest layer using the pixel count Gets the smallest normal layer using the pixel count Gets the largest layer using the pixel count Gets all bottom layers Gets all normal layers Gets all transition layers Gets all layers that use TSMC values Gets all layers on same position but exclude the first layer on that position True if all layers are using same value parameters as global settings, otherwise false True if there are one or more layer(s) using different settings than the global settings, otherwise false Same as negated True if any layer is using TSMC, otherwise false when none of layers is using TSMC True if the file global property is using TSMC, otherwise false when not using Gets if any layer got modified, otherwise false Sets all layers `IsModified` flag Gets the bounding rectangle of the model Gets the bounding rectangle of the object in millimeters Gets or sets if modifications require a full encode to save Gets the image width and height resolution Gets the image width resolution Gets the image height resolution Gets an rectangle that starts at 0,0 and goes up to Gets the display total number of pixels ( * ) Gets the size of display in millimeters Gets or sets the display width in millimeters Gets or sets the display height in millimeters Gets the display diagonal in millimeters Gets the display diagonal in inch's Gets the display ratio Gets or sets if images need to be mirrored on lcd to print on the correct orientation Gets if the display is in portrait mode Gets if the display is in landscape mode Gets or sets the maximum printer build Z volume Gets or sets the pixels per mm on X direction Gets or sets the pixels per mm on Y direction Gets or sets the pixels per mm Gets the maximum (Width or Height) pixels per mm Gets the pixel width in millimeters Gets the pixel height in millimeters Gets the pixel size in millimeters Gets the maximum pixel between width and height in millimeters Gets the pixel area in millimeters Gets the pixel width in microns Gets the pixel height in microns Gets the pixel size in microns Gets the maximum pixel between width and height in microns Gets the pixel area in millimeters Gets the file volume (XYZ) in mm^3 Checks if this file have AntiAliasing Gets if the AntiAliasing is emulated/fake with fractions of the time or if is real grey levels Gets or sets the AntiAliasing level Gets Layer Height in mm Gets Layer Height in um Gets or sets the print height in mm Checks if this file format supports per layer settings Gets or sets the layer count Return the number of digits on the layer count number, eg: 123 layers = 3 digits Gets or sets the total height for the bottom layers in millimeters Gets or sets the number of initial layer count Gets the transition layer type Gets or sets the number of transition layers Gets if have transition layers Gets the maximum transition layers this layer collection supports Gets the number of normal layer count Gets or sets the bottom layer off time in seconds Gets or sets the layer off time in seconds Gets or sets the bottom time in seconds to wait before cure the layer Gets or sets the time in seconds to wait after cure the layer Gets or sets the initial exposure time for in seconds Gets or sets the normal layer exposure time in seconds Gets or sets the bottom time in seconds to wait after cure the layer Gets or sets the time in seconds to wait after cure the layer Gets: Total bottom lift height (lift1 + lift2) Sets: Bottom lift1 with value and lift2 with 0 Gets: Total lift height (lift1 + lift2) Sets: Lift1 with value and lift2 with 0 Gets or sets the bottom lift height in mm Gets or sets the bottom lift speed in mm/min Gets or sets the lift height in mm Gets or sets the speed in mm/min Gets or sets the second bottom lift height in mm Gets or sets the second bottom lift speed in mm/min Gets or sets the second lift height in mm (This is the closer to fep retract) Gets or sets the second speed in mm/min (This is the closer to fep retract) Gets or sets the bottom time in seconds to wait after lift / before retract Gets or sets the time in seconds to wait after lift / before retract Gets: Total bottom retract height (retract1 + retract2) alias of Gets: Total retract height (retract1 + retract2) alias of Gets the bottom retract height in mm Gets the speed in mm/min for the bottom retracts Gets the retract height in mm Gets the speed in mm/min for the retracts Gets or sets the second bottom retract height in mm Gets the speed in mm/min for the retracts Gets or sets the second retract height in mm Gets the speed in mm/min for the retracts Gets or sets the bottom pwm value from 0 to 255 Gets or sets the pwm value from 0 to 255 Gets the minimum used speed for bottom layers in mm/min Gets the minimum used speed for normal bottom layers in mm/min Gets the minimum used speed in mm/min Gets the maximum used speed for bottom layers in mm/min Gets the maximum used speed for normal bottom layers in mm/min Gets the maximum used speed in mm/min Gets the estimate print time in seconds Gets the calculated estimate print time in seconds Gets the estimate print time in hours Gets the estimate print time in hours and minutes formatted Gets the total time in seconds the display will remain on exposing the layers during the print Gets the total time formatted in hours, minutes and seconds the display will remain on exposing the layers during the print Gets the total time in seconds the display will remain off during the print. This is the difference between and Gets the total time formatted in hours, minutes and seconds the display will remain off during the print. This is the difference between and Gets the starting material milliliters when the file was loaded Gets the estimate used material in ml Gets the estimate material in grams Gets the starting material cost when the file was loaded Gets the estimate material cost Gets the material cost per one milliliter Gets the material name Gets the machine name Gets the GCode, returns null if not supported Gets the GCode, returns null if not supported Gets if this file format supports gcode Gets if this file have available gcode to read Disable or enable the gcode auto rebuild when needed, set this to false to manually write your own gcode Get all configuration objects with properties and values Gets if this file is valid to read Sets a layer Layer index Layer to add True to add a clone of the layer Add a list of layers Layers to add True to add a clone of layers Get layer given index Layer index Raise notification for aspect changes, like , and relatives Clears all definitions and properties, it also dispose valid candidates Check if a file is valid and can be processed before read it against the decode scheme Validate if a file is a valid Full file path Checks if a extension is valid under the Extension to check without the dot (.) True if is a full file path, otherwise false for extension only True if valid, otherwise false Gets all valid file extensions in a specified format Gets a thumbnail by it height or lower Max height allowed Gets a thumbnail by the largest or smallest True to get the largest, otherwise false Sets thumbnails from a list of thumbnails and clone them Sets all thumbnails the same image Image to set Sets all thumbnails from a disk file Sets a thumbnail from mat Thumbnail index Sets a thumbnail from a disk file Thumbnail index Triggers before attempt to save/encode the file Triggers after save/encode the file Encode to an output file Encode to an output file Output file Decode a slicer file Decode a slicer file file path to load, use null to reload file Decode a slicer file file path to load, use null to reload file Reloads the file Reloads the file Reloads the file Reloads the file Extract contents to a folder Path to folder where content will be extracted Gets the transition layer count calculated from layer exposure time configuration Transition layer count Parse the transition step time from layers, value is returned as positive from normal perspective and logic (Longer - shorter) Seconds Gets the transition step time from a long and short exposure time, value is returned as positive from normal perspective and logic (Longer - shorter) The long exposure time The small exposure time Number of transition layers Seconds Gets the transition step time from and , value is returned as positive from normal perspective and logic (Longer - shorter) Number of transition layers Seconds Gets the transition step time from and first normal layer after the last transition layer, value is returned as positive from normal perspective and logic (Longer - shorter) Number of transition layers Seconds Gets the transition step time from and , value is returned as positive from normal perspective and logic (Longer - shorter) Seconds Gets the transition layer count based on long and short exposure time The long exposure time The small exposure time Decrement time Midpoint rounding method Gets the transition layer count based on and Step decrement time in seconds True if transition layer count can't be higher than supported by the file, otherwise set to false to not look at possible file layers Midpoint rounding method Transition layer count Gets the transition layer count based on and first normal layer after the last transition layer Step decrement time in seconds True if transition layer count can't be higher than supported by the file, otherwise set to false to not look at possible file layers Midpoint rounding method Transition layer count Re-set exposure time to the transition layers True to default all the previous transition layers exposure time, otherwise false Set transition layers and exposure times, but do not set that count to file property Number of transition layers to set True to default all the previous transition layers exposure time, otherwise false Get height in mm from layer height The height in mm Gets the global value for bottom or normal layers based on layer index Type of value Layer index Initial value Normal value Gets the global value for bottom or normal layers based on layer Type of value Layer Initial value Normal value Refresh print parameters globals with this file settings Refresh print parameters per layer globals with this file settings Gets the value attributed to Modifier to use A value Sets a property value attributed to Modifier to use Value to set True if set, otherwise false not found Sets properties from print parameters Number of affected parameters Gets the bottom wait time before cure, if not available calculate it from light off delay Gets the wait time before cure, if not available calculate it from light off delay Attempt to set wait time before cure if supported, otherwise fall-back to light-off delay True to set to bottom properties, otherwise false The time to set When true and time is zero, it will calculate light-off delay without extra time, otherwise false to set light-off delay to 0 when time is 0 Rebuilds GCode based on current settings Saves current configuration on input file Saves current configuration on a copy File path to save copy as, use null to overwrite active file (Same as ) Partial save of the file, this is the file information only. When this function is called it's already ready to save to file Triggers when a conversion is valid and before start converting values Source file format True to continue the conversion, otherwise false to stop Triggers when a conversion is valid and before start converting values Target file format True to continue the conversion, otherwise false to stop Triggers when the conversion is made but before encoding Source file format True to continue the conversion, otherwise false to stop Triggers when the conversion is made but before encoding Output file format True to continue the conversion, otherwise false to stop Converts this file type to another file type Target file format Output path file File version to use The converted file if successful, otherwise null Converts this file type to another file type Target file format Output path file File version TThe converted file if successful, otherwise null Changes the compression method of all layers to a new method The new method to change to Validate AntiAlias Level SuppressRebuildProperties = true, call the invoker and reset SuppressRebuildProperties = false Action work True to force rebuild the layer properties after the work and before reset to false True to recalculate z position of each layer (requires = true), otherwise false Property name to change for each layer, use null to update all properties (requires = true) SuppressRebuildProperties = true, call the invoker and reset SuppressRebuildProperties = false Action work True to force rebuild the layer properties after the work and before reset to false True to recalculate z position of each layer (requires = true), otherwise false Property name to change for each layer, use null to update all properties (requires = true) Converts millimeters to pixels given the current resolution and display size Millimeters to convert Fallback to this value in pixels if no ratio is available to make the convertion Pixels Converts millimeters to pixels given the current resolution and display size Millimeters to convert Fallback to this value in pixels if no ratio is available to make the convertion Pixels Converts millimeters to pixels given the current resolution and display size Millimeters to convert Fallback to this value in pixels if no ratio is available to make the convertion Pixels Converts millimeters to pixels given the current resolution and display size Millimeters to convert Fallback to this value in pixels if no ratio is available to make the convertion Pixels From a pixel position get the equivalent position on the display X position in pixels Decimal precision Display position in millimeters From a pixel position get the equivalent position on the display Y position in pixels Decimal precision Display position in millimeters From a pixel position get the equivalent position on the display X position in pixels Y position in pixels Decimal precision Resolution position in pixels From a pixel position get the equivalent position on the display X position in millimeters Resolution position in pixels From a pixel position get the equivalent position on the display Y position in millimeters Resolution position in pixels From a pixel position get the equivalent position on the display X position in millimeters Y position in millimeters Resolution position in pixels Creates a empty mat of file size and create a dummy pixel to prevent a empty layer detection Location to set the dummy pixel, use a negative value (-1,-1) to set to the bounding center Dummy pixel brightness Creates a empty mat of file size and create a dummy pixel to prevent a empty layer detection Location to set the dummy pixel, use a negative value (-1,-1) to set to the bounding center Creates a empty mat of file size Dummy pixel brightness Creates a empty mat of file size Creates a empty mat of file size True to black out the mat Clone layers Reallocate with new size Reallocate layer count with a new size New layer count Reallocate at given index Reallocate at a kept range Reallocate at start Reallocate at end Allocate layers from a Mat array The new Layer array Allocate layers from a Mat array and set them to the current file /// The new Layer array Checks if a layer index exists in the collection Layer index to check Checks if a layer index exists in the collection Layer index to check Try to parse starting and ending layer index from a string String value to parse, in start:end format Parsed starting layer index Parsed ending layer index Constrains a layer index to be inside the range between 0 and Layer index to sanitize True if sanitized, otherwise false Constrains a layer index to be inside the range between 0 and Layer index to sanitize True if sanitized, otherwise false Constrains a layer index to be inside the range between 0 and Layer index to sanitize Constrains a layer index to be inside the range between 0 and Layer index to sanitize Re-assign layer indexes and parent Sanitize file and thrown exception if a severe problem is found True if one or more corrections has been applied, otherwise false Rebuild layer properties based on slice settings Set LiftHeight to 0 if previous and current have same PositionZ If true also set light off to 0, otherwise current value will be kept. Generates a heatmap based on a stack of layers Layer index to start from Layer index to end on Region of interest Heatmap grayscale Mat Generates a heatmap based on a stack of layers Region of interest Heatmap grayscale Mat The files contain two preview images. These are shown on the printer display when choosing which file to print, sparing the poor printer from needing to render a 3D image from scratch. Gets or sets the identifier, BM = bitmap? Gets or sets the table total size Gets the Y dimension of the preview image, in pixels. Time with motor movement Absolute time to wait 0: Light off delay mode | 1:Wait time mode 0: Normal mode 1: Advance mode, printing use the value of "Layer Definition Content" // The volume of all parts. unit: mm3 The weight of all parts. unit: g 0:The range of pixel's gray value is from 0x0 ~ 0xf 1:The range of pixel's gray value is from 0x0 ~ 0xff 0: reserve 1: current layer pause printing Gets the file tag = MKSDLP Gets the model name Gets the file tag = MKSDLP (0x00 not mirrored, 0x01 X-axis mirroring, 0x02 Y-axis mirroring, 0x03 XY-axis mirroring) (0x00 linear transition) (0x00: S-shaped acceleration, 0x01: T-shaped acceleration, Default Value: S-shaped acceleration, currently only supports S-shaped acceleration) OD OA begins, indicating that the model + support is included; the beginning of 0D 0B, indicating that the layer only has support data Gets the X dimension of the preview image, in pixels. Gets the Y dimension of the preview image, in pixels. Gets the image length in bytes. Gets the file mark placeholder Fixed to "ANYCUBIC" Gets the file format version Gets the area num 4 for v1, 5 for v515, 8 for v516? Gets the header start address Gets the preview start offset Spotted on version 515 only Gets the layer definition start address Spotted on version 516 only Spotted on version 516 only Gets layer image start address Spotted on version 517 only Gets the section mark placeholder Gets the length of this section Layer height in mm Gets the lift speed in mm/s Gets the retract speed in mm/s 24 00 00 00 $ or ¥ C2 A5 00 00 or € = E2 82 AC 00 80 spotted on 516 spotted on 516 0 = Basic mode | 1 = Advanced mode which allows TSMC The files contain two preview images. These are shown on the printer display when choosing which file to print, sparing the poor printer from needing to render a 3D image from scratch. Gets the image width, in pixels. Gets the operation mark 'x' Gets the image height, in pixels. Gets the layer image offset to encoded layer data, and its length in bytes. Gets the layer image length in bytes. Gets the exposure time for this layer, in seconds. Gets the layer height for this layer, measured in millimeters. 1269C Gets a magic number identifying the file type. 0x12fd_0019 for cbddlp 0x12fd_0086 for ctb 0x9FDA83AE for phz Gets the software version Gets the layer height setting used at slicing, in millimeters. Actual height used by the machine is in the layer table. Gets the exposure time setting used at slicing, in seconds, for normal (non-bottom) layers, respectively. Actual time used by the machine is in the layer table. Gets the exposure time setting used at slicing, in seconds, for bottom layers. Actual time used by the machine is in the layer table. Gets number of layers configured as "bottom." Note that this field appears in both the file header and ExtConfig.. Gets the printer resolution along X axis, in pixels. This information is critical to correctly decoding layer images. Gets the printer resolution along Y axis, in pixels. This information is critical to correctly decoding layer images. Gets the file offsets of ImageHeader records describing the larger preview images. Gets the file offset of a table of LayerHeader records giving parameters for each printed layer. Gets the number of records in the layer table for the first level set. In ctb files, that’s equivalent to the total number of records, but records may be multiplied in antialiased cbddlp files. Gets the file offsets of ImageHeader records describing the smaller preview images. Gets the estimated duration of print, in seconds. Gets the records whether this file was generated assuming normal (0) or mirrored (1) image projection. LCD printers are "mirrored" for this purpose. Gets the number of times each layer image is repeated in the file. This is used to implement antialiasing in cbddlp files. When greater than 1, the layer table will actually contain layer_table_count * level_set_count entries. See the section on antialiasing for details. Gets the PWM duty cycle for the UV illumination source on normal levels, respectively. This appears to be an 8-bit quantity where 0xFF is fully on and 0x00 is fully off. Gets the PWM duty cycle for the UV illumination source on bottom levels, respectively. This appears to be an 8-bit quantity where 0xFF is fully on and 0x00 is fully off. Gets the height of the model described by this file, in millimeters. Gets dimensions of the printer’s X output volume, in millimeters. Gets dimensions of the printer’s Y output volume, in millimeters. Gets dimensions of the printer’s Z output volume, in millimeters. Gets the key used to encrypt layer data, or 0 if encryption is not used. Gets the light off time setting used at slicing, for bottom layers, in seconds. Actual time used by the machine is in the layer table. Note that light_off_time_s appears in both the file header and ExtConfig. Gets the light off time setting used at slicing, for normal layers, in seconds. Actual time used by the machine is in the layer table. Note that light_off_time_s appears in both the file header and ExtConfig. Gets number of layers configured as "bottom." Note that this field appears in both the file header and ExtConfig. Gets the distance to lift the build platform away from the vat after bottom layers, in millimeters. Gets the speed at which to lift the build platform away from the vat after bottom layers, in millimeters per minute. Gets the distance to lift the build platform away from the vat after normal layers, in millimeters. Gets the speed at which to lift the build platform away from the vat after normal layers, in millimeters per minute. Gets the speed to use when the build platform re-approaches the vat after lift, in millimeters per minute. Gets the estimated required resin, measured in milliliters. The volume number is derived from the model. Gets the estimated grams, derived from volume using configured factors for density. Gets the estimated cost based on currency unit the user had configured. Derived from volume using configured factors for density and cost. Gets the machine name offset to a string naming the machine type, and its length in bytes. Gets the machine size in bytes Gets the machine name. string is not nul-terminated. The character encoding is currently unknown — all observed files in the wild use 7-bit ASCII characters only. Note that the machine type here is set in the software profile, and is not the name the user assigned to the machine. Gets the parameter used to control encryption. Not totally understood. 0 for cbddlp files, 0xF for ctb files, 0x1c (28) for phz Gets the minutes since Jan 1, 1970 UTC The files contain two preview images. These are shown on the printer display when choosing which file to print, sparing the poor printer from needing to render a 3D image from scratch. Gets the X dimension of the preview image, in pixels. Gets the Y dimension of the preview image, in pixels. Gets the image offset of the encoded data blob. Gets the image length in bytes. Gets the build platform Z position for this layer, measured in millimeters. Gets the exposure time for this layer, in seconds. Gets how long to keep the light off after exposing this layer, in seconds. Gets the layer image offset to encoded layer data, and its length in bytes. Gets the layer image length in bytes. ms s mm/s mm/m cm/m Show image at start of each layer block commands Show image just before exposing / turning LED ON Converts seconds to current gcode norm Converts speed in mm/min to current gcode norm Millimeters per minute Converts time from current gcode norm in to s Time in Converts speed from current gcode norm in to mm/min Speed in Gets or sets if this command is enabled Gets or sets the command name Gets or sets the arguments for this command Gets or sets the comment Set gathered data to the layer Gets the index of this aperture Gets the aperture name Do not omit zeros Omit left zeros Omit right zeros https://www.ucamco.com/files/downloads/file_en/456/gerber-layer-format-specification-revision-2022-02_en.pdf?ac97011bf6bce9aaf0b1aac43d84b05f Gets or sets the X offset for drawings in millimeters Gets or sets the Y offset for drawings in millimeters Gets the current polarity as . will affect the return value Gets or sets to inverse the polarity on drawing Gets or sets the scale to apply to each shape drawing size. Positions and vectors aren't affected by this. Gets the macro name A vector line is a rectangle defined by its line width, start and end points. The line ends are rectangular. Exposure off/on (0/1) 1 Width ≥ 0 2 Height ≥ 0 3 Center point X coordinate 4 Center point Y coordinate 5 Rotation angle, in degrees counterclockwise, a decimal. The primitive is rotated around the origin of the macro definition, i.e. the (0, 0) point of macro coordinates. 6 A circle primitive is defined by its center point and diameter. Exposure off/on (0/1) 1 Diameter ≥ 0 2 Center X coordinate. 3 Center Y coordinate. 4 Rotation angle, in degrees counterclockwise, a decimal. The primitive is rotated around the origin of the macro definition, i.e. the (0, 0) point of macro coordinates. 5 The comment primitive has no effect on the image but adds human-readable comments in an AM command. The comment primitive starts with the ‘0’ code followed by a space and then a single-line text string. The text string follows the syntax for strings in section 3.4.3. The comment 1 An outline primitive is an area defined by its outline or contour. The outline is a polygon, consisting of linear segments only, defined by its start vertex and n subsequent vertices. The outline must be closed, i.e. the last vertex must be equal to the start vertex. The outline must comply with all the requirements of a contour according to 4.10.3. Exposure off/on (0/1) 1 The number of vertices of the outline = the number of coordinate pairs minus one. An integer ≥3. 2 subsequent X and Y coordinates. The X and Y coordinates are not modal: both X and Y must be specified for all points. 2+n Rotation angle, in degrees counterclockwise, a decimal. The primitive is rotated around the origin of the macro definition, i.e. the (0, 0) point of macro coordinates. A polygon primitive is a regular polygon defined by the number of vertices n, the center point and the diameter of the circumscribed circle. Exposure off/on (0/1) 1 Diameter ≥ 0 2 Center X coordinate. 3 Center Y coordinate. 4 Diameter ≥ 0 5 Rotation angle, in degrees counterclockwise, a decimal. The primitive is rotated around the origin of the macro definition, i.e. the (0, 0) point of macro coordinates. 6 A vector line is a rectangle defined by its line width, start and end points. The line ends are rectangular. Exposure off/on (0/1) 1 Width of the line ≥ 0 2 Start point X coordinate 3 Start point Y coordinate 4 End point X coordinate 5 Start point Y coordinate 6 Rotation angle, in degrees counterclockwise, a decimal. The primitive is rotated around the origin of the macro definition, i.e. the (0, 0) point of macro coordinates. 7 A helper class with utilities Gets the instance Gets the issue type associated Gets the layer where this issue is present Gets the layer index Gets the bounding rectangle of the area Gets the number of pixels Gets the area of the issue Gets the points contours of the issue Gets the points containing the coordinates of the issue Represent a Layer Gets or sets the parent SlicerFile Image resolution X Image resolution Y Image resolution Gets the number of non zero pixels on this layer image Gets the ratio between non zero pixels and display number of pixels Gets the percentage of non zero pixels relative to the display number of pixels Gets if this layer is empty/all black pixels Gets if this layer is a dummy layer to bypass a firmware constrain, that is contain at most one pixel and exposure time no more than 0.01s Gets the layer area (XY) in mm^2 Pixel size * number of pixels Gets the layer volume (XYZ) in mm^3 Pixel size * number of pixels * layer height Gets the bounding rectangle for the image area Gets the bounding rectangle for the image area in millimeters Gets the first pixel index on the Gets the last pixel index on the Gets the first pixel on the Gets the last pixel on the Gets the first pixel index on this layer Gets the last pixel index on this layer Gets the first pixel on this layer Gets the last pixel on this layer Gets if is the first layer Gets if layer is between first and last layer, aka, not first nor last layer Gets if is the last layer Gets if is in the bottom layer group Gets if is in the bottom layer group by count and height Gets if is in the normal layer group Gets if this layer is also an transition layer Gets the previous layer, returns null if no previous layer Gets the previous layer if available, otherwise return the calling layer itself Gets the previous layer with a different height from the current, returns null if no previous layer Gets the previous layer matching at least pixels, returns null if no previous layer Gets the next layer, returns null if no next layer Gets the next layer if available, otherwise return the calling layer itself Gets the next layer with a different height from the current, returns null if no next layer Gets the next layer matching at least pixels, returns null if no next layer Gets the layer index Gets the layer number, 1 started Gets or sets the absolute layer position on Z in mm Gets the relative layer position on Z in mm (Relative to the previous layer) Gets or sets the wait time in seconds before cure the layer AKA: Light-off delay Chitubox: Rest time after retract Lychee: Wait before print Gets or sets the exposure time in seconds Gets or sets the wait time in seconds after cure the layer Chitubox: Rest time before lift Lychee: Wait after print Gets or sets the layer off time in seconds Gets: Total lift height (lift1 + lift2) Sets: Lift1 with value and lift2 with 0 Gets or sets the lift height in mm Gets or sets the speed in mm/min Gets or sets the lift height in mm Gets or sets the speed in mm/min Gets: Total retract height (retract1 + retract2) alias of Gets the retract height in mm Gets the speed in mm/min for the retracts Gets or sets the second retract height in mm Gets the speed in mm/min for the retracts Gets or sets the pwm value from 0 to 255 Gets the minimum used speed in mm/min Gets the maximum used speed in mm/min Gets if this layer can be exposed to UV light Gets if this layer should be exposed to UV light, ie: if layer is empty or no exposure time then it useless to expose it Gets the layer height in millimeters of this layer Gets the computed material milliliters spent on this layer Gets the computed material milliliters percentage compared to the rest of the model Gets or sets the compression method used to cache the image Gets or sets layer image compressed data True if this layer have an valid initialized image, otherwise false Gets or sets a new image instance Gets the layer mat with roi of it bounding rectangle Gets the layer mat with roi of model bounding rectangle Gets the layer mat with a specified roi Region of interest Gets the layer mat with bounding rectangle mat Margin from bounding rectangle Gets the layer mat with bounding rectangle mat X margin from bounding rectangle Y margin from bounding rectangle Gets the layer mat with bounding rectangle mat Margin from bounding rectangle Gets a new Brg image instance Gets a computed layer filename, padding zeros are equal to layer count digits Gets if layer image has been modified Gets if this layer have same value parameters as global settings True if this layer is using TSMC values, otherwise false Gets tree contours cache for this layer, however should call GetContours instead with instance. If not set it will calculate contours first Gets tree contours cache for this layer. If not set it will calculate contours first Gets tree contours cache for this layer. If not set it will calculate contours first Reset all parameters to the default values from the global parameters Gets the layer area (XY) in mm^2 Pixel size * number of pixels Gets the layer area (XY) in mm^2 Pixel size * number of pixels Gets the layer volume (XYZ) in mm^3 Pixel size * number of pixels * layer height Gets the layer volume (XYZ) in mm^3 Pixel size * number of pixels * layer height Gets the wait time before cure, if not available calculate it from light off delay Attempt to set wait time before cure if supported, otherwise fallback to light-off delay The time to set When true and time is zero, it will calculate light-off delay without extra time, otherwise false to set light-off delay to 0 when time is 0 Zero all 'wait times / delays' for this layer Copy all parameters from this layer to an target layer Copy all exposure parameters from this layer to an target layer Copy all wait parameters from this layer to an target layer Copy all lift parameters from this layer to an target layer Copy the image and related parameters from this layer to an target layer Gets the bounding rectangle that is the union of a collection of layers Layer collection Gets or sets if the detection is enabled Gets or sets a list of layers to check for islands, absent layers will not be checked. Set to null to check every layer Combines the island and overhang detections for a better more realistic detection and to discard false-positives. (Slower) If enabled, and when a island is found, it will check for overhangs on that same island, if no overhang found then the island will be discarded and considered safe, otherwise it will flag as an island issue. Note: Overhangs settings will be used to configure the detection. Enabling Overhangs is not required for this procedure to work. Gets the setting for whether or not diagonal bonds are considered when evaluation islands. If true, all 8 neighbors of a pixel (including diagonals) will be considered when finding individual components on the layer, if false only 4 neighbors (right, left, above, below) will be considered.. Gets or sets the binary threshold, all pixels below this value will turn in black, otherwise white Set to 0 to disable this operation Gets the required pixel area to consider process a island (0-65535) Gets the required brightness for check a pixel under a island (0-255) Gets the required number of pixels to support a island and discard it as a issue (0-255) Gets the required multiplier from the island pixels to support same island and discard it as a issue Gets the required brightness of supporting pixels to count as a valid support (0-255) Overhang configuration Gets or sets a list of layers to check for overhangs, absent layers will not be checked. Set to null to check every layer Gets or sets if should take in consideration the islands, if yes a island can't be a overhang at same time, otherwise islands and overhangs can be shared After compute overhangs, masses with a number of pixels bellow this number will be discarded (Not a overhang) Previous layer will be subtracted from current layer, after will erode by this value. The survived pixels are potential overhangs. Gets or sets the starting layer index for the detection which will also be considered a drain layer. Use this setting to bypass complicated rafts by selected the model first real layer. Gets or sets the binary threshold, all pixels below this value will turn in black, otherwise white Set to 0 to disable this operation Gets the required area size (x*y) to consider process a hollow area (0-255) Gets the number of black pixels required to consider a drain Gets the maximum pixel brightness to be a drain pixel (0-150) Gets if suction cups can also be detected together with resin traps Required minimum area to be considered a suction cup Required minimum height (in mm) to be considered a suction cup Gets the minimum pixel brightness to be a touching bound Gets or sets the margin in pixels from left edge to check for touching white pixels Gets or sets the margin in pixels from top to check for touching white pixels Gets or sets the margin in pixels from right edge to check for touching white pixels Gets or sets the margin in pixels from bottom edge to check for touching white pixels Get the offset from top to sum to printer max Z height Gets or sets to ignore the starting empty layers. True to ignore starting empty layers, otherwise false. Gets or sets to ignore the loose empty layers that are not on start nor in end. True to ignore loose empty layers, otherwise false. Gets or sets to ignore the ending empty layers. True to ignore ending empty layers, otherwise false. Gets the issue type associated Gets the layer where issue is present and starts Gets the layer where issue ends Gets the layer index Gets the layer index Gets the number of layers in this range Gets the total height that represents this issue Gets the bounding rectangle of the area Gets the area of the issue Gets the area of the issue Gets the area character, either ² or ³ Gets all issues inside this main issue Gets the LayerCount for this clip Gets the LayerHeight for this clip Gets the Resolution for this clip Gets the description of this operation Gets the index of current item Clears the manager Clears and init clipboard Snapshot layers and prepare manager to collect modified layers with Clip Collect differences and create a clip Collect differences and create a clip Gets the visible aka not ignored Clears and dispose all the cache Gets the slicer file Gets or sets the cache count of items to keep in memory Gets the number of cached elements per a cache entry Gets the starting layer index range Gets the ending layer index range Gets the size of this collection Gets the image rotation to cache Gets the image flip to cache Gets if striping anti-aliasing is enabled, cache will be threshold'ed Gets or sets the cache direction, false to go backwards, true to go forward If enabled it will not calculate the cache index given a layer index, set this to true to use your own indexing without pair them with layers Gets or sets the auto dispose mode, it will dispose all mat's below of above passed index Gets or sets the amount of last mats to keep cached when is enabled Gets the cache mat array Gets or sets the action to trigger after cache the initial Gets the cache index from a layer index, required when layer range is not 0 started Gets the layer index from the cache index, required when layer range is not 0 started Gets all cached mat's given an index Consume and dispose the cached Mats for given layer index Clears and dispose the cache but keep the selected index and optionally the last n indexes Clears and dispose all the cache Instance of (singleton) Gets the total number of bottles in stock Gets the total number of bottles ever owned Gets the total of consumed volume in milliliters Gets the total of consumed volume in liters Gets the total volume in stock in milliliters Gets the total volume in stock in liters Gets the total costs Gets the total print time in hours Gets the total print time Load settings from file Save settings to file Gets the standard message box for this session which will trigger a message with pre-defined buttons. If using console it will prompt there as text, otherwise if in UI will use dialogs. Gets the file format for this mesh Gets the from model export Gets the file path of the stream Gets the file name with extension from Gets the current file stream Gets the number of vertexes, this is often triangle count * 3 Gets the number of triangles Call once before write content to the file, use this to build up the header if any Writes an triangle to the file Call once before close the file, use this to build up the footer if any Gets or sets if this device is enabled Gets or sets the full path for the location Gets or sets the path name alias Gets or sets the compatible extensions with this device. Empty or null to be compatible with everything Gets or sets the alias name for this printer. Not used on requests Gets or sets the host/ip for the requests Gets or sets the host port for the requests. Use 0 to not use a port Gets or sets the compatible extensions with this device. Empty or null to be compatible with everything Gets if this host is valid Gets or sets this request type Gets or sets this request method Gets or sets the request path, eg: print/file/{0} Gets the path with formatted arguments Implementation of to simplify models. Multicast event for property change notifications. Notifies listeners that a property value has changed. Name of the property used to notify listeners. This value is optional and can be provided automatically when invoked from compilers that support . Gets or sets the layer height in millimeters Gets or sets the bottom exposure in seconds Gets or sets the bottom exposure in seconds Gets or sets the brightness level Gets or sets the file path Gets the file name with extension Gets the file name without extension Gets the file extension. The returned value includes the period (".") Gets if the file exists Gets an instance on the Checks if the ends with Extension name True if found, otherwise false Gets or sets if this device is enabled Gets or sets the full path for the application Gets or sets the path name alias Gets or sets the arguments for the application Gets or sets the compatible extensions with this device. Empty or null to be compatible with everything Represents a material to feed in the printer Gets or sets the bottle volume in milliliters Gets or sets the bottle weight in grams Gets or sets the material density in g/ml Gets or sets the bottle cost Gets or sets the number of bottles in stock Gets or sets the current bottle remaining material in milliliters Gets the total available volume in stock in milliliters Gets the number of consumed bottles Gets the total number of owned bottles Gets or sets the total number of consumed volume in milliliters Gets total number of consumed volume in liters Gets or sets the total print time using with material in hours Gets the cost for a given volume Volume in ml Gets the grams for a given volume Volume in ml Consume material from current bottle and manage stock Volume to consume in milliliters Time in seconds it took to print True if still have bottles in stock, otherwise false Add print time with this material Seconds to add A string that always end with 0x00 if not null It contains the string length as uint A string that always end with 0x00 if not null It contains the string length as uint Gets or sets from where this option got loaded/imported Gets or sets the parent Gets the bounding rectangle of the model, preserved from any change during and after execution Gets or sets any object which is not used internally Gets the ID name of this operation, this comes from class name with "Operation" removed Gets the starting layer selection Gets the last used layer range selection, returns none if custom Gets a string representing the layer range, used with profiles Gets if the LayerIndexEnd selector is enabled Gets if this operation should set layer range to the actual layer index on layer preview Gets if this operation can run in a file open as partial mode Gets if this operation can make use of ROI Gets if this operation can make use maskable areas Gets if this operation can store profiles Gets if this operation supports cancellation Gets the icon class to show on the UI Gets the title of this operation Gets a descriptive text of this operation Gets the Ok button text Gets the confirmation text for the operation Gets the progress window title Gets the progress action name Gets if this operation have a action text Gets the start layer index where operation will starts in Gets the end layer index where operation will ends in Gets if any bottom layer is included in the selected layer range Gets if any normal layer is included in the selected layer range Gets the number of selected layers Gets the name for this profile Gets if this profile is the default to load Gets or sets an ROI to process this operation Gets if there is an ROI associated Gets or sets an Mask to process this operation Gets if there is masks associated Gets if there is roi or masks associated Gets if this operation have been executed once Gets if this operation have validated at least once Gets or sets an report to show to the user after complete the operation with success Gets if the operation can spawn Gets if this operation can spawn under the Gets if this operation can spawn under the Validates the operation, return null or empty if validates Validates the operation null or empty if validates, otherwise return a string with error message Gets if the operation is able to execute Selects all layers from first to last layer Selects one layer Layer index to select Selects all bottom layers Selects all normal layers Select the first layer (0) Select the last layer Selects from first to a layer index To layer index to select Selects from a layer index to the last layer From layer index to select Selects layer given a range type Called to init the object when changes Clears the ROI and set to empty Clear and Set only if not set already ROI to set Gets the size, but if empty returns the file resolution size instead Gets the size, but if empty returns size instead Gets the size, but if empty returns the size from instead Gets the size, but if empty returns the instead Gets the size, but if empty returns the model volume bounds size instead Gets the size, but if empty returns the instead Gets a cropped shared from by the , but if empty return the instead Gets a cropped shared from by the , but if empty crop by Gets a cropped shared by the , but if empty crop by Gets the , but if empty returns Clears all masks Sets masks only if they are empty Returns a mask given Apply a mask to a mat Original untouched mat Mat to modify and apply the mask Mask Gets a mask and apply it Original unmodified image Result image which will also be modified Execute the operation internally, to be override by class Execute the operation Execute the operation on a given Get the selected layer range in a new array, array index will not match layer index when a range is selected Copy this operation base configuration to another operation. Layer range, ROI, Masks Serialize class to XML file Clone object Deserialize from a XML file XML file path Deserialize from a XML file XML file path Deserialize from a XML file XML file path Gets the layers Gets the bottom and normal layers, 0 = bottom | 1 = normal Gets all holes in pixels and ordered Gets all holes in pixels and ordered Gets all holes in pixels and ordered Gets all holes in pixels and ordered Gets the bottom and normal layers, 0 = bottom | 1 = normal Gets the bottom and normal layers, 0 = bottom | 1 = normal Gets the exposure table into a dictionary where key is the layer height Gets or sets if parameters are global or per layer inside a layer range Gets or sets the number of sequential layers to set the parameters Gets or sets the number of sequential layers to skip after set a layer Number of times this file has been printed Gets or sets if cloned layers will keep same position z or get the height rebuilt Gets or sets the number of clones Get the cached dim mat's Loads mask from a image file Fills the plate with maximum cols and rows Gets or sets to invert the polarity when drawing Gets or sets the scale to apply to each shape drawing size. Positions and vectors aren't affected by this. Use the alternate pattern every layers Blocks the current thread until the current WaitHandle receives a signal. true if the current instance receives a signal. If the current instance is never signaled, WaitOne() never returns. Blocks or cancels the current thread until the current WaitHandle receives a signal. Gets or sets if operation can be cancelled Gets or sets the item name for the operation Gets or sets the item name for the operation Gets or sets the number of processed items Gets or sets the total of item count on this operation Detailed log to show below the progress bar Gets or sets an tag Gets the remaining items to be processed Gets the progress from 0 to 100% Gets or sets the Z position to raise to Gets or sets the ensured wait time to stay still on the desired position. This is useful if the printer firmware always move to top and you want to stay still on the set position for at least the desired time. Note: The print time calculation will take this wait into consideration and display a longer print time. True to output a dummy pixel on bounding rectangle position to avoid empty layer and blank image, otherwise set to false IF true it will re-detect the selected issues before repair, otherwise uses and repair the previous detected issues Gets the minimum required area to solidify it Sets or gets the Z position to raise to True to output a dummy pixel on bounding rectangle position to avoid empty layer and blank image, otherwise set to false Gets or sets the alternating height in millimeters to raise when, it will raise only at each defined millimeters and skip the same next millimeters Gets or sets the alternating layer count to raise when, it will raise only at each defined layers and skip the same next layers Gets the total number of additional lifts Gets or sets if last layer must be ensured in the sequence, If true, it will generate an obligatory additional layer to cover the last layer Gets or sets the index number to show on GUI Gets the Gets the layer index Gets the location of the operation Gets the for the draw operation Gets the total size of the operation Gets or sets the pixels per mm on X direction Gets or sets the pixels per mm on Y direction Gets or sets the pixels per mm Gets the maximum (Width or Height) pixels per mm Gets the pixel width in millimeters Gets the pixel height in millimeters Gets the pixel size in millimeters Gets the maximum pixel between width and height in millimeters Gets the pixel area in millimeters Gets the pixel width in microns Gets the pixel height in microns Gets the pixel size in microns Gets the maximum pixel between width and height in microns Gets the pixel area in millimeters Preset list of machines Gets all machines from PrusaSlicer profiles Utility methods over a printer screen Gets the pixel size in mm Resolution in pixels Display size in mm Pixel size in mm Gets the pixel size in microns Resolution in pixels Display size in mm Pixel size in microns Gets the pixel size in mm Resolution in pixels Display size in mm Pixel size in mm Gets the pixel size in microns Resolution in pixels Display size in mm Pixel size in microns Gets the input label Gets the hover tooltip for this input Gets the value representative unit name Gets or sets the value for this input Gets or sets the script name Gets or sets the script description of what it does Gets or sets the script author name Gets or sets the script version Gets or sets the minimum version able to run this script Scripts were introduced on v2.8 List of user inputs to show on GUI for configuration of the script Gets or sets the title for the dialog Gets or sets the default directory to open the dialog in Gets or sets the initial filename to be on the dialog Gets or sets the file filters on the dropdown list Gets the loaded slicer file Gets the progress operation for loading bar Gets the current operation holding the layer range, mask, roi, etc Gets the script configuration Gets the minimum for this input Gets the minimum for this input Gets the increment value for this Gets the number of decimal plates to round the value Gets or sets if allow multiple file selection Gets or sets the selected files Gets the title for the dialog Parse the script and clean forbidden keywords Text to parse The parsed text Gets or sets the default extension for the dialog Gets if this input accepts multi lines Gets or sets the text when the switch is turned off Gets or sets the text when the switch is turned on Gets the size of resolution Gets the size of display Gets the pixels per millimeters Gets or sets the Gets or sets if this suggestion is enabled Gets or sets if this suggestion can be auto applied once file load Gets or sets when to apply the suggestion Gets if this suggestion is informative only and contain no actions to execute Gets if this suggestion is available given the Gets if this suggestion is already applied given the Gets the title for this suggestion Gets the message for this suggestion Gets the tooltip message Gets the confirmation message before apply the suggestion Validates the settings and return a string message if got any error Executes and applies the suggestion Executes and applies the suggestion Executes only if this suggestion is marked with as true Linux specific methods Gets if is running under Linux and under AppImage format Gets if is running under Linux and under AppImage format and return the full root path for the running AppImage Gets the full root path for the running AppImage. Returns null is not Linux and null/empty if not an AppImage The return path is the source file location and not the execution path location. Gets the name of the running *.app. Returns null or empty if not running an macOS .app. Returns null or empty if not an AppImage MacOS specific methods Gets if is running under MacOS and under .app format Gets if is running under macOS and under .app format and return the full root path for the running .app Gets the full root path for the running .app. Returns null or empty if not running an macOS .app Gets the name of the running .app. Returns null or empty if not running an macOS .app Gets if is running under Linux and under AppImage format Gets if is running under MacOS and under *.app format Gets the main name of the operative system Gets the main name of the operative system with architecture Get the USB handler This should be the drive letter. Format: F:/, C:/.. Eject an USB drive This should be the drive letter. Format: F:/, C:/.. Default filepath for store Gets all suggestions Instance (singleton) Reset to defaults True to save settings on file, otherwise false Load settings from file Save settings to file Implementation of a dynamic data collection based on generic Collection<T>, implementing INotifyCollectionChanged to notify listeners when items get added, removed or the whole list is refreshed. Initializes a new instance of ObservableCollection that is empty and has default initial capacity. Initializes a new instance of the ObservableCollection class that contains elements copied from the specified collection and has sufficient capacity to accommodate the number of elements copied. The collection whose elements are copied to the new list. The elements are copied onto the ObservableCollection in the same order they are read by the enumerator of the collection. collection is a null reference Initializes a new instance of the ObservableCollection class that contains elements copied from the specified list The list whose elements are copied to the new list. The elements are copied onto the ObservableCollection in the same order they are read by the enumerator of the list. list is a null reference Gets or sets a value indicating whether this collection acts as a , disallowing duplicate items, based on . This might indeed consume background performance, but in the other hand, it will pay off in UI performance as less required UI updates are required. Clear the list and set a collection in place The collection whose elements should be added to the end of the . The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. is null. Adds the elements of the specified collection to the end of the . The collection whose elements should be added to the end of the . The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. is null. Inserts the elements of a collection into the at the specified index. The zero-based index at which the new elements should be inserted. The collection whose elements should be inserted into the List{T}. The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type. is null. is not in the collection range. Removes the first occurence of each item in the specified collection from the . The items to remove. is null. Iterates over the collection and removes all items that satisfy the specified match. The complexity is O(n). Returns the number of elements that where is null. Iterates over the specified range within the collection and removes all items that satisfy the specified match. The complexity is O(n). The index of where to start performing the search. The number of items to iterate on. Returns the number of elements that where is out of range. is out of range. is null. Removes a range of elements from the >. The zero-based starting index of the range of elements to remove. The number of elements to remove. The specified range is exceeding the collection. Clears the current collection and replaces it with the specified collection, using . The items to fill the collection with, after clearing it. is null. Removes the specified range and inserts the specified collection in its position, leaving equal items in equal positions intact. The index of where to start the replacement. The number of items to be replaced. The collection to insert in that location. is out of range. is out of range. is null. Called by base class Collection<T> when the list is being cleared; raises a CollectionChanged event to any listeners. Raise CollectionChanged event to any listeners. Properties/methods modifying this ObservableCollection will raise a collection changed event through this virtual method. When overriding this method, either call its base implementation Helper to raise Count property and the Indexer property. /// Helper to raise a PropertyChanged event for the Indexer property /// Helper to raise CollectionChanged event to any listeners Helper to raise CollectionChanged event with action == Reset to any listeners Helper to raise event for clustered action and clear cluster. The index of the item following the replacement block. To be kept outside , since otherwise, a new instance will be created for each generic type used.