[Previous Page] [Next Page] [Integration Kit Contents] [Integration Kit What's New] [Integration Kit Function Index] [More Documentation] [PTC]

Design Information Features

Table of Contents


Introduction to Design Information features

The models produced within Creo Elements/Direct Modeling today can represent the geometry of the parts and assemblies that make up a product design, but we cannot manufacture the part from this 3D model.

Manufacturing a part requires more than just the geometry; it requires information about the design intent and the manufacturing, finishing and  assembly processes and steps required to produce the part. Today additional steps are required to generate 2D drawings and other documentation to detail the manufacturing processes and assembly steps for producing a product. Much of this effort involves the regeneration of the product design in these redundant documents.
 
Design Information features provide a framework for defining and customizing features which document the design and manufacturing information for a product. They provide mechanisms for:

Design Information features can be attached to any level of objects or elements in Creo Elements/Direct Modeling. This includes Assemblies, Parts, Workplanes, Workplane-sets, Faces, Edges, and Vertices. These features may be viewed on the 3D model in the graphics viewport and may also appear in the Structure Browser. The user can generate HTML reports of all or selected subsets of Design Information features.
 


Design Information Feature Definition

A Design Information feature is defined by an SD-DEFFEATURE specification. This is a LISP macro which defines all of the key attributes of the feature including:

The feature definition is required to be loaded for the create, modify and copy operations. If a Design Information feature already exists on a model, but its feature definition is not loaded, Creo Elements/Direct Modeling will automatically try to load its definition when a modify or copy operation is requested. The feature definition will be attempted to be loaded from either the :src-location URL or the :alternate-location URL if it exists. A feature definition can be manually loaded via the load command from either a local source or via a URL (using the sd-retrieve-url function):

(load "c:/users/joe/PTC/DesignInfos/paint.lsp")
(load (sd-retrieve-url "http://www.ptc.com/sd/designinfo/examples/paint.lsp"))

* Reference Manual


Design Information Feature Components

A feature is composed of a number of important components. Some of these components are defined by the feature designer and fixed for each kind of feature. Others are controllable or assignable by the user.

Validity Attribute

This attribute automatically maintains the validity status of the feature. There are 3 values for this attribute:

Type Attribute

The feature type attribute of a feature has two possible values: :geometric and :non-geometric. The feature type affects how the feature reacts to events such as 3D modification events. The types and their behaviors are defined as:

Owner and Attachments

The owner of a feature is always a 3D object. The owner is important because it controls when and how a feature will be filed. The owner depends on the type of feature (geometric or non-geometric) and the item or items to which the feature is attached (the attachments). The owner is not controllable by the user, but is determined by the attachments which are defined either directly (for non-geometric features) or indirectly (for geometric features) by the user.

Geometric features: Geometric features are always attached to 3D faces on a body. The feature may have any number of faces attached to it. The owner is the Part (or parts in the case of shared bodies) that owns the body.

Non-geometric features: Non-geometric features may be attached to either

Behavior Properties

The feature behavior properties are attributes of a feature that are defined by the feature designer. The behaviors define how the feature responds to various events and conditions. The behaviors include:

Appearance Properties

The appearance properties of a feature specify the feature's definition and appearance. These properties are specified by the feature designer, but they can be overridden by a local feature administrator via the sd-cust-feat-local-appearance function. The feature definition properties include:

Transformation Matrix

Each feature maintains its own transformation matrix. Transforms such as translations and rotations are maintained in the transformation matrices of the owning 3D objects. However, a feature maintains its own local scaling transformation.

Variables

A key component of every feature are the feature variables. It is these variables that contain the design information that the feature represents. The feature variables and variable types are defined by the feature designer. However, the values of the feature variables are specified by the user. There are two important kinds of feature variables: value variables and reference variables.

Value variables: These are variables that maintain a user specifiable value. The values of these variables may be affected by transformations of the owning 3D objects or the feature itself. These values are automatically transformed and corrected for the user's units when appropriate. Some variable types such as strings and (unitless) numbers are not transformed, whereas others such as lengths, angles, points, directions, etc. are transformed. Modeling operations performed by the user (such as 3D Align, 3D Taper, Anisotropic scaling, etc.) will cause these values to get out of sync with the geometry for geometric features. In such cases the feature will be invalidated. The user must then revalidate it by modifying the feature.

Reference variables: Reference variables are variables that reference elements on a body (3D elements) or profile (2D elements). These references are not affected by transformations of the owning 3D objects or the feature itself. However, the feature will be invalidated if the referenced element is destroyed. The reference variable is represented by a SEL-ITEM within Creo Elements/Direct Modeling, and a simple string name for the element in the VRML file and HTML report.

Label

Each feature may have a label for identification and selection of the feature from the graphics viewport. The feature designer specifies whether a feature will have a label, and if so, how the label text is generated. This is specified in the :label-str attribute. The label text may be either fixed text, or dynamically generated based on one or more of the feature's variables. Any characters can be used in the label for a feature. The feature label can also include special symbols from the hp_symbols and hp_syms2 font sets via special shift-in and shift-out characters (16/17 for the hp_symbols font and 30/31 for the hp_syms2 font). When a feature has a label, the default is for the label to be displayed. The visibility of individual labels can be controlled by the user through the Show command. The visibility of all labels can be controlled by the user through the Viewport's Sh menu.

Name

Features which are attached to a body (Part by contents) may have a name for identification and selection of the feature from the structure browser. The feature designer specifies whether a feature will have a name, and if so, how the name text is generated. This is specified in the :name-str attribute. The name text may be either fixed text, or dynamically generated based on one or more of the feature's variables. A feature name can consist of only alphanumeric characters or the characters '_', '-', and '.'. Any other characters are converted to an underscore ('_'). Feature names must unique to a 3D object, thus a numeric suffix may be appended to a feature name to make it unique.

The user can change the name of a feature with the Rename command. When a feature is transported from one part to another by operations such as unite, the feature may need to be re-named to ensure that all features have a unique name. To account for user modified names, the feature's current name will be used as the prefix, rather than the :name-str.

Dialog Box

Each feature will have a dialog box as specified by its feature definition to control the specification of its variable values by the user. The feature definition (and hence the dialog definition) must be available in order to create, modify or copy the feature. The dialog name for a feature is the concatenation of the feature's :package name attribute and it's feature name attribute - both defined by the feature designer.

* Reference Manual

Feature Construction

There are three modes of feature construction: :create, :modify and :copy. The same SD-DEFDIALOG is used for all three operations with a mode flag set to distinguish the current operation. The following process is used by the dialog to create the new feature:

  1. The values of the variables are initialized
  2. The user modifies any variables as desired
  3. The feature designer can perform actions in the :after-input form for each variable. Since the feature does not yet exist, the only values that can be used are the values of the dialog variables
  4. If it is a :modify operation, the old feature is destroyed using the :destructor function. If a :destructor function is not supplied, then the default :destructor is used. The default :destructor destroys the feature and for a :geometric feature also removes the geometry
  5. The :constructor form is then evaluated. This form will create the geometry for a :geometric feature, and must return the owning 3D object if a :non-geometric feature.
  6. The new feature is then created and the owner and attachments are assigned. For a :geometric feature the attachments are collected as the newly created faces. For a :non-geometric feature the attachments are determined by the :select-variable.
  7. The feature name and label are then generated and assigned. For a :modify operation, the old label attributes (color, position, size, etc.) are saved and reused.
  8. The feature variables and properties are assigned
  9. The dialog's :ok-action form is then evaluated. The feature designer can execute actions in this form to perform auxiliary operations for the feature - such as setting face colors to that specified by one of the variables, or changing the label color. Since the feature is active and alive at this time, variable values should be retrieved from the feature using the sd-cust-feat-inq-vars function. To get a sel-item to the current feature the function sd-active-cust-feat must be used.
  10. The :verifier function is then run to verify that the feature was correctly constructed. If a :verifier function is not specified by the feature designer, the default is to assume a valid feature.

Feature Labels

Feature labels have several attributes that control their appearance. All of the attributes may be changed at any time through the commands in the Properties sub-menu of the Features menu. The label attributes are:

The default anchor, position and orientation attributes are determined automatically based on the elements that make up the feature. These attributes of a label may change whenever the feature is modified. These attributes are determined as:

The font, size, color and framing of the label are attributes of the label, not attributes of the feature. They are not specified directly in the feature definition, but are set to default values when the label is created. They may be set  independently for each label at any time through the Settings sub-menu of the Properties menu. The values of these label attributes are maintained when a feature is modified.

Selecting Features

Many feature operations require the selection of one or more existing features. The Modify and Copy operations, for example, require the selection of a single feature, while the Report, Highlight, and Show operations will allow multiple features to be selected. There are 4 ways to select a feature:

  1. To select a  feature, any element of the feature may be selected directly by picking the element. If there are multiple features associated with the selected element, then a selection dialog will appear which presents a list of the choices.
  2. A feature may also be selected by picking on its label.
  3. One or more features may be selected from the structure browser.
  4. Multiple features may be selected using the Select dialog.

Organization of Features

The feature designers control the organization of the features they write by specifying the categories to which the feature belongs. Each feature must specify a list of categories. If a category is new, then the category paths  are added to the category tree. The feature is then added to the tree under all appropriate categories. Features are reported in the HTML report sorted and filtered by category. By specifying multiple categories for a feature, the feature designer can allow features to be reported using different sorting and filtering criteria. The category specifications thus create non-exclusive groupings of features.

The category specifications for a feature can be modified by a local feature administrator to account for local report requirements. This is accomplished by over-riding the :category property for a feature using the sd-cust-feat-local-appearance function.

The category tree including the loaded features is displayed in the Design Infos Browser when the Create command is started. An example of this browser is shown below. Note that the feature "Tap Hole" is specified in two categories: "/Documentation" and "/Mfg/machining".

The Design Infos Browser is also displayed for the Report command when filtering by category; however, in this case the category tree is displayed without the features.

Design Information Feature Reports

The Design Information feature report produces an HTML document summarizing a set of user specified features. This report consists of report header and a list of report tables with features sorted by category. The report header contains the following information:

The report tables consist of:

If a feature belongs to more than one category, it may show up in more than one table in the feature report. Some special attributes of the report tables are:

An example feature report is shown below:

Defining Design Information Features

Features are written using the SD-DEFFEATURE macro. They are written in LISP as text files, but can be compiled using the Creo Elements/Direct Modeling LISP compiler along with a C++ compiler. The SD-DEFFEATURE interface defines a set of attributes for the feature. These attributes can be divided into 4 groups:

There are also several LISP functions that can be used in writing the feature:

Finally, a local administrator can set up local feature appearance attributes by using the SD-LOCAL-APPEARANCE function. This function installs local appearance attributes which override those specified in the feature definition.

* Reference Manual

[Previous Page] [Next Page] [Integration Kit Contents] [Integration Kit What's New] [Integration Kit Function Index] [More Documentation] [PTC]
© 2023 Parametric Technology GmbH
(a subsidiary of PTC Inc.), All Rights Reserved