====== Model Type: Revolution 1.0 ====== ^ **Figure 20: Revolution Geometry Model** ^ | {{:ig:gfx:modelprocessor:model_revolution_graphic.png?nolink&600|}} | ^ Caption ^ | Revolution geometry. The 3D surface is generated by revolving the profile defined by points for example $a$--$b$--$c$--$d$ around the vertical axis. These points form the generating curve of the solid, precomputed to create smooth filled quad strips. | The **Revolution 1.0** model generates a 3D solid or surface by revolving a 2D **profile** around a specified axis. This is ideal for turned or **axisymmetric parts** (vases, domes, bases, circular panels). The generating curve is defined in the **''paths''** array and is interpreted in the plane orthogonal to the chosen axis. * **Purpose:** Create revolved geometry (e.g., handles) by revolving a 2D path around an axis. * **Supports:** Full or partial revolutions (sweep angle). **Closed profiles** make solids, **open profiles** make surfaces (like vases or bottles). * **Recommended For:** Rotationally symmetric geometry such as turned bases, bowls, domes, circular trims, and circular tables. [] *Figure: Revolution geometry. The 3D surface is generated by revolving the profile defined by points (e.g., $a$--$b$--$c$--$d$) around the vertical axis. These points form the generating curve of the solid.* {{newpage}} === Required Parameters === * **''paths''** (array): Defines one or more 2D profiles. Each profile must have a unique **''id''** and a **''path''** array describing the curve (SVG-like commands). The **''profile''** parameter below references an **''id''** from this array. * **''revolution''** (object): Contains the operation parameters. === revolution (object) Parameters === | Parameter | Type/Enum | Required | Default | Description | | :--- | :--- | :--- | :--- | :--- | | **profile** | string | Yes | - | The **''id''** of the path (from **''paths''**) to be revolved. *Example:* ` { "profile": "revolveProfile" } ` | | **axis** | string ["x","y","z"] | No | "z" | The axis around which the profile is revolved. | | **angle** | number (degrees) | No | 360 | Sweep angle of the revolution. Values $<360$ produce partial, often open, geometry. | | **centerOffset** | number (mm) | No | 0 | Distance to shift the rotation center relative to the profile (for off-axis parts). | --- === Optional Parameters === * **''quality''** (number): Controls tessellation density (default: 25). Higher values yield smoother surfaces. * **''uv''** (object): UV mapping parameters. (See //UV Coordinates// section.) * **''shading''** (object): Shading/hint parameters. (See **''shading''** section.) === Important Notes === * The **''profile''** referenced in **''revolution.profile''** must exist in the **''paths''** array. * **Closed profiles** create watertight solids; **open profiles** create surfaces. * Curved commands (**C**, **Q**, **A**) require a suitable **''quality''** value to prevent faceting or self-intersections, especially near the rotation axis. * Partial sweeps (angle < 360) produce open geometry. Exercise caution when exporting to formats (like STEP) that require watertight solids. //This section describes the geometry generation behavior of the Revolution 1.0 model, applicable in IG.Model.Processor version ≥ 1.4.0.100.//