Learn more about the changes happening in nTop 5.20, where we introduce our new curve and profile types and blocks.
What is Happening?
Updated Curve Types
New Polycurve Type
Updated Profile Type
Summary of Type Changes
Summary of Block Changes
FAQ
What is Happening?
Our new curve and profile modeling blocks are being overhauled to allow more modeling in nTop, enabling more design iterations. In this initial release, we’re updating the foundation of the Curve and Profile types. Additional blocks for creating and using Curves and Profiles will be released in the future.
Our new Curve and Profile types are much easier, allowing engineers to use an Arc, Line, Spline, or Polycurve in any “Curve” input. The most immediate change to modeling workflows is the improved ability to create (or import) a string of curves to be extruded, revolved, or swept. This is enabled by the “abstract” Curve type, to which all other curves auto-convert. Profiles and Polycurves can both be created from any combination of curve types. The result of these changes is that nTop’s curve system is much more similar to that of other CAD software.
The old Curve and Profile types are being replaced and will need to be updated manually or created using the new versions of blocks.
Updated Curve Types
We’re introducing four concrete types and one abstract type called Curve. All curve types (Arc, Line, Spline, or Polycurve) can be used in any Curve input. See the table in the “Summary of Block Changes” section for a full list of blocks that use these types. Each type has several unique properties, and all Curves share a set of properties:
Curve Property | Definition |
Arc length field | Length along the curve from the start point |
Bounding box | Bounding box |
Closed | True if start and end point are equal |
End point | End point |
End tangent | Tangent vector at the end point |
Length | Length |
Start point | Start point |
Start tangent | Tangent vector at the start point |
Scalar Field (Conversion) | Distance to the curve |
Curve field properties, from left to right: scalar field, arc length field, start/end tangent
New Polycurve Type
A Polycurve is a new type that represents a connected set of arcs, lines, and splines. It can be open or closed, planar or 3D, but not disconnected or branching. The segments (all Curve type) can be accessed in the properties. A Polycurve can be created with the Polycurve from Curves block
A Polycurve consisting of two lines and two arcs
Updated Profile Type
A Profile is a set of coplanar curves. It has two field properties: the first is the signed distance field to the infinite extrusion relative to the profile’s plane, and the second is the unsigned distance field to the enclosed region.
Profile field properties, from left to right: distance to extrusion, distance to region.
A Profile can also be closed or open. If closed, it can have multiple loops (e.g. several circles inside a rectangle or the disconnected loops of a logo). Open profiles are semi-infinite and can be used in the same blocks as closed profiles. An open profile will be automatically extended and closed with lines if the infinite extensions intersect
Three Profiles, from left to right: closed, closed with multiple loops, and open.
Summary of Type Changes
Old Type | New Type | Summary |
- | Curve | New, “abstract” type. |
- | Polycurve | New type |
Curve (old) | Spline | The old Curve type is deprecated and replaced with the new “Spline” type. |
Arc | Arc | The current type is updated. |
Line Segment | Line | The current type is updated. |
Profile (old) | Profile | The old Profile type is deprecated and replaced with the new Profile type. |
Polygon (old) | - | The Polygon type is deprecated. Use Profile instead. |
Circle (old) | - | The Circle type is deprecated. Circle is now a Profile. |
Summary of Block Changes
Old Block | Old Output Type | New Block | New Output Type | Change |
- | - | Arc by Tangent | Arc | New Block |
- | - | Extruded Cut | Implicit Body | New Block |
- | - | Polycurve from Curves | Polycurve | New Block |
- | - | Polyline | Polycurve | New Block |
- | - | Profile from Curves | Profile | New Block |
Curve from Control Points | Curve (old) | Spline by Control Points | Spline | Updated Block |
Curve through Points | Curve (old) | Spline through Points | Spline | Updated Block |
Circle | Circle | Circle | Profile | Updated Block |
Curve Integral | Scalar | Curve Integral | Scalar | Updated Block (input type change) |
Equidistant Points on Curve | Point List | Equidistant Points on Curve | Point List | Updated Block (input type change) |
Extrude Profile | Implicit Body | Extrude Profile | Implicit Body | Updated Block (input type change) |
Graph by Swept Projection | Graph by Swept Projection | Graph | Updated Block (input type change) | |
Polygon from Points | Polygon | Profile from Points | Profile | Updated Block |
Regular Polygon | Polygon | Regular Polygon | Profile | Updated Block |
Revolve Profile | Implicit Body | Revolve Profile | Implicit Body | Updated Block (input type change) |
Section Body | Profile (old) | Section Body | Profile | Updated Block |
Surface Area | Scalar | Surface Area | Scalar | Updated Block (input type change) |
Sweep Profile | Implicit Body | Sweep Profile | Implicit Body | Updated Block (input type change) |
Implicit Body from Curve | Implicit Body | Property: Curve.Scalar Field | Scalar Field | Moved to Property |
Twisted Sweep Profile |
Implicit Body |
- | - | Deprecated Block (Merged with Sweep Profile) |
Loft between Profiles | Implicit Body | See support article FAQ | - | Deprecated Block |
Offset Profile | Profile (old) | - | - | Deprecated Block |
FAQ
When does this change take place?
- The new Curve and Profile types will be released in nTop version 5.20.
What blocks use the new types?
- All blocks with inputs and outputs of the old type have been updated. This means any block with a Curve or Profile input can be used.
Are there any changes I should make to how I build curve workflows?
- Yes, aside from the general updates described in this article, “Implicit Body from Curve” will be deprecated. Instead, use the Curve's Scalar Field property, which represents the distance to the curve.
Can I import and export curves?
- Yes, curves can be imported and exported as the Curve type.
- For backward compatibility purposes, existing notebooks that use either the Curve property of CAD Edge or the Curves property of an imported Part will have a new block added when the notebook is opened. All new instances of these properties will be the new Curve type.
What are abstract and concrete types?
- An abstract type serves as a template for other types. It defines a general structure and behavior but is not a complete, usable entity. Abstract types such as Curve provide a starting point for creating more specific, concrete types such as Arc, allowing them to share common characteristics and behaviors.
I’m using the old curve and profile types. How will this affect my work? Can I continue using them?
- The old curve and profile types will be renamed to “<type name> (old)”. They can still be used, but blocks using these types will be deprecated. The results will not change, and they can continue to be used.
Why was a new block inserted where I was using the Curve property of a Part or CAD edge?
- If a CAD Edge was used, a new block, Curve from CAD Edge, will be added to the notebook when opening in 5.20. This is for backward compatibility purposes.
How do I thicken a Curve?
- To thicken a curve, drag the scalar field property of the curve into the Thicken Body block.
I’m running into problems concatenating lists of different curve types. What should I do?
- Only lists of the same type can be concatenated. To do this, make each input curve type list a variable and change the type of each variable to Curve using the dropdown on the left of the variable. Then, the lists should work in the Concatenate Lists block.
Will the new blocks give me the same output?
- Yes, except Section Body.
- The behavior of Section Body version 5.20 will be different from previous versions. Previously, Section Body would return an exact extrusion of the input Body’s field at the specified plane. In version 5.20, Section Body will first extract a curve approximation of the Body’s surface at the plane and then create an extrusion field from those curves. To create an exact extrusion without first creating boundary curves, use the technique presented in the custom block in this demo file. This block allows an identical result to be created.
Are any blocks deprecated without a new version?
- Implicit Body from Curve will be deprecated without a direct replacement block. To achieve the same output, use the new “Scalar Field” property of any Curve.
- Loft between Profiles will be deprecated without a direct replacement block. To achieve the same output, use the technique presented in the custom block in this demo file.
- Offset Profile will be deprecated without a direct replacement block. To achieve a similar output, use the Offset Body block on the “distance to extrusion” property followed by Section Body.
- Twisted Sweep Profile will be deprecated without a new version. The block has been combined with Sweep Profile, which now has the “Starting Rotation” and “Ending Rotation” inputs.