Opti*ProTM for Pro/ENGINEER®

User Guide


Notices
Evaluation and verification of operation in conjunction with other products are the user's responsibility.

Trademarks
Jerand and Opti*ProTM are trademarks of Jerand Technical Services, Inc.
OptimationTM is a trademark of Optimation, Inc.
Pro/ENGINEER® and Pro/TOOLKIT® are registered trademarks of Parametric Technology Corporation.
UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Limited.
Windows and Windows NT are either registered trademarks or trademarks of Microsoft Corporation
Portions of the extended regular expression processing for the Windows version is copyright 1992, 1993, and 1994 by Henry Spencer
All other trademarks are owned by their respective companies.

© COPYRIGHT JERAND TECHNICAL SERVICES, INC. 1997-2006. ALL RIGHTS RESERVED.

9011 Butternut Court
Indianapolis, Indiana 46260-1526
1-317-875-6087
1-888-OPTIPRO (678-4776) US Toll Free
FAX: 1-317-875-6087
EMAIL: jerand@jerand.com
WWW: www.jerand.com

PTC Partner Advantage Program Member


TABLE OF CONTENTS

Chapter 1
INTRODUCTION TO Opti*Pro for Pro/ENGINEER

Introduction
Conventions

Chapter 2
INSTALLING Opti*Pro for Pro/ENGINEER

Downloading Software
Installing Opti*Pro and License Manager Files
Configuring the License Manager
Obtaining Licenses
Installing Licenses
Configuring Opti*Pro

Chapter 3
USING Opti*Pro for Pro/ENGINEER

Interactive Mode
Batch Mode

Chapter 4
Opti*Pro CONFIGURATION OPTIONS USAGE

Bend Lines
Component Selection
Cosmetic Marking
Datum Curves
Dynamic Text Marking
Export Options
Flat Pattern Type
Grain
Item Specification
Layer Names and Numbers
Orientation Priority
Output Directory
Output File Name

Appendices

APPENDIX A
Opti*Pro Configuration Options APPENDIX B
Customizing Pre-Programmed Input


Introduction to Opti*Pro for Pro/ENGINEER

Chapter 1


Introduction

This manual describes the Opti*Pro for Pro/ENGINEER family of products consisting of Opti*Pro/Part and Opti*Pro/Assembly.

Opti*Pro/Part provides an interface from Pro/ENGINEER sheet metal mode or part mode to the Optimation family of CAM products.

Opti*Pro/Part operates on a Pro/ENGINEER part that is flat or for which a flat pattern exists. Configuration options inform the software about the part's orientation, how flat patterns are defined, layer definitions, and pre-programmed input.

Opti*Pro/Assembly provides an interface from Pro/ENGINEER assembly mode.

Opti*Pro/Assembly operates on a Pro/ENGINEER assembly model. Based upon user configuration options, it decides which parts in the assembly will be exported.

Opti*Pro modules can be invoked either interactively or non-interactively. The interactive user interface maintains the Pro/ENGINEER look and feel.

When Opti*Pro/Part is invoked interactively, the designer retrieves the flat part. He can then determine if the part is indeed flat. Pre-programmed input (PPI) can be assigned; part number and material are extracted from the model. Finally, the part geometry and PPI are exported to the Optimation products.

Opti*Pro/Part can be invoked non-interactively by utilizing a non-graphics session of Pro/ENGINEER. Opti*Pro first retrieves the specified flat parts. It then extracts PPI from the part model and assigns PPI from the suspend file. Finally, the part geometry and PPI are exported to the Optimation product.


CONVENTIONS

The format of this manual is similar to those manuals, which accompany Pro/ENGINEER. The following conventions have been used throughout this manual:

Boldface Indicates a menu option. However, it will appear in bold type only when the name refers to the actual option.
UPPERCASE Indicates the name of a menu.
keyboard Information to be entered using the keyboard appears in this font: enter this.
Characters between the <> symbol indicate a specific key on the keyboard.
Reference When referencing other sections of this document or other documentation, the reference will be in italics.
Emphasis Information being emphasized will appear in bold italics.
Mouse All mouse clicks assume a mouse configured for right hand operation.


Installing Opti*Pro
for Pro/ENGINEER

Chapter 2


Downloading Software

Download the software from Jerand's web site (www.jerand.com). Select "Download Software". Select each product (License Manager, Opti*Pro/Part, andOpti*Pro/Assembly) desired for the desired operating system and save to disk. Extract each download into its own folder.

Installing Opti*Pro and License Manager Files

The following steps describe how to install Opti*Pro and the Jerand License Manager.

Windows Installation


Note: Administrator privileges are needed for the installation of the license manager. All other products can be installed with user privileges.

For each product to be installed, run 'setup.exe' from the folder into which the files were extracted. A product directory will be created under the folder specified. For example, when installing Opti*Pro/Part, choosing the default folder C:\Program Files\Jerand will create a folder C:\Program Files\Jerand\optipropart for the software.

UNIX Installation


Note: Root privileges are needed for the installation of the license manager. All other products can be installed with user privileges.

For each product to be installed, change to the extracted directory and run ./jinstall'. A product directory will be created under the directory specified. For example, when installing Opti*Pro/Part, using the directory /home will install Opti*Pro/Part in /home/jerand/optipropart.

Configuring the License Manager

The Jerand License Manager is based on the Sentinel LM License Manager from SafeNet (www.safenet-inc.com). The System Administrator's Guide is installed in the jerand/lm/text/documentation directory. It requires Internet Explorer.

The following steps describe how to configure the Jerand license manager. It is suggested that this series of steps be performed as the root (UNIX) user or administrator (Windows). Note that the license manager supports redundant license servers. On each license server machine, the license manager must be configured. The install script: (1) places the license server start and stop commands in the required directories so that the license server will automatically start when the system is booted, and (2) starts the license server.

Appendix A "Using Environment Variables to Configure a License Server" of the System Administrators Guide discusses setting environment variables to configure the license server.

Another environment variable affects the licensing behavior of Opti*Pro. This variable is optional but setting it may improve license availability when multiple users are accessing a limited number of licenses. Under normal operation, a license is taken when Opti*Pro starts and released when the program stops. However, to take and release a license only when the Export function is used, set the variable JERAND_LIC_DEFER with value of "DEFER."


Obtaining Licenses

The following steps describe how to obtain licenses for Opti*Pro.

Support for multiple license servers is available using the license manager. For each workstation to be used as a license server, a locking code must be generated.

  1. To generate a locking code, use the command in the jerand\lm\obj directory,:
    echoid
  2. Send the server code(s) to Jerand (email: licenses@jerand.com, fax: 1-317-875-6612, or voice: 1-317-875-6087 or 1-888-OPTIPRO).
  3. Jerand will supply the license file by e-mail.


Installing Licenses

The following steps describe how to install licenses for Opti*Pro.

Windows

  1. Start the WlmAdmin license administration utility:
    Start/Jerand License Manager/Administer Licenses
  2. Expand "Subnet Servers".
  3. Right click on name of license server computer.
  4. Select from the cascading menus:
    Add Feature/From a File/To Server and its File
  5. In the "Open" dialog box, select the license file and then the "Open" button.

Configuring Opti*Pro

The following table shows the correspondence between Pro/ENGINEER version names and the version number used by Opti*Pro.

Version Name Version Number (nn)
Wildfire 24
Wildfire 2.0 25
Wildfire 3.0 26

Windows Configuration

Based upon the choices made, the installation program creates the appropriate files in the directories "optipropart\i486_nt" and "optiproassy\i486_nt". The files "oppartnn.dat" and "opassynn.dat" describe Opti*Pro to Pro/ENGINEER. To tell Pro/ENGINEER where Opti*Pro resides, copy lines from the "config.pro" files in these directories to your "config.pro" file.

Processing of the pre-programmed inputs (PPI) can be controlled by changing two text files. Both of these files are located under the "\jerand\optipropart\text\usascii" directory. These two files are "ppi.fmt" and "optipro_ppi.mnu". The first file, ppi.fmt, determines the format, range of values, and visibility of each pre-programmed input. To make a PPI visible and exportable, set "VISIBLE=YES". The "optipro_ppi.mnu" contains the menu item name for each PPI and the one line help string.

For further information on the format, modification, or addition of PPIs, please refer to Appendix B.

UNIX Configuration

In the following steps, machine_type can be hp8k, sgi_elf4, or sun4_solaris. Also, jerand refers to the fully qualified name of the directory created when installing the files. The environment variable MC is set when Pro/ENGINEER starts.

Edit the file(s) "/jerand/optipropart/machine_type/text/optipropart.dat" for each machine type on which Opti*Pro/Part is to run and the file(s) "/jerand/optiproassembly/machine_type/text/optiproassembly.dat" for each machine type on which Opti*Pro/Assembly is to run. On the line starting with "exec_file", change "jerand" appropriately. On the line starting with "text_dir", change "jerand" appropriately.


Note: Opti*Pro software was developed using the capabilities of Pro/TOOLKIT. The Pro/ TOOLKIT User Guide is available when Pro/TOOLKIT is installed. The User's Guide section entitled "Pro/TOOLKIT Registry File" details all of the fields in the registry file (optipropart.dat and optiproassembly.dat).

To an appropriate config.pro file (proe_loadpoint/text/config.sup, proe_loadpoint/text/config.pro, $HOME/config.pro or startup/config.pro), add the following lines as required. For Opti*Pro/Part, add "toolkit_registry_file /jerand/optipropart/$MC/optipropart.dat".. For Opti*Pro/Assembly, add "toolkit_registry_file /jerand/optiproassembly/$MC/optiproassembly.dat". In the above lines, "jerand" refers to the fully qualified name of the directory created when installing the files.

Processing of the pre-programmed inputs (PPI), can be controlled by changing two text files. Both of these files are located under the "/jerand/optipropart/text/usascii" (UNIX) or directory. These two files are "ppi.fmt" and "optipro_ppi.mnu". The first file, ppi.fmt, determines the format, range of values, and visibility of each pre-programmed input. To make a PPI visible and exportable, set "VISIBLE=YES". The "optipro_ppi.mnu" contains the menu item name for each PPI and the one line help string.

For further information on the format, modification, or addition of PPIs, please refer to Appendix B.


Using Opti*Pro
for Pro/ENGINEER

Chapter 3


Interactive Mode

Opti*Pro/Part can be used interactively in either sheet metal or part modes while Opti*Pro/Assembly can be used interactively in assembly mode.

If either Opti*Pro/Part or Opti*Pro/Assembly is set to start automatically, the Opti*Pro menu item appears on the menu bar. Items on the Opti*Pro menu are enabled based upon the type of object (e.g. part, assembly, drawing) in the current window.

Starting and Stopping Opti*Pro

Opti*Pro can be started and stopped either automatically or manually.

Statements in the files oppartnn.dat or optipropart.dat and opassynn.dat or optiproassembly.dat control when Opti*Pro can start and stop with respect to the Pro/ENGINEER session (see "Configuring Opti*Pro" in the previous chapter). If the Opti*Pro module is not running, use the Tools/Auxiliary Application/Start command at any time during the Pro/ENGINEER session to start it. To stop the module and release the license, use the Tools/Auxiliary Application/Stop command at any time during the session while Opti*Pro is running.

If the environment variable JERAND_LIC_DEFER has a value of "DEFER", Opti*Pro will start. Otherwise, if there is a license available for use, then the Opti*Pro module will start. If there are no licenses available, then Opti*Pro will refuse to start, and a message will appear in the message window stating that no licenses were available for use.

An Opti*Pro/Part license may be active when either Opti*Pro/Part or Opti*Pro/Assembly is running. An Opti*Pro/Assembly license is active when Opti*Pro/Assembly is running.

Opti*Pro/Part Main Menu Structure

Opti*Pro/Part enables up to five items on the Opti*Pro menu: Export, Flat Check, NCExpert, PPI, and Support Info.

Export

The Export option exports the part data to a file. All edge data for the selected surface and all PPI data will be stored in a new file.

The edges that are exported are found by looking at a reference surface and all surfaces that are co-planar to it. Only the edges not shared between these surfaces are exported: the outline of the set of co-planar faces is output.

The acceptable types of edges are lines, arcs, and B-splines.

There are four steps in this procedure:

  1. On pressing the Export option the user will be prompted for a file name in which to save the IGES and PPI data. The file part_name.igs will be stored in the output directory specified in the configuration file optipro.cfg. (See option output_directory in Chapter 4.) If no output directory is specified, all exported files will be saved in Pro/ENGINEER's current working directory.

  2. The export surface must be determined. The configuration options in the configuration file optipro.cfg determine which surfaces are exported and how these surfaces are oriented.


    Note: If a valid orientation and base surface cannot be determined from the options in the configuration file, the message 'Export Failed' will appear in the message window, and the export will stop.

  3. Next, Opti*Pro/Part checks to make sure that the part is flat. If the part is not flat, export will fail unless the export_not_flat option is set to 'yes' or 'true' in the optipro.cfg configuration file. [(See Chapter 4 for more on this option.)

  4. If the part passes the previous check, all appropriate edges are exported to the output file, along with all pre-programmed input data. If Opti*Pro/Part cannot write to the specified output directory, the export will fail.


    Note: The export_not_flat option can be set to 'no' or 'false' to ensure that no non-flat parts are exported accidentally.

Flat Check

The Flat Check option in the main Opti*Pro menu checks the current part to be sure that it is flat. First, Opti*Pro selects a 'base' surface; a surface that Opti*Pro will use as a reference for Flat Check calculations. This surface is generally the largest surface in the part, or can be set using the options in the optipro.cfg configuration file. (See Chapter 4.) Once this surface has been determined, the Flat Check routine examines the part for flatness.

A part is considered to be 'flat' if all other faces or surfaces are either parallel or perpendicular to the determined surface at all points.

If both of these conditions are met, then the part is considered to be 'flat'. Otherwise, the message 'Part is NOT flat' will appear in the message window at the bottom of the screen.

This process may take several seconds.

NCExpert

When the NCExpert menu item is selected, the Export processing is performed and then a batch or script file is invoked. Typically, Optimation's NCExpert module is started. The batch file name is specified by the environment variable 'OPTIPRO_NCEXPERT_PATH'. If this variable is not set, the menu item will not be displayed. The name of the output file created by the export processing is passed as the first argument.

PPI

When the PPI menu item is selected, a listing of all current Pre-Programmed Inputs will be shown. The user may then select each item individually in order to change the values of these inputs.

The Show All item at the bottom of the PPI menu will bring up a message window that displays all the PPI's and their current values.

PPI Done will return the user to the Opti*Pro main menu.

Support Info

The Support Info displays support information (including sales, technical, license, and documentation) in an information window.

Opti*Pro/Assembly Main Menu Structure

Opti*Pro/Assembly enables four items on the Opti*Pro menu: Export, NCExpert, PPI, and Support Info.

Export

The Export option exports data for the selected parts to individual files.

NCExpert

When the NCExpert menu item is selected, the Export processing is performed and then a batch or script file is invoked. Typically, Optimation's NCExpert module is started. The batch file is specified by the environment variable 'OPTIPRO_NCEXPERT_PATH'. If this variable is not set, the menu item will not be displayed. The name of the output file created by the export processing is passed as the first argument.

PPI

When the PPI menu item is selected, a listing of all current Pre-Programmed Inputs will be shown. The user may then select each item individually in order to change the values of these inputs.

The Show All item at the bottom of the PPI menu will bring up a message window that displays all the PPI's and their current values.

PPI Done will return the user to the Opti*Pro main menu.


Note: The PPI variable "GANGFRM" in the assembly contains the quantity of the assembly required for the order. This value is multiplied by the number of occurrences of each part in order to determine the total number required for each part; this value is placed in the "GANGFRM" variable for each part. "GANGFRM" must be visible for this function to work.

Support Info

The Support Info displays support information (including sales, technical, license, and documentation) in an information window.

Batch Mode

When used in batch mode, Opti*Pro must be started when the Pro/ENGINEER session is started. Opti*Pro batch may use the non-graphical mode of Pro/ENGINEER.

To have Opti*Pro start when Pro/ENGINEER is started, the files optipropart.dat and optiproassembly.dat must have the line which starts with 'delay_start' be 'delay_start false'. Alternatively, these files can be copied and the copied file be edited.

To start Pro/ENGINEER in non-graphical mode, enter the command to start Pro/E, (e.g. proe) followed by '-g:no_graphics' or '/g:no_graphics'. The complete line should look similar to:

proe -g:no_graphics arguments

The following is a list of command line arguments and their meanings:

Argument Meaning
+Aassy_file_name Assembly file name
+Llog_file_name Log file name (processing log)
+Odirectory Output file directory name
+Ppart_file_name     Part model name
+Ssuspend Suspend file name

The command line argument "+Aassembly_file_name" will request that geometric and PPI data be extracted from parts in assembly_file_name and be placed in the appropriate output files. This option is available only with Opti*Pro/Assembly. To process assemblies not in the current directory, use the config.pro options search_path or search_path_file.

The command line argument "+Llog_file_name" will request that a log file be created. For each file processed, the file will contain one line that includes the object name, completion status, and possibly an error message.

The command line argument "+Odirectory" will request that the output files be placed in directory. The configuration option "output_directory" can also be used.

The command line argument "+Ppart_file_name" will request that geometric and PPI data be extracted from the file part_file_name and be placed in the file part_file_name.igs. To process assemblies not in the current directory, use the config.pro options search_path or search_path_file.

The command line argument "+Ssuspend" tells the software that the file suspend contains a list of objects to be processed with one object per line. Optionally, pre-programmed inputs can be included as shown in the example:

wrkcntr=wrkcntr1
grain = n
part_file_name1.prt wrkcntr=wrkcntr2 cost=3
part_file_name2.prt
asm_file_name1.asm

Suspend File Example


Opti*Pro
Configuration Option Usage

Chapter 4


Opti*Pro has many different options available. The file optipro.cfg controls these configurations.

There may be more than one optipro.cfg file in the program's path.


Bend Lines

Bend lines in sheet metal features are represented by datum axes. Opti*Pro allows processing of bend lines.

Several configuration options control bend line processing. Options allow for automatically selecting the bend lines to be processed.

To specify the axes which are to be processed, item_name statements are required. The last field on the item_name statement is a regular expression selecting the bend lines. (See the example below.)

To specify the layers on which the bend lines are exported, a layer statement is required for each item_name statement.

In the configuration file

To use these options in the optipro.cfg file, the following lines in the file are necessary:

allow bendline
item_name bendline
layer

example 12:

In an optipro.cfg file, the lines:

allow bendline yes
item_name bendline A_[0-9]*F
item_name bendline A_[0-9]*B
layer A_[0-9]*F 3 0 0
layer A_[0-9]*B 4 0 0

instruct Opti*Pro/Part that bend lines (sheet metal feature datum axes) whose names match the regular expression "A_[0-9]*F" (e.g. A_3F, A_49F) are to be exported on layer 3, font 0 and color 0. Similarly, bend lines whose names match "A_[0-9]*B" (e.g. A_4B, A_27B) are to be exported on layer 4, font 0 and color 0.


Component Selection

This option is for use with Opti*Pro/Assembly. Component parts to be exported from the assembly are selected using one or more of the selection criteria:

  1. Name_prefix: All parts having a name which is some characters followed by the assembly name will be selected for export.
  2. Name_suffix: All parts whose names are composed of the assembly name and one or more following characters will be selected for export.
  3. Part_parameter: Opti*Pro/Assembly will select parts based upon a parameter of the specified name and optional values.

In the configuration file

To use these options in the optipro.cfg file, the following lines in the file are necessary:

assembly_component_selection
part_parameter

example 8:

In an optipro.cfg file, the line:

assembly_component_selection name_suffix

instructs Opti*Pro/Assembly to select from the assembly named 'ABCD' parts with names 'ABCD_123' and 'ABCD_456'. Parts with names '123' and 'ABC_1' would not be selected.

example 9:

In an optipro.cfg file, the lines:

assembly_component_selection part_parameter
part_parameter vendor

instruct Opti*Pro/Assembly select all parts containing the part parameter 'vendor' to be selected.


Cosmetic Marking

Cosmetic features may be processed by Opti*Pro/Part. Special processing is done for those cosmetic features containing text entities in the section. Substitution will be performed for some text strings when the output file is generated. If the section text is "¶meter", where parameter is the name of a valid part parameter, the value of the parameter will be used. If the section text is "&model_name" or "rel_model_name()", the model name (part name) will be substituted.

A layer statement is required to specify the layer on which the cosmetic marking is exported.

In the configuration file

To process cosmetic feature geometry, use these options in the optipro.cfg file:

allow cosmetic
layer OPTI*PRO_DEFAULT_COSMETIC

example 13:

In an optipro.cfg file, the lines:

allow cosmetic yes
layer OPTI*PRO_DEFAULT_COSMETIC 3 0 0

instruct Opti*Pro/Part that cosmetic geometry is to be exported on layer 3, font 0 and color 0.

To process cosmetic feature text, use these options in the optipro.cfg file:

allow cosmetic
layer OPTI*PRO_DEFAULT_COSMETIC_TEXT

example 14:

In an optipro.cfg file, the lines:

allow cosmetic yes
layer OPTI*PRO_DEFAULT_COSMETIC_TEXT 4 0 0

instruct Opti*Pro/Part that cosmetic text is to be exported on layer 4, font 0 and color 0.


Datum Curves

Datum curve features may be processed by Opti*Pro/Part. Layer statements are required to specify the layers on which the datum curves are to be exported.

In the configuration file

To process datum curve feature geometry, use these options in the optipro.cfg file:

allow datumcurve
layer

example 15:

In an optipro.cfg file, the lines:

allow datumcurve yes
layer OPTI*PRO_DEFAULT_DATUMCURVE 3 0 0

instruct Opti*Pro/Part that datum curve geometry is to be exported on layer 3, font 0 and color 0.


Dynamic Text Marking

Dynamic text marking, also referred to as marking, places into the output file geometry for marking text characters.

Several configuration options control marking. Options allow for specifying the font, the geometry used to locate the marking, and the text string to be marked. During the export step, the user must select references to locate the marking.

To specify the layers on which the marking is exported, layer statements for the layers OPTI*PRO_DEFAULT_MARKING and OPTI*PRO_DEFAULT_MARKING_TEXT are used.

A character font must be specified with the marking_font configuration option. A font consists of a Pro/ENGINEER section file for each character, which may be marked, and a section file (template) describing the placement of the characters. One or more fonts can be present. Each font is in a sub-directory whose name is the font name. The font sub-directories are in a directory named "font" which is a sub-directory of the directory specified by the text_dir entry in the optipro*.dat file.

Specify the template to be used with the marking_template configuration option. A template locates the characters to be marked. The template is a Pro/ENGINEER section file consisting of coordinate systems. Origin of the template is determined by the first coordinate system. Characters are then placed on subsequent coordinate systems within the template section.

Text to be marked is specified using the marking_ text configuration option. The string represents a valid right hand side of a relation and is converted to a string.

When the part geometry is exported, the user specifies two perpendicular edges to locate the text. The marking_selection_type and marking_selection_name configuration options control the geometry, which may be selected for the orientation. The part model must contain this feature and it must be placed on the surface being exported.

In the configuration file

To use these options in the optipro.cfg file, the following lines in the file are necessary:

allow marking
marking_font
marking_template
marking_selection_type
marking_selection_name
marking_text

example 11:

In an optipro.cfg file, the lines:

allow marking yes
marking_font font1
marking_template template1
marking_selection_type UDF
marking_selection_name PN
marking_text part_number+"_"+rev_level

instruct Opti*Pro/Part that the result of the evaluation of the relation "part_number+"_"+rev_level" will be marked using the character set in font "font1", located by the template "template1" and that the text will be located by the user selecting horizontal and vertical references from the UDF named "pn".


Export Options

Opti*Pro/Part allows for an output file to be generated for a part that is not flat. It also can prevent output files from being generated if the selected part is not precisely flat. The flatness_tolerance statement in the optipro.cfg file controls the measurement tolerance.

  1. The default option is to prevent an export file from being generated in the case a part is not flat. The following line may be in the optipro.cfg file to state this explicitly: export_not_flat no
  2. If the user would instead allow non-flat parts to be exported, the following should be placed in the optipro.cfg file: export_not_flat yes


Note: Only one of the two options may be used. If both are placed in the optipro.cfg file, only the first will affect Opti*Pro's operation.


Flat Pattern Type

This option is for use mainly in the batch mode of Opti*Pro/Part and in both interactive and batch modes for Opti*Pro/Assembly. When running Opti*Pro/Part interactively, the currently displayed part will be exported. However, if running batch files with the software, the flat pattern options allow the program to recognize and use various instances or suppressed features for correct export.

There are three options for this configuration.

  1. Flat Pattern: The program will be alerted that there may be either a flat pattern or unbend feature as the last feature in the part and that the feature may be suppressed. Opti*Pro/Part will resume the feature, if necessary, before the part is exported.
  2. Generic: Opti*Pro will use the generic part for export.
  3. Instance: Opti*Pro will use a specific instance of the part's family table for export.

The instances are identified by prefix(es) and/or suffix(es), and/or template(s). For example, if the generic part was named 'sheet.prt', and the prefix is 'fl_', the instance retrieved would be 'fl_sheet'. The user can enter into the optipro.cfg any prefix or suffix.

In the configuration file

To use these options in the optipro.cfg file, the following lines in the file are necessary:

flat_pattern_type flat_pattern_prefix prefix flat_pattern_suffix suffix flat_pattern_template suffix example 2:

In an optipro.cfg file, the lines: flat_pattern_type instance flat_pattern_suffix _flat instruct Opti*Pro/Part to find an instance of the current part whose name is partname_flat. example 3:

In an optipro.cfg file, the line: flat_pattern_type flat_pattern instruct Opti*Pro to resume the flat pattern feature in the part before exporting.


Grain

Two methods are available to specify the direction of the grain. The first method uses a coordinate system whose name has been set to "GRAIN". Grain direction is then specified by the x-axis of this coordinate system. The second method uses a cosmetic line with the feature name set to "GRAIN". Grain direction is specified by the line.

To control how the grain direction is exported, a layer statement must be included. The default layer name "OPTI*PRO_DEFAULT_GRAIN" may be used.


Item Specification

Item specifications tell the program how to interpret certain features including threads and user defined features (UDFs). The types of items currently supported are: bend lines, counterbores, countersinks, punches, tools, and threads. The statement must include the item type and a unique item name. For bend lines, the item name may be a regular expression.

To control how each item is exported, a layer statement may be included for each item name. The layer name must be the same as the item name.

In the configuration file

To use these options in the optipro.cfg file, the following lines in the file are necessary:

item_name

example 10:

In an optipro.cfg file, the line:

item_name thread 1-4_20-UNC-2A

instructs Opti*Pro/Part that the UDF named "1-4_20-UNC-2A" is a thread.


Layer Names and Numbers

Opti*Pro/Part allows the user to specify various layers and specific id numbers in the optipro.cfg file so that these id numbers may be exported with geometric information and pre-programmed inputs (PPI's). The 'named' layers are mapped from the layer 'name' of Pro/ENGINEER to a layer number of IGES so that the id number can be exported with the exported IGES files. To include layer names and layer ids, the following information is needed:

  1. Layer Name
  2. Layer id number
  3. Layer font
  4. Layer color

It is possible for a layer 'name' to have more than one layer id number. That is, a Pro/ENGINEER layer can be mapped to more than one layer number.

Several default layers are in the supplied optipro.cfg example file.


In the configuration file

To export a layer in the Pro/ENGINEER model named "GEOM" to layer number 19, font number 3, and color number 8, set up the layer in the optipro.cfg file using the following line:

layer GEOM 19 3 8

Orientation Priority

Orientation priority gives Opti*Pro/Part instructions on how to orient the part during the export process. There are five methods that Opti*Pro may use to determine orientation.

  1. Orient Using View Names. A preferred method. The user must create the view name(s) in the Pro/ENGINEER model, and the names of these views must be entered into the optipro.cfg file (see example below).
  2. Using Coordinate System. Once a coordinate system has been created in the part, Opti*Pro/Part can swiftly orient the part with respect to that coordinate system. The 'z' direction should be normal to the base surface and the xy-plane should be parallel to the base surface. The user must enter the name of that coordinate system into the optipro.cfg file (see example below).
  3. Orient Using Surface Names. The user must assign names to surface(s) in the Pro/ENGINEER model, and the names of these surfaces must be entered into the optipro.cfg file (see example below).
  4. Orient Using Current Orientation. The user must interactively orient the Pro/ENGINEER model on the screen..
  5. Use part dimensions. First, Opti*Pro finds the largest surface on the part. Then, the longest edge on that surface is assigned to be the 'x' direction. Next, the normal of that surface is assigned to be the 'z' direction. Using this technique, Opti*Pro/Part can quickly and easily orient any part. This is the default selection. However, the procedure is not perfect.
The exported surfaces will have the following properties:

  1. The surfaces will be parallel to the screen.
  2. The exported surfaces will have an outward normal that points out of the screen.
  3. The largest surface that satisfies (1) and (2) will be the 'base' surface. The base surface and all surfaces that are co-planar to it will be exported.

In the configuration file

To use these options in the optipro.cfg file, the following lines in the file are necessary:

view_csys_priority view csys surface

For view_csys_priority, the user can choose between (a) view, (b) csys, (c) surface, (d) xyz, (e) screen, or any desired combination.

example 1:

In an optipro.cfg file, the lines:

view_csys_priority view,csys
view FRONT
csys CS0
view TOP

instruct Opti*Pro to orient in the following order:

  1. the view whose name is "FRONT"
  2. the view whose name is "TOP"
  3. the coordinate system whose name is "CS0"


Note: This tells Opti*Pro to look for all views first, then all coordinate systems

Opti*Pro/Part's Part Orientation Processing

In example 1, Opti*Pro/Part would first search for a view named FRONT for orientation. If no such view was found, it would then look for a view named TOP. If this was not found, it would attempt to find the coordinate system CS0.

Notes on 'xyz' selections

In the previous example, the option xyz was not selected. If Opti*Pro/Part had been unable to find FRONT, TOP, or CS0, then a warning message would have been displayed, and the export would have failed. In order to have Opti*Pro orient using the xyz default, the 'xyz' trigger must be stated in the view_csys_priority line of optipro.cfg.

If no view_csys_priority line is in the optipro.cfg file, then the software will use the 'xyz' orientation by default.


Output Directory

The user may specify the directory to which output files will be written. By specifying the output directory, the current working directory need not become exceedingly cluttered with many output files. To control this option with Opti*Pro/Part, the following must be placed into the optipro.cfg file:

output_directory /output_dir/

where output_dir refers to the name of the output directory. This directory must exist on the user's file system. If the directory is not created before export is attempted, an error message will appear and no export will be done.

The full path to the output directory should be included. If the full path name of the output directory is not included, then the current working directory within Pro/ENGINEER will be the parent directory for the output directory.

If no output directory is specified, then all outputs will be written to the current Pro/ENGINEER working directory.

example 4: (absolute path)

Pro/ENGINEER working directory: /projects/project1/main

If the following line is added to the optipro.cfg file:

output_directory /work /opti/project1/output/

The output directory will always be /work/opti/project1/output.

example 5: (relative path)

Pro/ENGINEER working directory: /projects/project1/main

If the following line is added to the optipro.cfg file:

output_directory output

Here, the output directory is /projects/project1/main/output

In this example, the output directory will be relative to the Pro/ENGINEER working directory. If the user changes working directories in Pro/ENGINEER, then a new directory must be created for output. If an invalid directory is specified, an error message will appear and no export will take place.


Output File Name

The user may specify the name of the output file using one of three methods. All output files use the ".igs" extension. The output file name may be either the object (part) name, the value of a parameter, or the result of a relation. By default, the output file name is the name of the Pro/ENGINEER part.

example 6: (parameter)

If the following line is added to the optipro.cfg file:

output_filename parameter part_number

The output file name will be the value of the parameter "part_number".

example 7: (relation)

If the following line is added to the optipro.cfg file:

output_filename relation part_number+"_"+rev_level

Here, the output file name is the result of evaluating the relation.

In this example, the output directory will be relative to the Pro/ENGINEER working directory. If the user changes working directories in Pro/ENGINEER, then a new directory must be created for output. If an invalid directory is specified, an error message will appear and no export will take place.


Opti*Pro
Configuration Options

Appendix A


Introduction

Configuration file(s) control the operation of the Opti*Pro modules. These files are analogous in operation to the Pro/ENGINEER "config.pro" files. This appendix describes location, operation, and syntax of the Opti*Pro configuration files.

Operation

Configuration files are processed when required by Opti*Pro. For example, they can be modified after exporting a part, even if Pro/ENGINEER and Opti*Pro are still running. The new settings will apply to subsequent exports.

File Processing Order

The order of processing of the files is:

  1. The file "optipro.sup" in the directory "<proeloadpoint>/text" is processed first. Any configuration option set in this file can not be superseded by an entry in another configuration file.
  2. The file "optipro.cfg" located in the user's start-up directory is then processed. This file may be for a specific project.
  3. The file "optipro.cfg" located in the user's home directory is processed next. This file would contain options pertinent to the user's general work.
  4. The file "optipro.cfg" in the directory "<proeloadpoint>/text" is then processed. This will contain all options for the site that can be overridden by the user.
  5. Finally, where appropriate, default values will be used for variables which can be specified but are not.

Syntax

Opti*Pro configuration files are case insensitive. Blanks, commas, or tabs may delimit fields. Comment lines are indicated by either a '!' or a '#' in the first column on the line. When multiple values are allowed, they may be placed on one or more statements.

allow

bendline yes,no (no default)

bottom yes,no (no default)

cosmetic yes,no (no default)

countersink yes,no (no default)

datumcurve yes,no (no default)

form yes,no (no default)

marking yes,no (no default)

pocket yes,no (no default)

ream yes,no (no default)

tool yes,no (no default)

thread yes,no (no default)

This statement is used to specify which special processing is to be allowed. One or more allow statements can be used. If an allow statement for an option is not present, the special processing for the option will not occur. In addition to the option yes and no, true and false may be used.

The allow bendline statement datum axes representing sheet metal bend lines to be processed.

The allow bottom statement allows features on the bottom of the part to be processed. These features include countersinks and forms.

The allow cosmetic statement allows processing of cosmetic features. Construction lines and circles are not processed. The cosmetic features must be in the same plane as that being used to set the front face of the part.

The allow countersink statement allows the part to contain countersinks. The countersink may or may not have a corresponding hole. For the purpose of checking the part flatness, countersinks are considered to be flat. The location and size of the countersink are exported.

The allow datumcurve statement allows processing of datum curve features. The datum curve features must be in the same plane as that being used to set the front face of the part.

The allow form statement allows the part to contain form features. For the purpose of checking the part flatness, forms are considered to be flat. The form contour on the side punched is exported.

The allow marking statement allows Opti*Pro to create geometry for part marking.

The allow pocket statement allows pockets in the part to be exported. Pockets may be any shape and may include counterbores. Pockets may also be nested.

The allow ream statement allows the pre-drill for the ream to be exported.

The allow tool statement allows the part to contain special tool definitions.

The allow thread statement allows the threads in the part to be exported.

Example:
allow pocket yes

assembly_component_selection

name_prefix, name_suffix, sheet_metal, part_parameter (no default)

Component parts are selected from the assembly according to one or more of the specified options. This option is available with Opti*Pro/Assembly.

When name_prefix is specified, part names containing the assembly name with one or more leading characters will be selected; for example, if the assembly name is 'ABCD', then parts '1ABCD' and '22ABCD' would be selected for export.

When name_suffix is specified, the part names containing the assembly name with one or more trailing characters will be selected; for example, if the assembly name is 'ABCD', then parts 'ABCD1' and 'ABCD_22' would be selected for export.

When sheet_metal is specified, only Pro/ENGINEER sheet metal parts will be selected.

When part_parameter is specified, the parts will be selected if they have defined a part parameter with a specified name and value. See the part_parameter option.

Example:
assembly_component_selection name_suffix

csys

coordinate_system_name (no default)

Coordinate system names are used to orient the part when the csys option of view_csys_priority is used. Coordinate system names are examined in the order they are processed in the "optipro.cfg" files. Coordinate system names are processed until one matches a coordinate system name in the model; this coordinate is then used to orient the part. One or more coordinate system names can be placed on one csys statement. Multiple csys statements can be used.

Example:
csys cs0, cs1

export_not_flat

no (default), yes

This configuration parameter controls whether parts that are not flat will be exported. If this statement is not included, the default action is to export only parts that are flat. Values of "yes" or "true" will allow non-flat parts to be exported. Values of "no" or "false" allow only flat parts to be exported.

Example:
export_not_flat yes

flat_pattern_prefix

prefix (no default)

This configuration option specifies the prefix(es) used to identify flat patterns. The prefix(es) is prepended to the part or instance name to generate the name of the corresponding flat pattern. One or more flat_pattern_prefix statements can be included.

Example:
flat_pattern_prefix fl_

flat_pattern_suffix

suffix (no default)

This configuration option specifies the suffix(es) used to identify flat patterns. The suffix(es) is appended to the part or instance name to generate the name of the corresponding flat pattern. One or more flat_pattern_suffix statements can be included.

Example:
flat_pattern_suffix _flat1

flat_pattern_template

source_pattern destination_pattern (no defaults)

This configuration option specifies how to transform the bent part name to the flat pattern name. If the part name matches the source_pattern template, then the destination_pattern template is used to generate the name of the corresponding flat pattern. One or more flat_pattern_template statements can be included.

The source_pattern is an extended regular expression. Each string matched in the source_pattern is noted in the destination string as "$n" where n is the string number.

Examples:
Part name "___123" has a flat pattern "FLP123" flat_pattern_template ___* FLP* Part name "D12AB" has a flat pattern "D12_F" flat_pattern_template ([A-Z][0-9][0-9]).* $1_F FLP*

flat_pattern_type

flat_pattern, generic, instance, none (default)

This configuration option specifies how flat patterns are created from the model.

A value of 'flat_pattern' instructs the software to look at the last part feature, and if it is a suppressed 'flat pattern' feature or a 'unbend' feature, to resume the feature in order to create the flat pattern.

A value of 'generic' says that the generic model or the part itself is flat.

A value of 'instance' instructs the software to look in the family table for an instance whose name matches the requested name after applying a prefix or suffix.

A value of 'none' causes the basic part to be used.

Example:
Flat_pattern_type instance

flatness_tolerance

tolerance (default 0.5)

Specifies angular tolerance (degrees) for two planes to be considered co-planar or normal.

Example:
flatness_tolerance 0.1

item_name

bendline item_name (no default)

cbore item_name (no default)

csink item_name (no default)

punch item_name (no default)

tool item_name (no default)

thread item_name (no default)

This statement is used to specify how items (typically user defined features) are to be considered. One or more item_name statements can be used.

The item_name bendline statement identifies the named item as being a datum axis representing a sheet metal bend line. The item name is a regular expression to select the axes to be processed. A layer statement is required in which the layer name is the same as the item_name.

The item_name cbore statement identifies the named item as being a counterbore containing a hole. The counterbore may be exported on one layer while the hole is exported on another.

The item_name csink statement identifies the named item as being a countersink with an optional hole. The countersink may be exported on one layer while the hole is exported on another.

The item_name punch statement identifies the named item as being a punch.

The item_name tool statement identifies the named item as containing a special tool specification. The tool name is specified as a text string feature parameter with a parameter name OPTIPRO_TOOL.

The item_name thread statement identifies the named item as being a threaded hole. The thread information may be exported on one layer while the hole is exported on another. The thread must be either a cosmetic thread feature or a cylindrical datum surface. For Imperial (English) threads, the feature parameters THREADS_PER_INCH (string or numeric), FORM (string), CLASS (string), PLACEMENT (string, "B" is internal), and METRIC (yes/no) are required.. For Metric threads, the feature parameters THREADS_PER_INCH, CLASS, PLACEMENT, and METRIC are required. The parameter HAND, indicating right or left hand thread is optional; if not specified, the default value is "right".

Example:
item_name thread 1-4_20_UNC_2A

layer

layer_name layer_number font_number color_number

Specifies feature layers and how they are exported. If the Pro/ENGINEER feature is on the named layer, its edges will be exported on a layer with the specified layer number, font number, and color number. The layer number, font number and color number must each be greater than or equal to 0.

Several layer names have been reserved for special processing. These layer names start with "OPTI*PRO_DEFAULT_".

OPTI*PRO_DEFAULT_CBORE_DRILL: If this layer is specified, the edges for the drill corresponding to a counterbore will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_CBORE_DRILL' is included.

OPTI*PRO_DEFAULT_COSMETIC: If this layer is specified, the edges for cosmetic features will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_COSMETIC' is included.

OPTI*PRO_DEFAULT_COSMETIC_TEXT: If this layer is specified, the text section entities for cosmetic features will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_COSMETIC_TEXT' is included.

OPTI*PRO_DEFAULT_CSINK_DRILL: If this layer is specified, the edges for the drill corresponding to a countersink on the top of the part will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_CSINK_DRILL' is included.

OPTI*PRO_DEFAULT_CSINK_DRILL_B: If this layer is specified, the edges for the drill corresponding to a countersink on the bottom of the part will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_CSINK_DRILL_B' is included.

OPTI*PRO_DEFAULT_CSINK_GEOM: If this layer is specified, the edges for the countersink on the top of the part will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_CSINK_GEOM' is included.

OPTI*PRO_DEFAULT_CSINK_GEOM_B: If this layer is specified, the edges for the countersink on the bottom of the part will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_CSINK_GEOM_B' is included.

OPTI*PRO_DEFAULT_CSINK_TEXT: If this layer is specified, the text description of the countersink on the top of the part will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_CSINK_TEXT' is included.

OPTI*PRO_DEFAULT_CSINK_TEXT_B: If this layer is specified, the text description of the countersink on the bottom of the part will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_CSINK_TEXT_B' is included.

OPTI*PRO_DEFAULT_DATUMCURVE: If this layer is specified, the datum curve features on the top of the part will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_ DATUMCURVE is included. Note that cross hatching is not processed.

OPTI*PRO_DEFAULT_FORM: If this layer is specified, the edges for the form feature on the top of the part will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_FORM' is included.

OPTI*PRO_DEFAULT_FORM_B: If this layer is specified, the edges for the form feature on the bottom of the part will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_FORM_B' is included.

OPTI*PRO_DEFAULT_GEOMETRY: All edges will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_GEOMETRY' is included.

OPTI*PRO_DEFAULT_GEOMETRY_NOS: Features which are not on a named layer will have their edges exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_GEOMETRY_NOS' is included.

OPTI*PRO_DEFAULT_GRAIN: If this layer is specified, the line indicating the grain direction will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_GRAIN' is included.

OPTI*PRO_DEFAULT_MARKING: If this layer is specified, the geometry created for marking will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_MARKING' is included.

OPTI*PRO_DEFAULT_MARKING_TEXT: If this layer is specified, the text section entities created for marking will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_MARKING_TEXT' is included.

OPTI*PRO_DEFAULT_PPI: The layer for pre-programmed input has been assigned a layer name 'OPTI*PRO_DEFAULT_PPI'.

OPTI*PRO_DEFAULT_PUNCH: If this layer is specified, the punch information will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_PUNCH' is included.

OPTI*PRO_DEFAULT_REAM_DRILL: If this layer is specified, the edges for the drill corresponding to a reamed hole will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_REAM_DRILL' is included.

OPTI*PRO_DEFAULT_THREAD: If this layer is specified, the thread information for a tapped hole will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_THREAD' is included.

OPTI*PRO_DEFAULT_TOOL: If this layer is specified, the tool information will be exported on the specified layer/font/color if the default layer name 'OPTI*PRO_DEFAULT_TOOL' is included.

Example:
layer HOLE 12, 1, 2
layer OPTI*PRO_DEFAULT_GEOMETRY 1 0 0
layer OPTI*PRO_DEFAULT_PPI 2 0 0

marking_font

font_name (no default)

Specifies the name of the font used for marking. The font_name directory is a sub-directory to the "font" directory which is a sub-directory of the directory specified by the text_dir entry in the optipro*.dat file.

Example:
marking_font font1

marking_selection_name

selection_name (no default)

Used in conjunction with marking_selection_type, this option specifies the entity name of the geometry entity to be used for locating the marking data.

Example: Use the UDF named "PN" to locate the marking data.
marking_selection_type udf marking_selection_name pn

marking_selection_type

udf (no default)

Specifies the geometry entity type to be used to locate the marking data.

Example:
marking_selection_type udf

marking_template

current_directory (no default)

Specifies the name of the Pro/ENGINEER section to be used as a template for characters to be marked.

Example:
marking_template template

marking_text

text (no default)

Specifies the text to be used for marking. The text can be any valid Pro/ENGINEER relation. If the result of the evaluation is of type boolean , the text will be either "TRUE" or "FALSE".

Example:
marking_text part_number+"_"+rev_level

output_directory

current_directory (default)

Specifies the name of the directory into which the output files are placed. It is suggested that this be a fully qualified file name. Otherwise, the output directory will be relative to the current Pro/ENGINEER directory.

Example:
output_directory /users/opti/parts2do

output_filename

object_name (default)

parameter parameter_name

relation relation

Specifies how the exported file is named. The 'object_name' option causes the exported file to be named using the Pro/ENGINEER object name. The 'parameter' option causes the exported file to be named using the string value from the parameter named 'parameter_name'. The 'relation' option causes the exported file to be named using the result of evaluating the right hand side of the relation.

Example:
output_filename relation part_number+"_"+rev_level

part_parameter

parameter_name parameter_value (no default)

Component parts are selected from the assembly according to assembly_component_selection part_parameter. This option specifies the names of the part parameters and optional values. This option is available with Opti*Pro/Assembly.

Example:
part_parameter in_house
part_parameter vendor=JERAND,OPTIMATION

ppi_relation_filename

all file_name

assembly file_name

other file_name

sheet_metal file_name

solid_part file_name

Specifies the name of a file containing relations to be evaluated before use in PPI parameters. Multiple ppi_relation_filename statements may be used. For Pro/ENGINEER version 2000i2, only the "all" option is available. "All" specifies that the relations are applied to all object types. "Assembly" specifies that the relations are applied to only assemblies. "Sheet_metal" and "solid_part" specifies that the relations are applied to sheet metal or solid parts respectively. Finally, "other" specifies that the relations are applied to objects which are neither assemblies, sheet metal parts, nor solid parts.

Example:
ppi_relation_filename sheet_metal rawmat.rel

surface

surface name, first (no default)

Surface names are used to orient the part when the surface option of view_csys_priority is used. Surface names are examined in the order they are processed in the "optipro.cfg" files. Surface names are processed until one matches a surface name in the model; this surface is becomes the x-y plane and the longest edge of the surface is oriented along the x-axis. One or more surface names can be placed on one surface statement. Multiple surface statements can be used. The reserved surface name "first" selects the first surface in the part; for sheet metal parts, this is the "green" surface. Similarly, the reserved surface name "second" selects the "white" surface..

Example:
surface burn, front

text_output_type

stroke, character (no default)

This option controls how text is specified in the output file. When stroke is used, the text will be represented as the lines and arcs which compose the characters in the text string. When character is used, the text will be represented as characters; subsequent processing will determine the appearance of the text.

Example:
text_output_type stroke

view

view name (no default)

View names are used to orient the part when the view option of view_csys_priority is used. View names are examined in the order they are processed in the "optipro.cfg" files. View names are processed until one matches a view name in the model; this view is then used to orient the part. One or more view names can be placed on one view statement. Multiple view statements can be used.

Example:
view burn, front

view_csys_priority

view, csys, screen, surface, xyz (no default)

Controls the order used to determine part orientation. If either view, csys or surface are specified, then either all view names, all coordinate system, or all surface names are examined to determine if the part can be oriented. The value of 'screen' uses the currently displayed orientation. The value of 'xyz' will always cause the part to be oriented such that the largest surface is in the x-y plane and the longest edge of the largest surface is along the x axis.

Example:
View_csys_priority view, csys, xyz
View_csys_priority view

Start of example file "optipro.cfg"

!
! File: optipro.cfg
! Sample file
!
! Lines starting with ! or # are comments
! All lines are case-insensitive
!
! Specify order to determine orientation for export
! Options:
!	view (view name)
!	csys (coordinate system)
!	xyz (use part edges)
! options are accumulated over multiple lines & files, and tried in the
! order they are encountered.
!
!view_csys_priority view,csys,surface,xyz
view_csys_priority view
!
! Specify one or more view names
view BURN
view front, top
!
! Specify one or more csys names
csys csys0
!
! Specify one or more surface names
!surface named_surf
surface first
!
! Specify flat pattern type
! Options:
!		generic,
!		instance, (flat pattern as specified in family table)
!		flat_pattern (last feature is flat pattern or unbend)
flat_pattern_type flat_pattern
! If instance, specify flat pattern prefix(es) and/or suffix(es)
flat_pattern_prefix fl_
!flat_pattern_suffix _flat
!flat_pattern_template ___* FLP*
!flat_pattern_template (......).* $1_F
!flat_pattern_template ([A-Z][0-9]).* $1_F
!flat_pattern_template ([A-Z])..([0-9][A-Z]).* FLAT_$2$1
!
! Specify layer numbers for layer names
! One or more layer names may specify the same layer number
! Maps from the layer name in Pro/E (or one of the special default names
! defined below) to the layer id in the IGES output file.
!layer layer_name layer_id layer_font layer_color
layer OPTI*PRO_DEFAULT_GEOMETRY 1 0 0
layer OPTI*PRO_DEFAULT_PPI 2 0 0
layer TAP-10-24 10 0 0
layer TAP-12-24 12 0 0
!
! Specify if output file to be created if part not flat
! Allowable values: true, yes, false, no (true = yes, false = no)
!export_not_flat no prevents file from being exported
export_not_flat no
!
! Output directory and filename
! Specify directory where exported files are placed
!output_directory /output_dir/
! Specify how output filname is generated
output_filename object_name
!output_filename parameter parameter_name
!
! Assembly component selection
!assembly_component_selection name_prefix
!assembly_component_selection name_suffix
assembly_component_selection sheet_metal
!assembly_component_selection part_parameter
!
!Assembly component selection based on part parameter name
part_parameter IN_HOUSE
!
!Assembly component selection based on part parameter name and values
part_parameter vendor=JERAND,OPTIMATION
End of example file "optipro.cfg"

Example File A.1


Customizing
Pre-Programmed Input

Appendix B


Introduction

Processing of pre-programmed input (PPI) variables can be controlled by modifying files as described below. These files control both the PPI shown in interactive menus as well as those exported.

Two files, "ppi.fmt" and "optipro_ppi.mnu", are used to specify the PPI. The file "ppi.fmt" controls the display and formatting of each of the PPI. The menu file that displays the PPI options for the user is "optipro_ppi.mnu".

As shipped, both files contain all known PPI. They can be modified to process only those PPI needed for use at a given installation. Alternatively, new PPI can be defined.

Modification

The most typical modification is to change which PPI are displayed and exported; the "ppi.fmt"option VISIBLE (values YES or NO) is used for this purpose.

Addition

To add a PPI, an entry must be made in both files.

In "optipro_ppi.mnu", to add another item to the menu, eight lines must be added to the file. This is most easily accomplished by copying the last eight lines of the current file and editing the new lines to include the PPI name and help string. The PPI name known to the software is on the "Label" and "Help" lines. In the file below, after copying the last eight lines, change 'THICK' to the new PPI name and change "Part thickness" to the desired help string.

In "ppi.fmt", add a line corresponding to the "optipro_ppi.mnu" file. The PPI name must be identical to the item name known to the software.

Syntax

The options for choosing what PPI to include and display are specified in the "ppi.fmt" file. Each PPI item is described on a line ending with a period followed by a carriage return. Each PPI item has a NAME, TYPE, and associated FUNCTION. If desired, MENU, VALUES, DEFAULT, MIN, and MAX statements can be used to collect and limit the input. PPI can be VISIBLE or not.

NAME

PPI_name (no default)

This names the PPI to be displayed or formatted as specified by the rest of the line.

Example:
NAME=PARTNO

TYPE

A number, YN, REAL, INT (no default)

This describes the data type of the PPI. A number is an alphanumeric string containing the number of characters specified (i.e., A32 is a 32 character string). YN specifies a yes or no variable. REAL is a real valued number. INT is an integer.

Example:
TYPE=A32
TYPE=YN
TYPE=REAL
TYPE=INT

PARAMETER

parameter_name (no default)

This specifies the model parameter used to set the initial value of the PPI.

Example:
PARAMETER=MATERIAL

RELATION

relation_right_hand_side (no default)

This specifies the right hand side of a relation used to set the initial value of the PPI.

Example:
RELATION=MATERIAL+"-"+THK

FUNCTION

PPI_GET_INT
Prompts the user to type in an integer number.

PPI_GET_MATERIAL_NAME
Extracts the material from the part.

PPI_GET_MENU
Prompts the user to select from the menu named in the MENU statement. The items of the VALUES statement correspond sequentially to the MENU items.

PPI_GET_MENU_NO
Prompts the user to select from the menu named in the MENU statement. The items of the VALUES statement correspond sequentially to the MENU items. One of these values is N, which stands for "no." If N is selected, all of the other possible values will be unselected.

PPI_GET_OBJECT_NAME
Extract the name of the Pro/ENGINEER part or assembly.

PPI_GET_REAL
Prompts the user to type in a real number.

PPI_GET_STRING
Prompts the user to type in a string.

PPI_GET_YN
Prompts the user to select Yes or No from a menu.

Specifies the function used to obtain the PPI value, from either the Pro/ENGINEER object (PPI_GET_MATERIAL_NAME and PPI_GET_OBJECT_NAME) or the user.

Example:
FUNCTION=PPI_GET_OBJECT_NAME

RESOURCE

resource_name (no default)

The name of the resource file to be used by Pro/ENGINEER for prompting the user. The resource names used here are supplied already. You can add other resources by putting .res files in the optipropart/text/usascii/resource or optiproassembly/text/usascii/resource directories. Each RESOURCE statement must have a corresponding VALUES statement. Any combination of the items may be selected, except that if PPI_GET_MENU_NO was used and N ("no") is selected, all other items will be unselected.

Example:
RESOURCE=ppi_comcut_contour.res

VALUES

list_of_values (no default)

A list of values corresponding to the menu items. Values whose menu items were selected will be used as PPI. For example, if the user selects the second and third items in the menu, then the second and third items in the list will be passed as the PPI. Commas separate the items and a semicolon follows the last value. Each VALUES statement must have a corresponding MENU statement.

Example:
VALUES=N,P,O,E,I,S;

DEFAULT

default_value (no default), TODAY[+n]

The default value from the list of values presented in the previous VALUES statement or a value between the minimum and maximum allowable. A default value of TODAY sets the value to today's date in the Optimation format (YYMMDD). If the optional +n (e.g. +2) is present, the date is set to n days past the current date.

Example:
DEFAULT=N
DEFAULT=13

MIN

minimum_value (no default)

The lowest possible value for the PPI being described.

Example:
MIN=0

MAX

maximum_value (no default)

The highest possible value for the PPI being described.

Example:
MAX=9.9999

VISIBLE

YES, NO, PART, ASSEMBLY (no default) Sets whether the PPI information will be displayed on the menu and exported in the file. Furthermore, if PART or ASSEMBLY is specified, the PPI will be processed only in the specified mode. Example: VISIBLE=YES

Start of example file "ppi.fmt"

NAME=PARTNO		TYPE=A32	FUNCTION=PPI_GET_OBJECT_NAME	VISIBLE=PART.
! Get raw material name from Pro/ENGINEER SETUP/MATERIAL
NAME=RAWMAT		TYPE=A32	FUNCTION=PPI_GET_MATERIAL_NAME
VISIBLE=PART.
! Get raw material name from Pro/ENGINEER parameter named MTL
!NAME=RAWMAT		TYPE=A32	PARAMETER=MTL	FUNCTION=PPI_GET_STRING	VISIBLE=PART.
NAME=GRAIN		TYPE=YN	FUNCTION=PPI_GET_YN	VISIBLE=PART.
NAME=WORKCTR	TYPE=A5	FUNCTION=PPI_GET_STRING	VISIBLE=PART.
NAME=REVISIN	TYPE=A5	FUNCTION=PPI_GET_STRING	VISIBLE=PART.
! COMCUT for contour
NAME=COMCUTC	TYPE=A6	FUNCTION=PPI_GET_MENU_NO
RESOURCE=ppi_comcut_contour.res	VALUES=N,P,O,E,I,S;
DEFAULT=N	VISIBLE=NO.
! COMCUT for strip/snip
NAME=COMCUTS	TYPE=A6	FUNCTION=PPI_GET_MENU_NO
RESOURCE=ppi_comcut_strip.res	VALUES=N,L,R;	DEFAULT=N	VISIBLE=NO.
! COMCUT for punch hit
NAME=COMCUTP	TYPE=A6	FUNCTION=PPI_GET_MENU_NO
RESOURCE=ppi_comcut_punch.res	VALUES=N,L,R,T,B;	DEFAULT=N	VISIBLE=NO.
NAME=MIRROR		TYPE=YN	FUNCTION=PPI_GET_YN		VISIBLE=NO.
NAME=RESTRCT	TYPE=YN	FUNCTION=PPI_GET_YN		VISIBLE=NO.
! 180 for one sides
NAME=180		TYPE=A1	FUNCTION=PPI_GET_MENU_NO	RESOURCE=ppi_180_one.res	VALUES=N,L,A;	DEFAULT=N	VISIBLE=PART.
! 180 for multiple sides
NAME=180M		TYPE=A1	FUNCTION=PPI_GET_MENU_NO
RESOURCE=ppi_180_multiple.res	VALUES=N,L,R,A,B;	DEFAULT=N	VISIBLE=PART.
NAME=TOOL		TYPE=A20	FUNCTION=PPI_GET_STRING	VISIBLE=NO.
NAME=DIECLR		TYPE=REAL	FUNCTION=PPI_GET_REAL
MIN=0.0000	MAX=9.9999	VISIBLE=NO.
NAME=ORIEN		TYPE=REAL	FUNCTION=PPI_GET_REAL
MIN=0.000	MAX=360.000	VISIBLE=NO.
NAME=ROTATE		TYPE=REAL	FUNCTION=PPI_GET_REAL
MIN=-360.000	MAX=360.000	VISIBLE=PART.
NAME=ALTMAT		TYPE=YN	FUNCTION=PPI_GET_YN	DEFAULT=YES	VISIBLE=NO.
NAME=GANGFRM	TYPE=INT	FUNCTION=PPI_GET_INT
MIN=0	MAX=9999	DEFAULT=1	VISIBLE=PART.
NAME=MAXRUN		TYPE=INT	FUNCTION=PPI_GET_INT
MIN=0	MAX=999999	VISIBLE=NO.
NAME=NAMLOC		TYPE=A25	VISIBLE=NO.
NAME=CLASS		TYPE=A1	FUNCTION=PPI_GET_MENU	RESOURCE=ppi_class.res
VALUES=1,2,3;	DEFAULT=2	VISIBLE=PART.
NAME=MINSPC		TYPE=YN	FUNCTION=PPI_GET_YN		DEFAULT=YES	VISIBLE=PART.
NAME=NOPIERC	TYPE=INT	FUNCTION=PPI_GET_INT	MIN=1	MAX=999	VISIBLE=NO.
NAME=AREA		TYPE=REAL	FUNCTION=PPI_GET_REAL
MIN=0.0	MAX=9999999.9999	VISIBLE=NO.
NAME=KERFSD		TYPE=A1	FUNCTION=PPI_GET_MENU	RESOURCE=ppi_kerf.res	DEFAULT=L	VALUES=L,R;	VISIBLE=NO.
NAME=NUMHOL		TYPE=INT	FUNCTION=PPI_GET_INT	MIN=0	MAX=5	VISIBLE=NO.
NAME=HOLE		TYPE=A28	VISIBLE=NO.
NAME=OFFSET		TYPE=A28	VISIBLE=NO.
NAME=TPATH		TYPE=REAL	FUNCTION=PPI_GET_REAL
MIN=0.0	MAX=999999999.99	VISIBLE=NO.
NAME=BIAS		TYPE=A1	FUNCTION=PPI_GET_MENU	RESOURCE=ppi_bias.res
VALUES=N,P;	VISIBLE=NO.
NAME=SYMQTY		TYPE=A18	VISIBLE=NO.
NAME=MATCHTY	TYPE=A4	FUNCTION=PPI_GET_STRING	VISIBLE=NO.
NAME=TEXT		TYPE=A20	FUNCTION=PPI_GET_STRING	VISIBLE=NO.
NAME=TXT16		TYPE=A70	FUNCTION=PPI_GET_STRING	VISIBLE=NO.
NAME=TXT17		TYPE=A70	FUNCTION=PPI_GET_STRING	VISIBLE=NO.
NAME=TXT18		TYPE=A70	FUNCTION=PPI_GET_STRING	VISIBLE=NO.
NAME=TXT19		TYPE=A70	FUNCTION=PPI_GET_STRING	VISIBLE=NO.
NAME=TXT20		TYPE=A70	FUNCTION=PPI_GET_STRING	VISIBLE=NO.
NAME=SCALE		TYPE=INT	FUNCTION=PPI_GET_INT	MIN=0	MAX=99999
VISIBLE=NO.
NAME=ORDERNO	TYPE=A30	PARAMETER=DESCRIPTION	FUNCTION=PPI_GET_STRING	VISIBLE=PART,ASSEMBLY.
NAME=ORDDATE	TYPE=INT	FUNCTION=PPI_GET_INT	MIN=0	MAX=999999	DEFAULT=TODAY+1	VISIBLE=PART,ASSEMBLY.
NAME=ORDQTY		TYPE=INT	FUNCTION=PPI_GET_INT	MIN=1	MAX=999999	DEFAULT=1	VISIBLE=PART,ASSEMBLY.
NAME=ORDPRI		TYPE=INT	FUNCTION=PPI_GET_INT	MIN=0	MAX=3	VISIBLE=PART,ASSEMBLY.
NAME=PRTMIR		TYPE=A32	FUNCTION=PPI_GET_STRING	VISIBLE=NO.

End of example file "ppi.fmt"

Example File B.1


Start of example file "optipro_ppi.mnu"

Opti*Pro.PPI Label
&PPI
#
#
Opti*Pro.PPI Help
Opti*Pro: Work with pro-programmed inputs
#
#
Opti*Pro.PPI.Show#All Label
Show All
#
#
Opti*Pro.PPI.Show#All Help
Show all PPI (Pro-Programmed Inputs)
#
#
Opti*Pro.PPI.PARTNO Label
PARTNO
#
#
Opti*Pro.PPI.PARTNO Help
Part number
#
#
Opti*Pro.PPI.RAWMAT Label
RAWMAT
#
#
Opti*Pro.PPI.RAWMAT Help
Raw material name
#
#
Opti*Pro.PPI.GRAIN Label
GRAIN
#
#
Opti*Pro.PPI.GRAIN Help
Grain constraint
#
#
Opti*Pro.PPI.WORKCTR Label
WORKCTR
#
#
Opti*Pro.PPI.WORKCTR Help
Work center
#
#
Opti*Pro.PPI.REVISIN Label
REVISIN
#
#
Opti*Pro.PPI.REVISIN Help
Revision level
#
#
Opti*Pro.PPI.COMCUTC Label
COMCUTC
#
#
Opti*Pro.PPI.COMCUTC Help
Common cut for contour
#
#
Opti*Pro.PPI.COMCUTS Label
COMCUTS
#
#
Opti*Pro.PPI.COMCUTS Help
Common cut for strip/snip
#
#
Opti*Pro.PPI.COMCUTP Label
COMCUTP
#
#
Opti*Pro.PPI.COMCUTP Help
Common cut for punch
#
#
Opti*Pro.PPI.MIRROR Label
MIRROR
#
#
Opti*Pro.PPI.MIRROR Help
Able to mirror part
#
#
Opti*Pro.PPI.RESTRCT Label
RESTRCT
#
#
Opti*Pro.PPI.RESTRCT Help
Restricted part
#
#
Opti*Pro.PPI.R180 Label
R180
#
#
Opti*Pro.PPI.R180 Help
Part may be rotated 180 degrees 
#
#
Opti*Pro.PPI.R180M Label
R180M
#
#
Opti*Pro.PPI.R180M Help
Part may be rotated 180 degrees 
#
#
Opti*Pro.PPI.TOOL Label
TOOL
#
#
Opti*Pro.PPI.TOOL Help
Tool name
#
#
Opti*Pro.PPI.DIECLR Label
DIECLR
#
#
Opti*Pro.PPI.DIECLR Help
Die clearance
#
#
Opti*Pro.PPI.ORIEN Label
ORIEN
#
#
Opti*Pro.PPI.ORIEN Help
Tool orientation
#
#
Opti*Pro.PPI.ROTATE Label
ROTATE
#
#
Opti*Pro.PPI.ROTATE Help
Rotation
#
#
Opti*Pro.PPI.ALTMAT Label
ALTMAT
#
#
Opti*Pro.PPI.ALTMAT Help
Alternate material allowed
#
#
Opti*Pro.PPI.GANGFRM Label
GANGFRM
#
#
Opti*Pro.PPI.GANGFRM Help
Parts per gang
#
#
Opti*Pro.PPI.MAXRUN Label
MAXRUN
#
#
Opti*Pro.PPI.MAXRUN Help
Maximum run quantity
#
#
Opti*Pro.PPI.NAMLOC Label
NAMLOC
#
#
Opti*Pro.PPI.NAMLOC Help
Name location and orientation
#
#
Opti*Pro.PPI.CLASS Label
CLASS
#
#
Opti*Pro.PPI.CLASS Help
Part classification
#
#
Opti*Pro.PPI.MINSPC Label
MINSPC
#
#
Opti*Pro.PPI.MINSPC Help
Minimum spacing allowed
#
#
Opti*Pro.PPI.NOPIERC Label
NOPIERC
#
#
Opti*Pro.PPI.NOPIERC Help
Number of pierces
#
#
Opti*Pro.PPI.AREA Label
AREA
#
#
Opti*Pro.PPI.AREA Help
Part area
#
#
Opti*Pro.PPI.KERFSD Label
KERFSD
#
#
Opti*Pro.PPI.KERFSD Help
Kerf side
#
#
Opti*Pro.PPI.NUMHOL Label
NUMHOL
#
#
Opti*Pro.PPI.NUMHOL Help
Number of holes
#
#
Opti*Pro.PPI.HOLE Label
HOLE
#
#
Opti*Pro.PPI.HOLE Help
Hole information
#
#
Opti*Pro.PPI.OFFSET Label
OFFSET
#
#
Opti*Pro.PPI.OFFSET Help
Offset information
#
#
Opti*Pro.PPI.TPATH Label
TPATH
#
#
Opti*Pro.PPI.TPATH Help
Tool path length
#
#
Opti*Pro.PPI.BIAS Label
BIAS
#
#
Opti*Pro.PPI.BIAS Help
Bias
#
#
Opti*Pro.PPI.SYMQTY Label
SYMQTY
#
#
Opti*Pro.PPI.SYMQTY Help
Symmetry quantities
#
#
Opti*Pro.PPI.MATCHTY Label
MATCHTY
#
#
Opti*Pro.PPI.MATCHTY Help
Strip/snip match type
#
#
Opti*Pro.PPI.TEXT Label
TEXT
#
#
Opti*Pro.PPI.TEXT Help
Text labeling
#
#
Opti*Pro.PPI.TXT16 Label
TXT16
#
#
Opti*Pro.PPI.TXT16 Help
Text labeling
#
#
Opti*Pro.PPI.TXT17 Label
TXT17
#
#
Opti*Pro.PPI.TXT17 Help
Text labeling
#
#
Opti*Pro.PPI.TXT18 Label
TXT18
#
#
Opti*Pro.PPI.TXT18 Help
Text labeling
#
#
Opti*Pro.PPI.TXT19 Label
TXT19
#
#
Opti*Pro.PPI.TXT19 Help
Text labeling
#
#
Opti*Pro.PPI.TXT20 Label
TXT20
#
#
Opti*Pro.PPI.TXT20 Help
Text labeling
#
#
Opti*Pro.PPI.SCALE Label
SCALE
#
#
Opti*Pro.PPI.SCALE Help
Text labeling scale percentage
#
#
Opti*Pro.PPI.ORDERNO Label
ORDERNO
#
#
Opti*Pro.PPI.ORDERNO Help
Order number
#
#
Opti*Pro.PPI.ORDDATE Label
ORDDATE
#
#
Opti*Pro.PPI.ORDDATE Help
Order due date
#
#
Opti*Pro.PPI.ORDQTY Label
ORDQTY
#
#
Opti*Pro.PPI.ORDQTY Help
Order quantity
#
#
Opti*Pro.PPI.ORDPRI Label
ORDPRI
#
#
Opti*Pro.PPI.ORDPRI Help
Order priority
#
#
Opti*Pro.PPI.PRTMIR Label
PRTMIR
#
#
Opti*Pro.PPI.PRTMIR Help
Part name to automatically create second part which is mirror image of original
#
#
Opti*Pro.PPI.THICK Label
THICK
#
#
Opti*Pro.PPI.THICK Help
Part thickness
#
#

End of example file"optipro_ppi.mnu"

Example File B.2