| Next revision | Previous revision |
| ig:gfx:model-type-revolution [2025/10/29 11:05] – created ig_ii | ig:gfx:model-type-revolution [2025/10/29 15:23] (current) – ig_ii |
|---|
| ====== Model Type: Revolution 1.0 ====== | ====== Model Type: Revolution 1.0 ====== |
| |
| The **Revolution 1.0** model generates a 3D solid or surface by revolving a 2D profile around a specified axis. This model 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. | ^ **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. | |
| |
| * **Purpose:** Create revolved geometry like handles by revolving a profile (2D path) around an axis. | |
| * **Supports:** Full or partial revolutions (sweep angle); closed profiles produce solids, open profiles produce surfaces like vases, bottles or similar. | 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. |
| * **Recommended For:** Rotationally symmetric geometry such as turned bases, bowls, domes, and circular trims, also circular tables. | |
| | * **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 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.* | *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}} | {{newpage}} |
| |
| === Required Parameters === | === Required Parameters === |
| |
| * **''paths''** (array): One or more 2D profiles. Each profile object must include a unique **''id''** and a **''path''** array that describes the generating curve using move/line/curve/arc commands (SVG-like). The **''profile''** parameter below references an **''id''** from this array. | * **''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 (see below). | * **''revolution''** (object): Contains the operation parameters. |
| |
| === revolution (object) === | === revolution (object) Parameters === |
| **Type:** //object// **Required:** Yes | |
| |
| * **profile** | | Parameter | Type/Enum | Required | Default | Description | |
| **Type:** //string// **Required:** Yes | | :--- | :--- | :--- | :--- | :--- | |
| The **''id''** of the path (from **''paths''**) to be revolved. | | **profile** | string | Yes | - | The **''id''** of the path (from **''paths''**) to be revolved. *Example:* ` { "profile": "revolveProfile" } ` | |
| *Example:* ` "revolution": { "profile": "revolveProfile" } ` | | **axis** | string ["x","y","z"] | No | "z" | The axis around which the profile is revolved. | |
| * **axis** | | **angle** | number (degrees) | No | 360 | Sweep angle of the revolution. Values $<360$ produce partial, often open, geometry. | |
| **Type:** //string// **Enum:** ["x","y","z"] **Default:** "z" **Required:** No | | **centerOffset** | number (mm) | No | 0 | Distance to shift the rotation center relative to the profile (for off-axis parts). | |
| The axis around which the profile is revolved. The profile is interpreted in the plane orthogonal to this axis. | |
| * **angle** | |
| **Type:** //number// **Unit:** degrees **Default:** 360 **Required:** No | |
| Sweep angle of the revolution. Values $<360$ produce partial revolutions (open solids may result). | |
| * **centerOffset** | |
| **Type:** //number// **Unit:** mm **Default:** 0 **Required:** No | |
| Distance to shift the rotation center relative to the profile (useful to create off-axis revolved parts). | |
| |
| --- | --- |
| === Optional Parameters === | === Optional Parameters === |
| |
| * **''quality''** (number): Controls tessellation density (default: 25). Higher values yield smoother latitudinal tessellation of the revolution surface. | * **''quality''** (number): Controls tessellation density (default: 25). Higher values yield smoother surfaces. |
| * **''uv''** (object): UV mapping parameters (see //UV Coordinates//). Values available as top-level or within this object. | * **''uv''** (object): UV mapping parameters. (See //UV Coordinates// section.) |
| * **''shading''** (object): Shading/hint parameters (see **''shading''** section below). | * **''shading''** (object): Shading/hint parameters. (See **''shading''** section.) |
| |
| === Important Notes === | === Important Notes === |
| |
| * The **''profile''** referenced in **''revolution.profile''** must exist in the **''paths''** array. Use the profile's **''id''** to reference it. | * The **''profile''** referenced in **''revolution.profile''** must exist in the **''paths''** array. |
| * **Closed profiles** produce watertight solids when revolved; **open profiles** produce surfaces. This profiles still should have inner volume. | * **Closed profiles** create watertight solids; **open profiles** create surfaces. |
| * Curved commands (e.g., **C**, **Q**, **A**) require a suitable **''quality''** value to avoid visible faceting or self-intersections, especially when the profile lies near the rotation axis or includes tight curvature. | * 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; take care when exporting formats that expect watertight solids (STEP). | * 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.// | //This section describes the geometry generation behavior of the Revolution 1.0 model, applicable in IG.Model.Processor version ≥ 1.4.0.100.// |