In Mozaik (cabinetmaking/CNC software), you build a fully parametric custom mullion glass door by adding user parameters to a construction method, then driving every closed tool path point with formulas that reference those parameters. Phill Anton Consulting works directly in the door library (Frameless V12), sketches the grid as repeating squares, builds one corner, and mirrors the rest with PartL/PartW formulas. Change a single parameter (mullion width, square dimension, bulge) and the whole door redraws. This is an intermediate technique, not a beginner one.
What is the plan before you touch Mozaik?
Break the door into a known, repeatable shape: four corner squares (each a pocket / closed tool path) plus a center area, with a curved "bulge" detail. Sketch it and name every dimension you'll need so each becomes a user parameter. Treating the profile as repeating squares is what makes the later mirroring trivial. The goal: build it in about an hour, "one-shot" style.
Should you start from a slab door or a routed door?
There are two options for this kind of profile: make it from a slab door and cut all the pockets, or use a routed door. Choose the routed door (start in the routed tab, add a door). The rule: use a slab door when you're shaping the actual door body; for a grid of pockets/tool paths a routed door is cleaner. Because it's technically a glass door, plan a full back pocket on the back later. Build it straight in the door library (the more advanced approach) rather than the parts tab, base tab, or face tab.
How do you add the user parameters (and where)?
Open Job Parms for your construction method and go to the Other category (in Frameless V12). These are user parameters, not custom parameters. Add the following, capitalizing each name:
- Mullion width - width of the mullion bars
- Square dimension - the corner square is square (width = height); approximately 4" to start
- Style width and Rail width - kept equal at 2.5" (deliberately not split into top/bottom rail or left/right stile)
- Bulge dimension - the curved detail; approximately 0.75"
- Short dimension - the small leftover segment; approximately 0.5"
- Pane width - approximately 1.5"
Tip: if you have many parameters, you can prefix a number or letter to group them by door style. On Windows you can capture a screenshot of the parameter list with Win+Shift+S.
Why won't the door library "see" the new parameters?
Once the user parameters live inside the construction method, you can reference them in the door library - but only if the door is actually using that method. If the parameters resolve as zero, it's because the door is pointed at the wrong construction method (for example, the closet library instead of Frameless V12). Switching the door to Frameless V12 and saving makes the parameters resolve. You may also need the parameters present in the default/auto library. These are the "little intricacies you can figure out in 10 seconds but can't memorize."
How do you build the first corner with closed tool paths?
Go to Libraries -> Doors, edit your door, go to operations, and hide the stock glass-door operation you don't need. Add a closed tool path (a pocket would work the same way, but for a glass door a closed tool path is the choice here). Starting at the 0,0 corner and working around, type a parameter into each point's X and Y instead of a number:
- First point: X = rail width, Y = style width
- Next X = rail width + square dimension (e.g. 2.5 + 4 = 6.5)
- Continue around using pane width, short dimension, and the bulge dimension for the curved segment
Build the full square first, then restyle points. Remember: X is one side, Y is the other. Every point must read its value from a parameter.
What does "blue" mean and why be careful clicking points?
A point that holds a formula shows blue. You want everything to be blue. If you click and accidentally move a point, it loses its formula and stops being parametric - so click carefully. Scan the points regularly, looking for any that are not blue, and re-enter the formula where one dropped out. It's common to find a handful of points late in the build that lost their formulas and need re-entering.
How do you mirror points the easy way?
This is the core "secret." Copy the corner points (a pasted operation always lands at the bottom of the list), then to flip to the opposite side:
-
Mirror across X: wrap the existing X value in parentheses and prefix with
PartL minus->PartL - (existing X). -
Mirror across Y: same idea with
PartW minus->PartW - (existing Y). Y values stay put when mirroring X, and X values stay put when mirroring Y.
It's a clean, reliable way to mirror. One caveat: the bulge won't mirror correctly - its direction has to be flipped by hand. A neat trick: an already-mirrored value (already PartW - (...)) can be wrapped in parentheses again to "eat itself" and mirror back.
How do you rotate a point parametrically?
To rotate a corner instead of mirroring it: take the value from X and put it where Y is, take the Y value and put it where X is, then swap style width for rail width (since the two axes use different edge parameters). That repositions the point correctly - rotating parametrically. For most corners, copying and pasting the easy ones is faster.
How do you handle the bulge (curved detail)?
The bulge is the one part that isn't simply parametric across mirrors. In the point's calculator, enter the bulge dimension for the curve. Use 0 minus bulge dimension rather than a bare leading minus sign - it behaves more reliably. Because the inner part of the door needs its own curve, add a second parameter, bulge two dimension, and use it for the internal bulges. After building, each bulge's direction usually needs flipping (0 minus...) to point the right way.
How do you make the center mullion grid?
For the center, add another closed tool path and reference pane width, pane width, style width, and mullion width to lay out the mullion bar, then mirror it on PartL and PartW as before. A very thin mullion width (around 1/2") is too thin. If you productize this, you need rules - for example, mullion width should be roughly half the short dimension - so the geometry stays valid.
How do you preview and tune it live?
Once enough points are in, set the parameters and watch it redraw. You can open the 3D viewer and the Job Parms (Other) at the same time and change values live - mullion width, square dimension (around 5" works well), pane width (around 2.5", roughly half the square), and bulge (around 0.5") - to dial in proportions. Warning: changing style and rail width separately breaks it; change them together (both 2.5"). Glass doors don't work well at 2" stile/rail, so keep 2.5".
How do you finish the door for glass (back pocket + tool group)?
To take it to the finish line as a glass door:
- Attach a panel tool group to the profile so you don't have to assign a depth to the closed tool path - let the closed tool path do all the work.
- Build a glass panel tool group (copy a shaker group and name it with a
GLsuffix - e.g.S01 shaker glass), running everything from the back side for a 3/4" door, leaving a small skin and finishing with an 1/8" down shear. (For 1" glass/MDF, watch tool stick-out so it cuts through.) Assign the tool group to one point per tool group, one at a time. - Add a full back pocket on the back: make a pocket, drive its edges with rail width /
PartL minus/PartW minus, set use pocketing tool inside out and clockwise (which leaves corner scallops), then add a separate tool path cleanout group because the pocket bit can't reach the corners. The pocketing tool needs an explicit depth (e.g. 1/2" pocket).
A note on the back-pocket cleanout tool group: the cleanout depth (e.g. a 0.25" pass) is set, and counterintuitively the cleanout reads from the front side even though the operation is on the back. Always check your own G-code.
How do you troubleshoot a door that looks "smashed up"?
If the door renders distorted, it's almost always a point that lost its formula. Go back to the door library, click the panel, edit -> operations, and find the point(s) with no formula (not blue), then re-enter them. If a door still won't reset after edits, use override -> reset to clear a stray override. Mozaik sometimes shows an onion skin preview that looks wrong even when the formulas are fine - update/recompute and it clears.
Get it done-for-you
You can set this up by hand (above). If you build these regularly, the PAC MDF Door Profiles from Phill Anton Consulting have it ready in Mozaik. -> phillanton.com
Full disclosure: Phill Anton Consulting makes this product.
FAQ
How do you build a custom parametric door profile in Mozaik?
Add user parameters (mullion width, square dimension, style/rail width, bulge, etc.) to the Other category of a construction method's Job Parms, then build the door in Libraries -> Doors as a routed door and drive each closed tool path point with formulas that reference those parameters. Change one number and the whole profile redraws.
Why won't my new user parameters show up in the door library?
The door must point at the construction method that holds the parameters. If they read as zero, it's because the door is on the wrong construction method (e.g. the closet library) while the parameters live in Frameless V12 - switching the door to Frameless V12 and saving fixes it.
What's the easy way to mirror points?
Copy the corner points, wrap each X value in parentheses, and prefix with PartL minus to flip across X (PartW minus flips across Y). To rotate, swap X and Y and swap style width for rail width.