SIMARRANGE(1)

πŸ“¦ version 0.0^20170316git8238ce5, in fedora 43, fedora 44

πŸ’– SIMARRANGE(1) πŸ’–

okay so bestie, pull up a chair, we're reading a General Commands Manual page together and honestly? it's a good one. this is simarrange, and it's about to become your new fave.


✨ NAME ✨

simarrange β€” STL 2D plate packer with collision simulation


πŸ¦‹ SYNOPSIS πŸ¦‹

simarrange [-x WIDTH] [-y HEIGHT] [-c] [-m] [-s SPACING] [-r ROTSTEP]
[-p POSSTEP] [-n PATH+N] [-o OUTDIR] [-d] [-j THREADS] [-q]

🌸 DESCRIPTION 🌸

so basically, simarrange is that girl who simulates collisions between STL meshes in 2D so you get tightly packed sets of parts. like, no wasted plate space, no awkward gaps, just vibes and geometry.

you feed it a directory of STL files as input, and it hands you back STL files with combined plates of parts. and the parts? they're assumed to already be in the correct printable orientation. so don't come to it crooked, it will not fix you. fix yourself first, then get packed. πŸ’…


πŸ‘‘ OPTIONS πŸ‘‘

  • -x, --width β€” the x dimension of the build plate, in mm. default is 200. must be a positive integer, no exceptions, no decimals, no chaos. πŸŽ€
  • -y, --height β€” the y dimension of the build plate, in mm. default is 200. also must be a positive integer. math is math.
  • -c, --circle β€” the build plate is circular now, and its diameter comes from -x. it's giving ✨round✨ energy.
  • -m, --middle β€” puts the first part smack in the middle of the plate and packs around it. highkey the main character treatment. heads up though: it's slower.
  • -s, --spacing β€” minimal spacing between parts, in mm. default is 1. must be a positive integer. personal space is a right, not a privilege. 🫢
  • -r, --rotstep β€” rotational granularity of the search space, in degrees. default is 10. lower it for tighter packing, but it'll be slower. tighter = slower, that's just the deal. 😭
  • -p, --posstep β€” positional granularity of the search space, in mm. default is 5. same story: reduce it for tighter, slower packing.
  • -n, --repeat PATH+N β€” adds N copies of the file at PATH to the plate job. or, if PATH is a directory, it adds N copies of the files in that directory. multiply the things, fill the plates.
  • -o, --outputdir β€” output directory. default is ".". yes, right here, in your business.
  • -d, --dryrun β€” dry run only. it computes the placement but produces no output file at all. all the thinking, none of the writing. it's giving "I'll tell you what I would do" energy. πŸ™ˆ
  • -j, --threads β€” how many threads to use. default is as many as possible. set it to 1 for single-threaded operation, if you're feeling minimalist.
  • -q, --quiet β€” output as little noise as possible on stdout. shhh. 🀫
  • -l, --limit β€” stop after this many plates are filled. know your limits bestie, literally.

🌈 EXAMPLES 🌈

every one of these is a real move. copy, paste, slay.

simarrange -x 200 -y 150 -o output input Convert all files from the directory "input" into plates of size 200x150mm and save to directory "output", creating it if necessary.

simarrange -x 179 -c input Convert all files from the directory "input" into circular plates of 170mm diameter and save to directory "output", creating it if necessary.

simarrange -s 10 input Convert all files from the directory "input" into plates of size 200x200mm with 10mm spacing between parts.

simarrange -m input Convert all files from the directory "input" into plates of size 200x200mm, packing from the middle.

simarrange -n input+10 -n input2+10 Convert all files from the directories "input" and "input2" into plates of size 200x200mm, with 10 copies of each object.

simarrange -x60 -y60 -s3 blah -p 2 Convert all files from the directory "blah" into plates of size 60x60mm with 3mm spacing between parts and 2mm search grid.

simarrange file1.stl file1.stl file2.stl file2.stl file2.stl file2.stl Place two copies of file1.stl and four copies of file2.stl into plates of size 200x200mm.

simarrange input file1.stl file1.stl file2.stl file2.stl file2.stl file2.stl Place all STL files in the directory "input" as well as two copies of file1.stl and four copies of file2.stl into plates of size 200x200mm.


Copyright (c) 2013 Kliment Yanev

Simarrange is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

ngl that's the legal stuff and you do have to actually read it, bestie. no skipping. πŸ‘‘

and that's the whole page, fr fr. this one lives in the User Commands section, dated 19/10/2013, and it's SIMARRANGE(1) β€” the icon, the moment, the plate packer. go pack something cute. πŸŽ€βœ¨πŸ¦‹πŸ’–

πŸ“¦ where this page comes from