Skip to content

Commit

Permalink
Update Laser material test config (#2560)
Browse files Browse the repository at this point in the history
* Update build-on-create-release.yml

* Update build-on-create-release.yml

* Feature: Support material test

Support material test

* Feature: Support material test

not support auto delete

* Feature: Support material test

fix cannot genarate gcode bug

* Feature: Support material test

fix cannot genarate gcode bug

* Feature: Support material test

new alpha version

* Feature: Support material test

update nightly build relaese id

* Fix: Nightly build fix

Nightly build fix

* Update build-on-pull-request.yml

* Fix: Nightly build fix

Nightly build fix

* Fix: Rollback workflow

Rollback workflow

* Fix: Rollback workflow

Rollback workflow

* Fix: Remove excess logs

Remove excess logs

* Fix: Cannot Init default value

Init default value by other way

* Fix: Change default multiPasses value

Change default multiPasses value

* Fix: Support ToolPathConfig setting

Support ToolPathConfig setting

* Fix: Support ToolPathConfig setting

Support ToolPathConfig setting

* Fix: Toolpath to much

Let All word's toolPath In One

* Fix: Update to beta version

Update to beta version

* Fix: Not support undo or redo

Support undo or redo and ceate more time

* Feature: Upgrade print setting

Upgrade print setting

* Feature: Add Print Setting Param's i18n

Add Printing Setting i18n

* Fix: Update MaterialTest Rule

 Update MaterialTest Rule

* Fix: Update beta version

 Update beta version to support new print setting

* Fix: Update Default Test Config

Update Default Test Config
  • Loading branch information
leo-songye-li authored Dec 31, 2024
1 parent c1e6823 commit 3df7a3d
Show file tree
Hide file tree
Showing 18 changed files with 59 additions and 23 deletions.
2 changes: 1 addition & 1 deletion packages/luban-print-settings
Submodule luban-print-settings updated 24 files
+102 −0 resources/laser/a150_10w/material_test.default_engraving.def.json
+102 −0 resources/laser/a150_1600mw/material_test.default_engraving.def.json
+102 −0 resources/laser/a150_20w/material_test.default_engraving.def.json
+102 −0 resources/laser/a150_2w/material_test.default_engraving.def.json
+102 −0 resources/laser/a250_10w/material_test.default_engraving.def.json
+102 −0 resources/laser/a250_1600mw/material_test.default_engraving.def.json
+102 −0 resources/laser/a250_20w/material_test.default_engraving.def.json
+102 −0 resources/laser/a250_2w/material_test.default_engraving.def.json
+102 −0 resources/laser/a250_40w/material_test.default_engraving.def.json
+102 −0 resources/laser/a350_10w/material_test.default_engraving.def.json
+102 −0 resources/laser/a350_1600mw/material_test.default_engraving.def.json
+102 −0 resources/laser/a350_20w/material_test.default_engraving.def.json
+102 −0 resources/laser/a350_2w/material_test.default_engraving.def.json
+102 −0 resources/laser/a350_40w/material_test.default_engraving.def.json
+102 −0 resources/laser/a400_10w/material_test.default_engraving.def.json
+102 −0 resources/laser/a400_1600mw/material_test.default_engraving.def.json
+102 −0 resources/laser/a400_20w/material_test.default_engraving.def.json
+102 −0 resources/laser/a400_2w/material_test.default_engraving.def.json
+102 −0 resources/laser/a400_40w/material_test.default_engraving.def.json
+102 −0 resources/laser/original_1600mw/material_test.default_engraving.def.json
+102 −0 resources/laser/original_200mw/material_test.default_engraving.def.json
+102 −0 resources/laser/snapmaker_ray_20w/material_test.default_engraving.def.json
+102 −0 resources/laser/snapmaker_ray_2w/material_test.default_engraving.def.json
+102 −0 resources/laser/snapmaker_ray_40w/material_test.default_engraving.def.json
28 changes: 26 additions & 2 deletions src/app/flux/editor/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1662,9 +1662,28 @@ export const actions = {

createElementAndGenToolPath: (headType, params, gcodeConfig, toolParams) => async (dispatch, getState) => {
dispatch(actions.resetProcessState(headType));
const { modelGroup, SVGActions, toolPathGroup, coordinateMode, coordinateSize, materials } = getState()[headType];
const { progressStatesManager, modelGroup, SVGActions, toolPathGroup, coordinateMode, coordinateSize, materials } = getState()[headType];
const { rectRows, speedMin, speedMax, rectHeight, rectCols, powerMin, powerMax, rectWidth } = params;
const origin: Origin = getState()[headType].origin;

if (!progressStatesManager.inProgress()) {
progressStatesManager.startProgress(PROCESS_STAGE.CNC_LASER_PROCESS_IMAGE, [1]);
} else {
progressStatesManager.startNextStep();
}

const progress = (p) => {
dispatch(
actions.updateState(headType, {
stage: STEP_STAGE.CNC_LASER_PROCESSING_IMAGE,
progress: progressStatesManager.updateProgress(STEP_STAGE.CNC_LASER_PROCESSING_IMAGE, p)
})
);
if (p === 1) {
progressStatesManager.finishProgress(true);
}
};

const rectGap = 6;
const titleGap = 2;
// headTitleGap just use between head title and rects
Expand All @@ -1683,7 +1702,7 @@ export const actions = {
}
const maxWidth = rectCols * (rectWidth + rectGap) - rectGap + titleGap * 2 + baseStyle.numHeight + baseStyle.titleHeight;
const maxHeight = rectRows * (rectHeight + rectGap) - rectGap + headTitleGap + (titleGap + baseStyle.titleHeight) * 2 + baseStyle.numHeight;

progress(0.05);
// 越界判断
if (maxWidth > coordinateSize.x || maxHeight > coordinateSize.y) {
toast(makeSceneToast('warning', 'Cannot creat too much rect'));
Expand Down Expand Up @@ -1769,9 +1788,11 @@ export const actions = {
backupModels.push(newSVGModel);
createToolPath([newSVGModel], ws, fp);
};

await createTextElement(`Passes : ${gcodeConfig.multiPasses}`, maxWidth / 2, -maxHeight + baseStyle.titleHeight / 2, baseStyle.titleHeight, baseStyle.titleFontSize, false);
await createTextElement('Power(%)', maxWidth / 2, -baseStyle.titleHeight / 2, baseStyle.titleHeight, baseStyle.titleFontSize, false);
await createTextElement('Speed(mm/m)', baseStyle.titleHeight / 2, -maxHeight / 2, baseStyle.titleHeight, baseStyle.titleFontSize, true);
progress(0.1);
const basicX = baseStyle.titleHeight + baseStyle.numHeight + titleGap * 2;
const basicY = -(baseStyle.titleHeight + baseStyle.numHeight + titleGap * 2);
for (let i = 0; i < rectCols; i++) {
Expand All @@ -1788,8 +1809,10 @@ export const actions = {
}
await createRectElement(x, y - rectHeight, rectWidth, rectHeight, curSpeed, curPower);
}
progress(0.1 + (i + 1) * (0.9 / rectCols));
}
createToolPath(mergeList, wordSpeed, wordPower);
progress(0.95);
const operation = new AddMaterialTestGenerate({
toolPathGroup: toolPathGroup,
modelGroup: modelGroup,
Expand All @@ -1799,6 +1822,7 @@ export const actions = {
const operations = new CompoundOperation();
operations.push(operation);
dispatch(operationHistoryActions.setOperations(headType, operations));
progress(1);
dispatch(baseActions.render(headType));
},

Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/cs/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "",
"key-default_category-Epoxy Tooling Board": "",
"key-default_category-MDF": "",
"key-default_category-Material Test": "",
"key-default_category-New Profile": "",
"key-default_category-Nylon": "",
"key-default_category-Other": "",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "",
"key-default_name-Dot filled": "",
"key-default_name-Dot-filled Engraving": "",
"key-default_name-Default Engraving": "",
"key-default_name-Fast Print": "",
"key-default_name-Fast-Line-filled Engraving": "",
"key-default_name-Flat End Mill 1.5": "",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/de/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "Standard-Werkzeug",
"key-default_category-Epoxy Tooling Board": "Epoxid-Werkzeugplatte",
"key-default_category-MDF": "MDF",
"key-default_category-Material Test": "",
"key-default_category-New Profile": "Neues Profil",
"key-default_category-Nylon": "Nylon",
"key-default_category-Other": "Sonstiges",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "Schneiden 8 mm",
"key-default_name-Dot filled": "",
"key-default_name-Dot-filled Engraving": "Punktgefüllte Gravur",
"key-default_name-Default Engraving": "",
"key-default_name-Fast Print": "Schnelldruck",
"key-default_name-Fast-Line-filled Engraving": "Schnelle Leine gefüllt",
"key-default_name-Flat End Mill 1.5": "Flachfräser 1,5",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/en/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "Default Tool",
"key-default_category-Epoxy Tooling Board": "Epoxy Tooling Board",
"key-default_category-MDF": "MDF",
"key-default_category-Material Test": "Material Test",
"key-default_category-New Profile": "New Profile",
"key-default_category-Nylon": "Nylon",
"key-default_category-Other": "Other",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "Cutting 8mm",
"key-default_name-Dot filled": "Standard dot filled",
"key-default_name-Dot-filled Engraving": "Dot-filled Engraving",
"key-default_name-Default Engraving": "Default Engraving",
"key-default_name-Fast Print": "Fast Print",
"key-default_name-Fast-Line-filled Engraving": "Fast Line-filled",
"key-default_name-Flat End Mill 1.5": "1-flute Flat End Mill 1.5mm Cutting 3.175mm Shank",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/es/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "Herramienta predeterminada",
"key-default_category-Epoxy Tooling Board": "Tablero de herramientas de epoxi",
"key-default_category-MDF": "MDF",
"key-default_category-Material Test": "",
"key-default_category-New Profile": "Nuevo perfil",
"key-default_category-Nylon": "",
"key-default_category-Other": "",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "Corte de 8 mm",
"key-default_name-Dot filled": "",
"key-default_name-Dot-filled Engraving": "Grabado de puntos",
"key-default_name-Default Engraving": "",
"key-default_name-Fast Print": "Impresión rápida",
"key-default_name-Fast-Line-filled Engraving": "",
"key-default_name-Flat End Mill 1.5": "Fresa de acabado plano 1,5",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/fr/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "Outil par défaut",
"key-default_category-Epoxy Tooling Board": "Planche usinable Epoxy",
"key-default_category-MDF": "MDF",
"key-default_category-Material Test": "",
"key-default_category-New Profile": "Nouveau profil",
"key-default_category-Nylon": "",
"key-default_category-Other": "",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "Découpe de 8 mm",
"key-default_name-Dot filled": "",
"key-default_name-Dot-filled Engraving": "Gravure remplie de points",
"key-default_name-Default Engraving": "",
"key-default_name-Fast Print": "Impression rapide",
"key-default_name-Fast-Line-filled Engraving": "",
"key-default_name-Flat End Mill 1.5": "Fraise à bout plat 1,5",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/hu/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "",
"key-default_category-Epoxy Tooling Board": "",
"key-default_category-MDF": "",
"key-default_category-Material Test": "",
"key-default_category-New Profile": "",
"key-default_category-Nylon": "",
"key-default_category-Other": "",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "",
"key-default_name-Dot filled": "",
"key-default_name-Dot-filled Engraving": "",
"key-default_name-Default Engraving": "",
"key-default_name-Fast Print": "",
"key-default_name-Fast-Line-filled Engraving": "",
"key-default_name-Flat End Mill 1.5": "",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/it/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "Utensile predefinito",
"key-default_category-Epoxy Tooling Board": "Scheda per utensili epossidici",
"key-default_category-MDF": "MDF",
"key-default_category-Material Test": "",
"key-default_category-New Profile": "Nuovo profilo",
"key-default_category-Nylon": "Nylon",
"key-default_category-Other": "Altro",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "Taglio 8 mm",
"key-default_name-Dot filled": "",
"key-default_name-Dot-filled Engraving": "Incisione a punti",
"key-default_name-Default Engraving": "",
"key-default_name-Fast Print": "Stampa veloce",
"key-default_name-Fast-Line-filled Engraving": "Fast Line-filled",
"key-default_name-Flat End Mill 1.5": "Fresa a testa piatta 1,5",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/ja/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "デフォルトツール",
"key-default_category-Epoxy Tooling Board": "エポキシ工具材料",
"key-default_category-MDF": "MDF",
"key-default_category-Material Test": "",
"key-default_category-New Profile": "新しいプロファイル",
"key-default_category-Nylon": "ナイロン",
"key-default_category-Other": "その他",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "切断8mm",
"key-default_name-Dot filled": "",
"key-default_name-Dot-filled Engraving": "ドットフィル加工",
"key-default_name-Default Engraving": "",
"key-default_name-Fast Print": "高速",
"key-default_name-Fast-Line-filled Engraving": "",
"key-default_name-Flat End Mill 1.5": "フラットエンドミル1.5",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/ko/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "기본 툴",
"key-default_category-Epoxy Tooling Board": "에폭시 툴링 보드",
"key-default_category-MDF": "MDF",
"key-default_category-Material Test": "",
"key-default_category-New Profile": "새 프로필",
"key-default_category-Nylon": "",
"key-default_category-Other": "",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "8mm 절삭",
"key-default_name-Dot filled": "",
"key-default_name-Dot-filled Engraving": "점으로 채워진 인그레이빙",
"key-default_name-Default Engraving": "",
"key-default_name-Fast Print": "빠른 인쇄",
"key-default_name-Fast-Line-filled Engraving": "",
"key-default_name-Flat End Mill 1.5": "플랫 엔드밀 1.5",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/pt-br/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "",
"key-default_category-Epoxy Tooling Board": "",
"key-default_category-MDF": "",
"key-default_category-Material Test": "",
"key-default_category-New Profile": "",
"key-default_category-Nylon": "",
"key-default_category-Other": "",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "",
"key-default_name-Dot filled": "",
"key-default_name-Dot-filled Engraving": "",
"key-default_name-Default Engraving": "",
"key-default_name-Fast Print": "",
"key-default_name-Fast-Line-filled Engraving": "",
"key-default_name-Flat End Mill 1.5": "",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/ru/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "Default Tool",
"key-default_category-Epoxy Tooling Board": "Epoxy Tooling Board",
"key-default_category-MDF": "",
"key-default_category-Material Test": "",
"key-default_category-New Profile": "",
"key-default_category-Nylon": "",
"key-default_category-Other": "",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "Cutting 8mm",
"key-default_name-Dot filled": "",
"key-default_name-Dot-filled Engraving": "Dot-filled Engraving",
"key-default_name-Default Engraving": "",
"key-default_name-Fast Print": "",
"key-default_name-Fast-Line-filled Engraving": "",
"key-default_name-Flat End Mill 1.5": "Flat End Mill 1.5",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/uk/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "Типовий інструмент",
"key-default_category-Epoxy Tooling Board": "Епоксидна дошка",
"key-default_category-MDF": "МДФ",
"key-default_category-Material Test": "",
"key-default_category-New Profile": "Новий профіль",
"key-default_category-Nylon": "Нейлон",
"key-default_category-Other": "Інше",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "Прорізання 8 мм",
"key-default_name-Dot filled": "",
"key-default_name-Dot-filled Engraving": "Точкове заповнення",
"key-default_name-Default Engraving": "",
"key-default_name-Fast Print": "Швидкий друк",
"key-default_name-Fast-Line-filled Engraving": "Швидке лінійне заповнення",
"key-default_name-Flat End Mill 1.5": "Пласка фреза 1.5",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/zh-CN/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "默认刀具",
"key-default_category-Epoxy Tooling Board": "代木",
"key-default_category-MDF": "中密度纤维板",
"key-default_category-Material Test": "材料测试",
"key-default_category-New Profile": "新配置文件",
"key-default_category-Nylon": "尼龙",
"key-default_category-Other": "其他",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "切割 8 毫米",
"key-default_name-Dot filled": "标准点填充",
"key-default_name-Dot-filled Engraving": "点填充雕刻",
"key-default_name-Default Engraving": "默认雕刻",
"key-default_name-Fast Print": "快速打印",
"key-default_name-Fast-Line-filled Engraving": "快速线填充",
"key-default_name-Flat End Mill 1.5": "单刃平头铣刀 1.5mm 刃径 3.175mm 刀柄",
Expand Down
2 changes: 2 additions & 0 deletions src/app/resources/i18n/zh-tw/resource.json
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,7 @@
"key-default_category-Default Tool": "",
"key-default_category-Epoxy Tooling Board": "",
"key-default_category-MDF": "",
"key-default_category-Material Test": "",
"key-default_category-New Profile": "",
"key-default_category-Nylon": "",
"key-default_category-Other": "",
Expand Down Expand Up @@ -2265,6 +2266,7 @@
"key-default_name-Cutting 8mm": "",
"key-default_name-Dot filled": "",
"key-default_name-Dot-filled Engraving": "",
"key-default_name-Default Engraving": "",
"key-default_name-Fast Print": "",
"key-default_name-Fast-Line-filled Engraving": "",
"key-default_name-Flat End Mill 1.5": "",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ import styles from '../ToolPathConfigurations/styles.styl';

import {
HEAD_LASER,
LEVEL_ONE_POWER_LASER_FOR_SM2,
LEVEL_TWO_POWER_LASER_FOR_SM2
} from '../../../constants/machines';
import i18n from '../../../lib/i18n';
import { actions as editorActions } from '../../../flux/editor';
Expand All @@ -21,21 +19,8 @@ import { toHump } from '../../../../shared/lib/utils';
import MaterialTestParameters from './MaterialTestParameters';
import { editorStore } from '../../../store/local-storage';

function getDefaultDefinition(laserToolHead, toolDefinitions = []) {
let res;
const lastDefinitionId = editorStore.get(`${HEAD_LASER}LastDefinitionId`);
// modelMode default is vector
if (lastDefinitionId) {
res = toolDefinitions.find(d => d?.definitionId === lastDefinitionId);
} else if (laserToolHead === LEVEL_ONE_POWER_LASER_FOR_SM2) {
res = toolDefinitions.find(d => d?.definitionId === 'basswood.cutting_1.5mm');
} else if (laserToolHead === LEVEL_TWO_POWER_LASER_FOR_SM2) {
res = toolDefinitions.find(d => d?.definitionId === 'basswood.cutting_3mm');
}
if (!res) {
res = toolDefinitions[0];
}
return res;
function getDefaultDefinition(toolDefinitions = []) {
return toolDefinitions.find(d => d?.definitionId === 'material_test.default_engraving');
}

function getDefaultFormData() {
Expand Down Expand Up @@ -63,11 +48,10 @@ interface MaterialTestConfigurationsProps {

const MaterialTestConfigurations: React.FC<MaterialTestConfigurationsProps> = ({ onClose }) => {
const toolDefinitions = useSelector(state => state[HEAD_LASER]?.toolDefinitions, shallowEqual);
const laserToolHead = useSelector(state => state?.machine?.toolHead?.laserToolhead, shallowEqual);
const materials = useSelector(state => state[HEAD_LASER]?.materials, shallowEqual);
const dispatch = useDispatch();

const [currentToolDefinition, setCurrentToolDefinition] = useState(getDefaultDefinition(laserToolHead, toolDefinitions));
const [currentToolDefinition, setCurrentToolDefinition] = useState(getDefaultDefinition(toolDefinitions));

/**
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ class MaterialTestParameters extends PureComponent {
name: 'speedMin',
suffix: 'mm/min',
label: i18n._('key_ui-views-MaterialTestModal-FormComponent-min'),
component: <InputNumber controls={false} className={formStyles.input} min={0} name="speedMin" />
component: <InputNumber controls={false} className={formStyles.input} min={1} name="speedMin" />
},
{
name: 'speedMax',
Expand Down

0 comments on commit 3df7a3d

Please sign in to comment.