@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
TypeScript
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;