.. index:: single: Navigation Navigation ========== .. index:: single: Zoom Zoom ---- .. list-table:: :header-rows: 1 :widths: 35 65 * - Action - How * - Zoom in / out - Scroll the **mouse wheel**, or press **+** / **−**. * - Zoom extents - **Ctrl+Shift+E** — fits all objects in the window. * - Zoom to window - **View › Zoom Window** — drag a rectangle; the view zooms to fill it. * - Zoom to object - Type ``ZOOMOBJECT`` and pick an object; the view zooms to its extents. Pan --- .. list-table:: :header-rows: 1 :widths: 35 65 * - Action - How * - Real-time pan - Hold the **middle mouse button** and drag. * - Pan from menu - **View › Pan** — click two points (displacement vector). .. index:: single: Grid Grid ---- Toggle the background grid with **Ctrl+Shift+G** or **View › Grid**. The grid is **off by default** for new drawings. Grid spacing is controlled by the *GridSpacing* field in the Drawing Variables tab of the Layer Manager. .. index:: single: Rulers Rulers ------ Rulers run along the **top** and **left** edges of the canvas. They always show world coordinates and update dynamically as you zoom or pan. .. note:: IQcad uses a **right-hand CAD coordinate system**: X increases to the right, Y increases upward. Screen Y is inverted internally but all displayed coordinates are in world space. .. index:: single: 3D View Commands 3D View Commands ---------------- IQcad provides several commands for viewing the drawing from different angles: .. list-table:: :header-rows: 1 :widths: 30 70 * - Command - Description * - **3DORBIT** (``ORBIT``) - Interactive 3D orbit mode — rotate the view around the model. * - **PLAN** - Return to the standard top-down plan view. * - **VPOINT** (``VP``) - Set the viewpoint to a preset direction. * - **VIEWTWIST** (``VT``) - Set a 2D view rotation angle. * - **ALIGNVIEW** (``AV``) - Align the view to two picked points on the canvas. * - **PLANVIEW** - Reset the view twist back to north-up (0° rotation). .. index:: single: 3D Behaviour 3D Behaviour ~~~~~~~~~~~~ When the view is rotated away from the standard plan view (using 3DORBIT, VPOINT, or the UCS Gizmo), several canvas behaviours adapt automatically: - **Zoom at mouse point** — the scroll wheel zooms toward the 3D point under the cursor, keeping the area of interest centred. - **3D pan** — middle-mouse-button dragging pans along the current view plane rather than the XY plane. - **3D crosshair** — the crosshair cursor draws three coloured axes (**red** = X, **green** = Y, **blue** = Z) to help orient the view. - **Orbit around viewport center** — the camera orbits around the current viewport center rather than the world origin, so 3D navigation stays focused on the area you are working in regardless of the drawing's coordinate location. - **Rulers auto-hide** — rulers along the canvas edges are hidden automatically in 3D mode, since world-axis labels are not meaningful for oblique views. They reappear when the view returns to plan. .. index:: single: UCS Gizmo UCS Gizmo --------- The **UCS Gizmo** is an interactive 3D orientation widget displayed in a corner of the canvas. It replaces the traditional flat UCS icon and provides both a visual reference for the current viewing direction and direct mouse interaction for navigating 3D views. .. index:: single: Using the Gizmo Using the Gizmo ~~~~~~~~~~~~~~~ .. list-table:: :header-rows: 1 :widths: 30 70 * - Action - Result * - **Click an axis label** (X, Y, or Z) - Snaps the view so that the selected axis points toward you. For example, clicking **Z** returns to the standard top-down plan view; clicking **X** shows a YZ elevation view. * - **Click a face label** (TOP, BOTTOM, FRONT, BACK, LEFT, RIGHT) - Snaps the view to the corresponding orthographic view with a smooth 300 ms animation. Labels are rendered in Blender style on the visible faces of the gizmo cube. * - **Click a quadrant face** - Snaps to the corresponding isometric view (e.g. top-front-right). * - **Drag a rotation ring** - Constrains rotation to a single axis (see *Rotation Rings* below). * - **Drag on the gizmo** (outside a ring) - Free-orbit the view — the model rotates interactively as you drag, the same as 3DORBIT but initiated from the gizmo area. .. index:: single: Rotation Rings Rotation Rings ~~~~~~~~~~~~~~ Three coloured rings surround the gizmo sphere, one per axis: - **Red ring** — X axis (drag to change elevation) - **Green ring** — Y axis (drag to change azimuth) - **Blue ring** — Z axis (drag to change azimuth) Each ring is projected onto the screen as an ellipse. The front half of the ring draws fully opaque over the sphere; the back half draws behind it, giving a clear sense of 3D orientation. Hovering over a ring highlights it to confirm which axis will be constrained before you begin dragging. While dragging a ring, an **arc feedback overlay** shows the rotation angle in degrees, so you can see exactly how far you have rotated. When a ring is viewed nearly edge-on (i.e. the axis points almost directly at the camera), the ring becomes too thin to click reliably. In this case the gizmo falls back to **free orbit** so you are never stuck without a way to rotate. .. note:: The gizmo and its rotation rings are only shown on **Model** tabs. On layout tabs the gizmo is hidden, since layouts represent fixed paper space. .. index:: single: Gizmo Settings Gizmo Settings ~~~~~~~~~~~~~~ The gizmo appearance can be adjusted in **Settings > UCS Gizmo**: .. list-table:: :header-rows: 1 :widths: 25 75 * - Setting - Description * - **Corner** - Which corner of the canvas the gizmo occupies (default: top-right). * - **Size** - Diameter of the gizmo in pixels (default: 120). * - **Opacity** - Transparency of the gizmo background (0 = fully transparent, 255 = fully opaque; default: 200). .. index:: single: Map Background Map Background -------------- IQcad supports background map imagery from **XYZ tile servers** and **OGC Web Map Service (WMS)** endpoints. The map layer renders behind the drawing canvas, so you can overlay your design on street maps, satellite imagery, or cadastral orthophotos. .. index:: single: Prerequisites Prerequisites ~~~~~~~~~~~~~ The map layer needs to know where the drawing is located on Earth. Before enabling the map you must assign a **coordinate system** to the drawing: 1. Open **Civil Settings** (Civil tab on the ribbon, or command ``CIVILSETTINGS``). 2. Go to the **Coordinate System** section. 3. Browse or search for the correct EPSG code (e.g. EPSG:2100 for GGRS87 / Greek Grid). 4. Click **OK**. Without a valid coordinate system the map cannot project tiles to the correct position and the background will remain blank. .. note:: See :doc:`/parts/civil/01_toolspace_settings` for full details on the Civil Settings dialog and coordinate-system selection. .. index:: single: Built-in Providers Built-in Providers ~~~~~~~~~~~~~~~~~~ Three providers are included out of the box: .. list-table:: :header-rows: 1 :widths: 30 15 55 * - Provider - Type - Description * - OpenStreetMap - XYZ - Standard OpenStreetMap street-map tile layer. * - ESRI World Imagery - XYZ - High-resolution satellite imagery (JPEG tiles). * - Greece Ktimatologio Orthophoto - WMS - Greek cadastral orthophoto from the Ktimatologio WMS service. .. index:: single: Map Settings Dialog Map Settings Dialog ~~~~~~~~~~~~~~~~~~~ Open the Map Settings dialog using any of the following: - Ribbon: **Civil** tab > **Configure Map Sources** button. - Menu: **View > Map Background > Configure Sources**. - Command line: ``MAPSETTINGS``. The dialog is divided into several sections: **Provider list** — shows all available providers. The currently active provider is marked with a bullet (``*``). Use the **Set Active** button to choose which provider supplies the background tiles. **Display section** — controls map visibility and transparency: - **Show Map** checkbox — toggles the map layer on and off. - **Opacity** slider (0--100 %) — sets the transparency of the map behind the drawing. Lower values make the map more transparent so entities stand out. **Provider details** — shown for the selected provider in the list: .. list-table:: :header-rows: 1 :widths: 25 75 * - Field - Description * - **Name** - Display name of the provider. * - **Type** - ``XYZ Tiles`` or ``WMS``. Determines how tile URLs are constructed. * - **URL Template** (XYZ) / **Base URL** (WMS) - The server URL. For XYZ, includes ``{z}``, ``{x}``, ``{y}`` placeholders. For WMS, just the service endpoint (no query parameters). * - **Attribution** - Copyright text drawn in the corner of the map overlay. * - **API Key** - Optional key appended to requests for providers that require authentication. * - **Min Zoom / Max Zoom** - Zoom-level range supported by the server (typically 0--19). * - **Tile Size** - Pixel dimensions of each tile (usually 256). * - **Subdomains** - Letters used with the ``{s}`` placeholder for load balancing (e.g. ``abc``). * - **Projection** - Tile grid projection (Web Mercator for most providers). * - **WMS Layers** (WMS only) - Layer name from the server's ``GetCapabilities`` response. * - **WMS Format** (WMS only) - Requested image format: ``image/jpeg`` or ``image/png``. .. index:: single: Adding a Custom XYZ Provider Adding a Custom XYZ Provider ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Click **Add** in the Map Settings dialog. 2. Set **Type** to ``XYZ Tiles``. 3. Enter the **URL Template** with ``{z}``, ``{x}``, ``{y}`` placeholders — for example:: https://tile.example.com/{z}/{x}/{y}.png 4. If the server uses subdomain rotation, include ``{s}`` in the URL and fill in the **Subdomains** field (e.g. ``abc`` for servers like ``https://{s}.tile.example.com/...``). 5. Set **Min Zoom** and **Max Zoom** to the range advertised by the server. 6. Set **Tile Size** (256 is the most common value). 7. Click **OK** to save. .. index:: single: Adding a Custom WMS Provider Adding a Custom WMS Provider ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Click **Add** in the Map Settings dialog. 2. Set **Type** to ``WMS``. 3. Enter the **Base URL** — the WMS endpoint without any query parameters (e.g. ``https://gis.example.com/wms``). 4. Set **WMS Layers** to the layer name from the server's ``GetCapabilities`` document. 5. Set **WMS Format** to ``image/jpeg`` or ``image/png``. 6. Click **OK** to save. IQcad automatically constructs the full ``GetMap`` URL by appending the required parameters (``SERVICE=WMS&REQUEST=GetMap&...``) with the BBOX computed from the tile coordinates. .. index:: single: MAPBG Command MAPBG Command ~~~~~~~~~~~~~ The ``MAPBG`` command provides quick access to map layer controls from the command line: .. list-table:: :header-rows: 1 :widths: 30 70 * - Option - Description * - ``MAPBG`` - Toggles map visibility on or off. * - ``MAPBG`` > **Opacity** - Sets the opacity percentage (0--100). * - ``MAPBG`` > **Source** - Switches to a different provider by name. * - ``MAPBG`` > **ClearCache** - Clears the downloaded tile cache, forcing tiles to be re-fetched. .. index:: single: Provider Persistence Provider Persistence ~~~~~~~~~~~~~~~~~~~~ Provider definitions are saved in ``settings.json`` at the application level and are shared across all drawings. When an ``.iqz`` drawing that contains custom providers is opened, IQcad auto-merges any new providers into the application list so they are available in future sessions. .. index:: single: Retained Geometry single: Display Performance Retained Geometry (experimental) -------------------------------- For very large drawings --- hundreds of thousands to millions of entities, such as an imported or exploded surface with 1M+ 3D faces --- panning and zooming can become sluggish because the standard renderer re-projects every vertex on the CPU each frame. The **retained geometry** display mode makes these drawings responsive by batching the static wireframe into GPU buffers and projecting it on the GPU, so a change of view only updates a matrix instead of reprocessing every entity. Two techniques keep it fast at any zoom: - **Culling** --- when you zoom in, only the buckets of geometry that overlap the view are drawn. - **Level of detail** --- geometry that is too small to show detail is drawn as a subsampled cloud of points (point-cloud style) rather than full wireframe; the wireframe returns as you zoom in. Turn it on or off with the ``RETAINEDGEOMETRY`` command (``ON`` / ``OFF``; alias ``RETAINED``). It is **off by default** and does not affect normal rendering. ``RETLOD`` tunes the level-of-detail appearance live (``RETLOD FACE `` / ``DENSITY `` / ``PTSIZE ``), and ``RETAINEDSTATS`` reports diagnostics. .. note:: This mode is experimental and is aimed at reviewing large drawings. It currently accelerates the 2D wireframe view; text, dimensions, hatches and dashed linetypes continue to draw through the standard renderer.