Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
166 lines
7.3 KiB
JavaScript
166 lines
7.3 KiB
JavaScript
import mongoose from 'mongoose';
|
|
import { generateId } from '../../utils.js';
|
|
|
|
const filamentProfileSchema = new mongoose.Schema(
|
|
{
|
|
_reference: { type: String, default: () => generateId()() },
|
|
name: { type: String, required: true },
|
|
filamentType: { type: String, required: true },
|
|
filament: {
|
|
type: mongoose.Schema.Types.ObjectId,
|
|
refPath: 'filamentType',
|
|
required: true,
|
|
},
|
|
filamentIsSupport: { type: Boolean },
|
|
filamentSoluble: { type: Boolean },
|
|
filamentPrintable: { type: Number },
|
|
filamentAdhesivenessCategory: { type: Number },
|
|
temperatureVitrification: { type: Number },
|
|
idleTemperature: { type: Number },
|
|
pelletFlowCoefficient: { type: Number },
|
|
requiredNozzleHrc: { type: Number },
|
|
filamentFlowRatio: { type: Number },
|
|
enablePressureAdvance: { type: Boolean },
|
|
pressureAdvance: { type: Number },
|
|
adaptivePressureAdvance: { type: Boolean },
|
|
adaptivePressureAdvanceBridges: { type: Boolean },
|
|
adaptivePressureAdvanceOverhangs: { type: Boolean },
|
|
adaptivePressureAdvanceModel: { type: String },
|
|
activateChamberTempControl: { type: Boolean },
|
|
chamberTemperature: { type: Number },
|
|
chamberMinimalTemperature: { type: Number },
|
|
nozzleTemperatureInitialLayer: { type: Number },
|
|
nozzleTemperature: { type: Number },
|
|
nozzleTemperatureRangeLow: { type: Number },
|
|
nozzleTemperatureRangeHigh: { type: Number },
|
|
hotPlateTempInitialLayer: { type: Number },
|
|
hotPlateTemp: { type: Number },
|
|
coolPlateTempInitialLayer: { type: Number },
|
|
coolPlateTemp: { type: Number },
|
|
engPlateTempInitialLayer: { type: Number },
|
|
engPlateTemp: { type: Number },
|
|
texturedPlateTempInitialLayer: { type: Number },
|
|
texturedPlateTemp: { type: Number },
|
|
texturedCoolPlateTempInitialLayer: { type: Number },
|
|
texturedCoolPlateTemp: { type: Number },
|
|
supertackPlateTempInitialLayer: { type: Number },
|
|
supertackPlateTemp: { type: Number },
|
|
filamentAdaptiveVolumetricSpeed: { type: Boolean },
|
|
filamentMaxVolumetricSpeed: { type: Number },
|
|
volumetricSpeedCoefficients: { type: String },
|
|
closeFanTheFirstXLayers: { type: Number },
|
|
fullFanSpeedLayer: { type: Number },
|
|
fanMinSpeed: { type: Number },
|
|
fanMaxSpeed: { type: Number },
|
|
reduceFanStopStartFreq: { type: Boolean },
|
|
slowDownForLayerCooling: { type: Boolean },
|
|
dontSlowDownOuterWall: { type: Boolean },
|
|
slowDownMinSpeed: { type: Number },
|
|
slowDownLayerTime: { type: Number },
|
|
fanCoolingLayerTime: { type: Number },
|
|
enableOverhangBridgeFan: { type: Boolean },
|
|
overhangFanThreshold: { type: String },
|
|
overhangFanSpeed: { type: Number },
|
|
internalBridgeFanSpeed: { type: Number },
|
|
supportMaterialInterfaceFanSpeed: { type: Number },
|
|
ironingFanSpeed: { type: Number },
|
|
initialLayerFanSpeed: { type: Number },
|
|
firstXLayerFanSpeed: { type: Number },
|
|
additionalCoolingFanSpeed: { type: Number },
|
|
additionalFanFullSpeedLayer: { type: Number },
|
|
closeAdditionalFanFirstXLayers: { type: Boolean },
|
|
activateAirFiltration: { type: Boolean },
|
|
activateAirFiltrationDuringPrint: { type: Boolean },
|
|
activateAirFiltrationOnCompletion: { type: Boolean },
|
|
duringPrintExhaustFanSpeed: { type: Number },
|
|
completePrintExhaustFanSpeed: { type: Number },
|
|
filamentRetractionLength: { type: Number },
|
|
filamentRetractionSpeed: { type: Number },
|
|
filamentDeretractionSpeed: { type: Number },
|
|
filamentRetractionMinimumTravel: { type: Number },
|
|
filamentRetractWhenChangingLayer: { type: Boolean },
|
|
filamentRetractBeforeWipe: { type: Number },
|
|
filamentRetractAfterWipe: { type: Number },
|
|
filamentRetractRestartExtra: { type: Number },
|
|
filamentRetractLiftAbove: { type: Number },
|
|
filamentRetractLiftBelow: { type: Number },
|
|
filamentRetractLiftEnforce: { type: String },
|
|
filamentWipe: { type: Boolean },
|
|
filamentWipeDistance: { type: Number },
|
|
filamentZHop: { type: Number },
|
|
filamentZHopTypes: { type: String },
|
|
filamentLongRetractionsWhenCut: { type: Boolean },
|
|
filamentRetractionDistancesWhenCut: { type: Number },
|
|
longRetractionsWhenEc: { type: Boolean },
|
|
retractionDistancesWhenEc: { type: Number },
|
|
filamentLoadingSpeed: { type: Number },
|
|
filamentLoadingSpeedStart: { type: Number },
|
|
filamentUnloadingSpeed: { type: Number },
|
|
filamentUnloadingSpeedStart: { type: Number },
|
|
filamentChangeLength: { type: Number },
|
|
filamentChangeLengthNc: { type: Number },
|
|
filamentToolchangeDelay: { type: Number },
|
|
filamentExtruderCompatibility: { type: Number },
|
|
filamentExtruderVariant: { type: String },
|
|
filamentMultitoolRamming: { type: Boolean },
|
|
filamentMultitoolRammingFlow: { type: Number },
|
|
filamentMultitoolRammingVolume: { type: Number },
|
|
filamentRammingParameters: { type: String },
|
|
filamentRammingTravelTime: { type: Number },
|
|
filamentRammingTravelTimeNc: { type: Number },
|
|
filamentRammingVolumetricSpeed: { type: Number },
|
|
filamentRammingVolumetricSpeedNc: { type: Number },
|
|
filamentMinimalPurgeOnWipeTower: { type: Number },
|
|
filamentTowerInterfacePreExtrusionDist: { type: Number },
|
|
filamentTowerInterfacePreExtrusionLength: { type: Number },
|
|
filamentTowerInterfacePrintTemp: { type: Number },
|
|
filamentTowerInterfacePurgeVolume: { type: Number },
|
|
filamentTowerIroningArea: { type: Number },
|
|
filamentCoolingBeforeTower: { type: Number },
|
|
filamentCoolingInitialSpeed: { type: Number },
|
|
filamentCoolingFinalSpeed: { type: Number },
|
|
filamentCoolingMoves: { type: Number },
|
|
filamentFlushTemp: { type: Number },
|
|
filamentFlushTempFast: { type: Number },
|
|
filamentFlushVolumetricSpeed: { type: Number },
|
|
filamentPreCoolingTemperature: { type: Number },
|
|
filamentPreCoolingTemperatureNc: { type: Number },
|
|
filamentPreheatTemperatureDelta: { type: Number },
|
|
filamentPrimeVolumeNc: { type: Number },
|
|
filamentRetractLengthNc: { type: Number },
|
|
filamentStampingDistance: { type: Number },
|
|
filamentStampingLoadingSpeed: { type: Number },
|
|
filamentStartGcode: { type: String },
|
|
filamentEndGcode: { type: String },
|
|
filamentChangeExtrusionRoleGcode: { type: String },
|
|
filamentShrink: { type: String },
|
|
filamentShrinkageCompensationZ: { type: String },
|
|
filamentDevAmsDryingTemperature: { type: Number },
|
|
filamentDevAmsDryingTime: { type: Number },
|
|
filamentDevAmsDryingHeatDistortionTemperature: { type: Number },
|
|
filamentDevAmsDryingAmsLimitations: { type: String },
|
|
filamentDevChamberDryingBedTemperature: { type: Number },
|
|
filamentDevChamberDryingTime: { type: Number },
|
|
filamentDevDryingCoolingTemperature: { type: Number },
|
|
filamentDevDryingSofteningTemperature: { type: Number },
|
|
compatiblePrinters: [
|
|
{ type: mongoose.Schema.Types.ObjectId, ref: 'printerProfile' },
|
|
],
|
|
compatiblePrintersCondition: { type: String },
|
|
compatiblePrints: [{ type: String }],
|
|
compatiblePrintsCondition: { type: String },
|
|
filamentNotes: { type: String },
|
|
},
|
|
{ timestamps: true }
|
|
);
|
|
|
|
filamentProfileSchema.index({ name: 'text', filamentNotes: 'text' });
|
|
|
|
filamentProfileSchema.virtual('id').get(function () {
|
|
return this._id;
|
|
});
|
|
|
|
filamentProfileSchema.set('toJSON', { virtuals: true });
|
|
|
|
export const filamentProfileModel = mongoose.model('filamentProfile', filamentProfileSchema);
|