Component:Space Warping
From DocR21
The Space Warping Component (WARP) uses the ACIS law functionality to warp entities and parts. Warping includes modifications such as warping according to an input law (simply called "warping"), bending, twisting, stretching, and nonuniform scaling. Laws also provide support for space warping in conic surfaces and conic trough surfaces.
WARP provides APIs and Scheme extensions to support warping with laws. (Refer to the Laws Component for details on the law classes.)
The low-level implementation of laws in Scheme uses APIs and law string parsing to create C++ classes from law function strings enclosed in quotation marks. In Scheme, the strings used to define laws are not case-sensitive, but when returned from a law function, the lower-case letters are converted to upper-case letters.
The law functions are very similar to common mathematical notation, and are parsed the way that mathematical equations are. For example, the equation f(x,y) = x2 + cos(x) − sin(y) becomes the law function X^2+COS(X)-SIN(Y), with a two-dimensional domain and a one-dimensional range.
| Operation | Description |
|---|---|
| Warping with Laws | Warp an ACIS body, according to a one-to-one law mapping R3 to R3. |
| Bending | Bend a solid model around a given axis, within a given region. |
| Twisting | Twist all or part of a body about a specified axis. |
| Stretching | Stretch a body along the given axis, within a given region. |
Warping
outcome api_space_warp(body_to_warp, law_defining_deformation)
Bending
outcome api_bend_entity (body_to_bend, axis_definition, twist_direction, twist_ammount)
Twisting
outcome api_twist_entity (body_to_twist, base positions, angles)
Stretching
outcome api_stretch_entity (body_to_stretch, limiting positions, distances, continuity)
Global Options
See Warping Options
