zengraft Posted December 25, 2010 Posted December 25, 2010 I work in printing and I'm trying to set up a calculation that will provide the maximum number of pages that can be fit on a given press sheet size. The math behind this is easy and it's also very easy to do it in one's head, but I'm a novice at formatting filemaker functions, so I'm getting lost in nested case functions. The are a limited number of press sheet sizes that we use in printing, but the method of calculating this fit is a simple test which I'll word out (all values are in inches): For example: If the press sheet size = 25 x 19 and the page size is 8.5 x 11, then: (Int (25 / 11 = 2.272) * Int (19 / 8.5 = 2.235)) = 4 (Int (25 / 8.5 = 2.941) * Int (19 / 11 = 1.727)) = 2 The larger of the two values is the proper fit, so in this case we can fit four 8.5 x 11 pages on a 25 x 19 press sheet. It's actually a simplified test as there are more parameters involved, but this is the gist of it. Then field NoUpPerSheet holds the calculation and is dependent on the user inputting values such as 8.5 into PageSizeW and 11 into PageSizeH. I'm trying to set up a let function with only 2 press sheet sizes so far, but my problem is with the calculation. I want to have it test all press sheet sizes given any page size. Seems like this calculation could not only tell me the maximum number of pages than can fit on any press sheet size, but also tell me the smallest press sheet size if we can't fit more on any larger press sheet sizes. For example, both 25 x 19 and 26 x 20 can only fit four 8.5 x 11 pages, so we'll use 25 x 19. Let ( [ ss2a = Int (25 / PageSizeH) * Int (19 / PageSizeW) ; ss2b = Int (25 / PageSizeW) * Int (19 / PageSizeH) ; ss3a = Int (26 / PageSizeH) * Int (20 / PageSizeW) ; ss3b = Int (26 / PageSizeW) * Int (20 / PageSizeH) ] ; Case ( Case ( ss2a >= ss2b ; ss2a ; ss2a < ss2b ; ss2b ) >= Case ( ss3a >= ss3b ; ss3a ; ss3a < ss3b ; ss3b ) ; NoUpPerSheet ) // End Case ) // End Let Or perhaps this would be better to set up as a script rather than one calculation?
comment Posted December 25, 2010 Posted December 25, 2010 I want to have it test all press sheet sizes given any page size. I would set up a table with all press sheet sizes. Then each record can do the math against its own size - and no complicated Case() calculation is necessary.
zengraft Posted December 25, 2010 Author Posted December 25, 2010 I did make a related table for them. There are about 20 sizes in a table with the fields SheetSizeW and SheetSizeH. But it seemed easier to me to make a calculation because I haven't yet figured out how to call these records, run tests and then output the results into the parent table fields NoUpPerSheet and SheetSizeName. I figure I would need to set up a script for this.
comment Posted December 26, 2010 Posted December 26, 2010 Have a look at this primitive (one-dimensional) example. YieldCalculator.zip
zengraft Posted December 26, 2010 Author Posted December 26, 2010 A lot of things become clearer when you see a solution to specific problems that one has in mind. This is very useful. Thank you. I'm going to set up the tests on both dimensions using your model. That button looks like it will need a script to do that.
Recommended Posts
This topic is 5139 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now