Keyguards help individuals with limited ability to point reliably at regions of an app running on a tablet. They do this by physically separating access to specific regions of the tablet screen with rails that rise up from the surface of the tablet. In this case, the apps are associated with Augmentative and Alternative Communication (AAC).
Some AAC apps organize their content into grids with menus and message bars, above or below the grid. Others are much more creative and unpredictable in their layouts. Hybrid apps are largely grid-based but their keyguards can be enhanced by selectively exposing specific regions of the app.
The number of possible choices for tablet, tablet case, and AAC app, make it impossible to design a few keyguards that will meet everyone's needs. To complicate matters further, users have lots of flexibility for how they organize the content in their apps. All of this is to say that users must be given control over the keyguard design. I know of only one 3D modeling tool where that is possible - without requiring that each user become an expert in 3D modeling. That tool is OpenSCAD. OpenSCAD has a "Customizer" feature that allows users to provide input to an OpenSCAD design that can shape the design to meet their specific needs.
We have created an OpenSCAD design that allows the user to identify their tablet, describe how the AAC app is laid out, describe their case, and choose a mounting method to mount the keyguard directly to the tablet or to the case. Once the keyguard is fully described you can generate and save an STL file that you can print on your 3D printer.
This is a Thingiverse Customizer design but only for grid-based apps. Free-form and Hybrid apps require greater specification and visualization than Thingiverse's Customizer can support. For those keyguards you will need to download and install the latest version of OpenSCAD and a good text editor like Notepad++.
If you will be using OpenSCAD, the only files you need to download from here are called keyguard_v15.scad, screen_openings.scad, and case_openings.scad. All other files are just for illustration. You also need to go to https://wp.me/P9evBA-5b to learn how to customize the keyguard.
A PDF form is provided as well for collecting and communicating the requirements for your keyguards.
UPDATE 18 Mar 2019 (version 16): Changed code to use offset() command to create rounded corners rather than cutting the corners. Added a small chamfer to the top edge of the keyguard to reduce the chance of injury. Changed code to add case and screen cuts "after" adding compensation for tight cases. Added support for the NOVAchat 10.5 (does not support exposing the camera). Changed filename extension of case_cuts and screen_cuts files from .scad to .info to reduce confusion about what is the main OpenSCAD program.
UPDATE 24 Jan 2019 (version 15): Added support for first non-iPad tablet, the Nova Chat 10 (does not support exposing the camera). Cleaned up the logic around when to cut for home and camera to account for lack of a home button or camera on the face of the tablet. Added support for additive features like bumps, walls and ridges - as an aid to individuals with visual impairments. Fixed bug with height and width compensation for tight cases. Added support for using clip-on straps with cases. Added support for printing clips. Added support for hiding and exposing the status bar at the top of the screen.
UPDATE 11 Dec 2018 (version 14): Added option to control the number of facets used in circles and arcs - the original value was 360 and the default is now 40 which should greatly improve rendering times and eliminate issues for laptops with limited memory. Separated the tablet data from the statement that selects the data to use with the intent of making it easier to update and change the data in Excel. Migrated from using Apple's statement of "active area" dimension to calculating the size of the screen based on number of pixels and pixel size - active area dimensions seemed to overestimate the size of the screen - also assume a single value for number of vertical pixels in a screen shot and therefore a single value for pixel to mm conversion based on the stated pixel size. Added the ability to engrave text on the bottom of the keyguard. Added support for a separate data file to hold cut information that sits outside of the screen area, will always be measured in millimeters and will always be measured from the lower left corner of the case opening - so now there are two files for defining cuts: one for within the screen area and one for outside of the screen.
UPDATE 27 Nov 2018 (version 13): Added support for engraved text.
UPDATE 17 Nov 2018 (version 12): Extended the upper end of the padding options to 100 mm after seeing a GoTalk Now 2-button layout. Minor corrections to a couple of iPad Air 2 measurements. Added support for swapping the camera/home button sides. Added support for sloped sides on outer arcs.
UPDATE 12 Nov 2018 (version 11): Added support for iPad 6th Generation, iPad Pro 11-inch, and iPad Pro 12.9 inch 3rd Generation. Added ability to offset the screen from one side of the case toward the other. Fixed bug that caused rounded case corners not to appear in portrait mode. Added ability to create outside corners on hybrid and free-form keyguards. Added ability to change the width of slide-in and raised tabs and their relative location (changed the meaning of "width" as well).
UPDATE 08 Nov 2018 (version 10): Reduced some code complexity by using the hull() command on hot dogs and rounded rectangles. Removed options to compensate for height and width shrinkage, upon testing they are too simplistic and keyguards don't do well with annealing anyway. Changed "raised tab thickness" to "preferred raised tab thickness" because the raised tab can't be thicker than the keyguard or it won't slice properly - the keyguard will be raised off the print surface by the bottoms of the four
UPDATE 22 Jun 2018 (version 9): Combined functionality for both grid-based and free-form keyguards into a single designer. Added support rounding the corners of the keyguards, when they are placed in a case, to accommodate cases that have rounded corners on their openings. Can now create cell openings that are rounded-rectangles. Can limit the borders of a keyguard to the size of the screen for testing layouts.
UPDATE 12 Jun 2018 (version 8): Reduced the maximum slide-in tab width from 30 mm to 10 mm. Added the ability to merge circular cells horizontally and to merge both rectangular and circular cells vertically
UPDATE 25 May 2018 (version 7): Padding options have been moved to the Grid Layout section of the user interface to clarify that these affect only the grid region of the screen. Changed the width of the right border of the iPad 5th generation tablet to match width of the left border. Made some variable value changes so that it is easier to see the choices selected in the Thingiverse Customizer. Changed cover_home_button and cover_camera to display_home_button and display_camera because the original options were confusing.
UPDATE 20 May 2018 (version 6): Added support for controlling the slope of top or bottom edges of message and command bars.
UPDATE 8 May 2018 (version 5): You can print out a plug for one of the cells in the keyguard by choosing "cell cover" in the Tablet>generate pull-down. You can add a fudge factor to the height and width of the tablet to accommodate filaments that shrink slightly when printing. You can add add padding around the screen to make the keyguard stronger without affecting the grid and bars to account for cases that go right up to the edge of the screen
UPDATE 27 Apr 2018 (version 4): I've added a new version of the OpenSCAD file - keyguard v4.scad It provides support for circular cut-outs and puts an option to specify the shape of the cut-outs in the Customizer UI. At the same time, I've added support for covering one or more cells and support for merging a cell cut-out and the next cell cut-out.
UPDATE 25 Apr 2018 (version 3): I've added a new version of the OpenSCAD file - keyguard v3.scad. It has been rewritten to better support portrait mode and to use cuts to create openings to the screen surface rather than defining rails. This opens the door for openings with other geometries in the future - like circles and ovals. We fixed a bug in where padding appeared - put it around the grid rather than around the screen. We increased the depth of Velcro cut-outs to 3 mm, which roughly translates to 2 mm when printed. The cut for the home button is now made at 90 deg. to not encroach on the grid on tablets with narrow borders.
UPDATE 22 Apr 2018 (version 2): I've added a new version of the OpenSCAD file - keyguard v2.scad. It contains all the functionality of the original file and adds support for a new mounting method: "Clip-on Straps". As always, the website above is where you go to see how everything comes together.