The tiler manages a doubly linked list of Viewer records. Each record contains:
Viewer = RECORD
next, prev: Viewer; (* linked list *)
frame: Rectangle; (* absolute screen coordinates *)
obj: Object; (* typed object to display *)
menu: MenuProc; (* right-click menu handler *)
handle: HandleProc; (* resize/move handler *)
END
The screen coordinate system is flat. The tiler ensures that the union of all frame rectangles exactly equals the display area (or a logical workspace). Operations are:
To understand the Object Tiler, one must first understand the Oberon philosophy: the distinction between an "application" and a "document" is artificial. In modern operating systems, you open an application to view a document. In Oberon, you open a document, and the tools to manipulate it appear contextually.
The display was not a collection of floating windows with title bars and close buttons. Instead, it was a vertical stack of "tracks" (narrow system tracks on the left, wide user tracks on the right) containing a linear sequence of text and graphics. This was the domain of the Object Tiler.
The Oberon screen was treated as a single, cohesive "display file" or raster. The Object Tiler is the mechanism responsible for breaking this abstract display file into visual pieces and mapping them onto the physical screen.
Modern CPUs and GPUs love linear memory access. Traditional renderers jump all over VRAM to fetch textures for object A, then object Z. The Oberon Object Tiler, by processing one tile at a time, ensures that all objects within a small screen region are processed consecutively. This means texture fetches, shader constants, and vertex buffers remain in the L2 cache. The result is a drastic reduction in memory bandwidth usage.
For rendering millions of data points (scatter plots, particle simulations), the Oberon Object Tiler allows researchers to assign a unique object ID to every single point. Zooming and panning become trivial because only tiles inside the viewport are processed.
While Oberon never conquered the commercial market, the philosophy of the Object Tiler is seeing a massive resurgence today.
The Oberon Object Tiler reminds us that the history of computing isn't a straight line. Sometimes, the most "modern" solutions are simply the re-discovery of brilliant ideas from the past, stripped of bloat and designed with purpose.
Are you a fan of retro-computing or tiling window managers? Have you ever tried running the Oberon system? Let me know in the comments.
The Oberon Object Tiler for CorelDRAW automates object tiling to maximize page efficiency, featuring customizable spacing, and automatic crop mark generation. Compatible with multiple CorelDRAW versions, this macro optimizes layout and reduces material waste for tasks like label and business card creation. For more details, visit ciframagazine.com Oberon Object Tiler
Oberon Object Tiler. Макрос для CorelDRAW - ciframagazine.com 21 Oct 2013 —
Based on the core functionality of the Oberon Object Tiler, which is a macro for CorelDRAW designed to replicate and arrange objects into grids or tiles, here are three high-value features that would enhance its utility: 1. Adaptive Gap Randomisation
Instead of fixed spacing, this feature would allow you to set a range (e.g., 10mm10 m m
) for gaps between objects. This would instantly create more "organic" or "scattered" layouts suitable for wallpaper patterns, textile designs, or background textures without manual adjustment. 2. Live "Auto-Fit" Preview
A real-time visual overlay that shows how many instances of an object will fit within a specific target area or page before you commit the command.
Dynamic Scaling: It could automatically scale the objects slightly up or down to ensure they perfectly fill the designated boundary without leaving awkward "half-tiles" at the edges. 3. Progressive Attribute Stepping
Allow the tiler to apply incremental changes to objects as they are duplicated across the grid.
Color Stepping: Gradually shift the hue or transparency of each tile (e.g., lighter per row).
Rotation Stepping: Rotate each subsequent object by a set degree (e.g., 15∘15 raised to the composed with power ) to create spiral or kaleidoscope patterns. Türkçe CorelDRAW: Makrolar - CorelTURK
The Oberon Object Tiler is a classic VBA macro for CorelDRAW (developed by Alex Vakulenko of Oberon Place) that automates duplicating a selected object to fill a page—perfect for business cards, labels, and stickers. The tiler manages a doubly linked list of Viewer records
To "develop a feature" for it, you would typically modify its GMS (Global Macro Storage) file using the Visual Basic for Applications (VBA) editor inside CorelDRAW. 🚀 Proposed Feature: "Smart Nesting with Rotation"
Current versions of Object Tiler typically tile objects in a rigid grid or allow a single "Best Fit" orientation for the whole set. A high-value addition would be Smart Nesting, which rotates individual objects to squeeze more copies onto a single sheet of expensive media. 🛠️ How to Implement This Feature
To build this, you would need to add logic to the TileObjects subroutine in the VBA code:
UI Update: Add a checkbox to the user form: chkAllowMixedRotation. Logic Logic:
Calculate the area of the page versus the area of the object.
Run two simultaneous calculations: one with the object "Portrait" and one "Landscape."
If a row has leftover space that is smaller than the object's width but larger than its height, rotate the object 90° to fill that gap.
Bounding Box Check: Use the .SizeWidth and .SizeHeight properties of the Shape object in VBA to compare dimensions against the remaining Page.SizeWidth. 📋 Other Feature Ideas
If you are looking for specific functionality to add, consider these community-requested improvements:
Bleed Control: Automatically add a user-defined "Bleed" margin to each tile while keeping the crop marks at the actual trim line. The screen coordinate system is flat
Variable Data Integration: Allow the tiler to pull different images or text from a CSV file for each "tile" (e.g., serialized barcodes or name tags).
Staggered/Running Bond Layout: Add an "Offset" percentage for every second row, which is often required for wallpaper designs or certain tile patterns.
Media Cost Calculator: Add a small text field at the bottom of the form that calculates the "Waste Percentage" based on the unused area of the page. 💡 Prototyping Tip
To start developing, open CorelDRAW, press Alt + F11 to open the VBA Editor, and find the ObjectTiler project in the Project Explorer. Look for the UserForm to add buttons, and the Module code to change how the objects are placed.
Which of these features sounds most useful for your workflow? I can help you draft the specific VBA code snippets for any of them!
Oberon Object Tiler. Макрос для CorelDRAW - CIFRAmagazine
Here’s a professional write-up for Oberon Object Tiler, suitable for a GitHub repository, documentation site, or project portfolio.
Would you like a short code sketch (Oberon/Modula-style pseudocode) showing tile metadata and load/store APIs?
(Invoking related search suggestions...)