Images on frez type, fixed filter, add to databse

This commit is contained in:
Igor Barcik 2023-10-30 20:28:08 +01:00
parent 543b90c36f
commit 4dd027fa6b
Signed by: biggy
GPG Key ID: EA4CE0D1E2A6DC98
3 changed files with 114 additions and 69 deletions

View File

@ -85,7 +85,7 @@ export interface CustomRouteObject extends Omit<RouteObject, "children"> {
//Main configuration, static data, mostly used here //Main configuration, static data, mostly used here
export const main = { export const main = {
program_name: viteEnv.VITE_APP_NAME, program_name: viteEnv.VITE_APP_NAME,
program_version: "1.4.0", program_version: "1.7.0",
}; };
//About page configuration //About page configuration
export const about = { export const about = {

View File

@ -6,7 +6,7 @@ import { Tool, toolsDatabase } from "../../toolsDatabase";
const frezowaniaOpcje = { const frezowaniaOpcje = {
name: "rodzajFrezowania", name: "rodzajFrezowania",
label: "Rodzaj Frezowania", label: "Rodzaj Frezowania",
options: ["Czolowe", "Walcowo Czołowe", "Rowkowe"], options: ["Czołowe", "Walcowo Czołowe", "Rowków"],
images: ["/czolowe_sandvik.webp", "/walcowo-czolowe_sandvik.webp", "/rowkowe_sandvik.webp"], images: ["/czolowe_sandvik.webp", "/walcowo-czolowe_sandvik.webp", "/rowkowe_sandvik.webp"],
}; };
const dropdowns = [ const dropdowns = [
@ -18,7 +18,7 @@ const dropdowns = [
{ {
name: "material", name: "material",
label: "Materiał", label: "Materiał",
options: ["Stal węglowa", "Stal nierdzewna", "Żeliwo"], options: ["Stal niskostopowa", "Stal nierdzewna", "Żeliwo"],
}, },
{ {
name: "tolerancja", name: "tolerancja",
@ -28,7 +28,7 @@ const dropdowns = [
{ {
name: "chropowatosc", name: "chropowatosc",
label: "Chropowatość", label: "Chropowatość",
options: ["Ra 0,1", "Ra 0,2", "Ra 0,4", "Ra 0,8", "Ra 1,6", "Ra 3,2", "Ra 6,3", "Ra 12,5", "Ra 25", "Ra 50"], options: ["Ra 1,6", "Ra 3,2", "Ra 6,3", "Ra 12,5", "Ra 25", "Ra 50"],
}, },
]; ];
interface IInput { interface IInput {
@ -59,8 +59,8 @@ const HomePage = () => {
// variables // variables
glebokoscSkrawania: Math.floor(Math.random() * 50 + 1), glebokoscSkrawania: Math.floor(Math.random() * 50 + 1),
szerokoscSkrawania: Math.floor(Math.random() * 50 + 1), szerokoscSkrawania: Math.floor(Math.random() * 50 + 1),
tolerancja: parseFloat((0.1 + Math.random() * (5 - 0.1)).toFixed(2)), tolerancja: 0,
chropowatosc: parseFloat((0.1 + Math.random() * (5 - 0.1)).toFixed(2)), chropowatosc: 0,
}); });
const [result, setResult] = useState<Tool | null>(null); // Znalazione narzędzie const [result, setResult] = useState<Tool | null>(null); // Znalazione narzędzie
const [calculating, setCalculating] = useState(false); const [calculating, setCalculating] = useState(false);
@ -75,14 +75,10 @@ const HomePage = () => {
tool.rodzajFrezowania === input.rodzajFrezowania && tool.rodzajFrezowania === input.rodzajFrezowania &&
tool.rodzajObrobki === input.rodzajObrobki && tool.rodzajObrobki === input.rodzajObrobki &&
tool.material === input.material && tool.material === input.material &&
input.chropowatosc >= tool.chropowatosc[0] && input.chropowatosc === tool.chropowatosc &&
input.chropowatosc <= tool.chropowatosc[1] && input.szerokoscSkrawania === tool.szerokoscSkrawania &&
input.szerokoscSkrawania >= tool.szerokoscSkrawania[0] && input.glebokoscSkrawania === tool.glebokoscSkrawania &&
input.szerokoscSkrawania <= tool.szerokoscSkrawania[1] && input.tolerancja === tool.tolerancja
input.glebokoscSkrawania >= tool.glebokoscSkrawania[0] &&
input.glebokoscSkrawania <= tool.glebokoscSkrawania[1] &&
input.tolerancja >= tool.tolerancja[0] &&
input.tolerancja <= tool.tolerancja[1]
); );
}; };
const checkInputInDatabse = useCallback((input: IInput): void => { const checkInputInDatabse = useCallback((input: IInput): void => {
@ -172,29 +168,6 @@ const HomePage = () => {
}} }}
suffix="mm" suffix="mm"
/> />
{/* <label className="flex text-gray-700 text-sm font-bold mb-0">Klasa dokładności wykonania</label>
<Slider
range={{ min: 0.1, max: 5 }}
value={input.tolerancja}
onChange={(e) => {
setInput((prev) => ({ ...prev, tolerancja: Number(e!.target.value) }));
}}
suffix="mm"
step={0.01}
/> */}
{/* <label className="flex text-gray-700 text-sm font-bold mb-0">Chropowatość</label>
<Slider
range={{ min: 0.1, max: 5 }}
value={input.chropowatosc}
onChange={(e) => {
setInput((prev) => ({ ...prev, chropowatosc: Number(e!.target.value) }));
}}
suffix="mm"
step={0.01}
/> */}
<button <button
className="btn btn-secondary w-full mt-4" className="btn btn-secondary w-full mt-4"
type="submit" type="submit"
@ -210,12 +183,9 @@ const HomePage = () => {
{result ? ( {result ? (
<> <>
<h2 className="text-2xl mb-4">{result.name}</h2> <h2 className="text-2xl mb-4">{result.name}</h2>
<p className="text-lg"> {Object.entries(result!).map((arrayKeyValue) => {
Płyta: <span className="text font-mono font-semibold">{result.plate}</span> return <p>{`${arrayKeyValue[0]}: ${arrayKeyValue[1]}`}</p>;
</p> })}
<p className="text-lg">
Ilość zębów: <span className="text font-mono font-semibold">{result.ilosc_zebow}</span>
</p>
</> </>
) : notFound ? ( ) : notFound ? (
<h2 className="text-xl">Nie znaleziono narzędzia dla podanych parametrów</h2> <h2 className="text-xl">Nie znaleziono narzędzia dla podanych parametrów</h2>

View File

@ -1,6 +1,3 @@
export type RodzajFrezowania = "Walcowo Czołowe" | "Walcowo Boczne";
export type RodzajObrobki = "Zgrubna" | "Wykańczająca";
export type Material = "Stal nierdzewna" | "Stal" | "Żeliwo" | "Miedź" | "Aluminium";
export interface Tool { export interface Tool {
name: string; name: string;
plate: string; plate: string;
@ -8,10 +5,16 @@ export interface Tool {
rodzajFrezowania: number; rodzajFrezowania: number;
rodzajObrobki: number; rodzajObrobki: number;
material: number; material: number;
chropowatosc: [number, number]; chropowatosc: number;
tolerancja: [number, number]; tolerancja: number;
szerokoscSkrawania: [number, number]; szerokoscSkrawania: number;
glebokoscSkrawania: [number, number]; glebokoscSkrawania: number;
predkoscObrotowaWrzeciona: number;
predkoscSkrawania: number;
predkoscPosuwu: number;
posuwNaOstrze: number;
posuwNaObrot: number;
wydajnoscObjetosciowa: number;
} }
interface Database { interface Database {
name: string; name: string;
@ -24,40 +27,112 @@ export const toolsDatabase: Database = {
version: "1.0", version: "1.0",
tools: [ tools: [
{ {
name: "Coromill 390",
plate: "M-MM 1040",
ilosc_zebow: 3, ilosc_zebow: 3,
rodzajFrezowania: 1, rodzajFrezowania: 1,
rodzajObrobki: 0, rodzajObrobki: 0,
material: 1, material: 1,
chropowatosc: [0.5, 2], chropowatosc: 0,
tolerancja: [0.5, 2], tolerancja: 0,
szerokoscSkrawania: [15, 25], glebokoscSkrawania: 5,
glebokoscSkrawania: [3, 8], szerokoscSkrawania: 20,
name: "Coromill 390 R390-20T10-11M",
plate: "R390-11 T3 08M-MM 1040",
predkoscObrotowaWrzeciona: 2680,
predkoscSkrawania: 168,
predkoscPosuwu: 1090,
posuwNaOstrze: 0.136,
posuwNaObrot: 0.407,
wydajnoscObjetosciowa: 64.8,
}, },
{ {
name: "CoroMill 245",
plate: "R245-12T3E1 6190",
ilosc_zebow: 3, ilosc_zebow: 3,
rodzajFrezowania: 0, rodzajFrezowania: 0,
rodzajObrobki: 1, rodzajObrobki: 1,
material: 2, material: 2,
chropowatosc: [0.1, 5], chropowatosc: 0,
tolerancja: [0.1, 5], tolerancja: 0,
szerokoscSkrawania: [32, 40], glebokoscSkrawania: 5,
glebokoscSkrawania: [2, 6], szerokoscSkrawania: 44.5,
name: "CoroMill 245 R245-032A32-12M",
plate: "R245-12 T3 E1 6190",
predkoscObrotowaWrzeciona: 13800,
predkoscSkrawania: 1520,
predkoscPosuwu: 4420,
posuwNaOstrze: 0.107,
posuwNaObrot: 0.32,
wydajnoscObjetosciowa: 55.3,
}, },
{ {
name: "CoroMill 331", ilosc_zebow: 3,
plate: "R331.1A-04 35 15H-WL1040", rodzajFrezowania: 0,
ilosc_zebow: 4, rodzajObrobki: 0,
material: 2,
chropowatosc: 0,
tolerancja: 0,
glebokoscSkrawania: 5,
szerokoscSkrawania: 44.5,
name: "CoroMill 245 R245-032A32-12M",
plate: "R245-12 T3 E1 6190",
predkoscObrotowaWrzeciona: 11200,
predkoscSkrawania: 1510,
predkoscPosuwu: 9220,
posuwNaOstrze: 0.275,
posuwNaObrot: 0.823,
wydajnoscObjetosciowa: 461,
},
{
ilosc_zebow: 3,
rodzajFrezowania: 2, rodzajFrezowania: 2,
rodzajObrobki: 1, rodzajObrobki: 1,
material: 1, material: 1,
chropowatosc: [0.1, 5], chropowatosc: 0,
tolerancja: [0.1, 5], tolerancja: 0,
szerokoscSkrawania: [40, 40], glebokoscSkrawania: 5,
glebokoscSkrawania: [2, 10], szerokoscSkrawania: 40,
name: "CoroMill 331 R331.35C-040A16CM060",
plate: "R331.1A-04 35 15H-WL1040",
predkoscObrotowaWrzeciona: 1790,
predkoscSkrawania: 225,
predkoscPosuwu: 542,
posuwNaOstrze: 0.151,
posuwNaObrot: 0.303,
wydajnoscObjetosciowa: 7.67,
},
{
ilosc_zebow: 3,
rodzajFrezowania: 1,
rodzajObrobki: 1,
material: 0,
chropowatosc: 4,
tolerancja: 0,
glebokoscSkrawania: 10,
szerokoscSkrawania: 25,
name: "CoroMill 790 R790-025A25S2-16L",
plate: "R790-160408PH-PL 1130",
predkoscObrotowaWrzeciona: 4090,
predkoscSkrawania: 321,
predkoscPosuwu: 3270,
posuwNaOstrze: 0.4,
posuwNaObrot: 0.799,
wydajnoscObjetosciowa: 3.27,
},
{
ilosc_zebow: 3,
rodzajFrezowania: 2,
rodzajObrobki: 0,
material: 0,
chropowatosc: 0,
tolerancja: 0,
glebokoscSkrawania: 10,
szerokoscSkrawania: 50,
name: "CoroMill 331 R331.35C-051M25EMA06",
plate: "L331.1A-05 45 15H-WL1130",
predkoscObrotowaWrzeciona: 1950,
predkoscSkrawania: 311,
predkoscPosuwu: 736,
posuwNaOstrze: 0.126,
posuwNaObrot: 0.377,
wydajnoscObjetosciowa: 47.6,
}, },
], ],
}; };