apply formatting
This commit is contained in:
parent
b7a9350456
commit
d44ca56d39
17 changed files with 165 additions and 185 deletions
|
|
@ -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 | |
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||

|

|
||||||
|
|
|
||||||
|
|
@ -14,11 +14,11 @@ 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
|
||||||
- **Z (height)** — Maximum vertical travel (top to bottom)
|
- **Z (height)** — Maximum vertical travel (top to bottom)
|
||||||
|
|
||||||
The units of these values are based on the units set in your global preferences (defaults to mm).
|
The units of these values are based on the units set in your global preferences (defaults to mm).
|
||||||
|
|
||||||
|
|
@ -34,9 +34,9 @@ The units of these values are based on the units set in your global preferences
|
||||||
|
|
||||||
Customize how your G-code is formatted for your controller or post-processor:
|
Customize how your G-code is formatted for your controller or post-processor:
|
||||||
|
|
||||||
- **Strip Comments** — Removes all G-code comments for cleaner, smaller files
|
- **Strip Comments** — Removes all G-code comments for cleaner, smaller files
|
||||||
- **Token Spacer** — Inserts a space between G-code tokens (e.g., `G1 X1 Y1` vs `G1X1Y1`)
|
- **Token Spacer** — Inserts a space between G-code tokens (e.g., `G1 X1 Y1` vs `G1X1Y1`)
|
||||||
- **Enable Laser** — Enables [Laser](ops#Laser-Mode-Only) operations (typically uses `M3/M5`; adjusts movement strategy)
|
- **Enable Laser** — Enables [Laser](ops#Laser-Mode-Only) operations (typically uses `M3/M5`; adjusts movement strategy)
|
||||||
- **File Extension** — Optional override for exported file type (e.g., `.nc`, `.ngc`, `.cnc`, `.cam`, `.gcode`, `.txt`)
|
- **File Extension** — Optional override for exported file type (e.g., `.nc`, `.ngc`, `.cnc`, `.cam`, `.gcode`, `.txt`)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -45,10 +45,10 @@ Customize how your G-code is formatted for your controller or post-processor:
|
||||||
|
|
||||||
Macros insert custom G-code at key stages of toolpath generation. Each tab corresponds to a different context. In these boxes, you have access to [G-code macros](../gcode-macros). Not all macros are available in all contexts, so be careful!
|
Macros insert custom G-code at key stages of toolpath generation. Each tab corresponds to a different context. In these boxes, you have access to [G-code macros](../gcode-macros). Not all macros are available in all contexts, so be careful!
|
||||||
|
|
||||||
- **Header** — Runs once at the beginning of the job (e.g., mode override, move to safe Z)
|
- **Header** — Runs once at the beginning of the job (e.g., mode override, move to safe Z)
|
||||||
- **Footer** — Runs at the end of the job (e.g., spindle stop, move to safe Z)
|
- **Footer** — Runs at the end of the job (e.g., spindle stop, move to safe Z)
|
||||||
- **Tool** — Called when changing tools. Automatic tool changes and tool measurement can be put here.
|
- **Tool** — Called when changing tools. Automatic tool changes and tool measurement can be put here.
|
||||||
- **Dwell** — Code for pausing movement/spindle at specified positions
|
- **Dwell** — Code for pausing movement/spindle at specified positions
|
||||||
- **Spindle** — Code to set spindle RPM
|
- **Spindle** — Code to set spindle RPM
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
@ -43,8 +44,8 @@ Operations that apply to all objects in the workspace.
|
||||||
|
|
||||||
The Outline op generates a toolpath surrounding the edges of a part. It is highly configurable and can select both internal or external edges specifically. The Outline operation is great for:
|
The Outline op generates a toolpath surrounding the edges of a part. It is highly configurable and can select both internal or external edges specifically. The Outline operation is great for:
|
||||||
|
|
||||||
- Cutting out many objects at once
|
- Cutting out many objects at once
|
||||||
- Generating a rough/finishing pass on an object
|
- Generating a rough/finishing pass on an object
|
||||||
- Easily avoiding specific features like pockets or holes
|
- Easily avoiding specific features like pockets or holes
|
||||||
|
|
||||||
### Level
|
### Level
|
||||||
|
|
@ -53,8 +54,8 @@ The Outline op generates a toolpath surrounding the edges of a part. It is highl
|
||||||
|
|
||||||
The Level op creates a flat-surface clearing toolpath across a selected area. It is designed to remove material to a consistent depth, making it useful for preparing stock, flattening uneven surfaces, or cleaning up residual material. The Level operation is great for:
|
The Level op creates a flat-surface clearing toolpath across a selected area. It is designed to remove material to a consistent depth, making it useful for preparing stock, flattening uneven surfaces, or cleaning up residual material. The Level operation is great for:
|
||||||
|
|
||||||
- Surfacing raw stock before detail cuts
|
- Surfacing raw stock before detail cuts
|
||||||
- Creating uniform faces on complex objects
|
- Creating uniform faces on complex objects
|
||||||
- Clearing large areas with consistent depth quickly
|
- Clearing large areas with consistent depth quickly
|
||||||
|
|
||||||
### Rough
|
### Rough
|
||||||
|
|
@ -63,10 +64,10 @@ The Level op creates a flat-surface clearing toolpath across a selected area. It
|
||||||
|
|
||||||
The Rough op removes large volumes of material quickly using a stepped-down toolpath. It is typically the first pass in a multi-step workflow, clearing space for finishing tools without concern for fine detail. The Rough operation is great for:
|
The Rough op removes large volumes of material quickly using a stepped-down toolpath. It is typically the first pass in a multi-step workflow, clearing space for finishing tools without concern for fine detail. The Rough operation is great for:
|
||||||
|
|
||||||
- Rapid bulk material removal
|
- Rapid bulk material removal
|
||||||
- Preparing many parts for finishing simultaneously
|
- Preparing many parts for finishing simultaneously
|
||||||
- Clearing voids or flat faces for many objects at once
|
- Clearing voids or flat faces for many objects at once
|
||||||
- Preparing a part for finish machining
|
- Preparing a part for finish machining
|
||||||
- Preserving tool life by reducing cutting load in later passes
|
- Preserving tool life by reducing cutting load in later passes
|
||||||
|
|
||||||
### Contour
|
### Contour
|
||||||
|
|
@ -76,8 +77,8 @@ The Rough op removes large volumes of material quickly using a stepped-down tool
|
||||||
The Contour op generates detailed toolpaths for complex organic surface geometries.
|
The Contour op generates detailed toolpaths for complex organic surface geometries.
|
||||||
It can trace along the X or Y axis and has configurable precision. It is useful for:
|
It can trace along the X or Y axis and has configurable precision. It is useful for:
|
||||||
|
|
||||||
- Carving 3D shapes with organic or curved profiles
|
- Carving 3D shapes with organic or curved profiles
|
||||||
- Finishing complex wall geometries
|
- Finishing complex wall geometries
|
||||||
- Cleaning up a part after [roughing](#rough)
|
- Cleaning up a part after [roughing](#rough)
|
||||||
|
|
||||||
### Register
|
### Register
|
||||||
|
|
@ -101,8 +102,8 @@ The Drill op creates pecking toolpaths for a drill tool to follow.
|
||||||
It can also drill holes of other diameters and even mark holes instead of drilling.
|
It can also drill holes of other diameters and even mark holes instead of drilling.
|
||||||
It is useful for:
|
It is useful for:
|
||||||
|
|
||||||
- Generating a toolpath for a drill tool
|
- Generating a toolpath for a drill tool
|
||||||
- Selecting specific holes to remove material from
|
- Selecting specific holes to remove material from
|
||||||
- Marking holes to be drilled manually
|
- Marking holes to be drilled manually
|
||||||
|
|
||||||
### Trace
|
### Trace
|
||||||
|
|
@ -115,9 +116,9 @@ When the type parameter is set to "clear," it can even act like a [Pocket](#pock
|
||||||
clearing the area above the shape created by the selected lines or loop.
|
clearing the area above the shape created by the selected lines or loop.
|
||||||
While the Trace op can do a lot, some specific use cases include:
|
While the Trace op can do a lot, some specific use cases include:
|
||||||
|
|
||||||
- Engraving lettering or other text
|
- Engraving lettering or other text
|
||||||
- Drilling out a hole helically
|
- Drilling out a hole helically
|
||||||
- Outlining a part with a nonstandard offset
|
- Outlining a part with a nonstandard offset
|
||||||
- Outlining only one part on the workspace
|
- Outlining only one part on the workspace
|
||||||
|
|
||||||
### Pocket
|
### Pocket
|
||||||
|
|
@ -128,8 +129,8 @@ The Pocket operation takes a selection of polygon faces and generates a pocket t
|
||||||
The operation has options to expand and smooth the pocket selection, and the contour option even allows
|
The operation has options to expand and smooth the pocket selection, and the contour option even allows
|
||||||
for an approximation of a v-bit carve. Some use cases specific to the Pocket op include:
|
for an approximation of a v-bit carve. Some use cases specific to the Pocket op include:
|
||||||
|
|
||||||
- Creating one pocket in a part with multiple
|
- Creating one pocket in a part with multiple
|
||||||
- Attempting a v-carve
|
- Attempting a v-carve
|
||||||
- Clearing a specific area of a part
|
- Clearing a specific area of a part
|
||||||
|
|
||||||
### Gcode
|
### Gcode
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,9 @@ Additionally, tools can be imported and exported as `.km` files. The file format
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Kiri:Moto currently supports four types of tools:
|
Kiri:Moto currently supports four types of tools:
|
||||||
- End Mills
|
|
||||||
- Ball Mills
|
- End Mills
|
||||||
- Taper Mills
|
- Ball Mills
|
||||||
|
- Taper Mills
|
||||||
- Drills
|
- Drills
|
||||||
|
|
|
||||||
|
|
@ -40,24 +40,24 @@ 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 |
|
||||||
| setController(options) | change default Core options |
|
| setController(options) | change default Core options |
|
||||||
| slice() | async slice of loaded object |
|
| slice() | async slice of loaded object |
|
||||||
| prepare() | async path routing of slice data |
|
| prepare() | async path routing of slice data |
|
||||||
| export() | async gcode generation from routed paths |
|
| export() | async gcode generation from routed paths |
|
||||||
| onmessage(_fn_) | function will receive all IFrame messages |
|
| onmessage(_fn_) | function will receive all IFrame messages |
|
||||||
| onevent(_event, data_) | function will receive named messages |
|
| onevent(_event, data_) | function will receive named messages |
|
||||||
| emit(_event, data_) | send named event with data payload |
|
| emit(_event, data_) | send named event with data payload |
|
||||||
| alert(_msg, time_) | show alert message with optional time in seconds |
|
| alert(_msg, time_) | show alert message with optional time in seconds |
|
||||||
| process(_percent, message_) | set progress bar (0.0 to 1.0) with optional message |
|
| process(_percent, message_) | set progress bar (0.0 to 1.0) with optional message |
|
||||||
|
|
||||||
## Events
|
## Events
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,38 +4,38 @@ 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` |
|
||||||
| `setTools(tools)` | Sets the tool definitions (e.g. cutters, extruders). | `Engine` |
|
| `setTools(tools)` | Sets the tool definitions (e.g. cutters, extruders). | `Engine` |
|
||||||
| `setStock(stock)` | Sets the stock material dimensions. | `Engine` |
|
| `setStock(stock)` | Sets the stock material dimensions. | `Engine` |
|
||||||
| `setOrigin(x, y, z)` | Defines the origin point for the part. | `Engine` |
|
| `setOrigin(x, y, z)` | Defines the origin point for the part. | `Engine` |
|
||||||
| `moveTo(x, y, z)` | Moves the widget to the specified absolute coordinates. | `Engine` |
|
| `moveTo(x, y, z)` | Moves the widget to the specified absolute coordinates. | `Engine` |
|
||||||
| `move(x, y, z)` | Moves the widget by the specified delta values. | `Engine` |
|
| `move(x, y, z)` | Moves the widget by the specified delta values. | `Engine` |
|
||||||
| `scale(x, y, z)` | Scales the widget along each axis. | `Engine` |
|
| `scale(x, y, z)` | Scales the widget along each axis. | `Engine` |
|
||||||
| `rotate(x, y, z)` | Rotates the widget in degrees along each axis. | `Engine` |
|
| `rotate(x, y, z)` | Rotates the widget in degrees along each axis. | `Engine` |
|
||||||
| `slice()` | Starts the slicing process and returns once complete. | `Promise<Engine>` |
|
| `slice()` | Starts the slicing process and returns once complete. | `Promise<Engine>` |
|
||||||
| `prepare()` | Prepares the sliced toolpaths for export (e.g. G-code generation). | `Promise<Engine>` |
|
| `prepare()` | Prepares the sliced toolpaths for export (e.g. G-code generation). | `Promise<Engine>` |
|
||||||
| `export()` | Exports the toolpaths as a string (e.g. G-code). | `Promise<string>` |
|
| `export()` | Exports the toolpaths as a string (e.g. G-code). | `Promise<string>` |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -51,4 +51,4 @@ If a listener is set via `setListener(fn)`, it will be called with events such a
|
||||||
- `{ export: { segment } }` — during G-code segment export
|
- `{ export: { segment } }` — during G-code segment export
|
||||||
- `{ export: { done } }` — when export is finished
|
- `{ export: { done } }` — when export is finished
|
||||||
|
|
||||||
These allow for building progress indicators or responding to processing stages.
|
These allow for building progress indicators or responding to processing stages.
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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}
|
||||||
|
|
@ -58,7 +59,8 @@ description: Variable Substitutions and Expressions in GCode Macros
|
||||||
;; END
|
;; END
|
||||||
```
|
```
|
||||||
|
|
||||||
### 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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
@ -27,4 +27,3 @@ Application preferences are mode-dependent. For example, CNC preferences show an
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,6 @@ The `send` button will spool a print directly to OctoPrint where it will sit und
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 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.
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
|
.navbar {
|
||||||
|
height: 5rem;
|
||||||
.navbar{
|
|
||||||
height:5rem
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar .navbar__items{
|
.navbar .navbar__items {
|
||||||
height:4.5rem
|
height: 4.5rem;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue