List of: Discussion Topic
Subjects: Patterns
Contents: Kernel

Solid modeling often involves the repetition of features or objects arranged in a regular or irregular manner (copied and transformed), which may be referred to as patterns (refer to Figure 4-1). Examples of patterns include the radial arrangement of holes in a shower head, the linear grating of ventilation holes on a computer monitor, or the treads on a tire. Implementing such patterns can become unnecessarily burdensome, especially when the number of repetitive elements grows large.

Figure 4-1. Pattern of Grooves

The ACIS patterns functionality is intended to reduce this burden by giving programmers tools that facilitate pattern creation and modification. These tools include the pattern class and several functions and methods for working with patterns.

A pattern object is created and applied to an entity or feature. An entity to which a pattern is applied is called a seed entity. A pattern object defines the transformations needed to generate the way multiple copies of the seed entity are to be arranged and scaled in a model. The transformations may be given as a simple list, to be merely wrapped by the pattern object. However, the transformations for regular patterns can be expressed more efficiently in terms of ACIS laws.

By using the ACIS pattern tools, a developer can expect to realize the following advantages:

It is simpler to create any of a large class of patterned solids
Features generated by repetitive Boolean operations can be generated with a single such operation, enhancing performance
SAT files can be substantially compressed, especially with large, regular patterns

With the ACIS patterns functionality, an application can:

Create a variety of pre-built geometric patterns in one, two, or three dimensions (linear, hexagonal, circular, elliptical, polar, cylindrical, spherical)
Create patterns that follow curves and surfaces, both in position and in orientation
Create patterns based on lists of positions or transformations
Create scaling patterns (i.e., patterns that scale elements in a regular fashion)
Create patterned filters to remove or retain elements in a regular fashion
Move, rotate, scale, or remove individual elements within an existing pattern
Apply random rotations or translations to pattern elements to create partially randomized patterns
Compose patterns with one another (e.g., a circular pattern of linear arrays)
Concatenate patterns with one another (e.g., a circular pattern linked to the end of a linear array)
Reflect and mirror patterns