Commit Graph

1081 Commits

Author SHA1 Message Date
Florian Festi 7bd0ab9e7d Add Lid option to more Generators
* DividerTray
 * DrillBox
 * GridfinityBase
 * GridfinityTrayLayout
 * SmallPartsTray
 * SmallPartsTray2
 * TrayLayout
 * TypeTray

Related: #128
Related: #277
2023-04-07 21:32:28 +02:00
Florian Festi fa760ded47 More typing trial and errors 2023-04-07 20:14:18 +02:00
Florian Festi 4e9150f4e5 More import and type fixes 2023-04-07 19:53:20 +02:00
Florian Festi 1c49096858 Add handle parameter for lids
Only one style for now. More to be added.

Related: #128
2023-04-07 19:00:38 +02:00
Florian Festi c0ae8b00eb Fix lids imports
sortof
2023-04-07 18:26:41 +02:00
Florian Festi 44bf4adc8f DisplayShelf: Turn num_of_dividers into sx param
to allow arbitrary sections and not only equal divisions
2023-04-07 11:14:31 +02:00
Florian Festi d82d2936e4 DisplayShelf: Fix "outside" size adjustment 2023-04-07 10:49:10 +02:00
Florian Festi 5ea8fce6be Move lid for Stackable top edge (S) to new Lids class
Now also works for the overthetop style and is adjustable in height
2023-04-06 21:51:32 +02:00
Florian Festi 70162bdfb2 Move Lid details and creation into own LidSettings class
Add new ontop and overthetop lid styles

Replace _ChestLid mixin class. Currently supported for UBox, UniversalBox
and ABox

Resolves: #356
2023-04-06 21:36:27 +02:00
Florian Festi 72aeb95bd5 Rename LidSetting to SlideOnLidSetting
to free the name of the generic lids
2023-04-06 20:21:44 +02:00
Florian Festi 1abd1bfaed RackEdge: Fix length
which was broken by the modulus fix in 6238903237
2023-04-02 16:29:06 +02:00
Florian Festi d175ced021 UniversalBox: Fix labels and top edges
to have x as width and y as depth and the lids fitting

Related: #469
2023-04-01 21:13:37 +02:00
Florian Festi 51f42fd0a7 Fix top edges
probably broken by c4b0971d03

Related: #469
2023-04-01 21:04:58 +02:00
Florian Kargl ceaf5becd0 Extend RegularBox to allow different diameters for top and bottom + bottom lid type 2023-04-01 19:39:26 +02:00
Florian Festi df4ae6da3c polygonWall: Add correct_corner parameter
to allow disabling processing for fitting finger joints of the
perpendicular walls in the inner corners.
2023-04-01 19:39:26 +02:00
Florian Festi bdf196616d Add sample images to ConcaveKnob and LaptopStand
and replace default image for DrillBox using the old one on the settings
page.

Thanks to datazaShane <https://github.com/datazaShane> for the photos!

Related: #140
2023-04-01 13:05:44 +02:00
ManuL 5732230eb9 CardBox: Support opening the lid to the side
Change width from width per section and number of sections to proper
section parameter sx.
Use more generic parameter names.
Make finger holes configurable.
Add optional lid topper to get a plain surface on top.
2023-03-12 21:15:53 +01:00
Florian Festi cb449b8760 Drop suppport for ai files
as the bounding box is not correct and other formats like ps and pdf are
very similar and work fine (now).

This should be revered in case ps2ai.ps properly processes the
BoundingBox. Given the fact that it is a PS script itself I don't quite
see how it wants to get access to a comment that's even later in the file. So I don't expect that to happen soon - or at all.

Alternative we could be producing AI files ourselves. It's just a gloryfied
PS file anyway. But that currently not planned.

Resolves: #534
2023-03-12 13:40:10 +01:00
caleb crome 0b986eeb0c TrayLayout: Make generation a one step operation in the web UI
Add Java Script for generating the layout from sx and sy
Drop special handling in boxesserver
Add .UI attribute to Boxes class to allow behaving differntly on different UIs
Traylayout is still filtered out from Inkscape INX file generation
Slightly adjust layout format of GridfinityTrayLayout

Co-authored-by: Florian Festi <florian@festi.info>
2023-03-07 20:02:27 +01:00
Florian Festi b807cc99ff New generator: SevenSegmentClock 2023-03-07 20:00:50 +01:00
Florian Festi adef7eb612 New generator: SevenSegment 2023-03-07 19:57:50 +01:00
Florian Festi 9a5410983d .polygonWall(s): Allow None at the end to close the polygon
Resolves: #456
2023-03-04 18:59:07 +01:00
Rotzbua fa2b2fe466 Refactor generator `traylayout`
* Use generic argument `sx` and `sy` to generate text traylayout
* Add typing
* Fix code style
2023-02-28 13:47:11 +01:00
Florian Festi 122d365914 BirdHouse: Add overhang parameter
to allow making the roof bigger and better looking.
Declare stable by moving to "Misc"

Resolves: #414
2023-02-26 10:52:57 +01:00
Florian Festi 9a9499e405 UBox: Translate labels
as a first prove of concept
2023-02-25 15:57:38 +01:00
Florian Festi ea1ac786d5 Add Boxes.translations
to allow geenrators to translate things like labels, too.

Adds hidden language parameter to make sure the language selected gets
passed down to the generated drawing.
2023-02-25 15:55:06 +01:00
Florian Festi 090c21dc71 Add qr_code default parameter
that adds a QR code with the URL or CLI parameters to the drawing
2023-02-24 19:09:53 +01:00
Florian Festi b0c529725a Add .qrcode() 2023-02-24 19:09:53 +01:00
Florian Festi afbad13f51 Add short URL and CLI to rendered drawing 2023-02-24 19:09:53 +01:00
Florian Festi 0421aeb76a Calculate short url and command line
with only the changed parameters
2023-02-24 19:09:53 +01:00
Florian Festi b1af53eff0 Use full command line for converting file formats
and no longer rely on pstoedit being the only tool used

Use ps2pdf from GhostScript (which should already be needed by pstoedit)
for PDF as it supports keeping the page size from the eps file
2023-02-24 14:34:13 +01:00
Florian Festi b605693925 Create ESP instead of ps
as it supports BoundingBox and allows conversion to the right page size

Well, at least for PDF for now.
2023-02-24 14:32:34 +01:00
Florian Festi 08605d4598 Remove code from render() method that should no longer be there
as open() and close() is nowadays handled outside
2023-02-19 19:40:41 +01:00
Sergios Stamatis b66c9d970d Add photos for console generator (arcade stick) 2023-02-19 17:45:07 +01:00
Florian Festi 20dadbbb04 TrayLayout: Split render() into several methods
to allow better re-use in GridfinityTrayLayout.
Mirror the base plate of the GridfinityTrayLayout so the engravings
for the feet are on "the bottom".

Related: #533
2023-02-15 21:58:23 +01:00
Florian Festi a96a78f439 cc(): Add angle parameter
to allow placing the callbacks truly everywhere
2023-02-15 21:47:53 +01:00
Florian Festi 061d9e2bf0 HeartBox: Fix placement
Size caclulation is done properly nowadays. No need to fiddle with the
placement and mess things up.
2023-02-14 14:41:55 +01:00
Florian Festi 3e06ef3921 polygonWall: Make sure callback indexes are int
Was broken by 940cec1811

Resolves HeartBox failing

Thanks to noel hanback <https://hackaday.io/hacker/1310423-noel-hanback>
for reporting.
2023-02-14 14:37:46 +01:00
caleb crome bfc710698f Create a GridfinityTrayLayout object.
This is based on the TrayLayout2, but it designed to just give exactly
the correct size boxes to fit into a gridfinity system.

It has a modified TrayLayout setup, so it works in one step.  It uses
javascript to auto-generate the grid, which means it doesn't currently
work for Inkscape or command line.
2023-02-13 21:10:35 +01:00
Florian Festi 8b5fb877e7 polygonWalls: don't error out on empty borders list 2023-02-12 19:39:21 +01:00
Florian Festi 1ba33c8192 WallRollHolder: Fix side pieces 2023-02-12 15:04:43 +01:00
Florian Festi 790bc41871 RollHolder: move to WallMounted group 2023-02-12 15:04:43 +01:00
Florian Festi 702006d9ef New generator: Tetris
Tetris shapes
2023-02-12 13:29:58 +01:00
Florian Festi 940cec1811 polygonWall: Fix numbers of callbacks
They were off by a factor of two as they should be numberd by sides
while we also counted corners
2023-02-12 13:29:58 +01:00
Florian Festi 455f5ae69a Limit the number of drawing primitives to 100000
to avoid people trashing the server with too complicated drawings
2023-02-07 21:54:38 +01:00
Rotzbua 64dca171b4 extents: add types
* lint code
2023-02-07 20:08:20 +01:00
Rotzbua 8db417a134 dividertray: fix typos 2023-02-07 15:20:08 +01:00
Florian Festi 618fe78314 GrindfinityBase: Remove HTML link from __doc__ string
As it creates problems with the new gallery feature
2023-02-05 16:17:30 +01:00
caleb crome 4c9830315d Add a generic, text based front panel generator
This adds a front panel generator that lets you automatically generate
all the cutouts and text placements needed in a box.

Eventually, it might be great it integrate this kind of feature into the
box generators, but that sounds complicated.  At this point, I'm happy]
to have this.
2023-01-31 20:50:03 +01:00
Patrick van der Leer f954e4e857 PaintStorage: Add additional_bottom and additional_top option 2023-01-31 20:12:17 +01:00