diff --git a/modules/workbenches/examples/features/occ_bottle/index.ts b/modules/workbenches/examples/features/occ_bottle/index.ts
index 4c982053..45a092d7 100644
--- a/modules/workbenches/examples/features/occ_bottle/index.ts
+++ b/modules/workbenches/examples/features/occ_bottle/index.ts
@@ -33,10 +33,10 @@ export default {
defaultValue: 150
},
color: {
- type: 'enum',
+ type: 'string',
defaultValue: "red",
label: 'Color',
- options: [
+ enum: [
{
label: 'Red',
value: 'red'
diff --git a/modules/workbenches/modeler/features/fillet_tool/index.ts b/modules/workbenches/modeler/features/fillet_tool/index.ts
index 76bc0419..06a9c6a3 100644
--- a/modules/workbenches/modeler/features/fillet_tool/index.ts
+++ b/modules/workbenches/modeler/features/fillet_tool/index.ts
@@ -25,13 +25,22 @@ export default {
paramsInfo: ({ sizeA, }) => `(${r(sizeA)} })`,
schema: {
edgeOperationType: {
- type: 'TextField',
+ type: 'string',
defaultValue: "FILLET",
label: 'Operation Type',
- children: [
- "Fillet",
- "Champher",
- "2 Sided Champher",
+ enum: [
+ {
+ label: "Fillet",
+ value: "FILLET"
+ },
+ {
+ label: "Champher",
+ value: "CHAMPHER"
+ },
+ {
+ label: "2 Sided Champher",
+ value: "TWO_SIDED_CHAMPHER"
+ }
],
},
diff --git a/modules/workbenches/modeler/features/hole_tool/index.ts b/modules/workbenches/modeler/features/hole_tool/index.ts
index 75c3f9de..ac8bc3b1 100644
--- a/modules/workbenches/modeler/features/hole_tool/index.ts
+++ b/modules/workbenches/modeler/features/hole_tool/index.ts
@@ -16,10 +16,10 @@ export default {
paramsInfo: ({ diameter, depth, counterBoreDiameter, counterBoreDepth, countersinkDiameter, countersinkAngle, holeType, }) => `(${r(depth)} ${r(counterBoreDiameter)}) ${r(counterBoreDepth)})`,
schema: {
holeType: {
- type: 'enum',
+ type: 'string',
defaultValue: "counterbore",
label: 'HoleType',
- options: [
+ enum: [
{
label: 'Counterbore',
value: 'counterbore'
diff --git a/web/app/cad/icons/DeclarativeIcon.tsx b/web/app/cad/icons/DeclarativeIcon.tsx
index be66bf91..65876130 100644
--- a/web/app/cad/icons/DeclarativeIcon.tsx
+++ b/web/app/cad/icons/DeclarativeIcon.tsx
@@ -47,7 +47,7 @@ function Icon(props: {
}
-function getSizeInPx(sizeName: IconSize): number {
+export function getSizeInPx(sizeName: IconSize): number {
switch (sizeName) {
case 'small': return 16;
case 'medium': return 24;
diff --git a/web/app/cad/mdf/generateForm.tsx b/web/app/cad/mdf/generateForm.tsx
index 8a46c0c7..8a7d9e9f 100644
--- a/web/app/cad/mdf/generateForm.tsx
+++ b/web/app/cad/mdf/generateForm.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { ComboBoxOption } from 'ui/components/controls/ComboBoxControl';
import Entity from '../craft/wizard/components/form/Entity';
-import { CheckboxField, NumberField, ComboBoxField, TextField} from '../craft/wizard/components/form/Fields';
+import { CheckboxField, NumberField, ComboBoxField, TextField } from '../craft/wizard/components/form/Fields';
import { Group } from '../craft/wizard/components/form/Form';
import { OperationSchema, SchemaField } from './mdf';
@@ -16,16 +16,18 @@ export function generateForm(schema: OperationSchema) {
if (fieldDef.type === 'number') {
return
- } else if (fieldDef.type === 'TextField') {
- return ;
+ } else if (fieldDef.type === 'string') {
+ if (fieldDef.enum) {
+ return
+ {fieldDef.enum.map(opt =>
+ {opt.label}
+ )}
+
+ } else {
+ return ;
+ }
} else if (['face', 'edge', 'sketchObject', 'datumAxis'].includes(fieldDef.type)) {
return ;
- } else if (fieldDef.type === 'enum') {
- return
- {fieldDef.options.map(opt =>
- {opt.label}
- )}
-
} else if (fieldDef.type === 'boolean') {
return ;
} else {
@@ -35,6 +37,4 @@ export function generateForm(schema: OperationSchema) {
})}
;
};
-
-
}
\ No newline at end of file
diff --git a/web/app/cad/mdf/mdf.ts b/web/app/cad/mdf/mdf.ts
index 6ff8ad7f..e73f4d18 100644
--- a/web/app/cad/mdf/mdf.ts
+++ b/web/app/cad/mdf/mdf.ts
@@ -25,8 +25,11 @@ export type OperationSchema = {
};
export interface SchemaField {
- type: 'number' | 'face' | 'datumAxis' | 'edge' | 'sketchObject' | 'boolean' | 'enum'
- options: string[] | number[],
+ type: 'number' | 'boolean' | 'string' | 'face' | 'datumAxis' | 'edge' | 'sketchObject',
+ enum?: {
+ value: string;
+ label: string;
+ }[];
defaultValue: Coercable,
optional: boolean,
label?: string