plloppii / modelplacement Goto Github PK
View Code? Open in Web Editor NEWC++ application that takes in 3D STL model files, parses them, then auto orients them onto a desired build platform
C++ application that takes in 3D STL model files, parses them, then auto orients them onto a desired build platform
Auto Layout Algorithm Noah Pan References: STL Formating Info https://all3dp.com/what-is-stl-file-format-extension-3d-printing/ Bin Packing Algorithm http://blackpawn.com/texts/lightmaps/default.html https://codeincomplete.com/posts/bin-packing/ Summary of Code: 1) Take in a series of models and parse them to extact the width and length details. 2) Models are sorted according to the max(width, length) 3) Call Buildplatform object 4) Take in each model and place each one on the buildplatform creating a tree structure 5) Function that inserts node into tree is called recursively to divide the buildplatform into smaller rectangular sections. (see design notes) Design Notes: -A previous algorithm can be implemented before the packing algorithm to orient the model in it's optimal printing orientation. This algorithm would first look for the largest collection of triangles that are parallel. The area with the largest surface area would be the surface that would stick the best to the build surface. -Another method of model orientation would be to calculate the orientation with the least amount of overhangs (angles greater than 45 degrees). -The tree structure would be created based on keeping the total model width and length as square as possible. Incomplete Tasks: -Finish implementation of tree data structure -Turning the algorithm into a templated class. Assumptions: Binary STL file used Models are orieted in the optimal printing orientation File Structure: Buildplatform.h -> Node.h -> Model.h -> Triangle.h -> Point.h \->Rectangle2D.h Directions for Compliation: Compile with: g++ -Wall -o Makefile.exe main.cpp Triangle.cpp Point.cpp Model.cpp Buildplatform.cpp Rectangle2D.cpp Node.cpp Running output file: ./Makefile.exe
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.