121 lines
2.2 KiB
TypeScript
121 lines
2.2 KiB
TypeScript
// CadHub
|
|
|
|
type CadhubTypeNames = 'number' | 'string' | 'boolean'
|
|
|
|
interface CadhubParamBase {
|
|
type: CadhubTypeNames
|
|
caption: string
|
|
name: string
|
|
}
|
|
export interface CadhubStringParam extends CadhubParamBase {
|
|
type: 'string'
|
|
initial: string
|
|
placeholder?: string
|
|
maxLength?: number
|
|
}
|
|
export interface CadhubBooleanParam extends CadhubParamBase {
|
|
type: 'boolean'
|
|
initial?: boolean
|
|
}
|
|
export interface CadhubNumberParam extends CadhubParamBase {
|
|
type: 'number'
|
|
initial: number
|
|
min?: number
|
|
max?: number
|
|
step?: number
|
|
decimal?: number
|
|
}
|
|
|
|
export type CadhubParams =
|
|
| CadhubStringParam
|
|
| CadhubBooleanParam
|
|
| CadhubNumberParam
|
|
|
|
// OpenSCAD
|
|
const openscadValues = `
|
|
// slider widget for number with max. value
|
|
sliderWithMax =34; // [50]
|
|
|
|
// slider widget for number in range
|
|
sliderWithRange =34; // [10:100]
|
|
|
|
//step slider for number
|
|
stepSlider=2; //[0:5:100]
|
|
|
|
// slider widget for number in range
|
|
sliderCentered =0; // [-10:0.1:10]
|
|
|
|
// spinbox with step size 1
|
|
Spinbox= 5;
|
|
|
|
// Text box for string
|
|
String="hello";
|
|
|
|
// Text box for string with length 8
|
|
String2="length"; //8
|
|
|
|
//description
|
|
Variable = true;
|
|
`
|
|
|
|
const openscadConverted: CadhubParams[] = [
|
|
{
|
|
type: 'number',
|
|
name: 'sliderWithMax',
|
|
caption: 'slider widget for number with max. value',
|
|
initial: 34,
|
|
step: 1,
|
|
max: 50,
|
|
},
|
|
{
|
|
type: 'number',
|
|
name: 'sliderWithRange',
|
|
caption: 'slider widget for number in range',
|
|
initial: 34,
|
|
step: 1,
|
|
min: 10,
|
|
max: 100,
|
|
},
|
|
{
|
|
type: 'number',
|
|
name: 'stepSlider',
|
|
caption: 'step slider for number',
|
|
initial: 2,
|
|
step: 5,
|
|
min: 0,
|
|
max: 100,
|
|
},
|
|
{
|
|
type: 'number',
|
|
name: 'sliderCentered',
|
|
caption: 'slider widget for number in range',
|
|
initial: 0,
|
|
step: 0.1,
|
|
min: -10,
|
|
max: 10,
|
|
},
|
|
{
|
|
type: 'number',
|
|
name: 'Spinbox',
|
|
caption: 'spinbox with step size 1',
|
|
initial: 5,
|
|
step: 1,
|
|
},
|
|
|
|
{
|
|
type: 'string',
|
|
name: 'String',
|
|
caption: 'Text box for string',
|
|
initial: 'hello',
|
|
},
|
|
{
|
|
type: 'string',
|
|
name: 'String2',
|
|
caption: 'Text box for string with length 8',
|
|
initial: 'length',
|
|
maxLength: 8,
|
|
},
|
|
|
|
{ type: 'boolean', name: 'Variable', caption: 'description', initial: true },
|
|
]
|