CREATE TABLE `def_model_stl` (
`StlCode` varchar(255) NOT NULL,
`Package` varchar(100) NOT NULL DEFAULT '',
`Description` varchar(255) DEFAULT NULL,
`FilePath` varchar(255) DEFAULT NULL,
`MaterialThickness` double DEFAULT NULL,
`OutputDirectory` varchar(255) DEFAULT NULL,
`Active` char(1) DEFAULT 'Y',
`Status` varchar(50) DEFAULT 'PENDING',
`PreviewPath` varchar(255) DEFAULT NULL,
`SliceCount` int(11) DEFAULT 0,
`CreatedAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`UpdatedAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`StlCode`, `Package`),
KEY `idx_package` (`Package`),
KEY `idx_status` (`Status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE={collation};
CREATE TABLE `def_model_stl_slices` (
`StlCode` varchar(255) NOT NULL,
`Package` varchar(100) NOT NULL DEFAULT '',
`SliceNumber` int(11) NOT NULL DEFAULT 0,
`SliceHeight` double DEFAULT NULL,
`FilePath` varchar(255) DEFAULT NULL,
`FileSize` int(11) DEFAULT 0,
`CreatedAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`StlCode`, `Package`, `SliceNumber`),
KEY `idx_stlcode_package` (`StlCode`, `Package`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE={collation};
INSERT INTO def_model_stl
(StlCode, Package, Description, FilePath,
MaterialThickness, OutputDirectory, Status)
VALUES
('{stl_code}', '{package}', '{description}',
'{file_path}', {material_thickness},
'{output_directory}', '{status}')
ON DUPLICATE KEY UPDATE
FilePath = '{file_path}',
MaterialThickness = {material_thickness},
OutputDirectory = '{output_directory}',
Status = '{status}',
UpdatedAt = CURRENT_TIMESTAMP
UPDATE def_model_stl
SET Status = '{status}',
SliceCount = {slice_count},
PreviewPath = '{preview_path}',
UpdatedAt = CURRENT_TIMESTAMP
WHERE StlCode = '{stl_code}'
AND Package = '{package}'
INSERT INTO def_model_stl_slices
(StlCode, Package, SliceNumber, SliceHeight,
FilePath, FileSize)
VALUES
('{stl_code}', '{package}', {slice_number},
{slice_height}, '{file_path}', {file_size})
ON DUPLICATE KEY UPDATE
SliceHeight = {slice_height},
FilePath = '{file_path}',
FileSize = {file_size}
DELETE FROM def_model_stl_slices
WHERE StlCode = '{stl_code}'
AND Package = '{package}'
SELECT *
FROM def_model_stl
WHERE Package IN ('{package}', 'CORE')
ORDER BY CreatedAt DESC
SELECT *
FROM def_model_stl
WHERE StlCode = '{stl_code}'
AND Package = '{package}'
SELECT *
FROM def_model_stl_slices
WHERE StlCode = '{stl_code}'
AND Package = '{package}'
ORDER BY SliceNumber
- service_code:
STL
- supported_extensions:
['.stl', '.obj', '.ply', '.off']
- defaults:
{'material_thickness': 1.0, 'output_directory': 'local.documents/stl'}
- preview:
{'figure_size': 10, 'face_color': [0.5, 0.5, 1.0], 'face_alpha': 0.8, 'edge_color': 'k'}
- slicing:
{'plane_normal': [0, 0, 1], 'file_prefix': 'slice_', 'file_format': 'svg', 'preview_suffix': '_preview.png'}