UNPKG

@plastichub/osr-cad

Version:

This is a CLI(CommandLineInterface) toolset to convert 3D files, using Solidworks and other software.

214 lines (213 loc) 6.39 kB
import { PATH_INFO } from "@plastichub/osr-commons"; export interface IOptionsCache { cache?: boolean; clear?: boolean; } export interface IOptionsBase extends IOptionsCache { src: string; srcInfo?: PATH_INFO; dstInfo?: PATH_INFO; dst?: string; alt?: boolean; debug?: boolean; verbose?: boolean; dry?: boolean; report?: string; variables: Record<string, string>; script?: string; args?: string; onNode: (data: INodeCallback) => Promise<void>; } export interface INodeCallback { src: string; target: string; options: IOptionsBase; } export interface IBomOptions { 'bom-template'?: string; 'bom-detail'?: number; 'bom-type'?: number; 'bom-images'?: boolean; 'bom-config'?: string; } export interface SolidworkOptions extends IOptionsBase, IBomOptions { close?: boolean; configuration?: string; height?: number; hidden?: string; light?: boolean; logLevel?: string; pack?: boolean; quality?: number; rebuild?: boolean; renderer?: string; save?: boolean; sw?: string; swv?: number; view?: string; width?: number; write?: boolean; } export interface IPrintCenter { x: number; y: number; } export type EGCodeFlavor = 'reprap' | 'marlin' | 'teacup' | 'makerware' | 'sailfish' | 'mach3' | 'noextrusion'; export interface IBedSize { width: number; height: number; } export interface IExtruderOffset { x: number; y: number; } export type TOutputResult = boolean; export interface ISlic3rCLIOptions { avoidCrossingPerimeters?: boolean; bedSize?: IBedSize; bedTemperature?: number; bottomSolidLayers?: number; bridgeAcceleration?: number; bridgeFanSpeed?: number; bridgeFlowRatio?: number; bridgeSpeed?: number; brimWidth?: number; completeObjects?: boolean; cooling?: boolean; cut?: number; defaultAcceleration?: number; disableFanFirstLayers?: number; dontSupportBridges?: boolean; duplicate?: number; duplicateDistance?: number; duplicateGrid?: string; endGCode?: boolean; endGcode?: boolean; exportSvg?: boolean; externalPerimeterExtrusionWidth?: number | string; externalPerimetersFirst?: boolean; externalPerimeterSpeed?: number; extraPerimeters?: boolean; extruderClearanceHeight?: number; extruderClearanceRadius?: number; extruderOffset?: IExtruderOffset; extrusionMultiplier?: number; extrusionWidth?: number | string; fanAlwaysOn?: boolean; fanBelowLayerTime?: number; filamentDiameter?: number; fillAngle?: number; fillDensity?: number; fillPattern?: string; firstLayerAcceleration?: number; firstLayerBedTemperature?: number; firstLayerExtrusionWidth?: number | string; firstLayerHeight?: number; firstLayerSpeed?: number; firstLayerTemperature?: number; g0?: boolean; gapFillSpeed?: number; GCodeArcs?: boolean; GCodeComments?: boolean; GCodeFlavor?: EGCodeFlavor; infillAcceleration?: number; infillEveryLayers?: number; infillExtruder?: number; infillExtrusionWidth?: number | string; infillFirst?: boolean; infillOnlyWhereNeeded?: boolean; infillSpeed?: number; info?: boolean; inputFile?: string; layerGCode?: boolean; layerGcode?: boolean; layerHeight?: number; load?: string; log?: string; maxFanSpeed?: number; merge?: boolean; minFanSpeed?: number; minPrintSpeed?: number; minSkirtLength?: number; notes?: string; nozzleDiameter?: number; onlyRetractWhenCrossingPerimeters?: boolean; oozePrevention?: boolean; outputDirectory?: string; outputFile?: string; outputFilenameFormat?: string; overhangs?: boolean; perimeterAcceleration?: number; perimeterExtruder?: number; perimeterExtrusionWidth?: number | string; perimeters?: number; perimeterSpeed?: number; postProcess?: string[]; postProcessScripts?: string[]; pressureAdvance?: number; printCenter?: IPrintCenter; profile?: string; raftLayers?: number; repair?: boolean; resolution?: number; retractBeforeTravel?: number; retractLayerChange?: boolean; retractLength?: number; retractLengthToolchange?: number; retractLift?: number; retractRestartExtra?: number; retractRestartExtraToolchange?: number; retractSpeed?: number; rotate?: number; save?: string; saveArgs?: string; saveAsProfile?: string; scale?: number; seamPosition?: 'random' | 'nearest' | 'aligned'; skirtDistance?: number; skirtHeight?: number; skirts?: number; slowdownBelowLayerTime?: number; smallPerimeterSpeed?: number; solidFillPattern?: string; solidInfillBelowArea?: number; solidInfillEveryLayers?: number; solidInfillExtruder?: number; solidInfillExtrusionWidth?: number | string; solidInfillSpeed?: number; solidLayers?: boolean; spiralVase?: boolean; split?: boolean; standbyTemperatureDelta?: number; startGCode?: boolean; startGcode?: boolean; supportMaterial?: boolean; supportMaterialAngle?: number; supportMaterialEnforceLayers?: number; supportMaterialExtruder?: number; supportMaterialExtrusionWidth?: number | string; supportMaterialInterfaceExtruder?: number; supportMaterialInterfaceLayers?: number; supportMaterialInterfaceSpacing?: number; supportMaterialInterfaceSpeed?: number; supportMaterialPattern?: string; supportMaterialSpacing?: number; supportMaterialSpeed?: number; supportMaterialThreshold?: number; temperature?: number; thinWalls?: boolean; threads?: number; toolchangeGCode?: boolean; toolchangeGcode?: boolean; topInfillExtrusionWidth?: number | string; topSolidInfillSpeed?: number; topSolidLayers?: number; travelSpeed?: number; useFirmwareRetraction?: boolean; useRelativeEDistances?: boolean; useVolumetricE?: boolean; vibrationLimit?: number; wipe?: boolean; zOffset?: number; } export type SlicerOptions = IOptionsBase & ISlic3rCLIOptions;