Coder Social home page Coder Social logo

aevyrie / tolstack Goto Github PK

View Code? Open in Web Editor NEW
39.0 1.0 1.0 10.34 MB

1D tolerance analysis for mechanical engineers

Home Page: https://aevyrie.github.io/tolstack/book

License: MIT License

Rust 100.00%
mechanical-engineering analysis application tolerance

tolstack's Introduction

Overview

CI dependency status License: MIT

TolStack is an open source tolerance analysis application for building and analyzing 1D geometric tolerance models. The goal of this tool is to help make tolerance analysis fast, intuitive, and explorable. Built with Rust using iced.

Read the TolStack user guide

Roadmap

Disclaimer

๐Ÿšง This application is in development, untested, unstable, and not ready for general use. ๐Ÿšง

This software should only be used by engineers who are able to independently verify the correctness of its output. The software is provided as is, without warranty of any kind. The intent of this software is to aid in the exploration of tolerance analyses, not to replace existing methods of analysis or verification.

Features

  • Build one-dimensional tolerance stackups in a visual editor
  • Evaluate and tune your tolerances with:
    • Monte Carlo analysis
    • RSS analysis
  • Export results to CSV

Screenshot

Screenshot

Build Instructions

  1. Install Rust via Rustup.
  2. Clone the repository with git clone https://github.com/aevyrie/tolstack.git
  3. From the tolstack directory, run cargo run --release to build and launch the application with compiler optimizations.

Hardware and Software Requirements

  • Note: make sure your graphics drivers are up to date!
  • Linux/Windows: You will need a modern graphics card that supports Vulkan
    • Integrated graphics (Intel HDxxx) requires vulkan support, check here
  • MacOS: the backend uses Metal, check here for requirements

License

This project is licensed under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in tolstack by you, shall be licensed as MIT, without any additional terms or conditions.

tolstack's People

Contributors

aevyrie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

isgasho

tolstack's Issues

Mismatch between MC and RSS analysis

Mean and tolerance do not match between the two analysis methods.

Means do not match due to bounding - the MC analysis can discard any out of spec samples. If the BoundingParam is set to KeepAll, the RSS and MC means match.

MC analysis currently does not report tolerance positive and negative, only the symmetric tolerance is specified. Taking the average of RSS results seems to show they (almost) match. #12 should be resolved before continuing this investigation.

Autosave overwrites data after new file

When opening a file then immediately hitting new, blank data will be written to the old location, losing data. Implement a last-saved tracker and get rid of the async timer that causes delayed saves.

Field tabbing

Need to be able to tab between fields in tolerance entry forms.

Simplify input validation

Simulation params have strict text validation on the input fields. This results in non-intuitive behavior, especially when the number is at it's minimum, and backspace just moves the cursor backward without deleting.

Enhanced CSV Export

  • "Report" style output with rows/cols to show the tolerance stack input
  • Results summary
  • Use formulas to show work for RSS and worst case. (excel evaluates "=SUM(1,2)" in a CSV!)

New tolerance default behavior

When a tolerance is added as an 'incomplete' entry, the implication is that the user did something wrong or off the happy path. There should either be a way to add the dim/tol values up front as its added, or open the entry dialog by default

I think the best path here is to add the tolerance in the editing state to start.

Timestamp csv exports

CSV exports do not include a timestamp, so opening successive CSVs from the application does not open the file if already open in Excel, as it does not allow multiple files with the same name in session.

Allow multiple Stacks per project

Projects can contain multiple tolerance stacks. Allow stack duplication, moving, renaming, deletion. Similar to tabs, but in a vertical scroll entry list.

Editing new project name should replace text

Trying to input a project name, I clicked the field expecting the 'New Project' text to be a placeholder and began typing

If a project name is new and unedited, any time it's edited, the placeholder text should be replaced. Currently, the text is not replaced and new text is inserted alongside the "New Project" text.

Change auto save/load behavior

  • Don't open file by default
  • Don't autosave to disk until saved once with a specified file name
  • Open Save As menu if Save button is hit in an unsaved project

Documentation

Need to add

  • Algorithm details
  • List of assumptions

Encapsulate structs and improve interfaces

Remove pub struct field access and replace with getters. For example, accessing the DimTol of a hole or pin, it isn't clear if the dim is diametric or radial. Replace the struct field with a float::hole_dia() or something.

Asymmetric MC results incorrect

Ex, a linear tolerance with dim 10 +5/-1 will have a MC result with an equal positive and negative tolerance. The total tolerance appears to be correct, e.g. 48 total in this case, however the output is incorrect.
image

Warning prompts

Show warning prompts when opening or creating a new file with unsaved changes. Use msgbox ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.