apply formatting

This commit is contained in:
bakedpotatolord 2025-06-10 21:14:47 -06:00
commit d44ca56d39
17 changed files with 165 additions and 185 deletions

View file

@ -1,7 +1,5 @@
# Parts List # Parts List
| **Quantity** | **Name** | **Description** | **Product Link** | | **Quantity** | **Name** | **Description** | **Product Link** |
| ------------ | ------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ------------ | ------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 1 | upper xy belt | | [https://www.amazon.com/Printing-FYSETC-Fiberglass-Rostock-Printers/dp/B07CDDPCM8](https://www.amazon.com/Printing-FYSETC-Fiberglass-Rostock-Printers/dp/B07CDDPCM8) | | 1 | upper xy belt | | [https://www.amazon.com/Printing-FYSETC-Fiberglass-Rostock-Printers/dp/B07CDDPCM8](https://www.amazon.com/Printing-FYSETC-Fiberglass-Rostock-Printers/dp/B07CDDPCM8) |
@ -9,7 +7,7 @@
| 1 | z belt | 1140-1160 mm | [https://www.amazon.com/gp/product/B018HN8576](https://www.amazon.com/gp/product/B018HN8576) | | 1 | z belt | 1140-1160 mm | [https://www.amazon.com/gp/product/B018HN8576](https://www.amazon.com/gp/product/B018HN8576) |
| 1 | 24v power supply | | [https://www.amazon.com/EAGWELL-Universal-Regulated-Switching-Computer/dp/B01IOK5FM0](https://www.amazon.com/EAGWELL-Universal-Regulated-Switching-Computer/dp/B01IOK5FM0) | | 1 | 24v power supply | | [https://www.amazon.com/EAGWELL-Universal-Regulated-Switching-Computer/dp/B01IOK5FM0](https://www.amazon.com/EAGWELL-Universal-Regulated-Switching-Computer/dp/B01IOK5FM0) |
| 1 | SKR V1.3 | | [https://www.amazon.com/gp/product/B07Z3FZGJ1](https://www.amazon.com/gp/product/B07Z3FZGJ1) | | 1 | SKR V1.3 | | [https://www.amazon.com/gp/product/B07Z3FZGJ1](https://www.amazon.com/gp/product/B07Z3FZGJ1) |
| 2 | cross bar | | [https://hobbyking.com/en\_us/aluminum-square-tube-diy-multi-rotor-12-8x12-8x600mm-5inch-black.html](https://hobbyking.com/en\_us/aluminum-square-tube-diy-multi-rotor-12-8x12-8x600mm-5inch-black.html) | | 2 | cross bar | | [https://hobbyking.com/en_us/aluminum-square-tube-diy-multi-rotor-12-8x12-8x600mm-5inch-black.html](https://hobbyking.com/en_us/aluminum-square-tube-diy-multi-rotor-12-8x12-8x600mm-5inch-black.html) |
| 1 | hot end mount | 3d print solid | | | 1 | hot end mount | 3d print solid | |
| 1 | bltouch mount | 3d print solid | | | 1 | bltouch mount | 3d print solid | |
| 3 | level bracket | 3d print solid | | | 3 | level bracket | 3d print solid | |

View file

@ -15,6 +15,4 @@ The [control software](https://github.com/GridSpace/grid-bot) is open source on
A Beta for a [new design](https://cad.onshape.com/documents/d0514606a660a802eb16304a/w/43a797f28bcc004e3e7e7e17/e/61abf70c46004ffbc0134231) is also available. Check [forum.grid.space](https://forum.grid.space) for progress on this and other builds. A Beta for a [new design](https://cad.onshape.com/documents/d0514606a660a802eb16304a/w/43a797f28bcc004e3e7e7e17/e/61abf70c46004ffbc0134231) is also available. Check [forum.grid.space](https://forum.grid.space) for progress on this and other builds.
![](/img/GridBot-Two-Right.png) ![](/img/GridBot-Two-Right.png)

View file

@ -14,7 +14,7 @@ You can access it from the top-right menu:
## Workspace Dimensions ## Workspace Dimensions
These values define your machine’s cutting envelope. Use your *actual usable* dimensions here, not the marketing ones. These values define your machine’s cutting envelope. Use your _actual usable_ dimensions here, not the marketing ones.
- **X (width)** — Maximum horizontal travel (left to right) - **X (width)** — Maximum horizontal travel (left to right)
- **Y (depth)** — Maximum front-to-back travel - **Y (depth)** — Maximum front-to-back travel

View file

@ -2,7 +2,8 @@
description: Keyboard Shortcuts and Mouse Controls description: Keyboard Shortcuts and Mouse Controls
label: ops label: ops
--- ---
import { ImageCarousel } from '@site/docs/src/components/carousel.js'
import { ImageCarousel } from "@site/docs/src/components/carousel.js";
# Operations # Operations

View file

@ -1,7 +1,8 @@
--- ---
description: Process options for the CAM mode description: Process options for the CAM mode
--- ---
import { ImageCarousel } from '@site/docs/src/components/carousel.js'
import { ImageCarousel } from "@site/docs/src/components/carousel.js";
# Process Options # Process Options

View file

@ -14,6 +14,7 @@ Additionally, tools can be imported and exported as `.km` files. The file format
![](/img/CAM/toolMenu.png) ![](/img/CAM/toolMenu.png)
Kiri:Moto currently supports four types of tools: Kiri:Moto currently supports four types of tools:
- End Mills - End Mills
- Ball Mills - Ball Mills
- Taper Mills - Taper Mills

View file

@ -41,11 +41,11 @@ JSON dictionaries can be used for reference from the [CLI package](https://githu
Kiri:Moto is designed to be embedded in a page using an IFrame. The look and feel and other controls are available for the loaded page using a messaging API. An example page is [here](https://grid.space/kiri/frame.html). Kiri:Moto is designed to be embedded in a page using an IFrame. The look and feel and other controls are available for the loaded page using a messaging API. An example page is [here](https://grid.space/kiri/frame.html).
| function | description | | function | description |
| --------------------------- | ------------------------------------------------------------------------------------------------------- | | --------------------------- | ----------------------------------------------------------------------------------------------------- |
| setFrame(_id\_obj_) | id or object of IFrame with Kiri:Moto loaded | | setFrame(_id_obj_) | id or object of IFrame with Kiri:Moto loaded |
| load(_url_) | load an [STL](https://en.wikipedia.org/wiki/STL\_\(file\_format\)) referred to by _url_ | | load(_url_) | load an [STL](<https://en.wikipedia.org/wiki/STL_(file_format)>) referred to by _url_ |
| clear() | remove all objects from workspace | | clear() | remove all objects from workspace |
| parse(_data_) | parse the text or binary contents of an [STL](https://en.wikipedia.org/wiki/STL\_\(file\_format\)) file | | parse(_data_) | parse the text or binary contents of an [STL](<https://en.wikipedia.org/wiki/STL_(file_format)>) file |
| setMode(_mode_) | where _mode_ comes from:`[ "CAM", "FDM", "LASER", "SLA" ]` | | setMode(_mode_) | where _mode_ comes from:`[ "CAM", "FDM", "LASER", "SLA" ]` |
| setDevice(_options_) | change default Device options | | setDevice(_options_) | change default Device options |
| setProcess(options) | change default Process options | | setProcess(options) | change default Process options |

View file

@ -4,25 +4,25 @@ label: Engine APIs
--- ---
# Engine APIs # Engine APIs
The `Engine` class serves as an abstraction layer for interacting with the `kiri` 3D slicing engine. It handles loading and parsing STL files, manipulating widgets (3D models), configuring slicing parameters, and executing the toolpath generation pipeline: slice, prepare, and export. The `Engine` class serves as an abstraction layer for interacting with the `kiri` 3D slicing engine. It handles loading and parsing STL files, manipulating widgets (3D models), configuring slicing parameters, and executing the toolpath generation pipeline: slice, prepare, and export.
This API is designed with method chaining in mind, and provides hooks for custom event listeners. This API is designed with method chaining in mind, and provides hooks for custom event listeners.
you can view some example of how to use the engine [here](https://grid.space/kiri/engine.html). you can view some example of how to use the engine [here](https://grid.space/kiri/engine.html).
--- ---
## Methods ## Methods
| Method | Description | Returns | | Method | Description | Returns |
|--------|-------------|---------| | --------------------------- | -------------------------------------------------------------------------------------------------------------- | ----------------- | ------- | ------- | -------- |
| `load(url)` | Loads an [STL](https://en.wikipedia.org/wiki/STL\_\(file\_format\)) file from a given URL and centers the model. | `Promise<Engine>` | | `load(url)` | Loads an [STL](<https://en.wikipedia.org/wiki/STL_(file_format)>) file from a given URL and centers the model. | `Promise<Engine>` |
| `clear()` | Clears all objects from workspace. | `void` | | `clear()` | Clears all objects from workspace. | `void` |
| `parse(data)` | Parses raw [STL](https://en.wikipedia.org/wiki/STL\_\(file\_format\)) data and loads it as a centered widget. | `Promise<Engine>` | | `parse(data)` | Parses raw [STL](<https://en.wikipedia.org/wiki/STL_(file_format)>) data and loads it as a centered widget. | `Promise<Engine>` |
| `setListener(listener)` | Sets an event listener function to receive engine progress updates | `Engine` | | `setListener(listener)` | Sets an event listener function to receive engine progress updates | `Engine` |
| `setRender(bool)` | Enables or disables rendering. | `Engine` | | `setRender(bool)` | Enables or disables rendering. | `Engine` |
| `setMode(mode)` | Sets the slicing mode where mode is "CAM"|"FDM"|"LASER"|"SLA" . | `Engine` | | `setMode(mode)` | Sets the slicing mode where mode is "CAM" | "FDM" | "LASER" | "SLA" . | `Engine` |
| `setDevice(device)` | Merges a custom device profile into the current settings. | `Engine` | | `setDevice(device)` | Merges a custom device profile into the current settings. | `Engine` |
| `setProcess(process)` | Merges custom slicing process parameters. | `Engine` | | `setProcess(process)` | Merges custom slicing process parameters. | `Engine` |
| `setController(controller)` | Sets the slicing controller settings and starts/stops the worker pool accordingly. | `Engine` | | `setController(controller)` | Sets the slicing controller settings and starts/stops the worker pool accordingly. | `Engine` |

View file

@ -8,7 +8,7 @@ description: Frequently Asked Questions
Entirely. Entirely.
The source code is on [GitHub](https://github.com/GridSpace/grid-apps) if you want to install and run it yourself. It is available under the [MIT](https://en.wikipedia.org/wiki/MIT\_License) license, which is one of the most liberal in terms of allowing you to do what you want with the code without restriction. The source code is on [GitHub](https://github.com/GridSpace/grid-apps) if you want to install and run it yourself. It is available under the [MIT](https://en.wikipedia.org/wiki/MIT_License) license, which is one of the most liberal in terms of allowing you to do what you want with the code without restriction.
Multiple live [versions](https://grid.space/choose) (including current development branches) are served free of charge and free of ads on [Grid.Space](https://grid.space/kiri/). Multiple live [versions](https://grid.space/choose) (including current development branches) are served free of charge and free of ads on [Grid.Space](https://grid.space/kiri/).
@ -18,10 +18,10 @@ It has similar capabilities to other 3D printing slicers like Cura, Simplify3D,
It is very different in several important ways: It is very different in several important ways:
* There is no software to install or maintain. It's just a web page. - There is no software to install or maintain. It's just a web page.
* As a web app, it runs in a security sandbox and cannot access data on your hard drive - As a web app, it runs in a security sandbox and cannot access data on your hard drive
* It offers several modes of operation for most of the common maker tools, like CNC mills - It offers several modes of operation for most of the common maker tools, like CNC mills
* It is updated quite frequently (several times a week) with bug fixes and new features - It is updated quite frequently (several times a week) with bug fixes and new features
## What language is it written in? ## What language is it written in?
@ -29,7 +29,7 @@ It is almost entirely Javascript. There are a few minor modules compiled into WA
## What file types are supported? ## What file types are supported?
[STL](https://en.wikipedia.org/wiki/STL\_\(file\_format\)), [OBJ](https://en.wikipedia.org/wiki/Wavefront\_.obj\_file), and [3MF](https://github.com/3MFConsortium/spec\_core/blob/master/3MF%20Core%20Specification.md) files are supported for 3D part import. [SVG](https://en.wikipedia.org/wiki/Scalable\_Vector\_Graphics) files import and auto-convert into 3D models. [PNG](https://en.wikipedia.org/wiki/Portable\_Network\_Graphics) files are supported for 2D image to 3D model conversion. [STL](<https://en.wikipedia.org/wiki/STL_(file_format)>), [OBJ](https://en.wikipedia.org/wiki/Wavefront_.obj_file), and [3MF](https://github.com/3MFConsortium/spec_core/blob/master/3MF%20Core%20Specification.md) files are supported for 3D part import. [SVG](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics) files import and auto-convert into 3D models. [PNG](https://en.wikipedia.org/wiki/Portable_Network_Graphics) files are supported for 2D image to 3D model conversion.
## What if my printer isn't supported? ## What if my printer isn't supported?
@ -47,4 +47,3 @@ Kiri comes from Kiri-e, which is the Japanese art of paper-cutting. Moto is shor
- `kmz` stands for **Kiri Moto Zip**, and contains an entire zipped workspace - `kmz` stands for **Kiri Moto Zip**, and contains an entire zipped workspace
- `km` stands for **Kiri Moto**, and contains [CAM tool](/CAM/tools) paramers. - `km` stands for **Kiri Moto**, and contains [CAM tool](/CAM/tools) paramers.

View file

@ -19,7 +19,6 @@ description: Variable Substitutions and Expressions in GCode Macros
- \{print-time\} = alias for \{time\} ... deprecated after 2.8 - \{print-time\} = alias for \{time\} ... deprecated after 2.8
- \{print_time\} = alias for \{time\} ... 2.9 and beyond - \{print_time\} = alias for \{time\} ... 2.9 and beyond
## FDM (3D Printing) Mode Only ## FDM (3D Printing) Mode Only
### FDM Macros ### FDM Macros
@ -44,10 +43,12 @@ description: Variable Substitutions and Expressions in GCode Macros
- \{e\} = amount of filament extruded - \{e\} = amount of filament extruded
### "Feature" only Macros (v3.4+) ### "Feature" only Macros (v3.4+)
- \{feature\} = feature region of the print (brims, infill, etc) - \{feature\} = feature region of the print (brims, infill, etc)
- \{minx|miny|maxx|maxy\} = position in mm of extents of the print area - \{minx|miny|maxx|maxy\} = position in mm of extents of the print area
### Logical Code Flow (IF / ELIF / ELSE / END) ### Logical Code Flow (IF / ELIF / ELSE / END)
``` ```
;; IF { layer >= 10 && layer <= 20 } ;; IF { layer >= 10 && layer <= 20 }
;; ..... inside 10-20 layer={layer} ;; ..... inside 10-20 layer={layer}
@ -59,6 +60,7 @@ description: Variable Substitutions and Expressions in GCode Macros
``` ```
### PREAMBLE control (v3.4+) ### PREAMBLE control (v3.4+)
Allows for intro comment and config list to be re-positioned after the header or disabled. This was introduced to allow GCode output to work with Ultimaker. Allows for intro comment and config list to be re-positioned after the header or disabled. This was introduced to allow GCode output to work with Ultimaker.
`;; PREAMBLE OFF` `;; PREAMBLE OFF`
@ -96,24 +98,25 @@ Set decimal precision (n = integer) (v3.8+)
`;; DECIMALS = n` `;; DECIMALS = n`
### Axis Scaling (v3.7+) ### Axis Scaling (v3.7+)
Allows for a factor to be applied to X,Y,Z coordinates. Useful for some machines like the Roland MDX-40A that uses an unusual coordinate space. Default axis scale is `1` Allows for a factor to be applied to X,Y,Z coordinates. Useful for some machines like the Roland MDX-40A that uses an unusual coordinate space. Default axis scale is `1`
_`;; SCALE { "X":100, "Y":100, "Z":100 }`_ _`;; SCALE { "X":100, "Y":100, "Z":100 }`_
## CAM & FDM Modes ## CAM & FDM Modes
### Simple Algebraic Expression Support ### Simple Algebraic Expression Support
- Text inside `{}` is evaluated algebraically with access to JS classes and methods - Text inside `{}` is evaluated algebraically with access to JS classes and methods
- `{Math.min(layer/layers, 0.5) + 1}` - `{Math.min(layer/layers, 0.5) + 1}`
- `{token+n} {token-n}` - `{token+n} {token-n}`
### Axis Remapping (v3.5+) ### Axis Remapping (v3.5+)
Allows for over-riding the default axis names. Useful for swapping axes and changing output for specific firmware targets. The format of the map is a JSON object._
Allows for over-riding the default axis names. Useful for swapping axes and changing output for specific firmware targets. The format of the map is a JSON object.\_
`;; AXISMAP {"X":"Y", "Y":"Z", "E":"E1"}` `;; AXISMAP {"X":"Y", "Y":"Z", "E":"E1"}`
## Laser Mode Only ## Laser Mode Only
### Laser Macros ### Laser Macros

View file

@ -12,11 +12,11 @@ Kiri:Moto is focused on privacy, performance, and ease-of-use.
Kiri:Moto has been in continuous development since 2013. It typically gets new development releases a few times a week and major releases every 4-8 weeks. Kiri:Moto has been in continuous development since 2013. It typically gets new development releases a few times a week and major releases every 4-8 weeks.
Please consider supporting this project with a [donation](https://paypal.me/gridspace3d?locale.x=en\_US). Please consider supporting this project with a [donation](https://paypal.me/gridspace3d?locale.x=en_US).
## Privacy ## Privacy
Kiri:Moto is served free of ads, trackers, and any collection of personal data ([PII](https://en.wikipedia.org/wiki/Personal\_data)). Don't trust that? You can also install and run it yourself from [source](https://github.com/GridSpace/grid-apps). Kiri:Moto is served free of ads, trackers, and any collection of personal data ([PII](https://en.wikipedia.org/wiki/Personal_data)). Don't trust that? You can also install and run it yourself from [source](https://github.com/GridSpace/grid-apps).
Because Kiri:Moto runs in a browser's security sandbox, it does not have access to the personal and private data on your local hard drive the way installed desktop software does. Because Kiri:Moto runs in a browser's security sandbox, it does not have access to the personal and private data on your local hard drive the way installed desktop software does.
@ -29,4 +29,3 @@ Kiri:Moto is a compact, fast-loading page free of bloat. This is achieved by min
## Ease of Use ## Ease of Use
Creating an interface that is usable for new to advanced users can be a challenge. Kiri:Moto takes a strong editorial stance on complexity. Much of the software in the maker universe is riddled with parameters and controls that are duplicative and work at cross-purposes. Creating an interface that is usable for new to advanced users can be a challenge. Kiri:Moto takes a strong editorial stance on complexity. Much of the software in the maker universe is riddled with parameters and controls that are duplicative and work at cross-purposes.

View file

@ -10,7 +10,7 @@ The left menus control workspace, work mode, and objects while.
The right menus control the behavior and settings for slicing, path routing, and path to code exports. The right menus control the behavior and settings for slicing, path routing, and path to code exports.
[OBJ](https://www.cs.cmu.edu/\~mbz/personal/graphics/obj.html), [STL](https://en.wikipedia.org/wiki/STL\_\(file\_format\)), and [3MF](https://docs.fileformat.com/3d/3mf/) files import natively. [SVG](https://en.wikipedia.org/wiki/Scalable\_Vector\_Graphics), [JPG](https://en.wikipedia.org/wiki/JPEG\_File\_Interchange\_Format), and [PNG](https://en.wikipedia.org/wiki/Portable\_Network\_Graphics) are auto-extruded into a 3D parts. [OBJ](https://www.cs.cmu.edu/~mbz/personal/graphics/obj.html), [STL](<https://en.wikipedia.org/wiki/STL_(file_format)>), and [3MF](https://docs.fileformat.com/3d/3mf/) files import natively. [SVG](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics), [JPG](https://en.wikipedia.org/wiki/JPEG_File_Interchange_Format), and [PNG](https://en.wikipedia.org/wiki/Portable_Network_Graphics) are auto-extruded into a 3D parts.
![A minimalist approach](/img/kiri-moto.png) ![A minimalist approach](/img/kiri-moto.png)
@ -27,4 +27,3 @@ Application preferences are mode-dependent. For example, CNC preferences show an
![CNC Mode Preferences](/img/preferences-cam.png) ![CNC Mode Preferences](/img/preferences-cam.png)
![FDM Mode Preferences](/img/preferences-fdm.png) ![FDM Mode Preferences](/img/preferences-fdm.png)

View file

@ -15,4 +15,3 @@ Replace all values with correct localized values and submit a [pull request](htt
If you have the time, please consider also localizing `web/kiri/lang/en-help.html` If you have the time, please consider also localizing `web/kiri/lang/en-help.html`
Test your language by appending `?ln:XX` to your local URL where `XX` is the name of your language file _without_ the `.js` extension. Test your language by appending `?ln:XX` to your local URL where `XX` is the name of your language file _without_ the `.js` extension.

View file

@ -14,8 +14,6 @@ The `send` button will spool a print directly to OctoPrint where it will sit und
![](/img/gridsend.png) ![](/img/gridsend.png)
## Local Sending ## Local Sending
OctoPrint has a web api endpoint that can be configured on `Export` when enabled. OctoPrint has a web api endpoint that can be configured on `Export` when enabled.

View file

@ -6,9 +6,9 @@ description: For Classrooms and Shared Workstations, Maintain Consistent Setups
[Kiri:Moto](https://grid.space/kiri/) stores all settings in our browser's local cache. There are times when you want to share settings between computers or setup a master config that is shared in classroom settings. In order to facilitate this, Kiri:Moto provides two hot keys and a URL short-cut for loading a default configuration at the time the application page loads. [Kiri:Moto](https://grid.space/kiri/) stores all settings in our browser's local cache. There are times when you want to share settings between computers or setup a master config that is shared in classroom settings. In order to facilitate this, Kiri:Moto provides two hot keys and a URL short-cut for loading a default configuration at the time the application page loads.
* `U` key (uppercase) to get a unique settings key - `U` key (uppercase) to get a unique settings key
* `u` key (lowercase) to restore a setting with a given key - `u` key (lowercase) to restore a setting with a given key
* append `#key` to Kiri's URL to load the app with a given key - append `#key` to Kiri's URL to load the app with a given key
Using the last method, you can create a master settings configuration then give our or link to Kiri with an url that looks like: Using the last method, you can create a master settings configuration then give our or link to Kiri with an url that looks like:

View file

@ -1,76 +1,64 @@
import React from 'react'; import React from "react";
import { Carousel } from 'react-responsive-carousel'; import { Carousel } from "react-responsive-carousel";
import 'react-responsive-carousel/lib/styles/carousel.min.css'; import "react-responsive-carousel/lib/styles/carousel.min.css";
const imageDescripts = {
const imageDescripts= { outline: [
outline:[ ["/1.png", "outline of a complex part"],
[ '/1.png', 'outline of a complex part'], ["/2.png", "outline of a non-flat part with inside holes"],
[ '/2.png', 'outline of a non-flat part with inside holes'], ["/3.png", "outside-only outline"],
[ '/3.png', 'outside-only outline'], ["/4.png", "inside-only outline"],
[ '/4.png', 'inside-only outline'],
], ],
level:[ level: [
[ '/1.png', 'level of a large part'], ["/1.png", "level of a large part"],
[ '/2.png', `level of a square part's stock`], ["/2.png", `level of a square part's stock`],
[ '/3.png', `level of a part with a non-uniform top surface`], ["/3.png", `level of a part with a non-uniform top surface`],
], ],
rough:[ rough: [
[ '/1.png', 'rough cut of two parts'], ["/1.png", "rough cut of two parts"],
[ '/2.png', 'side-view of a rough cut'], ["/2.png", "side-view of a rough cut"],
[ '/3.png', 'rough cut of a part with a complex top surface'], ["/3.png", "rough cut of a part with a complex top surface"],
[ '/4.gif', 'animate of complex rough cut'], ["/4.gif", "animate of complex rough cut"],
], ],
contour:[ contour: [
[ '/1.png', 'close-up of a precise contour'], ["/1.png", "close-up of a precise contour"],
[ '/2.png', 'contour of multiple parts at once'], ["/2.png", "contour of multiple parts at once"],
[ '/3.png', 'low precision contour'], ["/3.png", "low precision contour"],
], ],
register:[ register: [
[ '/1.png', '2-drill register'], ["/1.png", "2-drill register"],
[ '/2.png', '3-drill register'], ["/2.png", "3-drill register"],
[ '/3.png', 'jigsaw register'], ["/3.png", "jigsaw register"],
], ],
drill:[ drill: [
[ '/1.png', 'drills for a robot baseplate'], ["/1.png", "drills for a robot baseplate"],
[ '/2.png', 'drills for a pegboard'], ["/2.png", "drills for a pegboard"],
[ '/3.png', 'selecting only matching-size holes'], ["/3.png", "selecting only matching-size holes"],
], ],
trace:[ trace: [
[ '/1.png', 'toolpath tracing a design into a part'], ["/1.png", "toolpath tracing a design into a part"],
[ '/2.png', 'selecting loops to trace'], ["/2.png", "selecting loops to trace"],
[ '/3.png', 'tracing edges for deburring'], ["/3.png", "tracing edges for deburring"],
[ '/4.png', 'trace to clear a pocket'], ["/4.png", "trace to clear a pocket"],
[ '/5.png', 'arbitrary offset outline'], ["/5.png", "arbitrary offset outline"],
], ],
pocket:[ pocket: [
[ '/1.png', 'selecting areas to pocket'], ["/1.png", "selecting areas to pocket"],
[ '/2.png', 'toolpath for pocket'], ["/2.png", "toolpath for pocket"],
[ '/3.gif', 'pocket animation'], ["/3.gif", "pocket animation"],
[ '/4.png', 'toolpath for v-bit carve'], ["/4.png", "toolpath for v-bit carve"],
[ '/5.png', 'many-pocketed part'], ["/5.png", "many-pocketed part"],
], ],
gcode:[ gcode: [["/1.png", "the gcode editor popup"]],
[ '/1.png', 'the gcode editor popup'], laserOn: [],
laserOff: [],
index: [],
lathe: [],
tabs: [
["/1.png", "tabs added to part"],
["/2.png", "sliced part with tabs"],
], ],
laserOn:[ };
],
laserOff:[
],
index:[
],
lathe:[
],
tabs:[
[ '/1.png', 'tabs added to part'],
[ '/2.png', 'sliced part with tabs'],
]
}
/** /**
* A carousel of images. * A carousel of images.
@ -78,17 +66,15 @@ const imageDescripts= {
* @param {keyof typeof imageDescripts} images - The key to an array of images and descriptions. * @param {keyof typeof imageDescripts} images - The key to an array of images and descriptions.
* @returns {ReactElement} - A carousel of the given images. * @returns {ReactElement} - A carousel of the given images.
*/ */
export function ImageCarousel({base,images}) { export function ImageCarousel({ base, images }) {
return ( return (
<Carousel showThumbs={false} > <Carousel showThumbs={false}>
{imageDescripts[images].map(([image,caption], index) => ( {imageDescripts[images].map(([image, caption], index) => (
<div> <div>
<img src={base+image} alt="" /> <img src={base + image} alt="" />
<p className="caption">{caption}</p> <p className="caption">{caption}</p>
</div> </div>
))} ))}
</Carousel> </Carousel>
); );
} }

View file

@ -1,9 +1,7 @@
.navbar {
height: 5rem;
.navbar{
height:5rem
} }
.navbar .navbar__items{ .navbar .navbar__items {
height:4.5rem height: 4.5rem;
} }