PTC Creo PDF
PTC Creo PDF
User’s Guide
8.0.2.0
Copyright © 2021 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved.
User and training guides and related documentation from PTC Inc. and its subsidiary companies (collectively
"PTC") are subject to the copyright laws of the United States and other countries and are provided under a
license agreement that restricts copying, disclosure, and use of such documentation. PTC hereby grants to the
licensed software user the right to make copies in printed form of this documentation if provided on software
media, but only for internal/personal use and in accordance with the license agreement under which the
applicable software is licensed. Any copy made shall include the PTC copyright notice and any other
proprietary notice provided by PTC. Training materials may not be copied without the express written consent
of PTC. This documentation may not be disclosed, transferred, modified, or reduced to any form, including
electronic media, or transmitted or made publicly available by any means without the prior written consent of
PTC and no authorization is granted to make copies for such purposes. Information described herein is
furnished for general information only, is subject to change without notice, and should not be construed as a
warranty or commitment by PTC. PTC assumes no responsibility or liability for any errors or inaccuracies
that may appear in this document.
The software described in this document is provided under written license agreement, contains valuable trade
secrets and proprietary information, and is protected by the copyright laws of the United States and other
countries. It may not be copied or distributed in any form or medium, disclosed to third parties, or used in any
manner not provided for in the software licenses agreement except with written prior approval from PTC.
PTC regards software piracy as the crime it is, and we view offenders accordingly. We do not tolerate the
piracy of PTC software products, and we pursue (both civilly and criminally) those who do so using all legal
means available, including public and private surveillance resources. As part of these efforts, PTC uses data
monitoring and scouring technologies to obtain and transmit data on users of illegal copies of our software.
This data collection is not performed on users of legally licensed software from PTC and its authorized
distributors. If you are using an illegal copy of our software and do not consent to the collection and
transmission of such data (including to the United States), cease using the illegal version, and contact PTC to
obtain a legally licensed copy.
Important Copyright, Trademark, Patent, and Licensing Information: See the About Box, or copyright
notice, of your PTC software.
PTC software products and software documentation are “commercial items” as that term is defined at 48 C.F.
R. 2.101. Pursuant to Federal Acquisition Regulation (FAR) 12.212 (a)-(b) (Computer Software) (MAY 2014)
for civilian agencies or the Defense Federal Acquisition Regulation Supplement (DFARS) at 227.7202-1(a)
(Policy) and 227.7202-3 (a) (Rights in commercial computer software or commercial computer software
documentation) (FEB 2014) for the Department of Defense, PTC software products and software
documentation are provided to the U.S. Government under the PTC commercial license agreement. Use,
duplication or disclosure by the U.S. Government is subject solely to the terms and conditions set forth in the
applicable PTC software license agreement.
3
Feature Inquiry ................................................................................................. 132
Feature Geometry ............................................................................................ 138
Manipulating Features....................................................................................... 138
Manipulating Features based on Regeneration Flags .......................................... 141
Feature Dimensions.......................................................................................... 143
Manipulating Patterns ....................................................................................... 144
Creating Local Groups ...................................................................................... 145
Read Access to Groups .................................................................................... 146
Updating or Replacing UDFs ............................................................................. 149
Placing UDFs ................................................................................................... 150
The UDF Input Data Structure ProUdfdata.......................................................... 152
Reading UDF Properties ................................................................................... 158
Notification on UDF Library Creation .................................................................. 161
Multibody Support in a UDF and a Copy feature .................................................. 162
Core: 3D Geometry ................................................................................................. 170
Geometry Objects............................................................................................. 171
Visiting Geometry Objects ................................................................................. 172
Tessellation ...................................................................................................... 181
Evaluating Geometry ........................................................................................ 184
Geometry Equations ......................................................................................... 187
Ray Tracing...................................................................................................... 194
Measurement ................................................................................................... 195
Geometry as NURBS ........................................................................................ 198
Interference...................................................................................................... 198
Faceted Geometry ............................................................................................ 202
Core: Relations ....................................................................................................... 204
Relations.......................................................................................................... 205
Adding a Customized Function to the Relations Dialog in Creo Parametric............ 208
Core: Parameters.................................................................................................... 210
Parameter Objects............................................................................................ 211
Parameter Values ............................................................................................. 212
Accessing Parameters ...................................................................................... 212
Designating Parameters Windchill Servers ......................................................... 218
Restricted Parameters ...................................................................................... 218
Table-Restricted Parameters ............................................................................. 219
Driven Parameters............................................................................................ 221
Core: Coordinate Systems and Transformations ........................................................ 222
Coordinate Systems ......................................................................................... 223
Coordinate System Transformations .................................................................. 225
Core: Family Tables................................................................................................. 230
Family Table Objects......................................................................................... 231
Family Table Utilities ......................................................................................... 231
Visiting Family Tables........................................................................................ 231
Operations on Family Table Instances ................................................................ 232
Operations on Family Table Items ...................................................................... 234
Contents 5
Menu Manager Buttons and Menus.................................................................... 320
Customizing the Creo Parametric Navigation Area .............................................. 335
Entering Creo Parametric Commands ................................................................ 339
User Interface: Dialogs ............................................................................................ 344
Introduction ...................................................................................................... 346
UI Components ................................................................................................ 347
Cascade Button................................................................................................ 359
Checkbutton..................................................................................................... 360
Drawing Area ................................................................................................... 362
Input Panel....................................................................................................... 371
Label ............................................................................................................... 374
Layout ............................................................................................................. 376
List .................................................................................................................. 378
Menubar .......................................................................................................... 381
Menupane........................................................................................................ 382
Optionmenu ..................................................................................................... 384
Progressbar ..................................................................................................... 386
Pushbutton....................................................................................................... 388
Radiogroup ...................................................................................................... 390
Separator......................................................................................................... 392
Slider ............................................................................................................... 393
Spinbox ........................................................................................................... 395
Tab .................................................................................................................. 397
Table ............................................................................................................... 400
Textarea........................................................................................................... 408
Thumbwheel .................................................................................................... 411
Tree................................................................................................................. 413
Master Table of Resource File Attributes............................................................. 425
Using Resource Files ........................................................................................ 444
User Interface: Dashboards ..................................................................................... 467
Introduction to Dashboards................................................................................ 468
Dashboard ....................................................................................................... 468
Dashboard Page .............................................................................................. 471
User Interface: Basic Graphics ................................................................................. 476
Manipulating Windows ...................................................................................... 477
Flushing the Display Commands to Window ....................................................... 482
Solid Orientation ............................................................................................... 483
Graphics Colors and Line Styles ........................................................................ 486
Displaying Graphics .......................................................................................... 490
Displaying Text ................................................................................................. 491
Validating Text Styles ........................................................................................ 493
Display Lists..................................................................................................... 493
Getting Mouse Input.......................................................................................... 495
Cosmetic Properties ......................................................................................... 495
Creating 3D Shaded Data for Rendering............................................................. 500
Contents 7
Surface Finish Annotations................................................................................ 612
Symbol Annotations .......................................................................................... 614
Annotations: Geometric Tolerances .......................................................................... 617
Geometric Tolerance Objects............................................................................. 618
Visiting Geometric Tolerances............................................................................ 618
Reading Geometric Tolerances.......................................................................... 619
Creating a Geometric Tolerance......................................................................... 623
Deleting a Geometric Tolerance ......................................................................... 630
Validating a Geometric Tolerance....................................................................... 630
Geometric Tolerance Layout .............................................................................. 630
Additional Text for Geometric Tolerances ............................................................ 631
Geometric Tolerance Text Style.......................................................................... 632
Prefix and Suffix for Geometric Tolerances ......................................................... 633
Parameters for Geometric Tolerance Attributes ................................................... 633
Annotations: Designated Area Feature...................................................................... 635
Introduction to Designated Area Feature ............................................................ 636
Feature Element Tree for the Designated Area.................................................... 636
Accessing Designated Area Properties............................................................... 638
Data Management: Windchill Operations .................................................................. 640
Introduction ...................................................................................................... 641
Accessing a Windchill Server from a Creo Parametric Session............................. 641
Accessing the Workspace ................................................................................. 644
Workflow to Register a Server............................................................................ 646
Aliased URL ..................................................................................................... 646
Server Operations ............................................................................................ 647
Utility APIs ....................................................................................................... 662
Sample Batch Workflow .................................................................................... 662
Interface: Data Exchange......................................................................................... 664
Exporting Information Files ................................................................................ 665
Exporting 2D Models......................................................................................... 667
Automatic Printing of 3D Models ........................................................................ 672
Exporting 3D Models......................................................................................... 678
Shrinkwrap Export ............................................................................................ 694
Exporting to PDF and U3D ................................................................................ 698
Importing Parameter Files ................................................................................. 706
Importing 2D Models ......................................................................................... 708
Importing 3D Models ......................................................................................... 709
Validation Score for Imports............................................................................... 718
Interface: Importing Features ................................................................................... 720
Creating Import Features from Files ................................................................... 721
Creating Import Features from Arbitrary Geometric Data...................................... 724
Redefining the Import Feature ........................................................................... 737
Import Feature Properties.................................................................................. 738
Extracting Creo Parametric Geometry as Interface Data ...................................... 740
Associative Topology Bus Enabled Interfaces ..................................................... 741
Contents 9
Remove Feature............................................................................................... 876
Attach Feature.................................................................................................. 881
Element Trees: Replace .......................................................................................... 884
Introduction ...................................................................................................... 885
The Feature Element Tree................................................................................. 885
Element Trees: Draft Features.................................................................................. 886
Draft Feature .................................................................................................... 887
Variable Pull Direction Draft Feature................................................................... 894
Element Trees: Round and Chamfer ......................................................................... 901
Round Feature ................................................................................................. 902
Modify Round Radius Feature ........................................................................... 913
Auto Round Feature.......................................................................................... 916
Chamfer Feature .............................................................................................. 916
Corner Chamfer Feature ................................................................................... 929
Element Trees: Hole ................................................................................................ 932
Overview.......................................................................................................... 933
Feature Element Tree for Hole Features ............................................................. 933
Feature Element Data Types ............................................................................. 936
Common Element Values .................................................................................. 939
PRO_E_HLE_COM Values ............................................................................... 940
Valid PRO_E_HLE_COM Sub-Elements ............................................................ 947
Hole Placement Types ...................................................................................... 951
Miscellaneous Information................................................................................. 955
Element Trees: Shell ............................................................................................... 958
Introduction to Shell Feature.............................................................................. 959
Feature Element Tree for the Shell Feature......................................................... 960
Creating a Shell Feature.................................................................................... 961
Redefining a Shell Feature ................................................................................ 962
Accessing a Shell Feature ................................................................................. 962
Element Trees: Patterns .......................................................................................... 963
Introduction ...................................................................................................... 964
The Element Tree for Pattern Creation ............................................................... 964
Obtaining the Element Tree for a Pattern ............................................................ 985
Visiting and Creating a Pattern........................................................................... 985
Element Trees: Sections .......................................................................................... 987
Overview.......................................................................................................... 988
Creating Section Models ................................................................................... 988
Element Trees: Sketched Features......................................................................... 1004
Overview........................................................................................................ 1005
Creating Features Containing Sections ............................................................ 1006
Creating Features with 2D Sections ................................................................. 1007
Verifying Section Shapes................................................................................. 1008
Creating Features with 3D Sections ................................................................. 1009
Reference Entities and Use Edge .................................................................... 1009
Contents 11
Assembling Components ................................................................................ 1138
Redefining and Rerouting Components ............................................................ 1138
Deleting Components ..................................................................................... 1138
Flexible Components ...................................................................................... 1138
Exploded Assemblies...................................................................................... 1141
Merge and Cutout ........................................................................................... 1145
Automatic Interchange .................................................................................... 1145
Assembly: Top-down Design .................................................................................. 1147
Overview........................................................................................................ 1148
Skeleton Model Functions ............................................................................... 1150
Assembly Component Functions...................................................................... 1151
External Reference Control Functions .............................................................. 1151
Feature and CopyGeom Feature Functions ...................................................... 1153
External Reference Data Gathering.................................................................. 1154
Assembly: Assembling Components....................................................................... 1159
Assembling Components by Functions............................................................. 1160
Assembling a Component Parametrically ......................................................... 1161
Redefining Components Interactively ............................................................... 1166
Assembling Components by Element Tree ....................................................... 1166
The Element Tree for an Assembly Component ................................................ 1166
Assembling Components Using Intent Datums.................................................. 1175
Assembly: Kinematic Dragging and Creating Snapshots .......................................... 1176
Connecting to a Kinematic Drag Session .......................................................... 1177
Performing Kinematic Drag.............................................................................. 1179
Creating and Modifying Snapshots................................................................... 1179
Snapshot Constraints...................................................................................... 1180
Snapshot Transforms...................................................................................... 1182
Snapshots in Drawing Views ........................................................................... 1183
Assembly: Simplified Representations .................................................................... 1184
Overview........................................................................................................ 1185
Simplified Representations in Session.............................................................. 1186
Retrieving Simplified Representations .............................................................. 1189
Retrieving and Expanding LightWeight Graphics Simplified
Representations.......................................................................................... 1190
Retrieving User-Defined Simplified Representations.......................................... 1190
Creating and Deleting Simplified Representations ............................................. 1192
Extracting Information About Simplified Representations ................................... 1192
Modifying Simplified Representations............................................................... 1194
Gathering Components by Rule ....................................................................... 1196
Assembly: Data Sharing Features .......................................................................... 1199
Copy Geometry, Publish Geometry, and Shrinkwrap Features............................ 1200
General Merge (Merge, Cutout and Inheritance Feature) ................................... 1211
Inheritance Feature and Flexible Component Variant Items................................ 1215
Drawings .............................................................................................................. 1226
Creating Drawings from Templates................................................................... 1227
Contents 13
Creating Manufacturing Objects....................................................................... 1444
Analyzing Manufacturing Features ................................................................... 1459
Production Applications: Customized Tool Database................................................ 1460
Overview........................................................................................................ 1461
Setting up the Database and Custom Search Parameters.................................. 1461
Registering the External Database ................................................................... 1462
Querying the External Database ...................................................................... 1463
Returning the Search Results .......................................................................... 1465
Production Applications: Creo NC Sequences, Operations and Work Centers............ 1467
Overview........................................................................................................ 1469
Element Trees: Roughing Step ........................................................................ 1469
Element Trees: Reroughing Step ..................................................................... 1474
Element Trees: Finishing Step ......................................................................... 1480
Element Trees: Corner Finishing Step .............................................................. 1484
Element Trees: 3–Axis Trajectory Milling Step................................................... 1490
Manufacturing 2–Axis Curve Trajectory Milling Step .......................................... 1496
Element Trees: Manual Cycle Step .................................................................. 1501
Element Trees: Thread Milling ......................................................................... 1507
Element Trees: Turning Step ........................................................................... 1523
Element Trees: Thread Turning Step ................................................................ 1529
Element Trees: Creo NC Operation Definition .................................................. 1534
Element Trees: Workcell Definition................................................................... 1539
Element Trees: Manufacturing Mill Workcell...................................................... 1542
Element Trees: Manufacturing Mill/Turn Workcell .............................................. 1546
Element Trees: Manufacturing Lathe Workcell .................................................. 1554
Element Trees: Manufacturing CMM Workcell................................................... 1558
Element Trees: Profile Milling Step................................................................... 1560
Element Trees: Face Milling Step..................................................................... 1567
Element Trees: Fixture Definition ..................................................................... 1576
Manufacturing Holemaking Step ...................................................................... 1578
Shut off Surface Feature Element Tree............................................................. 1617
Element Trees: Manufacturing Round and Chamfer .......................................... 1620
Element Trees: Engraving Step ....................................................................... 1627
Element Trees: Manufacturing Cutline Milling Sequence.................................... 1635
Element Trees: Manufacturing Drill Group Feature ............................................ 1651
Manufacturing Volume Milling Feature.............................................................. 1657
Element Trees: Skirt Feature ........................................................................... 1664
Sub-Element Trees: Creo NC Steps ................................................................. 1672
Production Applications: Process Planning.............................................................. 1784
Process Step Objects...................................................................................... 1785
Visiting Process Steps .................................................................................... 1785
Process Step Access ...................................................................................... 1785
Creating Process Steps................................................................................... 1786
Production Applications: NC Process Manager........................................................ 1789
Overview........................................................................................................ 1790
Contents 15
Creo Simulate Material Assignment ................................................................. 1924
Material Orientations....................................................................................... 1925
Creo Simulate Shells ...................................................................................... 1929
Shell Properties .............................................................................................. 1931
Shell Pairs...................................................................................................... 1938
Interfaces....................................................................................................... 1941
Gaps ............................................................................................................. 1948
Mesh Control.................................................................................................. 1950
Welds ............................................................................................................ 1963
Creo Simulate Features .................................................................................. 1967
Validating New and Modified Simulation Objects ............................................... 1967
Creo Simulate: Geometry....................................................................................... 1969
Introduction .................................................................................................... 1970
Obtaining Creo Simulate Geometry from Creo Parametric TOOLKIT .................. 1971
To Create a Surface Region Feature ................................................................ 1985
Creo Simulate: Finite Element Modeling (FEM)........................................................ 1987
Overview........................................................................................................ 1988
Exporting an FEA Mesh .................................................................................. 1988
Mechanism Design: Mechanism Features ............................................................... 1991
Mechanism Spring Feature.............................................................................. 1992
Mechanism Damper Feature ........................................................................... 1994
Mechanism Belt Feature ................................................................................. 1995
Mechanism 3D Contact Feature....................................................................... 1998
Mechanism Motor Features ............................................................................. 2002
Event-driven Programming: Notifications ................................................................ 2010
Using Notify.................................................................................................... 2011
Notification Types ........................................................................................... 2011
Event-driven Programming: External Objects .......................................................... 2020
Summary of External Objects .......................................................................... 2021
External Objects and Object Classes ............................................................... 2021
External Object Data ....................................................................................... 2024
External Object References............................................................................. 2031
Callbacks for External Objects ......................................................................... 2033
Warning Mechanism for External Objects ......................................................... 2034
Example 1: Creating an External Object ........................................................... 2036
Event-driven Programming: Toolkit-Based Analysis ................................................. 2037
Overview........................................................................................................ 2038
Interactive Creation of Toolkit-Based Analysis ................................................... 2038
Interactive Creation of Toolkit-Based Analysis Feature....................................... 2039
Storage of Toolkit-Based Analysis Feature in Creo Parametric ........................... 2039
Registering a Toolkit-Based Analysis with Creo Parametric ................................ 2040
Analysis Callbacks.......................................................................................... 2040
Creo Parametric TOOLKIT Analysis Information................................................ 2043
Results Data .................................................................................................. 2043
Analysis Attributes .......................................................................................... 2045
Contents 17
Equivalent Pro/DEVELOP Functions ................................................................ 2128
Appendix J.Geometry Traversal ............................................................................. 2142
Overview........................................................................................................ 2143
Geometry Terms ............................................................................................. 2143
Appendix K.Geometry Representations .................................................................. 2147
Domain of Evaluation ...................................................................................... 2148
Surface Data Structures .................................................................................. 2148
Edge and Curve Data Structures...................................................................... 2160
Appendix L.Debugging Creo Parametric TOOLKIT Applications................................ 2164
Building a Creo Parametric TOOLKIT Application for Debugging ........................ 2165
Debugging Techniques.................................................................................... 2165
Debugging a Multiprocess Application .............................................................. 2167
Glossary............................................................................................................... 2168
Index.................................................................................................................... 2172
Note
Creo Parametric TOOLKIT is supported only with Creo Parametric. It is not
supported with the other Creo applications.
19
The Creo Parametric TOOLKIT User’s Guide describes how to use Creo
Parametric TOOLKIT. This manual introduces Creo Parametric TOOLKIT, the
features it offers, and the techniques and background knowledge users require to
use it.
Note
The code examples included in this guide have been reformatted for
presentation purposes, and therefore may contain hidden editing characters,
such as tabs and end-of-line characters, and extraneous spaces. Do not cut and
paste sample application code or code fragments from the User’s Guide as the
additional formatting characters could break the code; always use the sample
code provided in the Creo Parametric TOOLKIT installation directory at
<creo_loadpoint>\<datecode>\Common Files\protoolkit\
protk_appls.
Note
• Important information that should not be overlooked appears in notes like
this.
• All references to mouse clicks assume use of a right-handed mouse.
Note
• The User’s Guide is also available in PDF format. This file is located
at:<creo_toolkit_loadpoint>\tkuse.pdf
• From Creo Parametric 4.0 F000, the applet based APIWizard is no longer
supported. Use the non-applet based APIWizard instead.
Fundamentals 23
To Install the APIWizard
The Creo Parametric product CD installation procedure automatically installs the
Creo Parametric TOOLKIT APIWizard. The files reside in a directory under the
Creo Parametric load point. The location for the Creo Parametric TOOLKIT
APIWizard files is <creo_toolkit_loadpoint>\protkdoc
To load the APIWizard manually, copy all files from <creo_toolkit_
loadpoint>\protkdoc to your target directory.
APIWizard Overview
The APIWizard supports Internet Explorer, Firefox, and Chromium browsers.
Start the Creo Parametric TOOLKIT APIWizard by pointing your browser to:
<creo_toolkit_loadpoint>\protkdoc\index.html
A page containing links to the Creo Parametric TOOLKIT APIWizard and User’s
Guide will open in the web browser.
APIWizard
Click APIWizard to open the list of Creo Parametric TOOLKIT Objects and the
related functions. Click a function name to read more about it.
Use the search field at the top of the left pane to search for functions. You can
search using the following criteria:
• Search by API names
• Search using wildcard character *, where * (asterisk) matches zero or more
nonwhite space characters
The search displays the resulting API names with embedded links in a drop down
list. The deprecated APIs are highlighted in yellow.
User’s Guide
Click User’s Guide to access the Creo Parametric Toolkit User’s Guide.
Fundamentals 25
Action Verb Type of Action
Get Read information directly from the Creo Parametric
database.
Eval Provide the result of a simple calculation.
Compute Provide the result of a computation that typically
involves numerical analysis of the model geometry.
Examples are:
• ProEdgeLengthEval()
• ProSurfaceAreaEval()
• ProSolidRayIntersectionCompute()
To illustrate further, function ProSolidOutlineGet() reads from Creo
Parametric the currently stored solid outline, but
ProSolidOutlineCompute() invokes a recomputation of that information.
Use ProSolidOutlineCompute() to compute an accurate outline of a solid.
Note
Do not use ProSolidOutlineGet() to calculate the outline of a solid. It
will not return a properly calculated outline.
Other Creo Parametric TOOLKIT function conventions are that the first argument
identifies the object, and input arguments come before output arguments.
Function Prototyping
Each Creo Parametric TOOLKIT function has an ANSI function prototype. (The
C compilers on platforms supported by Creo Parametric TOOLKIT provide at
least the option of function prototype checking.) All function prototypes for a
particular Creo Parametric TOOLKIT object reside in a header file named for that
object. For example, the prototype for function ProEdgeLengthEval() is
located in the header file ProEdge.h.
Note
PTC strongly recommends that you use prototyping. Make sure you include
the appropriate header files in your Creo Parametric TOOLKIT application.
Overview
Creo Parametric TOOLKIT is on the same DVD as Creo Parametric, so you do
not need to arrange a special delivery from your supplier. When Creo Parametric
is installed using PTC.Setup, one of the optional components is API Toolkits.
This includes Creo Parametric TOOLKIT, Pro/WebLink, J-Link, VB, and Creo
Object TOOLKIT C++ and Creo Object TOOLKIT Java.
If you select Creo Parametric TOOLKIT, it is installed under the loadpoint of
Creo Parametric at the location <creo_loadpoint>\<datecode>\Common
Files\protoolkit. The protoolkit directory contains all the headers,
libraries, example applications, and documentation specific to Creo Parametric
TOOLKIT.
Fundamentals 27
The following figure shows the tree of directories found under the Creo
Parametric TOOLKIT loadpoint after installation.
Note
The Creo Parametric library functions work by invoking functions inside the
Creo Parametric executable, so an update to Creo Parametric TOOLKIT often
involves a change to Creo Parametric rather than Creo Parametric TOOLKIT
itself. So when you receive a Creo Parametric DVD that contains an update to
Creo Parametric TOOLKIT, always reinstall Creo Parametric from that DVD.
Fundamentals 29
Note
○ The supported version of Visual Studio changes with every release of Creo
Parametric TOOLKIT, and hence the compiler flags and libraries also
change. For every release, you must download the latest version of the
ready-to-use Visual Studio solution from the creo_toolkit_
loadpoint.
○ In Creo Parametric 7.0.1.0 and later, Creo Parametric TOOLKIT supports
Visual Studio 2019. The compiler flags and libraries are available for
Visual Studio 2019. Creo Parametric TOOLKIT no longer supports Visual
Studio 2015.
All Creo Parametric TOOLKIT applications on 64-bit Windows platforms
built using the Microsoft Visual Studio 2019 compiler must set the
configuration property Platform Toolset as Visual Studio 2019 (v142).
Note
Refer to the Creo Parametric Help for more information on customizing
the Ribbon.
9. Click Tools and then click File ▶ Install Test. The Creo Parametric TOOLKIT
Install Test Results message window opens, indicating that the installation test
has succeeded.
Fundamentals 31
To run other sample applications provided by PTC, follow these steps:
1. Copy the required makefile from <creo_toolkit_loadpoint>\
$<machine_type>\obj to the make_install directory of the ready-
to-use Visual Studio solution.
If you are working on a 64-bit Windows platform, copy the file from <creo_
toolkit_loadpoint>\x86e_win64\obj.
2. Copy the text directory associated with the sample application from <creo_
toolkit_loadpoint>\protk_appls\<app_name>\text to the
make_install directory.
3. Open Visual Studio and set the values of the following variables in the
makefile:
PROTOOL_SRC = ../../../../../protoolkit
PROTOOL_SYS = $(PROTOOL_SRC)/$(PRO_MACHINE_TYPE)
4. Click Project ▶ Properties to update the NMake properties of the project.
5. Click Build ▶ Rebuild make_install. The application builds and creates a new
.dll file.
6. Update the creotk.dat file located in the make_install directory with
the name of the sample application and the DLL file.
7. Modify the exec_file and text_dir fields in the creotk.dat file to
specify the full path to the .dll file and \text directory, respectively.
8. Start Creo Parametric.
9. On the Home tab, in the Utilities group, click Auxiliary Applications or click
Tools ▶ Auxiliary Applications. The Auxiliary Applications dialog box opens.
10. Click Register to register the updated creotk.dat file. The Register
auxiliary application dialog box opens.
11. Browse to the full path and select creotk.dat.
12. Click Open. The Creo Parametric TOOLKIT application runs.
Step 2—Register
In the same directory, create a text file called creotk.dat. This file is the
“registry file” that tells Creo Parametric about the Creo Parametric TOOLKIT
application. Refer to the Registering a Creo Parametric TOOLKIT Application on
page 38 and Sample Registry Files on page 2101 sections for syntax requirements
for this file. The creotk.dat file should contain the following lines:
name install_test
exec_file pt_inst_test.exe
text_dir <creo_toolkit_loadpoint>/protk_appls/pt_install_test
end
Note
Use the delimiter character \in creotk.dat.
Fundamentals 33
Step 3—Run Creo Parametric
Run Creo Parametric from the directory that contains the creotk.dat file; Creo
Parametric starts the Creo Parametric TOOLKIT application in multiprocess mode
(see the section How Creo Parametric TOOLKIT Works on page 35 for more
information on multiprocess mode). You should see that the Install Test command
has been added in the TOOLKIT group in the Home tab on the Creo Parametric
ribbon user interface. Click Tools and then click File ▶ Install Test. The Creo
Parametric TOOLKIT application displays a custom dialog indicating whether the
installation test has succeeded:
Failure or error messages at this stage could be due to the following reasons:
• You made a mistake when creating the creotk.dat file. If the syntax or
contents are wrong, you should see a self-explanatory message in the window
from which you started Creo Parametric.
• The Creo Parametric you ran is not licensed for Creo Parametric TOOLKIT.
This also causes an explanatory message to be displayed in the startup
window.
• The Creo Parametric TOOLKIT executable you created in Step 1 is wrong in
some way: it is for the wrong platform, for example, or might not have execute
access. You can check this by trying to execute the file directly by typing its
name. If the file is correct, the program prints the following messages and then
terminates:
pt_inst_test: insufficient arguments; need 2 arguments:
(1) own RPC program #
(2) root directory path for Pro/TOOLKIT text files.
If the file is incorrect, the exact message will depend on which platform you are
using, but should explain the cause of the problem.
Fundamentals 35
and link it with the Creo Parametric TOOLKIT library, you create an object
library file designed to be linked into the Creo Parametric executable when Creo
Parametric starts up. This method is referred to as DLL mode.
Creo Parametric TOOLKIT also supports a second method of integration: the
“multiprocess,” or spawned mode. In this mode, the Creo Parametric TOOLKIT
application code is compiled and linked to form a separate executable. This
executable is designed to be spawned by Creo Parametric and runs as a child
process of the Creo Parametric session. In DLL mode, the exchanges between the
Creo Parametric TOOLKIT application and Creo Parametric are made through
direct function calls. In multiprocess mode, the same effect is created by an inter-
process messaging system that simulates direct function calls by passing the
information necessary to identify the function and its argument values between the
two processes.
Multiprocess mode involves more communications overhead than DLL mode,
especially when the Creo Parametric TOOLKIT application makes frequent calls
to Creo Parametric TOOLKIT library functions, because of the more complex
method of implementing those calls. However, it offers the following advantage: it
enables you to run the Creo Parametric TOOLKIT application with a source-code
debugger without also loading the whole Creo Parametric executable into the
debugger. See the section Using a Source-Code Debugger on a Creo Parametric
TOOLKIT Application on page 44 for more details.
You can use a Creo Parametric TOOLKIT application in either DLL mode or
multiprocess mode without changing any of the C source code in the application.
(The methods of setting the mode are described in detail later in this chapter.)
It is also possible to use more than one Creo Parametric TOOLKIT application
within a single session of Creo Parametric, and these can use any combination of
modes.
If you use multiprocess mode during development of your application to debug
more easily, you should switch to DLL mode when you install the application for
your end users because the performance is better in that mode. However, take care
to test your application thoroughly in DLL mode before you deliver it. Any
programming errors in your application that cause corruption to memory used by
Creo Parametric or Creo Parametric TOOLKIT are likely to show quite different
symptoms in each mode, so new bugs may emerge when you switch to DLL
mode.
Although multiprocess mode involves two processes running in parallel, these
processes do not provide genuine parallel processing. There is, however, another
mode of integrating a Creo Parametric TOOLKIT application that provides this
ability, called “asynchronous mode.” (Asynchronous mode is described in detail in
the chapter Core: Asynchronous Mode on page 277.) The DLL and multiprocess
modes are given the general name “synchronous mode.” An asynchronous Creo
Parametric TOOLKIT application is fundamentally different in its architecture
from a synchronous mode application, so you should choose between these
Note
• All Creo Parametric TOOLKIT calls running in either synchronous (DLL or
multiprocess) mode or asynchronous mode always clear the Undo/Redo
stack in the Creo Parametric session. The Creo Parametric user interface
reflects this by making the Undo and Redo menu options unavailable.
• When you invoke the Creo Parametric TOOLKIT application, ensure that no
dialogs are open in Creo Parametric session. If Creo Parametric dialog is open,
the results may be unpredictable.
Makefiles
The C compiler options and system libraries needed to compile and link a Creo
Parametric TOOLKIT application are different on each platform. To ensure that
the makefile you use for building your Creo Parametric TOOLKIT application
uses the correct options, you should base your makefile on one of the makefiles
located under the <creo_toolkit_loadpoint>. These are designed for
building the various Creo Parametric TOOLKIT applications whose source is
included in the Creo Parametric TOOLKIT installation.
An example of one of the Creo Parametric TOOLKIT applications provided is the
installation test, whose source code is under the directory <creo_toolkit_
loadpoint>\protk_appls\pt_install_test, where <creo_
toolkit_loadpoint> is the loadpoint directory of the Creo Parametric
TOOLKIT installation. The makefile for the installation test application is
<creo_toolkit_loadpoint>\$<machine_type>\obj\make_
install.
To use this as the model for your own makefile, copy it to the directory that will
contain your Creo Parametric TOOLKIT source code, then make the following
changes to it:
Fundamentals 37
• Change the macro MAKEFILENAME to refer to the makefile by its new name.
• Change the macros EXE and EXE_DLL to define output file names more
suitable for your own application.
• Change the macro PROTOOL_SRC to refer to the loadpoint of Creo
Parametric TOOLKIT.
• Change the macro OBJS to refer to the object files that will result from
compiling your Creo Parametric TOOLKIT source files.
• Add targets for those object files. These contain instructions for
• compiling your C source files. The form of these target definitions can be
copied from the ones in the original makefile. They generally take the
following form:
myfile.o: myfile.c
$(CC) $(CFLAGS) myfile.c
Note
The second line must start with a tab character.
If you want to use a debugger with your Creo Parametric TOOLKIT application,
you can also add the appropriate compiler switch (usually “-g”) to the CCFLAGS
macro.
If you are rebuilding an existing Pro/TOOLKIT application with a new version of
Creo Parametric TOOLKIT, remember to repeat these steps to set up a new
makefile—do not continue to use a makefile created for the previous version. You
must do this in case the compiler switches or system libraries needed to build a
Creo Parametric TOOLKIT application have changed in the new version.
Note
• Option 1 is normally used during development, because the Creo Parametric
TOOLKIT application is seen only if you start Creo Parametric from the
specific directory that contains the registry file.
• Option 3 is recommended when making an end-user installation, because it
makes sure that the registry file is found no matter what directory is used to
start Creo Parametric.
The registry file is a simple text file, where each line consists of one of a
predefined set of keywords, followed by a value.
The standard form of the registry file in DLL mode is as follows:
name YourApplicationName
startup dll
exec_file $LOADDIR/$MACHINE_TYPE/obj/filename.dll
text_dir $LOADDIR
end
The fields of the registry file are as follows:
Fundamentals 39
• name—Assigns a unique name to this Creo Parametric TOOLKIT
application.
• startup—Specifies the method Creo Parametric should use to communicate
with the Creo Parametric TOOLKIT application. The example above specifies
the DLL mode.
• exec_file—Specifies the full path and name of the file produced by
compiling and linking the Creo Parametric TOOLKIT application. The
example above shows a typical use of environment variables to make the
reference to the executable file more flexible.
• text_dir—Specifies the full path name to text directory that contains the
language-specific directories. The language-specific directories contain the
message files, menu files, resource files and UI bitmaps in the language
supported by the Creo Parametric TOOLKIT application.
Note
The fields exec_file and text_dir have a character limit of PRO_
PATH_SIZE-1 wide characters (wchar_t).
Note
For all Creo Parametric TOOLKIT plugins, the registry file protk.dat
is located inside the %ProgramData%\PTC\<Creo Parametric
Toolkit version>\Plugins subdirectories. All registry files located
in this location must use the absolute path in all their entries.
For more information about the registry file, refer to the appendix Creo
Parametric TOOLKIT Registry File on page 2099.
Note
From Pro/ENGINEER Wildfire 4.0 onwards applications built with libraries
older than Pro/ENGINEER 2001 will not run. You must recompile these
applications with later versions of the Pro/TOOLKIT libraries.
The following points summarize the rules for mixing Creo Elements/Pro
TOOLKIT and Creo Elements/Pro versions.
• Pro/ENGINEER release older than Pro/TOOLKIT release:
Fundamentals 41
Not supported
• Creo Parametric release newer than a Creo Parametric TOOLKIT release:
This works in many, but not all, cases. The communication method used to
link Creo Parametric TOOLKIT to Creo Parametric provides full compatibility
between releases. However, there are occasional cases where changes internal
to Creo Parametric may require changes to the source code of a Creo
Parametric TOOLKIT application in order that it continue to work correctly.
Whether you need to convert Creo Parametric TOOLKIT applications depends
on what functionality it uses and what functionality changed in Creo
Parametric and Creo Parametric TOOLKIT. PTC makes every effort to keep
these effects to a minimum. The Release Notes for Creo Parametric TOOLKIT
detail any conversion work that could be necessary for that release.
• Creo Parametric build newer than Creo Parametric TOOLKIT build
This is always supported.
Fundamentals 43
○ The names of the executable file and text directory
○ The version number used to build the application
○ Whether the application is currently running
There are a few other, less commonly used options in the registry file. All the
options are described fully in the Creo Parametric TOOLKIT Registry File on
page 2099 appendix.
Note
You can delete registration information on any application that is not running.
Note
• The Creo Parametric TOOLKIT application is unlocked even if you do not
specify the -c option.
• To unlock and digitally sign your application, specify the -cd option. Note
that it is mandatory to sign your application if you use the -cd option. See the
section Digitally Signing the Application on page 46, for more information on
digitally signing your application.
Note
Once you have unlocked the executable, you can distribute your application
program to Creo Parametric users in accordance with the license agreement.
Note
Only one license will be held for the specified time period, even if multiple
applications were successfully unlocked.
Unlocking the application may also require one or more advanced licensing
options. The protk_unlock application will detect whether any functions
using advanced licenses are in use in the application, and if so, will make a check
for the availability of the advanced license option. If that option is not present,
unlocking will not be permitted. If they are present, the unlock will proceed.
Advanced options are not held on the license server for any length of time. For
more information refer to the Advanced Licensing Options on page 2113 chapter.
If the required licenses are available, the protk_unlock application will unlock
the application immediately. An unlocked application does not require any of the
Creo Parametric TOOLKIT license options to run. Depending on the functionality
invoked by the application, it may still require certain Creo Parametric options to
work correctly.
Fundamentals 45
Note
Once an application binary has been unlocked, it should not be modified in
any way (which includes statically linking the unlocked binary with other
libraries after the unlock). The unlocked binary must not be changed or else
Creo Parametric will again consider it "locked".
Unlock Messages
The following table lists the messages that can be returned when you unlock a
Creo Parametric TOOLKIT application.
Message Cause
<application name>:Successfully unlocked The application is unlocked successfully.
application.
Usage: protk_unlock <one or more Creo No arguments supplied.
Parametric TOOLKIT executables or DLLs>
<application name>:ERROR: No READ access You do not have READ/WRITE access for the
Fundamentals 47
ProObjects.h, which contains the declarations of the object handles, is
included indirectly in each of the header files that contains function prototypes,
and so does not need to be included explicitly.
For example, if you are using the function ProSurfaceAreaEval(), you
should include the file ProSurface.h, which contains the prototype of that
function, but you do not need to include ProObjects.h in order to see the
definition of ProSurface, because ProObjects.h is included in
ProSurface.h.
Note
• user_initialize() must contain at least one Creo Parametric
TOOLKIT API call. Failure to do so causes the Creo Parametric TOOLKIT
application to fail and return PRO_TK_GENERAL_ERROR.
• When coding a Creo Parametric TOOLKIT application in C++ you must
declare the function user_initialize() as extern "C".
Note
If both the variables are set, then the environment variable PROTK_
DELAYINIT_NO_DELAY takes precedence.
Fundamentals 49
Note
The Creo Parametric visible datecode format has changed. user_
initialize() continues to receive the classic format based on the year
and week of the Creo Parametric build.
Note
When coding a Creo Parametric TOOLKIT application in C++ you must
declare the function user_terminate() as extern "C".
Fundamentals 51
• ProEngineerMultithreadModeEnable()
From Creo Parametric 3.0 onward, the function
ProEngineerMultithreadModeEnable() has been deprecated.
Multithreading is now always supported in Creo Parametric TOOLKIT
applications, without the need to call the multithreading function, when the
application creates additional threads for processing.
Call the function ProEngineerMultithreadModeEnable() from within
the initialization function user_initialize(), if your Creo Parametric
TOOLKIT application creates additional threads for processing. This function
notifies Creo Parametric to execute in the multithread enabled mode. Running in
this mode eliminates the possibility of a memory corruption due to interaction
between Creo Parametric’s thread libraries and the threads created by your
application. This function does not work for multiprocess and asynchronous mode
applications.
Note
Running Creo Parametric in the multithread enabled mode may slow down
performance. Therefore, ProEngineerMultithreadModeEnable()
should be used only for applications that actually create multiple threads.
Fundamentals 53
printf ("*** Failed to retrieve part %s\n", part_name);
ProEngineerEnd();
}
/*----------------------------------------------------------------*\
Add the holes to the part.
\*----------------------------------------------------------------*/
UserAddHoles (p_part);
/*----------------------------------------------------------------*\
Save the part.
\*----------------------------------------------------------------*/
ProMdlSave (p_part);
/*----------------------------------------------------------------*\
Terminate the Creo Parametric session.
\*----------------------------------------------------------------*/
ProEngineerEnd();
return (0);
}
/*================================================================*\
FUNCTION: user_terminate()
PURPOSE: Report successful termination of the program.
\*================================================================*/
void user_terminate()
{
printf ("Creo Parametric TOOLKIT application terminated successfully\n");
}
User-Supplied Main
Function Introduced:
Asynchronous Mode
For more information on the asynchronous mode, see the chapter Core:
Asynchronous Mode on page 277.
Fundamentals 55
Creo Parametric TOOLKIT Techniques
This section describes the basic techniques you use when writing Creo Parametric
TOOLKIT applications. The topics are as follows:
• Object Handles on page 56
• Expandable Arrays on page 59
Also see the Visit Functions on page 62 section for information on techniques
used when writing Creo Parametric TOOLKIT applications.
Object Handles
Each object in Creo Parametric TOOLKIT has a corresponding C typedef, called a
“handle”, whose name is always the name of the object itself with the prefix
“Pro.” The handle is used as the type for all variables and arguments that refer to
an object of that type. For example, any Creo Parametric TOOLKIT function that
performs an action on a solid has an input argument of type ProSolid.
Handles are classified into two types, depending on the way in which they are
defined and have to be used. The two types are opaque handle (OHandle) and
database handle (DHandle). The following sections describe these handles in
detail.
OHandles
The simplest way to reference an object in Creo Parametric is to use the memory
address of the Creo Parametric data structure that describes that object. To prevent
the Creo Parametric TOOLKIT application from accessing the content of the data
structure for the object directly, the declaration of the structure is not provided.
For example, the object handle ProSurface is defined as follows:
typedef struct geom* ProSurface;
The structure struct geom is used to describe a surface in Creo Parametric, but
the declaration of the structure is not included in Creo Parametric TOOLKIT. This
type of handle is called an opaque handle or opaque pointer for this reason.
Opaque handles have the advantage of simplicity and efficiency—they can be
directly dereferenced inside the Creo Parametric TOOLKIT function without any
searching. They can also reference items that are transient and not in the Creo
Parametric database at all, such as the surfaces and edges that result from an
interference volume calculation.
Other examples of Creo Parametric TOOLKIT objects that are given OHandles
are as follows:
typedef void* ProMdl;
typedef struct curve_header* ProEdge;
typedef struct sld_part* ProSolid;
typedef struct entity* ProPoint;
DHandles
A further limitation of opaque handles is that they can be too specific in cases
where the action you want to perform is more generic. For example, a function
that provides the name of a geometrical item should, ideally, be able to act on any
of the geometry objects (ProSurface, ProEdge, ProCsys, and so on).
However, the opaque handles for those different geometry items are not mutually
compatible, so the Creo Parametric TOOLKIT function would also need to know
the type of the object before it could internally de-reference the opaque pointer.
To solve this problem, Creo Parametric TOOLKIT defines a new, generic object
type in these cases and declares it using a data handle, or DHandle. A DHandle is
an explicit data structure that carries just enough information to identify a
database item uniquely: the type, integer identifier, and handle to the owning
model. Because the DHandle must contain the integer identifier (not the too-
specific opaque handle), it also has the advantage of being persistent.
The most important examples of DHandles are ProGeomitem, which is the
generic type for the geometry items previously mentioned, and ProModelitem,
which is an even more generic object that includes ProGeomitem.
The declaration is as follows:
typedef struct pro_model_item
{
ProType type;
int id;
ProMdl owner;
Fundamentals 57
} ProModelitem, ProGeomitem;
Note
Although the field owner is defined using the OHandle ProMdl, and is
therefore strictly speaking volatile, this handle is guaranteed to remain valid
while the Creo Parametric model it refers to remains in memory.
The generic object ProGeomitem can represent any of the geometrical objects
in a solid model, such as ProSurface, ProEdge, ProCurve, and ProCsys.
The specific object types are said to be “derived from” the most generic type, and
also to be “instances” of that type. The object type ProGeomitem is in turn an
instance of ProModelitem, which can represent database items other than
geometrical ones.
The generic object types such as ProModelitem and ProGeomitem are used
as inputs to Creo Parametric TOOLKIT functions whose actions are applicable to
all of the more specific types of object that are instances of the generic type. For
example, the function ProGeomitemFeatureGet() has that name because it
can act on any type of object that is an instance of ProGeomitem
ProSurface, ProEdge, ProCsys, and so on. The function
ProModelitemNameGet() is applicable to a wider range of database objects,
not just geometrical ones.
If you have the OHandle to an object, such as ProSurface, and you want to call
a generic function such as ProGeomitemFeatureGet(), you need to convert
the OHandle to the more generic DHandle. Functions such as
ProGeomitemInit() and ProModelitemInit() provide this capability.
Similarly, you can convert a ProGeomitem to a ProSurface using the
function ProSurfaceInit(). These techniques are illustrated in Example 3:
Listing Holes in a Model on page 64, in the Visit Functions on page 62 section.
Workspace Handles
When you use Creo Parametric TOOLKIT to create an object in Creo Parametric
that contains a lot of information, such as a feature, it is important to be able to set
up all of that information before adding the object to the Creo Parametric
database. The object-oriented style of Creo Parametric TOOLKIT does not allow
explicit access to the contents of such a structure, however. Instead, you must use
a special workspace object that is allocated and filled by the Creo Parametric
TOOLKIT application using functions provided for that purpose.
The “workspace” is a memory area in Creo Parametric that contains data
structures not yet part of the design database.
Expandable Arrays
Functions Introduced:
• ProArrayAlloc()
• ProArrayFree()
• ProArraySizeGet()
• ProArraySizeSet()
• ProArrayMaxCountGet()
• ProArrayObjectAdd()
• ProArrayObjectRemove()
The functions in this section enable you to access a set of programming utilities in
general use within Creo Parametric. The utilities fill a need that is common in C
and Pascal programming—to provide a storage method that provides the
advantages of an array, but without its limitations.
When you use an array for storage for a group of items, you have the advantage
over a linked list in that the members are contiguous in memory. This enables you
to access a given member using its index in the array. However, if you need to
make frequent additions to the members in a way that cannot be predicted (a
common situation in MCAE applications), you must reallocate the memory for the
array each time.
A common compromise is to allocate the memory in blocks large enough to
contain several array members, then reallocate the memory only when a block
becomes full. You would choose the size of the blocks such that the frequency of
reallocation is significantly reduced, while the amount of unused memory in the
last block is acceptably small. The difficulty of this solution is that you would
normally need a new set of utilities for each item you want to store as an array,
and additional static data for each array to keep track of the number of blocks and
the number of members.
The “expandable array” utilities provide a set of functions that can be applied to
items of any size. The utilities do this by keeping a private header at the start of
the array memory to which the “bookkeeping” information (the number and size
of its members, and of the blocks) is written. The pointer your application sees is
the address of the first block, not the address of the preceding header.
Fundamentals 59
The importance of the expandable array utilities in a Creo Parametric TOOLKIT
application is not only that you can use them for your own arrays, but that you
must use them for arrays of data passed between your application and the internals
of Creo Parametric through the Creo Parametric TOOLKIT functions.
Note that because the array pointer is not the start of the contiguous memory
claimed by the array utility, this pointer is not recognized by the operating system
as a valid location for dynamic memory. Therefore, you will cause a fatal error if
you try to use the memory management library functions, such as realloc()
and free().
The basic type used for referring to expandable arrays is ProArray, declared as
a void*.
The function ProArrayAlloc() sets up a new expandable array. Its inputs are
as follows:
• The initial number of members in the array
• The size, in bytes, of each array member
• Number of objects added to ProArray at each memory reallocation. A
higher number means more memory is preallocated and fewer reallocations of
the ProArray are required.
The function outputs a pointer to the contiguous memory that will contain the
array members. You can write to that memory to fill the array using the usual
memory functions (such as memcpy() and memset()). If you increase the
array size beyond the limit returned by ProArrayMaxCountGet(), this
function returns an out-of-memory message.
The maximum memory allocated is 2 MB, except for 64–bit platforms where the
maximum is twice that.
The function ProArrayFree() releases the memory for the specified
ProArray.
The function ProArraySizeGet() tells you how many members are currently
in the specified array.
The ProArraySizeSet() function enables you to change the number of
members in the expandable array. This function is equivalent to realloc().
Function ProArrayMaxCountGet(), when given the specified structure size
in bytes, returns the maximum number of structure elements a ProArray can
support for that structure size.
The function ProArrayObjectAdd() adds a contiguous set of new members
to an array, though not necessarily to the end of the array. The function also sets
the contents of the new members. If you increase the array size beyond the limit
returned by ProArrayMaxCountGet(), this function returns an out-of-
memory message.
Fundamentals 61
Example 2: Expandable Arrays
The sample code in UgFundExpArrays.c located at <creo_toolkit_
loadpoint>\protk_appls\pt_userguide\ptu_fundament shows
how to use expandable arrays, not as input or output for a Creo Parametric
TOOLKIT function, but to create a utility that provides an alternative to a Creo
Parametric TOOLKIT visit function. To use Creo Parametric TOOLKIT to access
all the features in a solid, you call the function ProSolidFeatVisit().
However, you might prefer to use a function that provides an array of handles to
all of the features, then traverse this array. This kind of function is called a
“collection” function, to distinguish it from a visit function. Although Creo
Parametric TOOLKIT does not provide collection functions, you can use the
technique demonstrated in the example to write your own.
The utility function UserFeatureCollect() passes an empty, expandable
array of feature handles as the application data to ProSolidFeatVisit().
The visit function FeatVisitAction() adds the handle to the visited feature
to the array using ProArrayObjectAdd().
Visit Functions
In a Creo Parametric TOOLKIT application, you often want to perform an
operation on all the objects that belong to another object, such as all the features in
a part, or all the surfaces in a feature. For each case, Creo Parametric TOOLKIT
provides an appropriate “visit function.” A visit function is an alternative to
passing back an array of data.
You write a function that you want to be called for each item (referred to as the
“visit action” function) and pass its pointer to the Creo Parametric TOOLKIT visit
function. The visit function then calls your visit action function once for each
visited item.
Most visit functions also provide for a second callback function, the filter
function, which is called for each visited item before the action function. The
return value of the filter function controls whether the action function is called.
You can use the filter function as a way of visiting only a particular subset of the
items in the list.
For example, the visit function for visiting the features in a solid is declared as
follows:
ProError ProSolidFeatVisit (
ProSolid solid,
ProFeatureVisitAction visit_action,
ProFeatureFilterAction filter_action,
ProAppData app_data);
The first argument is the handle to the solid (the part or assembly) whose features
you want to visit.
Fundamentals 63
• PRO_TK_NO_ERROR—Continue visiting the other objects in the list.
• PRO_TK_E_NOT_FOUND—For visit functions, this value indicates that no
items of the desired type were found and no functions could be visited.
• Any other value (including PRO_TK_CONTINUE)—Terminate the visits.
Typically this status is returned from the visit function upon termination, so
that the calling function knows the reason that visiting terminated abnormally.
Wide Strings
Creo Parametric TOOLKIT, like Creo Parametric, has to work in environments
where character strings use codes other than ASCII, and might use a bigger
character set than can be coded into the usual 1-byte char type, for example, the
Japanese KANJI character set.
For this reason, Creo Parametric TOOLKIT uses the type wchar_t instead of
char for all characters and strings that may be visible to the Creo Parametric
user. This includes all text messages, keyboard input, file names, and names of all
dimensions, parameters, and so on, used within a Creo Parametric object.
Defining wchar_t
Although most platforms supported by Creo Parametric TOOLKIT provide a
definition of wchar_t in a system include file, not all do. Those that do use
definitions of different lengths; some provide definitions that are not suitable for
all the character codes supported by Creo Parametric. Therefore, Creo Parametric
takes considerable care to make sure it uses a suitable definition of wchar_t on
each supported platform.
It is essential to make sure your Creo Parametric TOOLKIT application is using
the same definition of wchar_t as Creo Parametric on each platform your
application supports. To make this easier, Creo Parametric TOOLKIT supplies the
include filepro_wchar_t.h. This file ensures that, if a definition of wchar_
t.h has not already been made in an earlier include file, one is provided that is
consistent with the Creo Parametric definition of the type. Because this file is
included by the file ProToolkit.h, you should include ProToolkit.h as
the very first include file in each source file.
Fundamentals 65
Checking Your Declaration of wchar_t
Function Introduced:
• ProWcharSizeVerify()
The function ProWcharSizeVerify() checks to make sure you have the
correct declaration of wchar_t. PTC recommends that you always call this
function at the beginning of the user_initialize() function (or main() in
asynchronous mode).
You pass as input the size of your wchar_t definition, in bytes, and the function
outputs the correct size. It returns PRO_TK_NO_ERROR if your size is correct,
and PRO_TK_GENERAL_ERROR otherwise. You can check for correctness as
follows:
int proe_wchar_size;
int protk_wchar_size = sizeof (wchar_t);
Fundamentals 67
Set the environment variable PTC_IPV6_MODE to yes for Creo to use the IPv6
protocol for addressing. To use IPv4 communication protocol, set the environment
variable to no.
If you want to run applications created in Creo Parametric 5.0.0.0 and previous
releases in Creo Parametric 6.0.0.0 with IPv6 enabled, you must rebuild the
applications.
If the environment variable is set to no, that is for IPv4 protocol, these
applications continue to work in Creo Parametric 6.0.0.0 without rebuilding.
Accessing LearningConnector
Function Introduced:
• ProLearningconnectorNotify()
LearningConnector (LC) is a feature in Creo that allows users to access the Creo
training directly from a Creo application. An event triggered in the Creo user
interface notifies the LearningConnector, which displays the relevant training
topics for the current activity.
The function ProLearningconnectorNotify() notifies the
LearningConnector that an event has been triggered from a Creo Parametric
TOOLKIT application. The function also allows users to notify custom-made
trainings other than the standard training provided by PTC for the specified
module. The LearningConnector displays the relevant training topics for the
specified input arguments. You must read the LearningConnector documentation
before using this function. The input arguments are:
• module—This is a mandatory argument. Specifies the name of the Creo
module that triggers the event.
• module_info—This is an optional argument. Specifies additional information
about the Creo module that triggers the event. This additional information is
used by the event-handling function of LearningConnector.
You can use the function on customized Creo Parametric TOOLKIT widgets also.
This chapter describes Creo Parametric TOOLKIT modes, models, and model
items.
69
Modes
Functions Introduced:
• ProModeCurrentGet()
• ProSectionIsActive()
The term “mode” in Creo Parametric refers to the type of model currently being
edited by the user. The possible modes are given by the options listed under the
command File ▶ New.
The ProMode object in Creo Parametric TOOLKIT is an enumerated type,
declared in the file ProMode.h, as are the prototypes for the mode functions.
Find the name of the mode using the function ProModeCurrentGet(). The
function ProModeCurrentGet() outputs the mode in which Creo Parametric
is being used, in the form of the ProMode enumerated type. If there is no current
model—for example, because no model has been retrieved, or because the user
has selected File ▶ Close—the function returns an error status (PRO_TK_BAD_
CONTEXT).
The function ProSectionIsActive() checks if the sketcher is currently
active even if the current mode is part or assembly.
Models
This section describes Creo Parametric TOOLKIT models. The topics are as
follows:
• The ProMdl Object on page 70
• Creating Models on page 71
• Identifying Models on page 72
• Models in Session on page 77
• File Management Operations on page 78
Creating Models
Functions Introduced
• ProSolidMdlnameCreate()
• ProMfgMdlCreate()
• ProSection2DAlloc()
• ProDrawingFromTmpltCreate()
• ProDrawingFromTemplateCreate()
• ProMdlStartAction()
Creo Parametric TOOLKIT supports creation of models for Solids,
Manufacturing, Section (two-dimensional only), and Drawing.
See Creating a Solid on page 93 for a complete description of
ProSolidMdlnameCreate().
For more information on ProMfgMdlCreate() see Creating a Manufacturing
Model on page 1440.
Allocating a Two-Dimensional Section on page 989 gives more details on
ProSection2DAlloc().
Creating Drawings from Templates on page 1227 has more information on the
function ProDrawingFromTemplateCreate().
Note
The function ProDrawingFromTmpltCreate() will be deprecated in a
future release. Use the function ProDrawingFromTemplateCreate()
instead.
Identifying Models
Functions Introduced:
• ProMdlMdlnameGet()
• ProMdlOriginGet()
• ProMdlExtensionGet()
• ProMdlDirectoryPathGet()
• ProMdlTypeGet()
• ProMdlDisplaynameGet()
• ProMdlCommonnameGet()
• ProMdlCommonnameSet()
• ProMdlObjectdefaultnameGet()
• ProMdlnameInit()
• ProMdlIdGet()
• ProMdlActiveGet()
• ProMdlSubtypeGet()
• ProMdlFiletypeGet()
• ProFileSubtypeGet()
• ProMdlToModelitem()
The object ProMdl is an opaque handle, and is therefore volatile. It cannot be
used to refer to models that are not in memory in Creo Parametric, for example.
To reference a model in a way that is valid for models not in memory, and also
persistent across sessions of Creo Parametric, use the model name and type.
The functions ProMdlMdlnameGet() and ProMdlTypeGet() provide the
name and type of a model, given its ProMdl handle. The type of a model is
expressed in terms of the enumerated type ProMdlType. From Creo Parametric
Note
ProMdlCommonnameSet() can modify the name only for models that are
not yet owned by Windchill PDMLink, or in certain situations if the
configuration option let_proe_rename_pdm_objects is set to yes.
Note
For each of the above types, ProMdlObjectdefaultnameGet() returns
the next available default name, for example PRT00# for PRO_PART or
DRW00# for PRO_DRAWING, where # specifies the part or drawing number.
This number depends on the following factors:
• Models present in the active Creo Parametric session
• Files in the current working directory
• Connection to an active server with the autonumber option enabled
Thus, if no object with the specified name is actually created, the next time the
same name is returned; otherwise the next available name is returned.
Models in Session
Functions Introduced:
• ProSessionMdlList()
• ProMdlCurrentGet()
• ProMdlDependenciesDataList()
• ProMdlDependenciesCleanup()
• ProMdlDeclaredDataList()
• ProMdlModificationVerify()
• ProMdlIsModifiable()
• ProMdlIsEmbeddedName()
• ProMdlVisibleGet()
The function ProSessionMdlList() provides an array of ProMdl handles
to models of a specified type currently in memory.
The function ProMdlCurrentGet() provides the ProMdl handle to the
model currently being edited by the user.
The function ProMdlDependenciesDataList() provides an array of
ProMdl handles to the models in memory upon which a specified model
depends. One model depends on another if its contents reference that model in
some way. For example, an assembly depends on the models that form its
components, and a drawing model depends on the solid models contained in it.
Sometimes, two models can be mutually dependent, such as when a model feature
references a geometry item in a parent assembly. Clean the dependencies in the
database using the function ProMdlDependenciesCleanup() to get an
accurate list of dependencies for an object in the Creo Parametric workspace.
Note
Do not call the function ProMdlDependenciesCleanup() during
operations that alter the dependencies, such as, restructuring components and
creating or redefining features.
Model Items
A “model item” is a generic object used to represent any item contained in any
type of model, for the purpose of functions whose actions are applicable to all
these types of item. (Some items, such as “version stamp,” retain their own object
types.)
The object type ProModelitem is a DHandle (data handle), a structure that
contains the item type, the persistent integer identifier of the item, and the handle
to the owning object.
Note
In addition to notes of the type PRO_NOTE, the functions
ProModelitemNameGet() and ProModelitemNameSet() can be
used to read and set the name of the following annotation types:
• Driving or driven dimension of the type PRO_DIMENSION
• Reference dimension of the type PRO_REF_DIMENSION
• Symbol instance of the type PRO_SYMBOL_INSTANCE
• Surface finish of the type PRO_SURF_FIN
• Geometric tolerance of the type PRO_GTOL
• Set datum tag of the type PRO_SET_DATUM_TAG (applicable only for
ProModelitemNameGet())
Version Stamps
The version stamp object provides a way of keeping track of changes in a Creo
Parametric model to which your Creo Parametric TOOLKIT application may need
to respond. Creo Parametric models and features contain an internal version stamp
incremented each time some design change is made to that model or feature. The
functions in this section enable you to read version stamps in order to look for
design changes.
The version stamp object is called ProWVerstamp because it is a WHandle, or
workspace handle. It is a workspace handle because the data structure it references
is not the one in the Creo Parametric database, but a copy taken from it, which is
private to the Creo Parametric TOOLKIT application.
Functions Introduced:
• ProMdlVerstampGet()
• ProFeatureVerstampGet()
• ProVerstampAlloc()
• ProVerstampFree()
• ProVerstampStringGet()
• ProVerstampStringFree()
• ProStringVerstampGet()
• ProVerstampEqual()
The functions ProMdlVerstampGet() and ProFeatureVerstampGet()
enable you to make a workspace copy of the version stamp on a particular model
or feature. The function ProMdlVerstampGet() is currently applicable to
solids only (parts or assemblies). Both of these functions allocate the space for the
workspace object internally. After using the contents of the version stamp object,
you can free the workspace memory using ProVerstampFree().
If you want to store a copy of a version stamp to compare to a newly read version
later, you should use the nonvolatile representation, which is a C string. The
function ProVerstampStringGet() allocates and fills a string that
represents the contents of the specified ProWVerstamp object. The
Note
The version stamp on a feature can change not only when the feature
definition changes, but also when the feature geometry changes as a result of a
change to a parent feature.
Layers
Creo Parametric TOOLKIT implements two data types that enable access to layer
information in Creo Parametric:
• ProLayer—A DHandle that identifies a layer. The ProLayer object is an
instance of ProModelitem.
• ProLayerItem—A DHandle that identifies a layer item. The valid types of
layer item are contained in the enumerated type ProLayerType.
Functions Introduced:
• ProMdlLayerGet()
• ProMdlLayerVisit()
• ProMdlLayersCollect()
• ProLayerCreate()
• ProLayerDelete()
• ProLayerItemsGet()
• ProLayerItemsPopulate()
• ProLayeritemarrayFree()
• ProLayerItemInit()
• ProDwgLayerItemInit()
• ProLayerItemAdd()
• ProLayerItemAddNoUpdate()
• ProLayerItemRemove()
• ProLayerItemRemoveNoUpdate()
Note
ProLayerDisplaystatusSet() does not repaint the model after it
modifies the display status. This is a temporary setting. It will be lost after you
save or retrieve the model. To permanently change the display status, call the
function ProLayerDisplaystatusSave(). However, the function
ProLayerDisplaystatusSet() updates the model tree for the change
in display status of the layer.
ProView view,
ProBoolean depend);
If depend is set to PRO_B_TRUE, the layers in the view will be displayed when
the layers in the drawing are displayed. If depend is set to PRO_B_FALSE, the
layer display in the view will be independent of the display in the drawing. To
determine whether the layer display in the view is dependent on the display in the
drawing, call the function ProLayerViewDependencyGet().
You can define rules in layers. Use the function ProLayerRuleExecute() to
execute the layer rules on the specified model. The rules must be enabled in the
layers to be executed.
The function ProLayerRuleCopy() copies the rules from the reference model
to the current model for the specified layer. The input arguments are:
• CurrentModel—Specifies the current model to which the layer rules must
be copied.
• LayerName—Specifies the name of an existing layer in both the models. To
copy the layer rules, the name of the layer LayerName in both the models
must be the same.
• ReferenceModel—Specifies the reference model from which the layer
rules must be copied.
Use the function ProLayerRuleMatch() to compare the rules between the
current and reference model for the specified layer. The name of the layer
LayerName in both the models must be the same, for comparing the layer rules.
The function ProLayeritemLayerStatusGet() returns the status of an
item for the specified layer. The input arguments are:
• pro_drawing—Specifies the drawing which is the owner of the layer that
contains the specified item.
• pro_layer_item—Specifies the layer item. If the owner type of the layer item
is PRO_LAYITEM_FROM_PATH, it is mandatory to specify the pro_drawing
input argument.
• pro_layer—Specifies the layer that contains the item.
Notebook
The functions described in this section work with notebook (.lay) files.
Functions Introduced:
• ProLayoutDeclare()
• ProLayoutUndeclare()
• ProLayoutRegenerate()
This chapter describes how to access solids, parts, and their contents.
Creating a Solid
Function Introduced:
• ProSolidMdlnameCreate()
The function ProSolidMdlnameCreate() creates an empty part or assembly
with the specified name, and provides a handle to the new object. It does not make
the new solid current, nor does it display the solid. In Creo Parametric 7.0.0.0 and
later, an empty part is created with absolute accuracy, by default. Refer to the Creo
Parametric help for more information on Model Accuracy.
Contents of a Solid
Functions Introduced:
• ProSolidFeatVisit()
• ProSolidQuiltVisit()
• ProSolidAxisVisit()
• ProSolidCsysVisit()
• ProSolidFeatstatusGet()
• ProSolidFeatstatusSet()
• ProSolidFeatstatusWithoptionsSet()
• ProSolidFeatstatusflagsGet()
• ProSolidFailedFeatsList()
• ProSolidFailedfeaturesList()
• ProSldsurfaceShellsAndVoidsFind()
• ProSolidToleranceStandardGet()
• ProSolidToleranceStandardSet()
The following visit functions enable you to access the various types of objects
inside a part or assembly:
Note
From Pro/ENGINEER Wildfire 5.0 onward, the function
ProSolidFailedFeatsList() has been deprecated. Use the function
ProSolidFailedfeaturesList() instead. Pass NULL for the input
arguments co_failed_ids and co_x_failed_ids while using
ProSolidFailedfeaturesList() in the Resolve mode.
Displaying a Solid
Function Introduced:
• ProSolidDisplay()
The function ProSolidDisplay() displays a solid in the current Creo
Parametric window. This does not make the object current from the point of Creo
Parametric.
Note
The interactive dialog box which provided an option to retain failed
features and children of failed features, if regeneration fails is no longer
supported. Creo Parametric displays a warning message which gives
details of failed features.
Note
This flag cannot be used with PRO_REGEN_FORCE_REGEN.
Note
Component models which are not in session at the time of the call to
ProSolidRegenerate() will not be retrieved due to this option.
Note
Models with certain contents, such as circular references or assembly
analysis features, will never return a fully “regenerated” status. Thus, this
status should not provide an absolute restriction. If the flag remains in the
“PRO_SOLID_NEEDS_REGENERATION” status through two successful
regenerations, the model could be considered up-to-date.
Note
If value of the input argument supplgeom_state is set to PRO_B_TRUE,
the value of annotation_state also, must be set to PRO_B_TRUE.
Layer State
A layer state stores the display state of existing layers and all the hidden layers of
the top-level assembly. You can create and save one or more layer states and
switch between them to change the assembly display.
The object ProLayerstate represents the layer state. It has the same
declaration as the ProModelitem object, only with the type set to PRO_
LAYER_STATE. The declaration is as follows:
typedef struct pro_model_item
{
ProType type;
int id;
ProMdl owner;
}ProLayerstate;
Functions Introduced:
• ProLayerstatesGet()
• ProLayerstateActiveGet()
• ProLayerstateNameGet()
• ProLayerstateActivate()
• ProLayerstateCreate()
• ProLayerstateLayersGet()
• ProLayerstateLayerAdd()
• ProLayerstateLayerRemove()
• ProLayerstateActivestateUpdate()
• ProLayerstateModelitemHide()
• ProLayerstateModelitemUnhide()
• ProLayerstateModelitemIsHidden()
• ProLayerstateDelete()
The function ProLayerstatesGet() returns an array of layer states for a
specified solid.
Note
ProLayerItem of type PRO_LAYER_LAYER is not supported in the
function ProLayerstateCreate(), when you create a new layer
state.
Solid Outline
Functions Introduced:
• ProSolidOutlineGet()
• ProSolidOutlineCompute()
The function ProSolidOutlineGet() provides you with the maximum and
minimum values of X, Y, and Z occupied by the contents of the solid, with respect
to the default, solid coordinate system.
The function ProSolidOutlineCompute() calculates the outline of the
solid with respect to any orientation, defined by a transformation matrix. (For
more information, see the Core: Coordinate Systems and Transformations on page
222 chapter.) The function enables you to exclude from the calculation items of
any or all of the following types:
• Datum plane
• Datum point
• Datum axes
• Datum coordinate system
• Facets
Note
To set or retrieve the accuracy for an assembly you must traverse through all
its parts in the assembly with these functions.
Note
Regenerate the model using the function ProSolidRegenerate()
after setting the accuracy using ProSolidAccuracySet().
Solid Units
Definitions
For Creo Parametric TOOLKIT, a system of units is represented by the structure
ProUnitsystem. This structure is defined as:
typedef struct {
ProMdl owner;
ProName name;
}ProUnitsystem;
where the name is the user-visible name used in the Unit Manager dialog.
An individual unit is represented by the structure ProUnititem. This structure
is defined as:
typedef struct {
ProMdl owner;
ProName name;
}ProUnititem;
where the name is the user-visible abbreviation used in the Unit Manager dialog.
Note
The functions described in the following sections supersede the functions
prodb_get_model_units() and prodb_set_model_units().
Note
The function retrieves both the pre-defined as well as the custom-defined
system of unit.
Note
You can only delete a custom-defined system of units. You cannot delete a
pre-defined system of units.
Note
The function is applicable only for basic units and not for derived ones.
The function ProUnitNameGet() returns the name of the unit. For system
generated unit, that has no user-friendly name, it returns the error PRO_TK_NOT_
DISPLAYED.
Use the function ProUnitTypeGet() to retrieve the unit type of a particular
unit.
Unit types can have any of the following values:
• PRO_UNITTYPE_LENGTH
• PRO_UNITTYPE_MASS
• PRO_UNITTYPE_FORCE
• PRO_UNITTYPE_TIME
• PRO_UNITTYPE_TEMPERATURE
• PRO_UNITTYPE_ANGLE
Use the function ProUnitConversionGet() to retrieve the conversion factor
for a particular unit. The output arguments of this function are:
• conversion—Specifies the conversion factor for a unit in terms of scale of the
unit and an offset value.
Example - Consider the formula to convert temperature from Centigrade
to Fahrenheit
F = a + (C * b)
where
F is the temperature in Fahrenheit
C is the temperature in Centigrade
Note
Creo Parametric scales the length dimensions of the model using the factor
specified. If the scale is modified, the model is regenerated. When you
scale the model, the model units are not changed. Imported geometry
cannot be scaled.
Modifying Units
Functions Introduced:
• ProUnitModify()
• ProUnitDelete()
• ProUnitRename()
Use the function ProUnitModify() to modify a pre-defined unit. Modifying
the units can invalidate your relations, as they are not scaled along with the model.
The input parameters are:
Note
You cannot delete a pre-defined unit. If you delete a unit, you cannot undo the
deletion.
Note
The initial units for an assembly are those of its base component. If, however,
the units of the base component have been changed, the assembly units do not
automatically change. You must also modify the units of the assembly. You
cannot change the units of an assembly containing assembly features that
intersect a part.
Mass Properties
Function Introduced:
• ProSolidMassPropertyGet()
• ProSolidBodyMassPropertyGet()
• ProSolidBodyDensityGet()
• ProSolidMassPropertyWithDensityGet()
• ProAssemblySolidMassPropertyGet()
In Creo Parametric 7.0.0.0 and later, the density parameter for any material is
PTC_MASS_DENSITY. When you edit the density of a material, the value of this
parameter is updated. The alternate mass property parameter for an assembly, part,
or body is PRO_MP_ALT_DENSITY. The reported density parameter for an
assembly, part, or body is PRO_MP_DENSITY. In the case of an assembly or a
part with different materials, the value of this parameter is the average density.
The function ProSolidMassPropertyGet() provides information about the
distribution of mass in the part or assembly.
The function ProSolidBodyMassPropertyGet() calculates the mass
properties of a body in the specified coordinate system. The input parameter body
is the handle to a part or an assembly.
Both the functions provide the mass distribution information relative to the
specified coordinate system datum csys_name. If the value of the parameter csys_
name is NULL, the default coordinate system is used.
Note
If a material is already assigned to the part, the output of the function is the
density of the material that is assigned to the body. The density is measured in
the units of the model. The density of the body is always the density of the
material assigned to the body.
Part Objects
The object ProPart is an instance of ProSolid. It is an opaque handle that
can be cast to a ProSolid or ProMdl so you can use any of the functions for
those objects.
Density
Functions Introduced:
• ProPartDensityGet()
Superseded Functions:
Material Objects
Creo Parametric TOOLKIT enables you to programmatically access the material
properties of parts. Using the Creo Parametric TOOLKIT functions, you can do
the following actions:
• Create or delete materials.
• Set the current material.
• Retrieve and set the material types and properties.
• Read and write to material files.
To enable access to materials, Creo Parametric TOOLKIT uses the following
objects:
• ProMaterial—A structure that contains a material name and the part
(ProSolid object) to which it is assigned. This handle is used in older
material functions.
• ProMaterialItem—Another name for a ProModelitem, it contains the
material owner, ID, and type (PRO_RP_MATERIAL).
To convert between ProMaterial and ProMaterialItem, use
ProModelitemByNameInit() to obtain the item from the material owner
and name. To obtain a ProMaterial from a ProMaterialItem, use
ProModelitemNameGet() to get the material name.
Note
Refer to the Creo Parametric online help for more information about
Materials.
Note
The name of the units returned can be the name of a Creo Parametric unit,
which may not be obviously understood by a user. Use
ProUnitExpressionGet() to change this name to familiar units.
The following table displays the possible combinations of arguments for p_value
and p_units:
p_value p_units Is the property Result
already created in the
material?
Any value Appropriate units for this NO Property is created with
property, or NULL, if the the given units and value.
property is unitless
Any value NULL NO Property is created with
the given value using the
appropriate units from
the owner model.
Any value Current units for this YES Property value is changed
property, or NULL, if the to the new value.
property is unitless
Any value NULL YES Property value is changed
to the new value (which
is interpreted as being in
the units from the owner
model)
The current value New appropriate units YES Property units are
changed but the value is
interpreted as being for
the new units.
NULL New appropriate units YES Property units are
changed and the current
value is converted to the
new units.
Note
When using ProMaterialPropertySet() to change the sheetmetal Y-
factor or bend table assigned to the current material, pass the current material
to ProMaterialCurrentSet() again to force Creo Parametric to update
the length calculations developed by sheetmetal.
Creating a Body
A new part is created with a default body. This body is in the No
Contributing Features state. When you add solid geometry to this part,
you can add to this body, or create a new body. You can delete bodies that are in
the No Contributing Features state. When you delete a body, it is
removed from the part and the Bodies folder in the model tree. The parameters
and relations for the body are deleted.
Functions introduced:
• ProSolidBodyCreate()
• ProSolidBodiesCollect()
• ProSolidDefaultBodyGet()
• ProSolidDefaultBodySet()
• ProSolidBodySurfaceVisit()
• ProSolidBodyDelete()
• ProSolidBodyStateGet()
• ProSolidBodyIsConstruction()
• ProSolidBodyConstructionSet()
• ProSolidBodyOutlineGet()
• ProSolidBodyIsSheetmetal()
The function ProSolidBodyCreate() creates a new body. The input
argument sld is the solid owner on which the body needs to be created. The output
argument body is the body that is created.
Refer to the Creo Parametric online help for more information about body
creation.
Listing Features
Functions Introduced:
Multibody Operations
Each body has its own geometry. You can perform geometric operations such as
splitting a body or merging with other bodies. Bodies contribute to the mass
properties of the model. You can select bodies as references for features. You can
split a body into two bodies and also perform move or copy operations on bodies.
The geometry of the original body is divided between the original body and the
new body. For more information on body options and body operations, refer to the
Element Trees: Solid Body on page 1055 chapter.
You can use the Boolean Operations feature to perform geometric operations such
as:
• Merge —Combines the geometry of two or more bodies into one body.
• Intersect—Keeps the geometry that is shared by two or more bodies.
• Subtract—Removes the geometry of one body from one or more bodies.
This chapter describes the Creo Parametric TOOLKIT functions that deal with
features as a whole and the way they relate to each other.
Access to the geometry objects created by features is described in the Core: 3D
Geometry on page 170 chapter.
Access to the internal structure of a feature is described in the Element Trees:
Principles of Feature Creation on page 764 chapter.
131
Feature Objects
Function Introduced:
• ProFeatureInit()
Features are represented by the object ProFeature, which is declared as a
DHandle, or data handle. It shares the same declaration as ProModelitem and
ProGeomitem, and therefore contains the type and integer identifier as fields in
the structure.
Like ProGeomitem, ProFeature is an instance of ProModelitem.
ProFeature objects are contained in ProSolid objects, and contain
ProGeomitem objects.
You can create a new ProFeature handle using the function
ProFeatureInit().
Visiting Features
Function Introduced:
• ProSolidFeatVisit()
The function ProSolidFeatVisit() enables you to visit all the features in a
part or assembly. It visits not only those features visible to the user, but also
features used internally for construction purposes. To skip over such internal,
“invisible” functions, call ProFeatureVisibilityGet().
Note that the function ProSolidFeatstatusGet() (described in detail in
the Core: Solids, Parts, and Materials on page 92 chapter.) provides an array of
integer identifiers for all the features in a solid, thereby offering an alternate way
of finding all the features.
Feature Inquiry
Functions Introduced:
• ProFeatureTypeGet()
• ProFeatureSubtypeGet()
• ProFeatureTypenameGet()
• ProFeatureStatusGet()
• ProFeatureStatusflagsGet()
• ProFeatureIsIncomplete()
• ProFeatureIsNcseq()
• ProFeatureSolidGet()
Feature Geometry
Functions Introduced:
• ProFeatureGeomitemVisit()
• ProGeomitemFeatureGet()
For information about feature geometry, see the chapter Core: 3D Geometry on
page 170.
Manipulating Features
Functions Introduced:
• ProFeatureDelete()
• ProFeatureSuppress()
• ProFeatureResume()
• ProFeatureRedefine()
• ProFeatureInsertModeActivate()
• ProInsertModeCancel()
• ProFeatureReadonlySet()
• ProFeatureReadonlyUnset()
• ProFeatureReorder()
• ProFeatureNumberGet()
Feature References
Functions Introduced:
• ProFeatureReferenceEdit()
• ProMdlFeatBackupOwnerNamesGet()
• ProMdlFeatBackupRefMdlNamesGet()
• ProFeatureReferenceEditRefsGet()
• ProFeatureMdltreeDisplaynameGet()
The function ProFeatureReferenceEdit() replaces the old references of a
feature with new references based on the bitmask specified for its input argument
flags. The bitmask must contain one or more regeneration control bit flags of the
type PRO_REGEN_* defined in ProSolid.h. Refer to the Regenerating a Solid
on page 96 section in the Core: Solids, Parts, and Materials on page 92 chapter for
more information on the bit flags.
The function ProMdlFeatBackupOwnerNamesGet() returns the names of
the models, along the model path, from the top model to the owner model for the
specified feature. The input arguments are:
• model—Specifies the model, which contains the specified feature.
• feature—Specifies a feature whose references are to be retrieved.
The function ProMdlFeatBackupRefMdlNamesGet() returns the names of
the models, along the model path, from the top model to the external reference
model for the specified feature. Feature references can be from a local or external
model. The system creates a geometry backup of the local and external references,
which is used for information and display purposes. This function retrieves the
model names from the backup information. The input arguments are:
• model—Specifies the model, which contains the specified feature.
• feature—Specifies a feature whose references are to be retrieved.
• path—Specifies the path as a ProArray of IDs of a subassembly or
component from the top model to the reference model. Specify NULL for local
reference.
To give an example on how to specify the path, consider an assembly A,
which has a component C1 with ID 9 and a subassembly S with ID 7. The
Feature Dimensions
Function Introduced:
• ProFeatureDimensionVisit()
The function ProFeatureDimensionVisit() visits all the dimensions
which belong to the feature.
Note
Some feature dimensions are dependent on dimensions of other features. For
example, sketch-based features with shared, patterned or external sections,
dependent copied or mirrored features, and so on. In case of such dependent
dimensions, use the function ProDimensionParentGet() to get the
value of the parent dimension .
For more information about dimensions, refer to section Dimensions on page 566
from the chapter Annotations: Annotation Features and Annotations on page 541.
Patterns as Features
Patterns are treated as features in Creo Parametric. Patterns are assigned a header
feature of the type PRO_E_PATTERN_HEAD.
The Pattern feature in Pro/ENGINEER Wildfire effects the previous releases of
Pro/ENGINEER as follows:
• Models containing patterns automatically get one extra feature of type PRO_
FEAT_PATTERN_HEAD in the regeneration list. This changes the feature
numbers of all the subsequent features, including those in the pattern.
• The pattern access functions such as ProFeaturePatternGet(),
ProPatternMembersGet() and ProPatternLeaderGet are
unaffected by the addition of the pattern header feature. The pattern leader is
still the first geometric feature contained in the pattern.
The new function ProPatternHeaderGet() returns the header feature.
Fill Patterns
Creo Parametric uses the Fill type of pattern.
Functions Introduced:
• ProFeaturePatternStatusGet()
• ProFeatureGrppatternStatusGet()
• ProFeaturePatternleaderGet()
• ProFeaturePatternGet()
• ProPatternDelete()
• ProPatternLeaderGet()
• ProPatternHeaderGet()
The function ProFeaturePatternStatusGet() classifies the feature
according to its possible role in a feature pattern. The possible values are as
follows:
• PRO_PATTERN_NONE—The feature is not in a pattern.
• PRO_PATTERN_LEADER—The feature is the leader of a pattern.
• PRO_PATTERN_MEMBER—The feature is a member of a pattern.
• PRO_PATTERN_HEADER—The feature is the header of a pattern.
Table-Driven Patterns
The Table-Driven Pattern functions have been deprecated. Use the Table Pattern
feature element tree to read and manipulate table patterns. See the section Table
Patterns on page 970 for more details.
Note
All the functions in this section work for both UDFs and local groups.
Finding Groups
Functions Introduced:
• ProSolidGroupVisit()
• ProSolidGroupsCollect()
• ProFeatureGroupStatusGet()
• ProFeatureGroupGet()
The function ProSolidGroupVisit() allows you to visit the groups in the
solid model. The function ProSolidGroupsCollect() returns an array of
the group structures.
The function ProFeatureGroupStatusGet() tells you if the specified
feature is in a group.
The function ProFeatureGroupGet() returns the ProGroup that includes
the feature.
Group Information
Functions Introduced
• ProUdfNameGet()
• ProGroupIsTabledriven()
• ProGroupFeatureVisit()
• ProGroupFeaturesCollect()
Note
In Creo Parametric 6.0.0.0 and later, for the function
ProUdfDimensionNameGet(), it is mandatory to pass the input
argument udf as ProGroup object type. If you pass any other object type, the
function returns the PRO_TK_BAD_CONTEXT error.
Creating Groups
Functions Introduced:
• ProLocalGroupCreate()
The function ProLocalGroupCreate() creates a group out of a set of
specified features. The features must represent a contiguous set of features in the
solid model. (Refer also to Creating Local Groups on page 145).
Deleting Groups
Functions Introduced:
Placing UDFs
Function Introduced:
• ProUdfCreate()
The function ProUdfCreate() is used to create a new group by retrieving and
applying the contents of an existing UDF file. It is equivalent to the Creo
Parametric command Model ▶ User-Defined Feature.
To understand this function explanation, you must have a good knowledge and
understanding of the use of UDFs in Creo Parametric. PTC recommends that you
read about UDFs in the Part Modeling User's Guide, and practice defining and
using UDFs in Creo Parametric before you attempt to use this function.
When you create a UDF interactively, Creo Parametric prompts you for the
information it needs to fix the properties of the resulting features. When you
create a UDF from Creo Parametric TOOLKIT, you can provide some or all of
this information programmatically by assembling the data structure that is the
input to the function ProUdfCreate().
During the call to ProUdfCreate(), Creo Parametric prompts you for the
following:
• Any information the UDF needs that you did not provide in the input data
structure
• Correct information to replace erroneous information
Such prompts are a useful way of diagnosing errors when you develop your
application. This also means that, in addition to creating UDFs fully
programmatically to provide automatic synthesis of model geometry, you can also
use ProUdfCreate() to create UDFs semi-interactively. This can simplify the
interactions needed to place a complex UDF, making it easier for the user and less
prone to error.
Creating a UDF may require the following types of information:
• Name—The name of the UDF library to create, and the instance name, if
applicable.
• Name or path—the name (or full path) of the UDF to create, and the instance
name, if applicable.
Note
The variant dimension must be added to the UDF data structure using
ProUdfdatavardimAdd() in order for it to be used during placement.
UDF References
Functions Introduced:
• ProUdfreferenceAlloc()
• ProUdfdataReferenceAdd()
• ProUdfreferenceFree()
The function ProUdfreferenceAlloc() creates a new reference data
structure. The data that must be provided to allocate the structure is:
Assembly Intersections
The data structure used for assembly intersections is ProUdfintersection.
Functions Introduced:
• ProUdfintersectionAlloc()
• ProUdfdataIntersectionAdd()
• ProUdfintersectionFree()
The function ProUdfintersectionAlloc() sets the values used to
determine how a UDF placed in the context of an assembly intersects the
members of the assembly. This function requires the following inputs:
• intersect_part—The component path from either the placement assembly or
the external reference assembly down to the intersected component. The
external reference assembly is provided by the asm_reference argument to
ProUdfCreate().
• visibility—The depth of the component path into the assembly where the
intersected UDF is visible. If visibility is equal to the length of the component
path, the feature is visible in the part that it intersects and all assemblies and
Variable Dimensions
Functions Introduced:
Note
The handles obtained when the function ProUdfdataVardimsGet() is
called are not automatically assigned to the UDF for placement. In order to
place the UDF with a user-defined variant dimension value, you must use
ProUdfdataVardimAdd().
Variable Parameters
Functions Introduced:
• ProUdfdataVarparamsGet()
• ProUdfvarparamOwnerGet()
• ProUdfvarparamNameGet()
• ProUdfvarparamDefaultvalueGet()
• ProUdfvarparamProarrayFree()
Use the function ProUdfdataVarparamsGet() to obtain an array of
available variant parameters and/or annotation values that can optionally be set
when placing this UDF. You can use the function
ProUdfvarparamProarrayFree() to free this ProArray of variant
items.
UDF References
Functions Introduced:
• ProUdfdataRequiredreferencesGet()
• ProUdfrequiredrefPromptGet()
• ProUdfrequiredrefTypeGet()
• ProUdfrequiredrefIsannotationref()
• ProUdfrequiredrefFree()
• ProUdfrequiredrefProarrayFree()
Use the function ProUdfdataRequiredreferencesGet() to obtain a list
of the references required to be set for UDF placement. In order to use this
function, the UDF data must have its name or path set, and Creo Parametric must
be able to successfully find the .gph file based on this information.
Use the function ProUdfrequiredrefPromptGet() to obtain the reference
prompt for a UDF reference.
Use the function ProUdfrequiredrefTypeGet() to obtain the type of item
that should be supplied for a UDF reference.
Use the function ProUdfrequiredrefIsannotationref() to determine
if the reference is an annotation reference and is allowed to be left incomplete.
You can use the function ProUdfrequiredrefFree() to free a required
reference handle for a UDF. Use the function
ProUdfrequiredrefProarrayFree() to free a ProArray of handles to
the required references of a UDF.
Instance Names
Function Introduced:
• ProUdfdataInstancenamesGet()
Use the function ProUdfdataInstancenamesGet() to obtain an array of
the instance names that may be used when placing this UDF. You can free this
ProArray of instances using the function ProArrayFree().
Note
If you modify a UDF library, which is independent and contains no reference
model then no features will be included in the input to the notification.
ProUdfdataRe Multibody
quiredreferen ProUdfCreate()—
cesGet() is for returns PRO_TK_
query purpose only. MULTIBODY_
UNSUPPORTED, if you
do not specify the body
reference and the UDF
creation fails.
ReturnsPRO_TK_NO_
ERROR, if you do not
specify the body
reference correctly.
This chapter deals with the objects and actions used to extract the geometry of a
Creo Parametric solid. Because the geometry objects are closely related to each
other and have a number of generic types of action in common, this chapter is
organized not by object, but by types of action needed in Creo Parametric
TOOLKIT.
Some of the objects and actions in this chapter also apply to assemblies. See the
Assembly: Basic Assembly Access on page 1130 chapter for information on
objects and actions specific to assemblies.
Some geometrical items in a part are also contained in another hierarchy, which
shows how they connect together geometrically, rather than to which features they
belong. This type of hierarchy is shown in the following figure.
The Creo Parametric TOOLKIT object ProContour is also an OHandle, but has
no corresponding integer identifier, and therefore is not an instance of
ProGeomitem.
There are a number of actions applicable to many of these types, whose
corresponding functions begin with “ProGeomitem”. These include functions such
as ProGeomitemdataGet(), for which there are also specific functions for
the subtypes (where appropriate), and some functions for generic measurement
operations. These functions are described under the context of their action type.
To read and modify the name of a ProGeomitem, use the functions
ProModelitemNameGet() and ProModelitemNameSet(), described in
the chapter Core: Models and Model Items on page 69.
Note
Although the Creo Parametric user can create solid features in Assembly
mode, the geometrical items that result from them are stored only within the
component parts whose geometry is modified—not in the assembly features
themselves. Therefore, although traversal of datums is applicable to
assemblies exactly as to parts, no solid geometry items are found in
assemblies.
Datum planes, datum surfaces, and solid surfaces are all represented by the
ProSurface object because they share the same types of mathematical
description.
Note
The function ProFeatureVisibilityGet() is primarily used in the
action and filter callbacks of the function ProSolidFeatVisit().
All the functions in this section specific to features are described in detail in the
chapter Core: Features on page 131.
Note
The functions in this section visit active geometry items only, so you do not
need to call the function ProGeomitemIsInactive().
Note
Although a datum plane has a nominal outline used to visualize the datum in
the Creo Parametric display, this is not part of the geometry because a datum
plane is an infinite, unbounded plane. Therefore, if you try to use the function
ProSurfaceContourVisit() on a datum plane, it will not find any
contours.
Tessellation
You can calculate tessellation for different types of Creo Parametric geometry.
The tessellation is made up of small lines (for edges and curves), or triangles (for
surfaces and solid models).
Surface Tessellation
Functions Introduced:
• ProSurfaceTessellationGet()
• ProTessellationFree()
• ProTessellationVerticesGet()
• ProTessellationFacetsGet()
• ProTessellationNormalsGet()
• ProTessellationParamsGet()
• ProSurfacetessellationinputAlloc()
• ProSurfacetessellationinputFree()
• ProSurfacetessellationinputChordheightSet()
• ProSurfacetessellationinputAnglecontrolSet()
• ProSurfacetessellationinputStepsizeSet()
• ProSurfacetessellationinputUvprojectionSet()
The function ProSurfaceTessellationGet() calculates the tessellation
data given by the ProTessellation object for a specified surface. Use the
function ProTessellationFree() to release the memory used by this data
object.
Note
• If the function
ProSurfacetessellationinputUvprojectionSet() is not used,
the output tessellation will not contain any UV parameters and the function
ProTessellationParamsGet() will not return any values.
• Specify the unmodified UV parameters obtained using PRO_SRFTESS_NO_
PROJECTION as the input u and v values for the functions
ProSurfaceXyzdataEval(), ProSurfaceUvpntVerify(),
ProSurfaceDiameterEval(), and
ProSurfacePrincipalCrvtEval().
Evaluating Geometry
The geometry of each edge or curve in Creo Parametric is described as a set of
three parametric equations that represent the values of X, Y, and Z as functions of
the independent parameter, t. For a surface, the three equations are functions of
the two independent parameters u and v.
The Creo Parametric TOOLKIT functions described in this section provide the
ability to evaluate the parametric edge and surface functions—that is, find the
values and derivatives of X, Y and Z for the specified values of t, or u and v.
They also provide for reverse evaluation.
Geometry at Points
Functions Introduced:
• ProGeometryAtPointFind()
• ProPoint3dOnsurfaceFind()
• ProPoint3dIntoleranceFind()
• ProSolidProjectPoint()
The function ProGeometryAtPointFind() locates the geometry items that
lie on a given point. This function supports solid geometry only.
Geometry Equations
Functions Introduced:
• ProGeomitemdataGet()
• ProGeomitemdataFree()
The parametric equations that describe surfaces, edges, and datum curves in Creo
Parametric are documented in the Geometry Representations on page 2147
appendix. (Datum curves are geometrically equivalent to edges, but because they
play a different role in Creo Parametric, they need a parallel set of functions to
access them. The word curve is used as a generic word for the shape of either an
edge or a datum curve.)
To know the form of a particular geometry item, you need to know not only which
type of equation is being used, but also the values of the various coefficients and
constants used in that equation for that item.Geometry Representations on page
2147 documents the equations using the same names for these coefficients and
constants used to store them in the Creo Parametric data structures. The functions
in this section enable you to get copies of the data structures containing those
coefficients and constants. Therefore, you can perform your own evaluations.
The data structures for ProSurfacedata are defined in the include file
ProSurfacedata.h, and those for ProCurvedata are defined in
ProCurvedata.h.
The function ProGeomitemdataGet() allocates and fills a data structure that
describes the geometry of the item. The structure ProGeomitemdata is
declared in the file ProGeomitemdata.h, and looks like this:
typedef struct geom_item_data_struct
{
ProType obj_type;
union
{
ProCurvedata *p_curve_data;
Geometry of Surfaces
Functions Introduced:
• ProSurfaceTypeGet()
• ProSurfaceDataGet()
• ProSurfaceIsDatumPlane()
• ProSurfaceSameSrfsFind()
• ProSldsurfaceVolumesFind()
• ProSurfacePeriodicityGet()
• ProSurfaceNextGet()
The method for getting the description of surface geometry is analogous to that
described in the previous section for solid edges. Function
ProSurfaceTypeGet() provides the equation used to describe the surface.
Function ProSurfaceDataGet() returns the data structure associated with
the specified surface.
Use function ProSurfacedataMemoryFree() to free the top-level memory
associated with the surface data structure. Function ProSurfacedataFree()
frees the underlying memory of the data structure.
The possible types of surface are as follows:
• PRO_SRF_PLANE—A plane
• PRO_SRF_CYL—A cylinder
• PRO_SRF_CONE—A cone
• PRO_SRF_TORUS—A torus
Note
For a solid body part with multiple bodies, this function does not return a
surface that is outside the body.
Geometry of Axes
Function Introduced:
• ProAxisDataGet()
An axis is treated in the same way as a solid edge. The function
ProAxisDataGet() allocates and fills a ProGeomitemdata structure for a
ProAxis object. The relevant field in the union is p_curve_data, but the type
of the contained edge is always a line.
Ray Tracing
Functions Introduced:
• ProSolidRayIntersectionCompute()
• ProSelectionDepthGet()
The function ProSolidRayIntersectionCompute() finds the
intersections between a ray and a solid.
The ray is defined in terms of a start location and direction vector. The
intersections are described in terms of an array of ProSelection objects to
show their context in an assembly.
The function finds intersections in both directions from the start point of the ray,
and assigns each intersection a depth—the distance from the ray start point in the
direction defined (intersections in the reverse direction have a negative depth).
You can extract the depth of each intersection using the function
ProSelectionDepthGet(). The intersections are ordered from the most
negative depth to the most positive.
The function processes all solid surfaces and datum surfaces, but not datum
planes. It also includes edges that lie within a certain critical distance, called the
aperture radius, of the ray. Such an edge is shown as intersected, even if a
neighboring surface is also intersected. This implies that several entries in the
array may represent a single “piercing,” in geometrical terms.
The aperture radius is an optional input to the function, defined in terms of pixels.
If you supply a value less than –1.0, the value is taken from the Creo Parametric
configuration file option pick_aperture_radius. If that option is not set,
the function uses the default value of 7.0.
In an assembly, each component is processed separately, so if two coincident
mating faces are hit, the function records two separate intersections.
Surfaces and edges that are not displayed because they are assigned to a blanked
layer are not intersected.
Measurement
Functions Introduced:
• ProSurfaceAreaEval()
• ProContourAreaEval()
• ProSurfaceExtremesEval()
• ProSurfacePrincipalCrvtEval()
• ProEdgeLengthEval()
• ProCurveLengthEval()
• ProEdgeLengthT1T2Eval()
• ProCurveLengthT1T2Eval()
• ProEdgeParamByLengthEval()
• ProCurveParamByLengthEval()
• ProGeomitemDistanceEval()
• ProGeomitemAngleEval()
• ProSurfaceDiameterEval()
• ProGeomitemDiameterEval()
• ProContourBoundbox3dCompute()
• ProContourBoundbox2dCompute()
• ProSelectionWithOptionsDistanceEval()
The function ProSurfaceAreaEval() evaluates the surface areas of a
specified surface. It is not valid for datum planes.
Function ProContourAreaEval() outputs the inside surface area of a
specified outer contour. Note it takes into account internal voids.
The function ProSurfaceExtremesEval() finds the coordinates of the face
edges at the extremes in the specified direction. The accuracy of the result is
limited to the accuracy of edge tessellation.
Function ProSurfacePrincipalCrvtEval() outputs the curvatures and
directions of the specified surface at a given UV point. The u and v values are
obtained by specifying the projection type as PRO_SRFTESS_NO_
PROJECTION for the function
ProSurfacetessellationinputUvprojectionSet().
Note
In the case of a sphere made by revolving an arc, the Creo Parametric
command Analysis ▶ Diameter gives the real spherical diameter, whereas
ProGeomitemDiameterEval() gives the distance of the specified point
from the axis of revolution.
Geometry as NURBS
Functions Introduced:
• ProSurfaceToNURBS()
• ProEdgeToNURBS()
• ProCurveToNURBS()
A common reason for extracting the solid geometry of a Creo Parametric model is
to pass it to another MCAE tool for some kind of engineering analysis. Not all of
the other MCAE tools share the rich variety of geometry equation types supported
by Creo Parametric, and therefore may not be able to import all the surface
descriptions directly. Because many MCAE systems use nonuniform rational B-
splines (NURBS) to model surfaces and edges, you frequently need to convert
many or all of the Creo Parametric surface descriptions to NURB splines.
The function ProSurfaceToNURBS() operates on a surface of any type. The
function makes an accurate approximation of the shape of the surface using a
NURBS, and outputs a pointer to the structure ProSurfacedata. This
structure contains the surface type PTC_B_SPLSRF, which describes the form of
the NURBS.
The function ProEdgeToNURBS() finds a one-dimensional NURBS that
approximates a Creo Parametric solid edge. The function outputs a pointer to the
ProCurvedata union whose b_spline field contains the NURBS
description.
The function ProCurveToNURBS() provides the same functionality as
ProEdgeToNURBS(), but for a datum curve.
Both ProSurfacedata and ProCurvedata are declared in the Creo
Parametric TOOLKIT header file ProGeomitem.h.
Interference
Functions Introduced:
Note
Set the ProBoolean arguments set_facets and set_quilts to PRO_B_
TRUE to include facets or quilts in the model, respectively.
Note
The interference data obtained from the functions
ProFitGlobalinterferenceCompute() and
ProFitInterferenceCompute() must be passed as input to the
functions ProFitInterferencevolumeCompute() and
ProFitInterferencevolumeDisplay(). The interference data must
not include facets or quilts. They must include information about only
interfering solids.
Faceted Geometry
Creo Parametric allows you to build a surface CAD model on top of faceted or
triangular data. Each facet is uniquely identified by a face normal and three
vertices.
A facet is represented by the opaque handle ProFacet, while a set of facets is
represented by the DHandle ProFacetSet. ProFacetSet has the same
structure as the object ProModelitem and is defined as follows:
typedef struct pro_model_item
{
ProType type;
int id;
ProMdl owner;
} ProFacetSet;
This chapter describes how to access relations on all models and model items in
Creo Parametric using the functions provided in Creo Parametric TOOLKIT.
Note
According to your requirement you can pass the initial relations, or the post-
regeneration relations data object, ProRelset as input to the functions
ProRelsetRelationsGet(), ProRelsetRelationsSet(),
ProRelsetRegenerate() and ProRelsetDelete().
To get the relations of a feature pattern, the model item type should be either
PRO_PATREL_FIRST_DIR or PRO_PATREL_SECOND_DIR, and the
identifier should be that of the dimension on the pattern leader that drives the
pattern in that direction. To find the identifiers of the pattern dimension, use the
functions described in the section Manipulating Patterns on page 144.
The function ProSolidRelsetVisit() enables you to visit all the relation
sets on every model item in a model. Like other visit functions, it calls a user-
supplied action function for each relation set, although there is no filter function.
If the user-supplied function returns any status other than PRO_TK_NO_ERROR,
visiting will stop. The model types PRO_PART, PRO_ASSEMBLY, and PRO_
DRAWING are supported.
The function ProRelsetToModelitem() outputs the model item that is the
owner of the specified ProRelset.
You can regenerate a relation set using the function
ProRelsetRegenerate(). This function also determines whether the
specified relation set is valid. If an error occurred, the function returns a status
other than PRO_TK_NO_ERROR.
Note
Existing relations will be overwritten by a call to
ProRelsetRelationsSet().
Code Example
The sample code in the file UgCustomRelationFunction.c located at
<creo_toolkit_loadpoint>/protk_appls/pt_userguide/ptu_
param shows how to use the "Write" function for the assignment of the
parameters used for calculation.
This chapter describes the Creo Parametric TOOLKIT functions that give access
to parameters and geometric tolerances.
Accessing Parameters
Functions introduced:
• ProParameterInit()
• ProParameterValueWithUnitsGet()
• ProParameterValueWithUnitsSet()
• ProParameterIsModified()
• ProParameterValueReset()
• ProParameterCreate()
• ProParameterDelete()
• ProParameterSelect()
• ProParameterTableExport()
• ProParameterVisit()
• ProParameterReorder()
• ProParameterToFamtableItem()
• ProParameterUnitsGet()
• ProParameterUnitsAssign()
• ProParameterWithUnitsCreate()
• ProParameterScaledvalueGet()
• ProParameterScaledvalueSet()
Note
If the input argument units is passed as NULL, then the parameter will have the
same units as that of the owner model.
Note
The signature of ProParameterSelect() has changed from Pro/
ENGINEER Wildfire 2.0 onward.
Note
• The parameters are returned in the order that they appear in the parameter
dialog box for the database item.
• ProParameterVisit() does not visit mass property parameters.
Notification Functions
The parameter notification functions support the parameters owned by an
annotation element. These functions are call back functions and are accessible by
calling the function ProNotificationSet().
• ProParameterCreateWithUnitsPreAction()
• ProParameterDeletePreAction()
• ProParameterModifyWithUnitsPreAction()
• ProParameterCreatePostAction()
• ProParameterModifyWithUnitsPostAction()
• ProParameterDeleteWithUnitsPostAction()
The notification function ProParameterCreateWithUnitsPreAction()
is called before the parameter is created in the Creo Parametric user interface. This
function is available by calling ProNotificationSet() with the value of the
Note
You are not permitted to cancel the parameter modification events when
modifying multiple parameters as a group.
Note
PTC does not recommend undesignating or deleting a parameter that is
already exposed to a Product Data Management system, such as Windchill
PDMLink or Pro/INTRALINK.
Restricted Parameters
Restricted parameters can have either:
Table-Restricted Parameters
A parameter table is made up of one or more parameter table sets. Each set
represents one or more parameters with their assigned values or assigned ranges.
A given parameter owner (model, feature, annotation element, geometry item) can
only have one parameter table set applied that creates a given parameter. In Creo
Parametric TOOLKIT , a parameter table set is represented by the type
ProParamtableSet and is made up of entries, represented by
ProParamtableEntry. A single entry represents a parameter with an
assigned value or range.
Functions introduced:
• ProParameterTablesetGet()
• ProMdlParamtablesetsCollect()
• ProParamtablesetEntriesGet()
• ProParamtablesetTablepathGet()
• ProParamtablesetLabelGet()
• ProParamtablesetFree()
• ProParamtablesetProarrayFree()
• ProParamtableentryValueGet()
• ProParamtableentryRangeGet()
• ProParamtableentryNameGet()
• ProParamtableentryProarrayFree()
• ProParamtablesetApply()
• ProRelsetConstraintsGet()
This chapter describes the various coordinate systems used by Creo Parametric
and Creo Parametric TOOLKIT, and how to transform coordinates from one to
another.
This chapter describes how to store and retrieve external data. External data is a
Creo Parametric TOOLKIT application to be stored in the Creo Parametric
database in a way that is invisible to the Creo Parametric user.
235
Introduction to External Data
External data provides a way for the Creo Parametric TOOLKIT application to
store its own private information about a Creo Parametric model within the model
file. The data is built and interrogated by the Creo Parametric TOOLKIT
application as a workspace data structure. It is saved to the model file when the
model is saved, and retrieved when the model is retrieved. The external data is
otherwise ignored by Creo Parametric, so the Creo Parametric TOOLKIT
application has complete control over the form and content.
The external data for a particular Creo Parametric model is broken down into
classes and slots. A class is a named “bin” for your data, and simply identifies it as
yours so no other Creo Parametric TOOLKIT application (or other classes in your
own application) will use it by mistake. A Creo Parametric TOOLKIT application
usually needs only one class. The class name should be unique for each model,
and describe the role of the data in your application.
Each class contains a list of data slots. Each slot is identified by either a name or
an identifier, and contains a single data item of one of the following types:
• Integer
• Double
• Wide string (maximum length = 512 characters)
• Stream (maximum size = 512 kilobytes). A slot of type stream contains a
completely unformatted sequence of bytes with unrestricted values. The slot
also records the number of bytes in the stream, so no termination rules are
assumed. The stream type should be used only when the format is completely
controlled by your application in a platform-independent way. For example, if
the volume of external data is very large, the stream format might be used to
store the data in a more compressed form for greater efficiency.
• Chapter. The chapter data type is similar to the stream data. It has the
following advantages as compared to stream data type:
○ Chapter data type has no limit on data length.
○ The name of the slot is used as the name of the chapter.
Stream and chapter slots could also be used as a shortcut way to store, for
instance, an entire C structure, or an array of C structures, without any formatting.
However, if you are supporting more than one platform with your Creo Parametric
TOOLKIT application, remember that the mapping of a C structure may differ
between platforms.
If external data is stored during a Creo Parametric session on one platform and
retrieved on another, the values of integer, double, and wide string slots will be
preserved correctly, regardless of any differences in the coding of those data types
Note
For the functions ProExtdataClassRegister() and
ProExtdataSlotCreate(), the combined length of the class and slot
names must not exceed PRO_NAME_SIZE.
The first step in manipulating external data for a model in a Creo Parametric
session is to call the initialize function ProExtdataInit() for that model.
Next, set up a class using the function ProExtdataClassRegister(). The
inputs are the ProMdl object and the class name, in the form of a wide string.
The function outputs a ProExtdataClass used thereafter by the application to
reference the class.
You can delete a class that is no longer needed using the function
ProExtdataClassUnregister().
The function ProExtdataSlotCreate() creates an empty data slot. The
inputs are the ProExtdataClass object and the slot name, in the form of a
wide string. The function outputs a ProExtdataSlot object to identify the new
slot. You can use NULL as the value of the slot name argument, in which case the
function allocates a unique integer identifier for the slot (which becomes the value
of the field slot_id in the ProExtdataSlot structure).
Note
Slot names cannot begin with a number.
Note
ProExtdataTerm() does not affect the contents of any file on the disk. It
only removes all external data from the memory. Changes made to external
data during the current session are not stored in the file until you save the
model. If you call ProExtdataTerm() after making changes to the model,
all external data changes (such as newly created slots, changed slot value, and
deleted slot) made since the last ProMdlSave() are lost.
Note
If you call ProExtdataSlotRead() multiple times and do not free the
memory, the function uses the same memory for each call.
The functions in this chapter enable you to access, modify, and delete cross
sections, and create planar cross sections.
241
Listing Cross Sections
Functions Introduced:
• ProXsecRename()
• ProXsecTypeGet()
The function ProXsecRename() renames a specified cross section.
Use function ProXsecTypeGet() to retrieve the type of cross section. The
input argument for this function is a handle to the specified cross section. The
output argument p_type is a ProXsecType structure, which contains the
following fields:
• cutter—Specifies the cutting object type. The valid cutting object types are
contained in the enumerated type ProXsecCut and are as follows:
○ PRO_XSEC_PLANAR
○ PRO_XSEC_OFFSET
○ PRO_XSEC_PATTERN
• cut_object—Specifies the object that was cut. The valid object types are
contained in the enumerated type ProXsecCutobj and are as follows:
○ PRO_XSECTYPE_MODEL—Specifies that the cross section was created
on solid geometry.
○ PRO_XSECTYPE_QUILTS—Specifies that the cross section was created
on one quilt surface.
○ PRO_XSECTYPE_MODELQUILTS—Specifies that the cross section was
created on solid geometry and all quilt surfaces.
○ PRO_XSECTYPE_ONEPART—Specifies that the cross section was
created on one component in the assembly.
Note
The function ProXsecMdlnameAlloc() returns the error PRO_TK_
LINE_TOO_LONG if the name of the cross section is longer than PRO_
NAME_SIZE.
Note
The function ProXsecMdlnameNameSet() returns the error PRO_TK_
LINE_TOO_LONG if the name of the cross section is longer than PRO_
NAME_SIZE.
Note
• From Creo Parametric 4.0 F000 onward, when a cross section is created, it is
not displayed by default in the model. You must call the function
ProXsecMakeVisible() to display the cross section.
• While porting Creo Parametric TOOLKIT applications, which have used the
function ProXsecPlanarWithoptionsCreate() and have been
created in releases prior to Creo Parametric 4.0 F000, depending on whether
you want the cross section to be displayed, call the function
ProXsecMakeVisible() in your applications.
ProXsecMakeVisible() displays the cross section in the model.
• From Creo Parametric 2.0 onward:
○ the legacy cross sections, that is, the cross sections created in Pro/
ENGINEER, Creo Elements/Pro, and in releases prior to Creo Parametric
2.0 are not supported.
○ the functions ProXsecParallelCreate() and
ProXsecPlanarWithoptionsCreate() create cross sections as
features.
○ the functions ProXsecParallelCreate() and
ProXsecPlanarWithoptionsCreate() automatically convert the
legacy cross sections to new cross section features as defined in Creo
Parametric 2.0 before creating any new cross section feature.
Note
If the polyline from which the cross section has been created is closed,
then flip works a little different.
Note
The function ProXsecMassPropertyCompute() is not supported for
offset and quilt type of cross sections.
Note
The functions ProXsecCompXhatchGet(),
ProXsecCompXhatchAdd(), and ProXsecCompXhatchReplace()
support only the old hatching styles, that is, the *.xch file format.
Note
If the cross section component already includes a line pattern, then the
function ProXsecCompXhatchAdd() does not add a line pattern.
○ 1 X-Origin, Y-Origin
○ 2 Angle
○ 3 Delta X
○ 4 Delta Y
○ angle—Angle of the lines in the patterns.
○ x_origin—Origin of the first pattern line along the x-axis.
○ y_origin—Origin of the first pattern line along the y-axis.
○ delta_x—For a dashed line pattern, the distance after which the next
dashed line starts in a pattern.
○ delta_y—For a continuous and dashed line pattern, the distance
between the pattern lines.
○ dash—Dashed line pattern.
Note
When the cross section has new hatch patterns, the field *old_lines in
the structure ProXsecNewXhatchStyle is returned as NULL.
Note
Use the function ProXsecCompNewXhatchStyleGet() for nonlinear
hatch support.
Note
PRO_XSEC_EXCLUDED type is applied only in the drawing environment.
When parts with multiple solid bodies are being cut by the cross section, the
following functions return the error PRO_TK_MULTIBODY_UNSUPPORTED:
• ProXsecCompNewXhatchStyleSetByName
• ProXsecCompNewXhatchStyleSet()
261
Configuration Options
Functions Introduced:
• ProConfigoptionGet()
• ProConfigoptSet()
• ProConfigoptArrayGet()
• ProDisplistInvalidate()
The functions ProConfigoptionGet() and ProConfigoptSet() enable
you to retrieve and set the current value for the specified configuration file option.
The function ProConfigoptGet() has been deprecated. Use the function
ProConfigoptionGet() instead. The function ProConfigoptionGet()
returns the value of configuration option as a ProPath object.
To use ProConfigoptSet() on a configuration option that affects the display
of Creo Parametric, you must call the function ProDisplistInvalidate()
before you repaint the screen. This function makes sure Creo Parametric
invalidates the two- or three-dimensional display list. The calling sequence of
functions is as follows:
ProConfigoptSet (woption, value);
ProMdlCurrentGet (&model);
ProDisplistInvalidate (model)
ProWindowRepaint (-1);
The function ProConfigoptSet(), when applied to a multi string
configuration option like "search_path", adds a new path entry into the session. It
does not affect existing values. When applied to a single-valued configuration
option, ProConfigoptSet() modifies the value of the configuration option.
The function ProConfigoptArrayGet() retrieves the value of a specified
configuration file option. The function returns an array of values assigned to the
configuration file. It returns a single value if the configuration file option is not a
multi-valued option.
Current Directory
Functions Introduced;
• ProDirectoryCurrentGet()
• ProDirectoryChange()
These two functions are concerned with the current default directory in Creo
Parametric—the one in which it searches when you retrieve an object, for
example. The Creo Parametric user changes this directory using the command File
▶ Manage Session ▶ Working Directory.
The function ProDirectoryChange() enables you to do the exact equivalent
of File ▶ Manage Session ▶ Working Directory in Creo Parametric. Use this
function if you need to save and retrieve objects in a directory other than the one
the user chose.
The function ProDirectoryCurrentGet() returns the whole path to the
directory, as a wide string.
File Handling
Functions Introduced:
• ProFilesList()
• ProFileMdlnameOpen()
• ProFileMdlfiletypeOpen()
Note
The functions ProFileMdlnameOpen() and
ProFileMdlfiletypeOpen() do not actually open the file, but return
the file path of the selected file. For example, to open a text file, use the
function ProFileEdit() or ProInfoWindowDisplay().
Note
• The functions ProFileMdlnameSave() and
ProFileMdlfiletypeSave() do not actually save the file, but return the
file path of the selected file.
• For multi-CAD models, in a linked session of Creo Parametric with Windchill,
the functions ProFileMdlnameSave() and
ProFileMdlfiletypeSave() do not support a file path location on local
disk.
Note
The function ProFileMdlnameParse() returns the file version as -1, if
the input argument file_name_w_path has the path specified as the path to a
Windchill model. This function does not support fetching of model version of
a Windchill model.
Note
For textures embedded inside a Creo Parametric model, if the create_
temp_file is set to true the ProTexturePathGet() function writes a
temporary copy of the specified files.
Note
These functions must be only used for strings and string arrays output from
Creo Parametric TOOLKIT functions. Check the function description to
determine the function to use when freeing the output.
Functions Introduced:
• ProStringFree()
• ProWstringFree()
• ProStringarrayFree()
• ProWstringarrayFree()
• ProStringproarrayFree()
• ProWstringproarrayFree()
Use the functions ProStringFree() and ProWstringFree() to free a
single char* or wchar_t* output from a Creo Parametric TOOLKIT function.
Use the functions ProStringarrayFree() and
ProWstringarrayFree() to free a standard array of char* or wchar_t*
output from a Creo Parametric TOOLKIT function.
Use the functions ProStringproarrayFree() and
ProWstringproarrayFree() to free a ProArray of char* or wchar_
t* output from a Creo Parametric TOOLKIT function.
Note
The configuration option SHOW_REPORT in the config_init.mc file
overrides the show_ui value.
Note
Other than the requirements listed above, Creo Parametric TOOLKIT
custom checks do not have access to the rest of the values in the Creo
ModelCHECK configuration files. All the custom settings specific to the
check such as start parameters, constants, and so on, must be supported by
the user application and not Creo ModelCHECK. In the custom checks
text file, separate options and values for options with a space, not by a tab
character.
Functions Introduced
• ProModelcheckCheckRegister()
• ProModelcheckCheckFunction()
• ProModelcheckUpdateFunction()
• ProModelcheckCleanupFunction()
The function ProModelcheckCheckRegister() registers the callback
functions for each custom check. The following arguments are available:
• The custom check name. This name must match the name given to the check
in the Creo ModelCHECK configuration file, and must begin with "CHKTK_
".
• The check label. Currently unused; the label is taken from the check
configuration file.
• The check options. Currenlty unused, specify the value as NULL.
• The check callback functions, described in details below.
• Labels for the action and update buttons, or specify NULL if these buttons
should not be shown.
• Application data to pass to the callback functions.
The check callback functions are as follows:
277
Overview
Asynchronous mode is a multiprocess mode in which the Creo Parametric
TOOLKIT application and Creo Parametric can perform concurrent operations.
Unlike synchronous mode, the asynchronous mode uses remote procedure calls
(rpc) as the means of communication between the application and Creo
Parametric.
Another important difference between synchronous and asynchronous modes is in
the startup of the Creo Parametric TOOLKIT application. In synchronous mode,
the application is started by Creo Parametric, based on information contained in
the registry file. In asynchronous mode, the application is started independently of
Creo Parametric and subsequently either starts or connects to a Creo Parametric
process. The application can contain its own main() or wmain() function. Use
wmain() if the application needs to receive command-line arguments as
wchar_t, for example if the input contains non-usascii characters. Note that an
asynchronous application will not appear in the Auxiliary Applications dialog
box.
The section How Creo Parametric TOOLKIT Works on page 35 in Fundamentals
on page 22 chapter describes two modes—DLL and multiprocess (or “spawned”).
These modes are synchronous modes in the sense that the Creo Parametric
TOOLKIT application and Creo Parametric do not perform operations
concurrently. In spawn mode, each process can send a message to the other to ask
for some operation, but each waits for a returning message that reports that the
operation is complete. Control alternates between the two processes, one of which
is always in a wait state.
Asynchronous mode applications operate with the same method of
communication as spawn mode (multiprocess). The use of rpc in spawn mode
causes this mode to perform significantly slower than DLL communications. For
this reason, you should be careful not to apply asynchronous mode when it is not
needed. Note that asynchronous mode is not the only mode in which your
application can have explicit control over Creo Parametric. You can also run Creo
Parametric in batch mode using Creo Parametric TOOLKIT applications; for more
information on batch mode operation, refer to the section Using Creo Parametric
TOOLKIT to Make a Batch Creo Parametric Session on page 52.
Note
For asynchronous mode applications, you are not required to supply user_
initialize() and user_terminate(), Creo Parametric TOOLKIT
will supply a default implementation for these functions. If you do wish to
include a custom version of either function, both the functions user_
initialize() and user_terminate() must be supplied in the
application. A custom user_initialize() will make it possible to
access the user_initialize() input arguments and to reuse code from a
synchronous application without making modifications.
Note
You do not have to link with pt_asynchronous.lib (or use a C++ compiler) if
you do not use the functions just described or
ProEngineerConnectionStart().
This chapter describes the functions used to communicate with the user through
the text message area, including keyboard entry.
The following table lists the conversion characters and their corresponding data
types.
Conversion Character Data Type
f Float (or double)
d Decimal integer
s Ordinary string (or type char[])
w Wide character strings
e Exponential
g Either float or exponential, as appropriate
Ensure that the keyword string is similar to the format string to make your C code
easy to interpret. Add a prefix that is unique to your application to the keyword
string. The examples in this manual use the unique prefix “USER.”
Message Classification
Messages displayed in Creo Parametric include a symbol which identifies the
message type. Each message type is identified by a classification which begins
with the characters %C. A message classification requires that the message key
(line 1 in the message file) be preceeded by the classification code. Note that the
message key string used in the code should NOT contain the classification.
Creo Parametric TOOLKIT applications can now display any or all of these
message symbols:
• Prompt—the Creo Parametric message displayed is preceded by a green arrow.
The user must respond to this message type (to either input information,
accept the default value offered, or cancel the application). Without such
action, no progress can be made. The response may be either textual or in the
form of a selection. The classification code for prompt messages is %CP.
• Info—the Creo Parametric message displayed is preceded by a blue dot. This
message type contains information such as user requests or feedback from
either Creo Parametric or the Creo Parametric TOOLKIT application. The
classification code for prompt messages is %CI.
Note
You must call the function ProMessageDisplay() before calling the
ProMessage*Read functions to specify the default values.
Default values are displayed in the text box as input. Note that this value will not
be passed to the Creo Parametric TOOLKIT function if the user hits a carriage
return; instead, the function will return PRO_TK_GENERAL_ERROR and the
application must interpret that the user intends to use the default.
To specify a constant default value, the format string would appear as follows:
Enter a double: |||3.0
This chapter describes theCreo Parametric TOOLKIT support for the Ribbon User
Interface (UI). It also describes the impact of the ribbon user interface on legacy
Pro/TOOLKIT applications and the procedure to place the commands, buttons,
and menu items created by the legacy applications in the Creo Parametric ribbon
user interface. Refer to the Creo Parametric Help for more information on the
ribbon user interface and the procedure to customize the ribbon.
Note
You can add a new group to an existing tab or create a new tab using the
Customize Ribbon tab in theCreo Parametric Options dialog box. You will not
be able to modify the tabs or groups that are defined by Creo Parametric.
Note
The instructions explained below are applicable only if the application is
implemented in full asynchronous mode. This is because applications in
simple asynchronous mode cannot handle requests, that is, command
callbacks, from Creo Parametric. Refer to the chapter Core: Asynchronous
Mode on page 277, for more information.
Note
The labels and the text added using the ProCmdDesignate() function
duplicate existing messages that are previously added in the Creo database.
To display the correct label and text message, you can use a prefix or a
suffix with the message names that will identify your Creo Parametric
TOOLKIT application. You should avoid using generic names of Creo
Parametric TOOLKIT buttons such as Point, Arc, Circle, Ellipse in the
labels and text.
2. Start the Creo Parametric TOOLKIT application and ensure that it is started or
connected to Creo Parametric. The commands created by the Creo Parametric
TOOLKIT application will be loaded in Creo Parametric.
3. Click File ▶ Options. The Creo Parametric Options dialog box opens.
4. Click Customize Ribbon.
5. In the Customize the Ribbon list, select a tab and create a new group in it or
create a new tab and a group in it.
6. In the Choose commands from list, select TOOLKIT Commands. The
commands created by the Creo Parametric TOOLKIT application are
displayed.
7. Click Add to add the commands to the new tab or group.
8. Click Import/Export ▶ Save the Auxiliary Application User Interface. The
changes are saved to the toolkitribbonui.rbn file. The
toolkitribbonui.rbn file is saved in the text folder specified in the
Creo Parametric TOOLKIT application registry file. For more information
refer to the section on Ribbon Definition File on page 295.
9. Click Apply. The custom settings are saved to the toolkitribbonui.rbn
file.
10. Reload the Creo Parametric TOOLKIT application or restart Creo Parametric.
The toolkitribbonui.rbn file will be loaded along with the Creo
Parametric TOOLKIT application.
Note
◆ The location of the application text directory is specified in the Creo
Parametric TOOLKIT registry file.
◆ A Creo Parametric TOOLKIT application can load a ribbon definition
file only once. After the application has loaded the ribbon, calls made
to the function ProRibbonDefinitionfileLoad() to load
other ribbon definition files are ignored.
Note
The order in which the commands will be displayed within the group will
depend on the order of loading of the .rbn file for each application.
Note
Commands that have not been designated will not have an icon or will have a
generic icon.
Refer to the Creo Parametric Help for more information on customizing the
Ribbon.
This chapter describes all the functions provided by Creo Parametric TOOLKIT to
create and manipulate menus and buttons in the Creo Parametric ribbon user
interface.
Refer to the chapter User Interface: Ribbon Tabs, Groups, and Menu Items on
page 292 for more information. Also, refer to the Creo Parametric Help for more
information on customizing the ribbon user interface.
301
Introduction
Using Creo Parametric TOOLKIT, you can supplement the Creo Parametric
ribbon user interface.
Once the Creo Parametric TOOLKIT application is loaded, you can add a new
group to an existing tab or create a new tab using the Customize Ribbon tab in the
Creo Parametric Options dialog box in Creo Parametric. You will not be able to
modify the groups that are defined by Creo Parametric. If the translated messages
are available for the newly added tabs or groups, then Creo Parametric will use
them by searching for the same string in the list of sting based messages loaded.
You can customize the ribbon user interface only for a particular mode in Creo
Parametric. For example, if you customize the ribbon user interface and save it to
the toolkitribbonui.rbn file in the Part mode, then on loading Creo
Parametric the customized user interface will be visible only in the Part mode. To
view a particular tab or group in all the modes, you must customize the ribbon
user interface and save thetoolkitribbonui.rbn file in each mode. Refer to
the Creo Parametric Fundamentals Help for more information on customizing the
ribbon.
When you are designing your Creo Parametric TOOLKIT application, you should
carefully consider the context of the buttons that you add to the Creo Parametric
User Interface (UI). Buttons specific to a particular mode (such as PART) should
be located on the ribbon related to that mode. Buttons that initiate some action on
a part, for example, should be located on the PART ribbon.
There are fundamental differences in the files and functions used to manipulate
Ribbon and Menu-Manager menus. For this reason, this manual describes these
subjects in separate sections.
Adding a PushButton
To add a button to the ribbon user interface, your Creo Parametric TOOLKIT
application must do the following:
1. Define the action command to be initiated by the button. The action is defined
in a function known as the “callback function.”
2. Designate the command using the function ProCmdDesignate().
3. Add the button to the ribbon user interface using the using the Customize
Ribbon tab in the File ▶ Options dialog box. This operation binds the added
action to the button.
These procedures are described in the sections that follow.
Note
• The function ProCmdActionAdd() is executed only once per Creo
Parametric session for each action. Subsequent calls to this function for a
previously loaded action are ignored (therefore you cannot redefine an action
within a Creo Parametric session).
The entering command argument will be 1 before execution and 0 after. If the
operation is before the upcoming command execution, and you want to cancel
the upcoming command execution, return 0. Otherwise, return non-zero.
• bracket_func_name—The name of the bracket function.
• pp_bracket_data—A void** containing data to be passed to the bracket
function.
Designating Commands
Using Creo Parametric TOOLKIT you can designate Creo Parametric commands.
These commands can later appear in the Creo Parametric ribbon user interface.
Note
Refer to the chapter on User Interface: Ribbon Tabs, Groups, and Menu
Items on page 292 for more information. Also, refer to the Creo Parametric
Help for more information on customizing the Ribbon User Interface.
4. Save the configuration in Creo Parametric so that changes to the ribbon user
interface appear when a new session of Creo Parametric is started.
Note
The legacy naming convention for icons <icon_name_icon_size.ext>
will not be supported in future releases of Creo Parametric. The icon size was
added as a suffix to the name of the icon. For example, the legacy naming
convention for small icons was iconname16X16.ext. It is recommended
to use the standard naming conventions for icons, that is, iconname.ext or
iconname_large.ext.
The application searches for the icon files in the following locations:
• <creo_loadpoint>\<datecode>\Common Files\text\
resources
• <application_text_dir>\resource
• <application_text_dir>\<language_dir>/resource
The location of the application text directory is specified in the Creo
Parametric TOOLKIT registry file.
The Creo Parametric button is replaced with the icon image.
Commands that do not have an icon assigned to them display the button label.
You may also use this function to assign a small icon to a button.
Note
This file must be in the directory <text_path>/text or <text_
path>/text/<language>.
Note
This file must be in the directory <text_path>/text or <text_
path>/text/<language>.
Popup Menus
Creo Parametric provides shortcut menus that contain frequently used commands
appropriate to the currently selected items. You can access a shortcut menu by
clicking the right mouse button (RMB) after selecting an item. Shortcut menus are
accessible in:
• Graphics window
• Model tree
• Some dialog boxes
• Any area where you can perform an object-action operation by selecting an
item and then choosing a command to perform on the selected item.
Creo Parametric TOOLKIT provides different procedures to add custom buttons
to popup menus, depending on the buttons’ context. To add to the model tree
popup menu, use the procedure described in Adding a Button to the Model Tree
Popup Menu on page 320. To add a popup menu to a custom dialog box, see the
User Interface: Dialogs on page 344 chapter (you cannot modify the popup menus
in an existing UI dialog box). To add to a graphics window popup menu, refer to
Adding a Popup Menu to the Graphics Window on page 315.
Note
The labels and the text added using the ProCmdDesignate() function
duplicate existing messages that are previously added in the Creo database.
To display the correct label and text message, you can use a prefix or a
suffix with the message names that will identify your Creo Parametric
TOOLKIT application. You should avoid using generic names of Creo
Parametric TOOLKIT buttons such as Point, Arc, Circle, Ellipse in the
labels and text.
Menu Files
Menu files enable you to specify your own text for the name of a menu button and
the one-line help text that appears when you place the cursor over that button,
along with translations for both of these.
Creo Parametric looks for the Creo Parametric TOOLKIT menu files in the
following locations:
• The current Creo Parametric startup directory
• The subdirectory text/menus under the directory named by the text_dir
statement in the registry file
PTC recommends that during development you place your menu files in text/
menus under your working directory and specify the following registry file entry:
text_dir .
Calling ProMenuFileRegister()
The input arguments to ProMenuFileRegister() are as follows:
• ProMenuName menuname—The unique title of the menu that appears as the
first word on the first line of the menu file and on the heading of the menu on
the screen when you run Creo Parametric in English. This argument is case-
insensitive.
• ProMenufileName filename—The name of the menu file, including the
extension but not the directory.
The function outputs the integer identifier of the menu, which you do not normally
need. If the function fails for some reason (for example, the menu file did not
exist), it returns PRO_TK_GENERAL_ERROR. If you call this function a second
time on the same menu file, it has no effect.
Calling ProMenuAuxfileRegister()
This function has the same arguments and return value as
ProMenuFileRegister(). Instead of loading a new menu into memory, the
function adds the buttons in the file to a menu already in memory.
Calling ProMenubuttonActionSet()
The first three arguments to ProMenubuttonActionSet() are as follows:
• ProMenuName menuname—The title of the menu that contains the button.
• ProMenubuttonName button—The first name for the button in the menu
file (not the second, which provides the translation), but with spaces instead of
pound signs (#). This argument is case-insensitive.
• ProMenubuttonAction action—A pointer to the Creo Parametric
TOOLKIT callback function to be called when the user selects this menu
button. To pass a pointer to a function, supply the name of the function
without the following parentheses. If your function does not precede the call to
ProMenubuttonActionSet() in the same file, you must add a
declaration of it to show the compiler that this is a function.
New Menus
Functions Introduced:
• ProMenuProcess()
• ProMenuDelete()
• ProMenuCreate()
• ProMenuHold()
• ProMenuDeleteWithStatus()
Creo Parametric TOOLKIT enables you to create new menus. Defining a new
menu differs from adding buttons to an existing menu in the following ways:
• The menu file you supply should end in .mnu, not .aux. (It has the same
syntax, though.)
• You do not need to call ProMenuAuxfileRegister() because the whole
menu is defined in a single menu file.
• You need to define an exit action for the menu, in addition to an action for
each button on the menu.
• You can either specify the new menu in user_initialize() or you can
set up the new menu locally before you use it.
Exit Actions
You must not only tell the menu manager inside Creo Parametric which function
to call for each button on your menu, but also which function to call if the user
selects a button on another menu. This function is called an exit action because it
is often used to close the menu.
Calling ProMenuProcess()
The function ProMenuProcess() takes a single input argument—the title of
the menu. If the menu is the last one displayed, you can pass an empty string. The
return value is meaningful only if you use the function
ProMenuDeleteWithStatus() as the exit action for the menu.
The function ProMenuProcess() returns only when the menu is closed, as the
result of a call to either ProMenuDelete() or
ProMenuDeleteWithStatus(). The following is true for any code
following the call to ProMenuProcess():
1. The code does not get executed until the menu is closed.
2. The code gets executed before any command that causes an exit from the
menu. When the user closes a menu by selecting another command, that
command is put into the input buffer and is not executed until control passes
from your application back to Creo Parametric.
Compound Menus
Function Introduced:
• ProCompoundmenuCreate()
The ProCompoundmenuCreate() function enables you to take an array of
previously loaded menu names and append them together into one menu.
To Create a Compound Menu:
1. Specify which submenus to include in the compound menu, as follows:
static char **compound_menu = {"MENU_1","MENU_2", "MENU_3", ""};
2. Load the actions on the buttons.
Calling ProMenubutton*actionSet()
The functions ProMenubuttonPreactionSet() and
ProMenubuttonPostactionSet() have the same arguments as
ProMenubuttonActionSet(). The function
ProMenubuttonPreactionSet() inserts your function before an existing
Creo Parametric command instead of assigning it to a new button. The function
ProMenubuttonPostactionSet() inserts your function after an existing
Creo Parametric command.
Because you are changing the definition of the menu in Creo Parametric, you must
make sure the menu is loaded into memory first, by calling
ProMenuFileRegister().
If the command function you load returns the value 0, the Creo Parametric
command for that menu button will be executed immediately. If your function
returns any other value, the Creo Parametric command will not be performed.
Submenus
Function Introduced:
• ProMenuCreate()
All the menus described so far have been main menus. The other type of menu is
called a submenu. A submenu differs from a main menu in the following ways:
• A submenu is active at the same time as the menu above it. Selecting from the
menu above does not close the submenu.
• A submenu does not display its title.
In effect, a submenu acts as an extension to the menu above it. This enables you to
display two active menus at the same time, such as if you want the user to choose
two options from two exclusive groups of values.
Manipulating Menus
Function Introduced:
• ProMenubuttonLocationSet()
The function ProMenubuttonLocationSet() provides the ability to move
a Creo Parametric menu button to a different location on its menu, or to add new
menu buttons to a Creo Parametric menu somewhere other than at the bottom of
the menu.
Data Menus
Functions Introduced:
• ProMenuModeSet()
• ProMenuDatamodeSet()
Menus can operate in two modes:
• PROMENUMODE_OPERATIONAL—The default mode. This mode is used in
all the previous examples. On an operational menu, only one button is ever set
(that is, displayed with a red background) while that command is in progress.
• PROMENUMODE_DATA—Each button remains set until you select it again.
This is useful when the buttons do not represent commands, but, for example,
a set of independently selectable options.
The function ProMenuModeSet() sets the menu mode. For a
PROMENUMODE_DATA menu, you can choose to indicate the set buttons with a
check mark instead of the usual red background by using the function
ProMenuDatamodeSet().
Run-time Menus
Functions Introduced:
• ProMenuStringsSelect()
• ProMenuFromStringsRegister()
The ProMenuStringsSelect() function enables you to set up a menu at run
time. You do not need to supply a menu file because the buttons are defined when
you display the menu. You cannot attach command functions to the button; a run-
time menu simply returns a list of the buttons selected.
A run-time menu is displayed together with a submenu that contains the following
buttons:
Note
ProMacroLoad() fails if a macro string contains a backslash or if a
command splits over two lines with or without a backslash. A macro string can
contain multiple commands separated by semicolons. However, each
command should entirely appear in a single line.
Click Mapkeys Settings in the Environment tab of the Creo Parametric Options
dialog box to create a mapkey in the Creo Parametric user interface. Copy the
value of the generated mapkey option from the Configuration Editor in the Creo
Parametric Options dialog box. An example of a created mapkey is as follows:
$F2 @MAPKEY_LABELtest;
~ Command `ProCmdModelNew`
~ Activate `new` `OK`
The key sequence is $F2. . The remainder of the string after the first semicolon is
the macro string. In this case, it is as follows:
~ Command `ProCmdModelNew`
Note
Creating or editing the macro string manually is not supported, as mapkeys are
not a supported scripting language. The syntax is not defined for users and
may not remain constant across different datecodes of Creo Parametric.
Execution Rules
Consider the following rules about the execution of macros:
• In asynchronous mode, macros are executed as soon as they are loaded with
ProMacroLoad().
• In synchronous mode, the mapkey or the macro strings are pushed onto a stack
and are popped off and executed only when control returns to Creo Parametric
from the Creo Parametric TOOLKIT program. Due to the last in, first out
nature of the stack, macros that cannot be passed entirely in one
ProMacroLoad() call should have the strings loaded in reverse order of
desired execution.
• To execute a macro from within Creo Parametric TOOLKIT, call the function
ProMacroExecute(). The function runs the Creo Parametric macro and
returns the control to the Creo Parametric TOOLKIT application. It executes
the macros previously loaded using the function ProMacroLoad(). The
function works only in the synchronous mode.
• Do not call the function ProMacroExecute() during the following
operations:
○ Activating dialog boxes or setting the current model
○ Erasing the current model
○ Replaying a trail file
• Clicking the OK button on the dialog box to complete the command operation.
In this case, the dialog box may be displayed momentarily without completing
the command operation.
• If some of the commands ask for an input to be entered from the keyboard
(such as a part name), the macro continues execution after you type the input
and press ENTER. However, if you must select something with the mouse
(such as selecting a sketching plane), the macro is interrupted and ignores the
remaining commands in the string.
This allows the application to create object-independent macros for long
sequences of repeating choices (as long as the user does not have to select any
geometry).
A ProStringToWstring() call for defining the macro string must be
followed by the following calls:
• ProMacroLoad(macro wstring) to load the macro strings or the
mapkey
• ProMacroExecute() to execute the macro
Some sample macros in various scenarios are given below.
Note
From Creo 3.0 onward, a new tool, Creo UI Editor, allows you to interactively
create and edit dialog boxes for Creo Object TOOLKIT C++ and Creo Object
TOOLKIT Java customizations. It provides a library of graphical user
interface components such as buttons, lists, and so on. The new framework,
User Interface Foundation Classes (UIFC), provides enhanced attributes and
actions for the user interface components. The UIFC framework is available in
Creo Object TOOLKIT C++ and Creo Object TOOLKIT Java. You can
generate callbacks in Creo Object TOOLKIT C++ or Creo Object TOOLKIT
Java. Refer to the Creo UI Editor User’s Guide, for more information.
Note
The functions described in this section do not support using Creo
Parametric TOOLKIT to modify standard Creo Parametric dialogs.
The UI function library is integral to Creo Parametric, not the Creo Parametric
TOOLKIT libraries; thus, the library can only be used while a Creo Parametric
session is active. The library cannot be used to display user interfaces when the
application is not connected to Creo Parametric running interactively.
UI Components
The behavior and uses of the different component types is introduced briefly
below, and described in more detail in later sections. The component types are:
• Tab—part of a dialog that can contain several groups of components,
formatted such that only one group is visible at a time. A Tab component must
always contain a set of Layout components; each layout contains the
components that must displayed at one time. The Figure - ‘All Components
Dialog’ shows a decorated Tab which displays a handle on each layout to
allow the user to select which layout is visible.
• Layout—an area of a dialog which can contain any number of other dialog
components. A Layout can be used to better control the relative position of
components in a dialog, by allowing the grids in different parts of the dialog to
adopt unaligned rows or columns. A layout can also be used inside a Tab
component.
• Check Button—a button which toggles between a TRUE and FALSE state
each time the user selects it.
• Drawing Area—a component which allows points, lines, shapes, images and
text (including symbols) to be drawn in a variety of colors.
Dialog Attributes
Attribute Get Function Set Function(s)
Name
.AttachBot ProUIDialogIsAttachedBottom() ProUIDialogAttachBottom()
tom on page
ProUIDialogUnattachBottom()
.AttachTop ProUIDialogIsAttachedTop() ProUIDialogAttachTop()
on page
ProUIDialogUnattachTop()
.Attach ProUIDialogIsAttachedRight() ProUIDialogAttachRight()
Right on
page ProUIDialogUnattachRight()
.AttachLeft ProUIDialogIsAttachedLeft() ProUIDialogAttachLeft()
on page
ProUIDialogUnattachLeft()
.BottomOff ProUIDialogBottomoffsetGet() ProUIDialogBottomoffsetSet()
set on page
.Bitmap on ProUIDialogBitmapGet() ProUIDialogBitmapSet()
page
.ChildNames ProUIDialogChildnamesGet() Not Applicable
on page
.ClassName ProUIComponentClassnameGet() Not Applicable
on page
.DefaultBut ProUIDialogDefaultbuttonGet() ProUIDialogDefaultbutton
ton on page Set()
.Dialog ProUIDialogDialogstyleGet() ProUIDialogDialogstyleSet()
Style on
page
.Focus on Not Applicable ProUIDialogFocusSet()
page
.Height on ProUIDialogHeightGet() ProUIDialogHeightSet()
page
.HorzAt ProUIDialogHorzatpointGet() ProUIDialogHorzatpointSet()
Point on
page
.HorzDialog ProUIDialogHorzdialogGet() ProUIDialogHorzdialogSet()
on page
.HorzMethod ProUIDialogHorzmethodGet() ProUIDialogHorzmethodSet()
on page
Note
• The function ProUIDialogCreate() requires that the resource file name
input matches the case of the actual resource file.
• The dialog name specified in the resource file should match both the input
argument resource and the name of the resource file without adding the suffix
name.
Note
Refer to the section UI Components on page 347 for the predefined list of
component types.
Note
You must use the functions ProUITimerCreate(),
ProUIDialogTimerStart(), ProUIDialogTimerStop(), and
ProUITimerDestroy() only in DLL mode.
Note
Components that are added to a dialog after it is displayed do not permit
modification of all component attributes. When creating and displaying a
dialog, it is preferable to use these functions to add the components before
activating the dialog. If a component might be needed but should not be shown
initially, add it before activation and set its .Visible attribute to false.
ProUICascadebutton
UnattachBottom()
.AttachTop on ProUICascadebutton ProUICascadebutton
page IsAttachedTop() AttachTop()
ProUICascadebutton
UnattachTop()
.AttachRight on ProUICascadebutton ProUICascadebutton
page IsAttachedRight() AttachRight()
ProUICascadebutton
UnattachRight()
.AttachLeft on ProUICascadebutton ProUICascadebutton
page IsAttachedLeft() AttachLeft()
ProUICascadebutton
UnattachLeft()
.BottomOffset ProUICascadebutton ProUICascadebutton
on page BottomoffsetGet() BottomoffsetSet()
.Bitmap on page ProUICascadebutton ProUICascadebutton
BitmapGet() BitmapSet()
.CascadeDirec ProUICascadebutton ProUICascadebutton
tion on page CascadedirectionGet() CascadedirectionSet()
.ChildNames on ProUICascadebutton ProUICascadebutton
page ChildnamesGet() ChildnamesSet()
.HelpText on ProUICascadebutton ProUICascadebutton
page HelptextGet() HelptextSet()
.Label on page ProUICascadebutton ProUICascadebutton
TextGet() TextSet()
.LeftOffset on ProUICascadebutton ProUICascadebutton
page LeftoffsetGet() LeftoffsetSet()
.ParentName on ProUICascadebutton ProUICascadebutton
page ParentnameGet() ParentnameSet()
.PopupMenu on ProUICascadebutton ProUICascadebutton
page PopupmenuGet() PopupmenuSet()
.Resizeable on ProUICascadebutton ProUICascadebutton
page IsResizeable() EnableResizing()
ProUICascadebutton
DisableResizing()
.RightOffset on ProUICascadebutton ProUICascadebutton
page RightoffsetGet() RightoffsetSet()
.Sensitive on ProUICascadebutton ProUICascadebutton
IsEnabled() Enable()
ProUICascadebutton
Hide()
Checkbutton
Checkbutton Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom on ProUICheckbuttonIsAtta ProUICheckbuttonAttachBot
page chedBottom() tom()
ProUICheckbuttonUnattachBot
tom
.AttachTop on ProUICheckbuttonIsAtta ProUICheckbuttonAttachTop()
page chedTop()
ProUICheckbuttonUnattach
Top()
.AttachRight on ProUICheckbuttonIsAtta ProUICheckbuttonAttach
page chedRight() Right()
ProUICheckbuttonUnattach
Right()
.AttachLeft on ProUICheckbuttonIsAtta ProUICheckbuttonAttachLeft()
page chedLeft()
ProUICheckbuttonUnatta
chLeft()
.BottomOffset on ProUICheckbuttonBottomoff ProUICheckbuttonBottomoffset
page setGet() Set()
.Bitmap on page ProUICheckbuttonBitmap ProUICheckbuttonBitmapSet()
Get()
.ButtonStyle on ProUICheckbuttonButtonsty ProUICheckbuttonButtonstyle
page leGet() Set()
.HelpText on page ProUICheckbuttonHelptext ProUICheckbuttonHelptext
Get() Set()
.Label on page ProUICheckbuttonTextGet() ProUICheckbuttonTextSet()
.ModalOverride Not Applicable ProUICheckbuttonModaloverride
on page Set()
.LeftOffset on ProUICheckbuttonLeftoff ProUICheckbuttonLeftoffset
page setGet() Set()
.ParentName on ProUICheckbuttonParentna Not Applicable
page meGet()
ProUICheckbuttonDisableResiz
ing()
.RightOffset on ProUICheckbuttonRightoff ProUICheckbuttonRightoffset
page setGet() Set()
.Set on page ProUICheckbuttonGet ProUICheckbuttonSet()
State()
ProUICheckbuttonUnset()
.Sensitive on ProUICheckbuttonIsEna ProUICheckbuttonEnable()
page bled()
ProUICheckbuttonDisable()
.TopOffset on ProUICheckbuttonTopoffset ProUICheckbuttonTopoffset
page Get() Set()
.Visible on page ProUICheckbuttonIsVisi ProUICheckbuttonShow()
ble()
ProUICheckbuttonHide()
Checkbutton Operations
Functions Introduced
• ProUICheckbuttonAnchorSet()
• ProUICheckbuttonSizeSet()
• ProUICheckbuttonMinimumsizeGet()
• ProUICheckbuttonPositionSet()
• ProUICheckbuttonPositionGet()
• ProUICheckbuttonSizeGet()
Use the function ProUICheckbuttonAnchorSet() to set the position of the
checkbutton with respect to a given anchor location. This function is applicable
only if the parent of the checkbutton is a drawing area. The input argument anchor
determines which part of the component is being positioned.
Use the function ProUICheckbuttonSizeSet() to set the size of the
checkbutton in pixels. This operation is applicable only if the parent is a drawing
area. The function will fail, if you specify a value smaller than the minimum size
for the input arguments width or height
Use the function ProUICheckbuttonMinimumsizeGet()to retrieve the
minimum size of the width and height of the check button in pixels. Use this
function only if the parent is a drawing area.
Drawing Area
Drawing Area Attributes
Attribute Name Get Function Set Function(s)
.ArcDirection on page ProUIDrawingareaArcdir ProUIDrawingareaArcdir
ectionGet() ectionSet()
.ArcFillMode on page ProUIDrawingareaArcfill ProUIDrawingareaArcfill
modeGet() modeSet()
.AttachBottom on page ProUIDrawingareaIsAtta ProUIDrawingareaAttach
chedBottom() Bottom()
ProUIDrawingareaUnat
tachBottom()
.AttachTop on page ProUIDrawingareaIsAtta ProUIDrawingareaAttach
chedTop() Top()
ProUIDrawingareaUnat
tachTop()
.AttachRight on page ProUIDrawingareaIsAtta ProUIDrawingareaAttach
chedRight() Right()
ProUIDrawingareaUnat
tachRight()
.AttachLeft on page ProUIDrawingareaIsAtta ProUIDrawingareaAtta
chedLeft() chLeft()
ProUIDrawingareaUnatta
chLeft()
.BackgroundColor on page ProUIDrawingareaBack ProUIDrawingareaBack
ProUIDrawingareaUndeco
rate()
.DrawingHeight on page ProUIDrawingareaDrawing ProUIDrawingareaDrawing
heightGet() heightSet()
.DrawingMode on page ProUIDrawingareaDrawing ProUIDrawingareaDrawing
modeGet() modeSet()
.DrawingWidth on page ProUIDrawingareaDrawing ProUIDrawingareaDrawing
widthGet() widthSet()
.FillMode on page ProUIDrawingareaFillmo ProUIDrawingareaFillmo
deGet() deSet()
.FontClass on page ProUIDrawingareaFont ProUIDrawingareaFont
classGet() classSet()
.FontSize on page ProUIDrawingareaFontsi ProUIDrawingareaFontsi
zeGet() zeSet()
.FontStyle on page ProUIDrawingareaFontsty ProUIDrawingareaFontsty
leGet() leSet()
.FgColor on page ProUIDrawingareaFgcolor ProUIDrawingareaFgcolor
Get() Set()
.HelpText on page ProUIDrawingareaHelp ProUIDrawingareaHelp
textGet() textSet()
.Images on page ProUIDrawingareaImages ProUIDrawingareaImages
Get() Set()
.LeftOffset on page ProUIDrawingareaLeftoff ProUIDrawingareaLeftoff
setGet() setSet()
.LineStyle on page ProUIDrawingareaLinesty ProUIDrawingareaLinesty
leGet() leSet()
.ParentName on page ProUIDrawingareaParent Not Applicable
nameGet()
.PolygonFillMode on page ProUIDrawingareaPolygon ProUIDrawingareaPolygon
fillmodeGet() fillmodeSet()
.PopupMenu on page ProUIDrawingareaPopupme ProUIDrawingareaPopupme
nuGet() nuSet()
.RightOffset on page ProUIDrawingareaRight ProUIDrawingareaRight
offsetGet() offsetSet()
.Sensitive on page ProUIDrawingareaIsEna ProUIDrawingareaEna
bled() ble()
ProUIDrawingareaDisa
ble()
ProUIDrawingareaDisable
Tracking()
.Visible on page ProUIDrawingareaIsVisi ProUIDrawingareaShow()
ble()
ProUIDrawingareaHide()
Note
This means that components may possibly overlap each other in a drawing
area depending on their individual placement.
Note
Any graphics, text or images added to the drawing area is typically cleared
after a resize.
ProUIInputpanelUnattach
Bottom()
.AttachTop on page ProUIInputpanelIsAttached ProUIInputpanelAttach
Top() Top()
ProUIInputpanelUnattach
Top()
.AttachRight on ProUIInputpanelIsAttached ProUIInputpanelAttach
page Right() Right()
ProUIInputpanelUnattach
Right()
.AttachLeft on page ProUIInputpanelIsAttached ProUIInputpanelAtta
Left() chLeft()
ProUIInputpanelUnatta
chLeft()
.Autohighlight on ProUIInputpanelIsAutohigh ProUIInputpanelAutohigh
page lightEnabled() lightEnable()
ProUIInputpanelAutohigh
lightDisable()
.BackgroundColor on Not Applicable ProUIInputpanelBack
page groundcolorSet()
.BottomOffset on ProUIInputpanelBottomoffset ProUIInputpanelBottomoff
page Get() setSet()
.Columns on page ProUIInputpanelColumnsGet() ProUIInputpanelColumns
Set()
.Denominator on ProUIInputpanelDenominator ProUIInputpanelDenomina
page Get() torSet()
.Digits on page ProUIInputpanelDigitsGet() ProUIInputpanelDigits
Set()
.Double on page ProUIInputpanelDoubleGet() ProUIInputpanelDouble
Set()
.DoubleFormat on ProUIInputpanelDoubleformat ProUIInputpanelDoublefor
page Get() matSet()
.Editable on page ProUIInputpanelIsEditable() ProUIInputpanelEdita
ble()
ProUIInputpanelReadOn
ly()
.HelpText on page ProUIInputpanelHelptext ProUIInputpanelHelptext
Get() Set()
.InputType on page ProUIInputpanelInputtype ProUIInputpanelInputtype
ProUIInputpanelUseNormal
chars()
ProUIInputpanelContains
Password()
ProUIInputpanelPassword
charSet()
.PopupMenu on page ProUIInputpanelPopupmenu ProUIInputpanelPopupmenu
Get() Set()
.RightOffset on ProUIInputpanelRightoffset ProUIInputpanelRightoff
page Get() setSet()
.Sensitive on page ProUIInputpanelIsEnabled() ProUIInputpanelEnable()
ProUIInputpanelDisable()
.String on page ProUIInputpanelStringGet() ProUIInputpanelString
Set()
.TabCharsAllow on ProUIInputpanelTabcharsAl ProUIInputpanelTabchars
page low() Disallow()
ProUIInputpanelAllowsTab
chars()
.TopOffset on page ProUIInputpanelTopoffset ProUIInputpanelTopoffset
Get() Set()
.Value on page ProUIInputpanelValueGet() ProUIInputpanelValue
Set()
ProUIInputpanelHide()
.WideString on page ProUIInputpanelWidestring ProUIInputpanelWides
Get() tringSet()
Label
Label Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom on page ProUILabelIsAttachedBot ProUILabelAttachBot
tom() tom()
ProUILabelUnattachBot
tom()
.AttachTop on page ProUILabelIsAttached ProUILabelAttachTop()
Top()
ProUILabelUnattachTop()
.AttachRight on page ProUILabelIsAttached ProUILabelAttachRight()
Right()
ProUILabelUnattach
Right()
.AttachLeft on page ProUILabelIsAttached ProUILabelAttachLeft()
Left()
ProUILabelUnatta
chLeft()
.Bitmap on page ProUILabelBitmapGet() ProUILabelBitmapSet()
.BottomOffset on page ProUILabelBottomoffset ProUILabelBottomoffset
Get() Set()
.Columns on page ProUILabelColumnsGet() ProUILabelColumnsSet()
.HelpText on page ProUILabelHelptextGet() ProUILabelHelptextSet()
.Label on page ProUILabelTextGet() ProUILabelTextSet()
.LeftOffset on page ProUILabelLeftoffset ProUILabelLeftoffset
Get() Set()
.ParentName on page ProUILabelParentname Not Applicable
Get()
.PopupMenu on page ProUILabelPopupmenu ProUILabelPopupmenu
Get() Set()
ProUILabelDisableResiz
ing()
.RightOffset on page ProUILabelRightoffset ProUILabelRightoffset
Get() Set()
.Sensitive on page ProUILabelIsEnabled() ProUILabelEnable()
ProUILabelDisable()
.TopOffset on page ProUILabelTopoffset ProUILabelTopoffset
Get() Set()
.Visible on page ProUILabelIsVisible() ProUILabelShow()
ProUILabelHide()
Label Operations
Functions Introduced
• ProUILabelAnchorSet()
• ProUILabelSizeSet()
• ProUILabelMinimumsizeGet()
• ProUILabelPositionGet()
• ProUILabelPositionSet()
• ProUILabelSizeGet()
Use the function ProUILabelAnchorSet() to set the location to position the
label with respect to its parent. This field is used only if the parent is a drawing
area.
Use the function ProUILabelSizeSet() to set the size of the label. This field
is used only if the parent is a drawing area. The function will fail, if you specify a
value smaller than the minimum size for the input arguments width or height.
Use the function ProUILabelMinimumsizeGet() to retrieve the minimum
size of the width and height of the label in pixels. Use this function only if the
parent is a drawing area.
Use the function ProUILabelPositionGet() to get the position of the label
with respect to its parent. This field is used only if the parent is a drawing area.
Use the function ProUILabelPositionSet() to set the position to the label
with respect to its parent. This field is used only if the parent is a drawing area.
Use the function ProUILabelSizeGet() to get the size of the label. This
field is used only if the parent is a drawing area.
ProUILayoutMappedUnset()
.ParentName on ProUILayoutParentname Not Applicable
page Get()
.PopupMenu on page ProUILayoutPopupmenuGet() ProUILayoutPopupmenuSet()
.RightOffset on ProUILayoutRightoffset ProUILayoutRightoffsetSet()
page Get()
.Sensitive on page ProUILayoutIsEnabled() ProUILayoutEnable()
ProUILayoutDisable()
.TopOffset on page ProUILayoutTopoffsetGet() ProUILayoutTopoffsetSet()
.Visible on page ProUILayoutIsVisible() ProUILayoutShow()
ProUILayoutHide()
See the section on Adding and Removing Components on page 402 for
description of how to use the ProUIGridopts arguments when adding
components to a layout.
Layout Operations
Functions Introduced
• ProUILayoutAnchorSet()
• ProUILayoutSizeSet()
• ProUILayoutMinimumsizeGet()
• ProUILayoutPositionGet()
• ProUILayoutPositionSet()
• ProUILayoutSizeGet()
• ProUILayoutIsMapped()
List
List Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom on ProUIListIsAttachedBot ProUIListAttachBottom()
page tom()
ProUIListUnattachBottom()
.AttachTop on page ProUIListIsAttached ProUIListAttachTop()
Top()
ProUIListUnattachTop()
.AttachRight on ProUIListIsAttached ProUIListAttachRight()
page Right()
ProUIListUnattachRight()
ProUIListDisable()
.TopOffset on page ProUIListTopoffsetGet() ProUIListTopoffsetSet()
.Visible on page ProUIListIsVisible() ProUIListShow()
ProUIListHide()
.VisibleRows on ProUIListVisiblerows ProUIListVisiblerowsSet()
page Get()
List Operations
Functions Introduced
• ProUIListAnchorSet()
• ProUIListSizeSet()
• ProUIListMinimumsizeGet()
• ProUIListPositionGet()
• ProUIListPositionSet()
• ProUIListSizeGet()
• ProUIListStateGet()
• ProUIListStateSet()
Use the function ProUIListAnchorSet() to set the position of the list with
respect to a given anchor location. This function is applicable only if the parent of
the list is a drawing area.
Use the function ProUIListSizeSet() to set the size of the list. This field is
used only if the parent is a drawing area. The function will fail, if you specify a
value smaller than the minimum size for the input arguments width or height.
Menubar
Menubar Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom ProUIMenubarIsAttached ProUIMenubarAttachBottom()
on page Bottom()
ProUIMenubarUnattachBottom()
.AttachTop on ProUIMenubarIsAttached ProUIMenubarAttachTop()
page Top()
ProUIMenubarUnattachTop()
.AttachRight on ProUIMenubarIsAttached ProUIMenubarAttachRight()
page Right()
ProUIMenubarUnattachRight()
.AttachLeft on ProUIMenubarIsAttached ProUIMenubarAttachLeft()
page Left()
ProUIMenubarUnattachLeft()
.BottomOffset ProUIMenubarBottomoffset ProUIMenubarBottomoffsetSet()
on page Get()
.HelpText on ProUIMenubarHelptext ProUIMenubarHelptextSet()
page Get()
Menupane
Menupane Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom on ProUIMenupaneIsAttached ProUIMenupaneAttachBot
page Bottom() tom()
ProUIMenupaneUnattachBot
tom()
.AttachTop on page ProUIMenupaneIsAttached ProUIMenupaneAttachTop()
Top()
ProUIMenupaneUnattach
Top()
.AttachRight on page ProUIMenupaneIsAttached ProUIMenupaneAttach
Right() Right()
ProUIMenupaneUnattach
Right()
.AttachLeft on page ProUIMenupaneIsAttached ProUIMenupaneAttachLeft()
Left()
ProUIMenupaneUnatta
chLeft()
.Bitmap on page ProUIMenupaneBitmapGet() ProUIMenupaneBitmapSet()
.BottomOffset on ProUIMenupaneBottomoffset ProUIMenupaneBottomoffset
page Get() Set()
ProUIMenupaneHide()
ProUIMenupaneCascadebutto
nInsert()
Checkbutton ProUIMenupaneCheckbutto ProUIMenupaneCheckbutton
nAdd() Remove()
ProUIMenupaneCheckbuttonIn
sert()
Pushbutton ProUIMenupanePushbutto ProUIMenupanePushbuttonRe
nAdd() move()
ProUIMenupanePushbuttonIn
sert()
Radiogroup ProUIMenupaneRadiogrou ProUIMenupaneRadiogroupRe
pAdd() move()
ProUIMenupaneRadiogroupIn
sert()
Separator ProUIMenupaneSeparatorAdd() ProUIMenupaneSeparatorRe
move()
ProUIMenupaneSeparatorIn
sert()
ProUIOptionmenuUnattachBot
tom()
.AttachTop on ProUIOptionmenuIsAttached ProUIOptionmenuAttachTop()
page Top()
ProUIOptionmenuUnattach
Top()
.AttachRight on ProUIOptionmenuIsAttached ProUIOptionmenuAttach
page Right() Right()
ProUIOptionmenuUnattach
Right()
.AttachLeft on ProUIOptionmenuIsAttached ProUIOptionmenuAttachLeft()
page Left()
ProUIOptionmenuUnatta
chLeft()
.BottomOffset on ProUIOptionmenuBottomoffset ProUIOptionmenuBottomoffset
page Get() Set()
.Columns on page ProUIOptionmenuColumnsGet() ProUIOptionmenuColumnsSet()
.Editable on page ProUIOptionmenuIsEditable() ProUIOptionmenuEditable()
ProUIOptionmenuReadOnly()
.HelpText on page ProUIOptionmenuHelptext ProUIOptionmenuHelptext
Get() Set()
.ItemHelpText on ProUIOptionmenuItemhelptext ProUIOptionmenuItemhelptext
page Get() Set()
.ItemImage on ProUIOptionmenuItemimage ProUIOptionmenuItemimage
page Get() Set()
.Label on page ProUIOptionmenuLabelsGet() ProUIOptionmenuLabelsSet()
.Lastentereditem ProUIOptionmenuLastenteredi Not Applicable
on page temGet()
.LeftOffset on ProUIOptionmenuLeftoffset ProUIOptionmenuLeftoffset
page Get() Set()
.MinColumns on ProUIOptionmenuMincolumns ProUIOptionmenuMincolumns
page Get() Set()
.Names on page ProUIOptionmenuNamesGet() ProUIOptionmenuNamesSet()
.ParentName on ProUIOptionmenuParentname Not Applicable
page Get()
.PopupMenu on ProUIOptionmenuPopupmenu ProUIOptionmenuPopupmenu
page Get() Set()
.RightOffset on ProUIOptionmenuRightoffset ProUIOptionmenuRightoffset
page Get() Set()
.SelectedNames ProUIOptionmenuSelectedna ProUIOptionmenuSelectedna
on page mesGet() mesSet()
ProUIOptionmenuHide()
.VisibleRows on ProUIOptionmenuVisiblerows ProUIOptionmenuVisiblerows
page Get() Set()
Progressbar
Progressbar Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom on ProUIProgressbarIsAttached ProUIProgressbarAttachBot
page Bottom() tom()
ProUIProgressbarUnattachBot
tom()
.AttachTop on ProUIProgressbarIsAttached ProUIProgressbarAttachTop()
page Top()
ProUIProgressbarUnattach
Top()
.AttachRight on ProUIProgressbarIsAttached ProUIProgressbarAttach
page Right() Right()
ProUIProgressbarUnattach
Right()
.AttachLeft on ProUIProgressbarIsAttached ProUIProgressbarAtta
page Left() chLeft()
ProUIProgressbarUnatta
chLeft()
.BottomOffset on ProUIProgressbarBottomoff ProUIProgressbarBottomoff
page setGet() setSet()
.HelpText on ProUIProgressbarHelptext ProUIProgressbarHelptext
page Get() Set()
.Integer on page ProUIProgressbarInteger ProUIProgressbarInteger
Get() Set()
.LeftOffset on ProUIProgressbarLeftoffset ProUIProgressbarLeftoffset
page Get() Set()
.Length on page ProUIProgressbarLengthGet() ProUIProgressbarLengthSet()
.MaxInteger on ProUIProgressbarMaxinteger ProUIProgressbarMaxinteger
page Get() Set()
.MinInteger on ProUIProgressbarMininteger ProUIProgressbarMininteger
page Get() Set()
Orientation on ProUIProgressbarOrientation ProUIProgressbarOrientation
page Get() Set()
.ParentName on ProUIProgressbarParentname Not Applicable
page Get()
.PopupMenu on ProUIProgressbarPopupmenu ProUIProgressbarPopupmenu
page Get() Set()
.ProgressStyle ProUIProgressbarProgresssty ProUIProgressbarProgresssty
on page leGet() leSet()
.RightOffset on ProUIProgressbarRightoffset ProUIProgressbarRightoffset
page Get() Set()
.TopOffset on ProUIProgressbarTopoffset ProUIProgressbarTopoffset
page Get() Set()
.Visible on page ProUIProgressbarIsVisible() ProUIProgressbarShow()
ProUIProgressbarHide()
Progressbar Operations
Functions Introduced
• ProUIProgressbarAnchorSet()
• ProUIProgressbarSizeSet()
• ProUIProgressbarMinimumsizeGet()
Pushbutton
Pushbutton Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom on ProUIPushbuttonIsAttached ProUIPushbuttonAttachBot
page Bottom() tom()
ProUIPushbuttonUnattachBot
tom
.AttachTop on page ProUIPushbuttonIsAttached ProUIPushbuttonAttachTop()
Top()
ProUIPushbuttonUnattach
Top()
.AttachRight on ProUIPushbuttonIsAttached ProUIPushbuttonAttach
page Right() Right()
ProUIPushbuttonUnattach
Right()
.AttachLeft on ProUIPushbuttonIsAttached ProUIPushbuttonAtta
page Left() chLeft()
ProUIPushbuttonUnatta
chLeft()
.BottomOffset on ProUIPushbuttonBottomoff ProUIPushbuttonBottomoff
page setGet() setSet()
.Bitmap on page ProUIPushbuttonBitmapGet() ProUIPushbuttonBitmapSet()
.ButtonStyle on ProUIPushbuttonButtonstyle ProUIPushbuttonButtonstyle
page Get() Set()
.HelpText on page ProUIPushbuttonHelptext ProUIPushbuttonHelptext
Get() Set()
.Label on page ProUIPushbuttonTextGet() ProUIPushbuttonTextSet()
.ModalOverride on Not Applicable ProUIPushbuttonModaloverri
page deSet()
.LeftOffset on ProUIPushbuttonLeftoffset ProUIPushbuttonLeftoffset
page Get() Set()
.ParentName on ProUIPushbuttonParentname Not Applicable
page Get()
.PopupMenu on page ProUIPushbuttonPopupmenu ProUIPushbuttonPopupmenu
Get() Set()
.Resizeable on ProUIPushbuttonIsResizea ProUIPushbuttonEnableResiz
page ble() ing()
ProUIPushbuttonDisableRe
sizing()
.RightOffset on ProUIPushbuttonRightoffset ProUIPushbuttonRightoffset
page Get() Set()
.Sensitive on page ProUIPushbuttonIsEnabled() ProUIPushbuttonEnable()
ProUIPushbuttonDisable()
.TopOffset on page ProUIPushbuttonTopoffset ProUIPushbuttonTopoffset
Get() Set()
.Visible on page ProUIPushbuttonIsVisible() ProUIPushbuttonShow()
ProUIPushbuttonHide()
Pushbutton Operations
Functions Introduced
• ProUIPushbuttonAnchorSet()
• ProUIPushbuttonSizeSet()
• ProUIPushbuttonPositionSet()
• ProUIPushbuttonPositionGet()
• ProUIPushbuttonSizeGet()
Use the function ProUIPushbuttonAnchorSet() to set the position of the
pushbutton with respect to a given anchor location. This function is applicable
only if the parent of the Pushbutton is a drawing area.
Radiogroup
Radiogroup Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom on ProUIRadiogroupIsAtta ProUIRadiogroupAttachBottom()
page chedBottom()
ProUIRadiogroupUnattachBottom
.AttachTop on ProUIRadiogroupIsAtta ProUIRadiogroupAttachTop()
page chedTop()
ProUIRadiogroupUnattachTop()
.AttachRight on ProUIRadiogroupIsAtta ProUIRadiogroupAttachRight()
page chedRight()
ProUIRadiogroupUnattach
Right()
.AttachLeft on ProUIRadiogroupIsAtta ProUIRadiogroupAttachLeft()
page chedLeft()
ProUIRadiogroupUnattachLeft()
ProUIRadiogroupDisableResiz
ing()
.RightOffset on ProUIRadiogroupRightoff ProUIRadiogroupRightoffset
page setGet() Set()
.SelectedNames ProUIRadiogroupSelected ProUIRadiogroupSelectednames
on page namesGet() Set()
.Sensitive on ProUIRadiogroupIsEna ProUIRadiogroupEnable()
page bled()
ProUIRadiogroupDisable()
.TopOffset on ProUIRadiogroupTopoffset ProUIRadiogroupTopoffsetSet()
page Get()
.Visible on page ProUIRadiogroupIsVisi ProUIRadiogroupShow()
ble()
ProUIRadiogroupHide()
Radiogroup Operations
Functions Introduced
• ProUIRadiogroupAnchorSet()
• ProUIRadiogroupSizeSet()
• ProUIRadiogroupMinimumsizeGet()
• ProUIRadiogroupPositionSet()
Separator
Separator Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom on ProUISeparatorIsAttachedBot ProUISeparatorAttachBot
page tom() tom()
ProUISeparatorUnattachBot
tom
.AttachTop on ProUISeparatorIsAttached ProUISeparatorAttachTop()
page Top()
ProUISeparatorUnattachTop()
ProUISeparatorHide()
Slider
Slider Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom on ProUISliderIsAttachedBot ProUISliderAttachBottom()
page tom()
ProUISliderUnattachBottom
.AttachTop on page ProUISliderIsAttachedTop() ProUISliderAttachTop()
ProUISliderUnattachTop()
.AttachRight on ProUISliderIsAttached ProUISliderAttachRight()
page Right()
ProUISliderUnattachRight()
.AttachLeft on ProUISliderIsAttached ProUISliderAttachLeft()
page Left()
ProUISliderUnattachLeft()
.BottomOffset on ProUISliderBottomoffset ProUISliderBottomoffset
page Get() Set()
.HelpText on page ProUISliderHelptextGet() ProUISliderHelptextSet()
.Integer on page ProUISliderIntegerGet() ProUISliderIntegerSet()
.LeftOffset on ProUISliderLeftoffsetGet() ProUISliderLeftoffsetSet()
page
.Length on page ProUISliderLengthGet() ProUISliderLengthSet()
.MaxInteger on ProUISliderMaxintegerGet() ProUISliderMaxintegerSet()
page
.MinInteger on ProUISliderMinintegerGet() ProUISliderMinintegerSet()
ProUISliderDisable()
.TopOffset on page ProUISliderTopoffsetGet() ProUISliderTopoffsetSet()
.Tracking on page ProUISliderIsTrackingEna ProUISliderEnableTrack
bled() ing()
ProUISliderDisableTrack
ing()
.Visible on page ProUISliderIsVisible() ProUISliderShow()
ProUISliderHide()
Slider Operations
Functions Introduced
• ProUISliderAnchorSet()
• ProUISliderSizeSet()
• ProUISliderMinimumsizeGet()
• ProUISliderPositionSet()
• ProUISliderPositionGet()
• ProUISliderSizeGet()
Use the function ProUISliderAnchorSet() to set the position of the slider
with respect to a given anchor location. This function is applicable only if the
parent of the Slider is a drawing area.
Use the function ProUISliderSizeSet() to set the size of the slider. This
field is used only if the parent is a drawing area. The function will fail, if you
specify a value smaller than the minimum size for the input arguments width or
height.
Use the function ProUISliderMinimumsizeGet() to retrieve the minimum
size of the width and height of the slider in pixels. Use this function only if the
parent is a drawing area.
Use the function ProUISliderPositionSet() to set the position to the
slider with respect to its parent. This field is used only if the parent is a drawing
area.
Spinbox
Spinbox Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom on ProUISpinboxIsAttachedBot ProUISpinboxAttachBottom()
page tom()
ProUISpinboxUnattachBottom
.AttachTop on page ProUISpinboxIsAttached ProUISpinboxAttachTop()
Top()
ProUISpinboxUnattachTop()
.AttachRight on ProUISpinboxIsAttached ProUISpinboxAttachRight()
page Right()
ProUISpinboxUnattachRight()
.AttachLeft on ProUISpinboxIsAttached ProUISpinboxAttachLeft()
page Left()
ProUISpinboxUnattachLeft()
.BottomOffset on ProUISpinboxBottomoffset ProUISpinboxBottomoffset
page Get() Set()
.Digits on page ProUISpinboxDigitsGet() ProUISpinboxDigitsSet()
.Double on page ProUISpinboxDoubleGet() ProUISpinboxDoubleSet()
.DoubleFormat on ProUISpinboxDoubleformat ProUISpinboxDoubleformat
page Get() Set()
.DoubleIncrement ProUISpinboxDoubleincre ProUISpinboxDoubleincrement
on page mentGet() Set()
ProUISpinboxReadOnly()
.FastDoubleIncre ProUISpinboxFastdoublein ProUISpinboxFastdoubleincre
ment on page crementGet() mentSet()
.FastIncrement on ProUISpinboxFastincrement ProUISpinboxFastincrement
page Get() Set()
.HelpText on page ProUISpinboxHelptextGet() ProUISpinboxHelptextSet()
.Increment on page ProUISpinboxIncrement ProUISpinboxIncrementSet()
Get()
.InputType on page ProUISpinboxInputtype ProUISpinboxInputtypeSet()
Get()
.Integer on page ProUISpinboxIntegerGet() ProUISpinboxIntegerSet()
.LeftOffset on ProUISpinboxLeftoffset ProUISpinboxLeftoffsetSet()
page Get()
.MaxDouble on page ProUISpinboxMaxdouble ProUISpinboxMaxdoubleSet()
Get()
.MaxInteger on ProUISpinboxMaxinteger ProUISpinboxMaxintegerSet()
page Get()
.MinDouble on page ProUISpinboxMindouble ProUISpinboxMindoubleSet()
Get()
.MinInteger on ProUISpinboxMininteger ProUISpinboxMinintegerSet()
page Get()
.ParentName on ProUISpinboxParentname Not Applicable
page Get()
.PopupMenu on page ProUISpinboxPopupmenu ProUISpinboxPopupmenuSet()
Get()
.RightOffset on ProUISpinboxRightoffset ProUISpinboxRightoffset
page Get() Set()
.Sensitive on page ProUISpinboxIsEnabled() ProUISpinboxEnable()
ProUISpinboxDisable()
.TopOffset on page ProUISpinboxTopoffset ProUISpinboxTopoffsetSet()
Get()
.Visible on page ProUISpinboxIsVisible() ProUISpinboxShow()
ProUISpinboxHide()
Tab
Tab Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom ProUITabIsAttachedBot ProUITabAttachBottom()
on page tom()
ProUITabUnattachBottom
.AttachTop on ProUITabIsAttached ProUITabAttachTop()
page Top()
ProUITabUnattachTop()
.AttachRight on ProUITabIsAttached ProUITabAttachRight()
page Right()
ProUITabUnattachRight()
ProUITabHide()
Tab Operations
Functions Introduced
• ProUITabAnchorSet()
• ProUITabSizeSet()
• ProUITabMinimumsizeGet()
• ProUITabPositionSet()
• ProUITabPositionGet()
• ProUITabSizeGet()
• ProUITabLayoutAdd()
• ProUITabLayoutsInsert()
• ProUITabItemNameSet()
Table
Table Attributes
Attribute Name Get Function Set Function(s)
.ActivateOnReturn ProUITableIsActivateonre ProUITableActivateonreturnEn
on page turnEnabled() able()
ProUITableActivateonreturn
Disable()
.Alignment on page ProUITableAlignmentGet() ProUITableAlignmentSet()
.AttachBottom on ProUITableIsAttachedBot ProUITableAttachBottom()
page tom()
ProUITableUnattachBottom
.AttachTop on page ProUITableIsAttached ProUITableAttachTop()
Top()
ProUITableUnattachTop()
.AttachRight on ProUITableIsAttached ProUITableAttachRight()
page Right()
ProUITableUnattachRight()
.AttachLeft on ProUITableIsAttached ProUITableAttachLeft()
page Left()
ProUITableUnattachLeft()
.Autohighlight on ProUITableIsAutohigh ProUITableAutohighlightEna
page lightEnabled() ble()
ProUITableAutohighlightDisa
ble()
.BottomOffset on ProUITableBottomoffset ProUITableBottomoffsetSet()
page Get()
ProUITableAlwaysUsescroll
Bars()
.SelectedNames on ProUITableSelectednames ProUITableSelectednamesSet()
page Get()
.SelectedColumn ProUITableSelectedcolumn ProUITableSelectedcolumnna
Names on page namesGet() mesSet()
.SelectedRowNames ProUITableSelectedrowna ProUITableSelectedrownames
on page mesGet() Set()
.Sensitive on page ProUITableIsEnabled() ProUITableEnable()
ProUITableDisable()
.SelectionPolicy ProUITableSelectionpoli ProUITableSelectionpolicy
on page cyGet() Set()
ProUITableHide()
.VisibleRows on ProUITableVisiblerows ProUITableVisiblerowsSet()
page Get()
Table Operations
Functions Introduced
Textarea
Textarea Attributes
Attribute Name Get Function Set Function(s)
.AttachBottom on ProUITextareaIsAttachedBot ProUITextareaAttachBot
page tom() tom()
ProUITextareaUnattachBot
tom()
.AttachTop on page ProUITextareaIsAttached ProUITextareaAttachTop()
Top()
ProUITextareaUnattachTop()
ProUITextareaReadOnly()
.HelpText on page ProUITextareaHelptextGet() ProUITextareaHelptextSet()
.LeftOffset on ProUITextareaLeftoffset ProUITextareaLeftoffset
page Get() Set()
.MinRows on page ProUITextareaMinrowsGet() ProUITextareaMinrowsSet()
.MaxLen on page ProUITextareaMaxlenGet() ProUITextareaMaxlenSet()
.ParentName on ProUITextareaParentname Not Applicable
page Get()
.PopupMenu on page ProUITextareaPopupmenu ProUITextareaPopupmenu
Get() Set()
.RightOffset on ProUITextareaRightoffset ProUITextareaRightoffset
page Get() Set()
.Rows on page ProUITextareaRowsGet() ProUITextareaRowsSet()
.Sensitive on page ProUITextareaIsEnabled() ProUITextareaEnable()
ProUITextareaDisable()
.TopOffset on page ProUITextareaTopoffset ProUITextareaTopoffset
Get() Set()
.Value on page ProUITextareaValueGet() ProUITextareaValueSet()
.Visible on page ProUITextareaIsVisible() ProUITextareaShow()
ProUITextareaHide()
Textarea Operations
Functions Introduced
• ProUITextareaAnchorSet()
• ProUITextareaSizeSet()
• ProUITextareaMinimumsizeGet
• ProUITextareaPositionGet()
• ProUITextareaPositionSet()
• ProUITextareaSizeGet()
ProUIThumbwheelUnattachBot
tom
.AttachTop on page ProUIThumbwheelIsAtta ProUIThumbwheelAttachTop()
chedTop()
ProUIThumbwheelUnattach
Top()
.AttachRight on ProUIThumbwheelIsAtta ProUIThumbwheelAttach
page chedRight() Right()
ProUIThumbwheelUnattach
Right()
.AttachLeft on page ProUIThumbwheelIsAtta ProUIThumbwheelAttachLeft()
chedLeft()
ProUIThumbwheelUnatta
chLeft()
.BottomOffset on ProUIThumbwheelBottomoff ProUIThumbwheelBottomoffset
page setGet() Set()
.HelpText on page ProUIThumbwheelHelptext ProUIThumbwheelHelptext
Get() Set()
.Integer on page ProUIThumbwheelInteger ProUIThumbwheelIntegerSet()
Get()
.LeftOffset on page ProUIThumbwheelLeftoff ProUIThumbwheelLeftoffset
setGet() Set()
.MaxInteger on page ProUIThumbwheelMaxinte ProUIThumbwheelMaxinteger
gerGet() Set()
.MinInteger on page ProUIThumbwheelMininte ProUIThumbwheelMininteger
gerGet() Set()
.ParentName on page ProUIThumbwheelParentna Not Applicable
meGet()
.PopupMenu on page ProUIThumbwheelPopupmenu ProUIThumbwheelPopupmenu
Get() Set()
.RightOffset on ProUIThumbwheelRightoff ProUIThumbwheelRightoffset
page setGet() Set()
.Sensitive on page ProUIThumbwheelIsEna ProUIThumbwheelEnable()
bled()
ProUIThumbwheelDisable()
.TopOffset on page ProUIThumbwheelTopoffset ProUIThumbwheelTopoffset
Get() Set()
.UnitsPerRotation ProUIThumbwheelUnitsper ProUIThumbwheelUnitsperrota
on page rotationGet() tionSet()
.Visible on page ProUIThumbwheelIsVisi ProUIThumbwheelShow()
ble()
ProUIThumbwheelHide()
ProUITreeActivateonreturn
Disable()
.AttachBottom on ProUITreeIsAttachedBot ProUITreeAttachBottom()
page tom()
ProUITreeUnattachBottom()
.AttachLeft on ProUITreeIsAttachedLeft() ProUITreeAttachLeft()
page
ProUITreeUnattachLeft()
.AttachRight on ProUITreeIsAttachedRight() ProUITreeAttachRight()
page
ProUITreeUnattachRight()
.AttachTop on ProUITreeIsAttachedTop() ProUITreeAttachTop()
page
ProUITreeUnattachTop()
.BackgroundColor ProUITreeBackgroundcolor ProUITreeBackgroundcolor
on page Get() Set()
.BottomOffset on ProUITreeBottomoffsetGet() ProUITreeBottomoffsetSet()
page
.LeftOffset on ProUITreeLeftoffsetGet() ProUITreeLeftoffsetSet()
page
.RightOffset on ProUITreeRightoffsetGet() ProUITreeRightoffsetSet()
page
.TopOffset on ProUITreeTopoffsetGet() ProUITreeTopoffsetSet()
page
.Columns on page Not Applicable Not Applicable
.ForegroundColor ProUITreeForegroundcolor ProUITreeForegroundcolor
on page Get() Set()
.HelpText on page ProUITreeHelptextGet() ProUITreeHelptextSet()
.Label on page Not Applicable Not Applicable
.LabelAlignment Not Applicable Not Applicable
on page
.Lastentereditem ProUITreeLastentereditem Not Applicable
on page Get()
.Mapped on page ProUITreeIsMapped() ProUITreeMappedSet()
ProUITreeMappedUnset()
.MinColumns on Not Applicable Not Applicable
page
.MinRows on page Not Applicable Not Applicable
.MixedState on ProUITreeMixedStateGet() ProUITreeMixedStateSet()
page
.ParentName on ProUITreeParentnameGet() Not Applicable
page
ProUITreeDisablePopupwhenin
sensitive()
.ResizableCols on Not Applicable Not Applicable
page
.Rows on page ProUITreeRowsGet() ProUITreeRowsSet()
.ScrollBarsWhen ProUITreeUsesScrollbars ProUITreeUseScrollbarswhen
Needed on page whenneeded() Needed()
ProUITreeAlwaysUsescroll
Bars()
.SelectedNames on ProUITreeSelectednames ProUITreeSelectednamesSet()
page Get()
.SelectionPolicy ProUITreeSelectionpolicy ProUITreeSelectionpolicy
on page Get() Set()
.SelectByCell on Not Applicable Not Applicable
page
.SelectCBRegard ProUITreeSelectcbregar ProUITreeSelectcbregardless
less on page dlessGet() Set()
.Sensitive on ProUITreeIsEnabled() ProUITreeEnable()
page
ProUITreeDisable()
.TreeAttribute Not Applicable Not Applicable
Window on page
.TreeBoxNodes on Not Applicable Not Applicable
page
.TreeCellInput on ProUITreeTreecellinput Not Applicable
page Get()
.TreeCellSelCol ProUITreeTreecellselcol ProUITreeTreecellselcol
on page Get() Set()
.TreeCellSelNode ProUITreeTreecellselnode ProUITreeTreecellselnode
on page Get() Set()
.TreeChildOrder Not Applicable Not Applicable
on page
.TreeColumns Not Applicable Not Applicable
Justs on page
.TreeColumns Not Applicable Not Applicable
Names on page
.TreeColumnsTi Not Applicable Not Applicable
tles on page
.TreeColumns Not Applicable Not Applicable
Widths on page
.TreeColumnOrder ProUITreeTreecolumnorder ProUITreeTreecolumnorder
on page Get() Set()
.TreeCurrent on ProUITreeTreecurrentnode ProUITreeTreecurrentnode
page Get() Set()
.TreeDisplayRoot ProUITreeIsRootnodeVisi ProUITreeShowRootnode()
ProUITreeDisableCellkeyboar
dinput()
.TreeLinkStyle on Not Applicable Not Applicable
page
.TreeNodeTypeAp ProUITreeTreenodetypeap ProUITreeTreenodetypeap
pends on page pendsGet() pendsSet()
.TreeNodeTypeCol ProUITreeTreenodetypecol ProUITreeTreenodetypecollap
lapsedImages on lapsedimagesGet() sedimagesSet()
page
.TreeNodeTypeEx ProUITreeTreenodetypeexpan ProUITreeTreenodetypeexpan
pandedImages on dedimagesGet() dedimagesSet()
page
.TreeNodeType ProUITreeTreenodetypehelp ProUITreeTreenodetypehelp
HelpTexts on page textsGet() textsSet()
.TreeNodeTypePre ProUITreeTreenodetypepre ProUITreeTreenodetypeprefix
fixs on page fixesGet esSet()
.TreeNodeType ProUITreeTreenodetypenames ProUITreeTreenodetypenames
Names on page Get() Set()
.TreeRedraw on ProUITreeTreeredrawGet() ProUITreeTreeredrawSet()
page
.TreeRootNode on ProUITreeTreerootnodeGet() ProUITreeTreerootnodeSet()
page
.TreeState on ProUITreeStateGet() ProUITreeStateSet()
page
.TreeVerticalSB Not Applicable Not Applicable
Position on page
.Visible on page ProUITreeIsVisible() ProUITreeShow()
ProUITreeHide()
Note
Many of the properties of trees are currently only supported as a part of the
resource file. Only very basic trees can be created using programmatic means.
Tree Operations
Functions Introduced
• ProUITreeAnchorSet()
• ProUITreeSizeSet()
• ProUITreeMinimumsizeGet()
• ProUITreePositionSet()
• ProUITreePositionGet()
• ProUITreeSizeGet()
• ProUITreeSashPositionGet()
• ProUITreeStateGet()
• ProUITreeStateSet()
• ProUITreeMixedStateGet()
• ProUITreeMixedStateSet()
• ProUITreeLastentereditemGet()
Use the function ProUITreeAnchorSet() to set the position of the Tree with
respect to a given anchor location. This function is applicable only if the parent of
the Tree is a drawing area.
Use the function ProUITreeSizeSet() to set the size of the Tree. This field
is used only if the parent is a drawing area. The function will fail, if you specify a
value smaller than the minimum size for the input arguments width or height.
Use the function ProUITreeMinimumsizeGet() to retrieve the minimum
size of the width and height of the tree in pixels. Use this function only if the
parent is a drawing area.
Use the function ProUITreePositionSet() to set the position to the Tree
with respect to its parent. This field is used only if the parent is a drawing area.
Use the function ProUITreePositionGet() to get the position to the Tree
with respect to its parent. This field is used only if the parent is a drawing area.
Use the function ProUITreeSizeGet() to get the size of the Tree. This field
is used only if the parent is a drawing area.
Use the function ProUITreeSashPositionGet() to get the position of the
sash between the tree hierarchy and the attribute window.
Note
You must make this callback call ProUITreeNodeExpand() to actually
expand the node.
Note
You must make this callback call ProUITreeNodeCollapse() to
actually collapse the node.
2. PROUIBUTTONSTYLE_
TOGGLE—The horizontal margin
is twice as wide as the vertical
margin, the shadow border is
always drawn and by default, the
button accepts keyboard input.
3. PROUIBUTTONSTYLE_
TOOL—The horizontal and
vertical margins are equal, the
shadow border is always drawn
and by default, the button does not
accept keyboard input.
4. PROUIBUTTONSTYLE_
FLAT—The horizontal and
vertical margins are equal, the
shadow border is only drawn when
the pointer is moved over the
component and by default the
button does not accept keyboard
input.
5. PROUIBUTTONSTYLE_
LINK—The button works like a
hyperlink.
.ModalOverride Enumerated data type ModalOverride determines
ProUIModalOverride whether the component is also
blocked when its Dialog is
blocked. It determines if there is
an attempt to dismiss a blocking
Dialog and menu before
processing the action callbacks for
the component. The following are
the valid values:
• PROUIMODALOVERRIDE_
NORMAL —The component is
blocked whenever the Dialog
is blocked. Callbacks are
processed without an attempt
to dismiss a blocking Dialog
and menu.
• PROUIMODALOVERRIDE_
ASYNC—The component is
never blocked. Callbacks are
processed without an attempt
to dismiss a blocking Dialog
and menu.
• PROUIMODALOVERRIDE_
CAN_DISMISS_MENUS—
PROUICASCADEDIR_TOP_
LEFT—Up and to the left
PROUICASCADEDIR_TOP_
RIGHT—Up and to the right
PROUICASCADEDIR_BOTTOM_
LEFT—Down and to the left
PROUICASCADEDIR_BOTTOM_
RIGHT—Down and to the right
.ChildNames Of String array type Names of the children of the
component. Read Only. This
cannot be specified in a resource
file.
.ClassName Of String type Name of the class of the
component. It is Read-only type.
These are defined in the
ProUI.h file. This cannot be
specified in a resource file.
.ClipChildren Of Boolean type Flag indicating whether drawing
operations within a DrawingArea
TRUE (default), FALSE are clipped so that they do not
overlap any children contained
within the DrawingArea.
.Columns Of Integer type The width of the InputPanel, in
character widths. Column widths
Default Value is 16 are determines by the widest
possible character in the font of
the component (typically 'W').
Thus, a component with a width of
16 will likely hold words with
more than 16 characters.
.ColumnLabel Of WideString type The tab-separated labels to be
displayed as the column headers of
a List.
.ColumnLabels Of WideString type The labels of the columns of a
table.
.ColumnNames Of String Array type The names of the columns of a
table.
.ColumnResizings Of Integer Array type The resizing factors of the
columns of a Table.
Default Value is 0
Note
You cannot perform the
following operations after
you use this option:
Note
You can close the newly
created dialog box,
however, you cannot open
a Creo part file with the
dialog box open.
• PROUIDIALOGSTYLE_
APPLICATION_MODAL—
You can use this option if you
want to block the application.
Note
You cannot perform the
following operations after
you use this option:
Note
You can close the newly
created dialog box, and
open a Creopart file.
PROUIDRWMODE_COPY—Draw
using the foreground drawing
color.
PROUIDRWMODE_NOT—Draw,
inverting the existing pixels of the
component.
PROUIDRWMODE_AND—Draw
using a combination of the
foreground drawing color AND
the existing pixels.
PROUIDRWMODE_OR—Draw
using a combination of the
foreground drawing color OR the
existing pixels.
PROUIDRWMODE_XOR—Draw
using a combination of the
foreground drawing color XOR
the existing pixels.
.DrawingWidth Of Integer type Width in pixels of the drawing
area.
Default Value is 100
.Editable Of Boolean type Flag indicating whether the text
contents of the component may be
TRUE (default), FALSE modified by the user.
.FastDoubleIncrement Of Float type The fast increment to be used
when the SpinBox value is a
Default Value is 10 double
.FastIncrement Of Integer type The fast increment to be used
when the SpinBox value is an
Default Value is 10 integer.
PROUIFILLMODE_SOLID—Fill
using the foreground drawing
color.
PROUIFILLMODE_LIGHT
_STIPPLE— Fill using a 75%
stipple of the foreground and
background drawing colors.
PROUIFILLMODE_MEDIUM
_STIPPLE— Fill using a 50%
stipple of the foreground and
background drawing colors.
PROUIFILLMODE_HEAVY
_STIPPLE— Fill using a 25%
stipple of the foreground and
background drawing colors.
.Focus Of String type The name of the component on
which the cursor is positioned
when the dialog is activated. If the
Dialog is already active then this
specifies the name of the
component within the Dialog on
which on which the focus is set
and the cursor is positioned.
.FontClass Enumerated type The base font class to be used to
ProUIFontClass draw text in the component.
.FontSize Of Float type Point size of the font used to draw
text in the component.
Default Value is 0
.FontStyle Enumerated type A bitwise OR of the styles of the
ProUIFontStyle font used to draw text in the
component.
Default Value is -1
.HelpText Of WideString type The popup help-text to be
Default Value is -1
.Images Of String array typeDefault Value The names of the images, which
is NULL will be drawn in a DrawingArea.
Each image may be a PNG, PCX,
GIF, BMP, ICO or CUR file.
.Increment Of Integer type The slow increment to be used
when the SpinBox value is an
Default Value is 1 integer.
.Integer Of Integer typeDefault Value is 0 The integer value of the contents
of the component.
.InputType Enumerated type Datatype of the contents of the
ProUIInputtype input panel.
PROUILISTTYPE_
STANDARD—No column headers
or check
marks.PROUILISTTYPE_
TABULATED—Display column
headers, but do not display check
marks.
PROUILISTTYPE_CHECK—
Display check marks, but do not
display column headers. The value
of the check mark for each item is
accessed by
ProUIListStateGet() and
ProUIListStateSet()
.LockedColumns Of Integer type The number of locked columns of
the table.
Default Value is 0
.LockedRows Of Integer type The number of locked rows of the
Table.
Default Value is 0
.Mapped Of Boolean type For a dialog component this flag
indicates whether the dialog is
FALSE (default) visible on the screen or not. For all
other components this flag
indicates whether the component
occupies any space when it is
invisible.
.MaxDouble Of Float type The maximum double value of the
contents of the component.
8.507e+37
.MaxInteger Of Integer type The maximum integer value of the
contents of the component.
2147483647
.MaxLen Of Integer type The maximum length of the text
contents of the component.
Default Value is 32
.MinColumns Of Integer type The minimum width of the
component, in character widths.
Default Value is 4
.MinDouble Of Float type The minimum double value of the
contents of the component.
-8.507e+37
.MinInteger Of Integer type The minimum integer value of the
contents of the component.
-2147483647
.MinRows Of Integer type The minimum number of visible
rows of the component.
Default Value is 1
.MixedState Of Integer Array type The indeterminate state of the
items in a Tree.
.Names Of String Array type The names of the items of the
PROUI_HORIZONTAL
PROUI_VERTICAL
.ParentName Of String type The name of the parent component
of the component.
.Password Of Boolean type Flag indicating whether the
component is used for password
FALSE (default) entry.
.PolygonFillMode Enumerated type The fill mode to be used when
ProUIPolygonFillMode drawing Polygons in the
DrawingArea.
.PopupMenu Of String type Allows you to designate the popup
menu for a component This is the
name of a MenuPane component
to use as a popup menu for the
given component.
.PopupWhenInsen Of Boolean type Flag indicating whether the
component should display its
popup menu when it is insensitive
(TRUE) or whether no popup
menu should be displayed at such
times (FALSE).
.ProgressStyle Enumerated type The display style of the
ProUIProgressstyle ProgressBar. It is of the following
types:
• PROUIPROGRESS_NOTEXT
• PROUIPROGRESS_VALUE
• PROUIPROGRESS_
PERCENT
• PROUIPROGRESS_
INTERVALS
.RememberPosition Of Boolean type Controls whether Creo Parametric
should store the location of the
TRUE (default), FALSE dialog when it is destroyed, and
apply the position to the dialog
again if it is shown again.
.RememberSize Of Boolean type Controls whether Creo Parametric
should store the size the dialog
TRUE (default), FALSE when it is destroyed, and apply the
size to the dialog again if it is
shown.
PROUISELPOLICY_SINGLE—
No item or one item can be
selected at a time. Click to clear a
selected item.
PROUISELPOLICY_BROWSE—
Only one item can be selected at a
time. You cannot clear the
selection. You can replace the
selected item with another
selection.
PROUISELPOLICY_
MULTIPLE—More than one item
can be selected. Click to clear a
selected item.
PROUISELPOLICY_
EXTENDED—When no key is
pressed, only one item can be
selected at a time. You cannot
clear the selection. You can
replace the selected item with
another selection.
Default Value is 0
.ShowGrid Of Boolean type Flag indicating whether to display
the grid lines of the Table.
.StartLocation Enumerated type Following are the possible user
ProUIStartLocation defined start locations and anchor
positions for a UI component:
PROUIDEFAULT_LOCATION—
default location
PROUITOP_LEFT—top left-hand
corner
PROUITOP_MIDDLE—top edge
PROUITOP_RIGHT—top right-
hand corner
PROUIMIDDLE_LEFT—left-
hand edge
PROUIMIDDLE_MIDDLE—
middle
PROUIMIDDLE_RIGHT—right-
hand edge
PROUIBOTTOM_LEFT—bottom
left-hand corner
PROUIBOTTOM_MIDDLE—
bottom edge
PROUIBOTTOM_RIGHT—bottom
right-hand corner
.String Of String type The contents of the InputPanel as a
string
.TabCharsAllow Of Boolean type Flag indicating the behavior of the
input panel when the TAB key is
pressed. If the value is True,
inserts a TAB key press into the
text of input panel as a tab
character. If the value is False,
uses the TAB key press for focus
traversal. The input panel ignores
the tab key press. This attribute
may not be set in the resource file.
.Tracking Of Boolean type Flag indicating whether the
DrawingArea generates a UI_
MOVE_ACTION whenever the
pointer is moved over the visible
region of the component.
.TreeAttributeWindow Of Boolean type Flag indicating whether the Tree
has an attribute window.
.TreeBoxNodes Of Boolean type Flag indicating whether the nodes
of the Tree should be displayed
with a bounding rectangle.
.TreeCellInput Of WideString type The text entered by the user which
caused a UI_TREE_CELL_
INPUT_ACTION to be generated.
This cannot be specified in the
resource file.
.TreeCellSelCol Of String type The name of the column of the
selected cell of the attribute
window of the Tree. This cannot
be specified in the resource file.
.TreeCellSelNode Of String type The name of the node of the
selected cell of the attribute
window of the Tree. This cannot
be specified in the resource file.
.TreeChildOrder Of Integer type The method used to order the
children of a parent node of the
Default Value is 1 Tree.
.TreeColumnsJusts Of Integer Array type The justifcations of the text of the
columns of the attribute window
of the Tree.
.TreeColumnsNames Of String Array type The names of the columns of the
attribute window of the Tree.
Default Value is -1
.Visible Of Boolean type Flag indicating whether the
component is shown (TRUE) or
hidden (FALSE).
.VisibleNames Of String Array type The names of the visible items of
the component. An empty array
indicates that every item of the
component is visible.
.VisibleRows Of Integer type The number of visible rows of the
component.
Default Value is 4
.WideString Of WideString type The contents of the InputPanel as a
wide-string.
.Width Of Integer type Width of the component, in pixels.
Default Value is -1
Note
For most Creo Parametric TOOLKIT applications, it is not required to use
resource files. Instead you can use the functions described in the previous
sections to create, lay out, and populate dialog boxes directly. Information in
this section is provided for the few applications that still require resource files.
When the Creo Parametric TOOLKIT application wants to show a dialog box to
the Creo Parametric user, it simply asks Creo Parametric to load the dialog box
from the resource file. The first task for the Creo Parametric TOOLKIT user who
wants to display a dialog box is to write the resource file.
The resource file describes:
• Overall attributes of the dialog box.
• A list of components it contains.
• Attributes of the components themselves and the relative positions of the
components.
• Rules for how they behave when the user resizes the dialog box.
Many of the dialog box and component attributes can also be read and modified
programmatically with Creo Parametric TOOLKIT functions.
Note
Ensure that the resource file contains a new line after the last parenthesis, or
else the function ProUIDialogCreate() will return an error.
(Resources
(.Label "Tab with two layouts")
(.Decorated True)
(.Layout
(Grid (Rows 1) (Cols 1)
Layout1
)
)
)
)
(Layout Layout1
(Components
(InputPanel InputPanel1)
(Label Label1)
(CheckButton CheckButton1)
(Label Label2)
(Label Label3)
(Label Label4)
(List List1)
(Label Label5)
(OptionMenu OptionMenu1)
(Label Label6)
(Label Label8)
(RadioGroup RadioGroup1)
(Slider Slider1)
(Label Label9)
(TextArea TextArea1)
(Label Label10)
(Layout Layout8
(Components
(Label Label15)
)
(Resources
(Label15.Bitmap "ptc_logo")
(.Label "Second layout")
(.Layout
(Grid (Rows 1) (Cols 1)
Label15
(Resources
(.Label "UI List")
(.Layout
(Grid (Rows 1 1) (Cols 1)
ug_uilist_layout1
ug_uilist_layout2
)
)
)
)
(Layout ug_uilist_layout1
(Components
(List ug_uilist_comp)
(Label ug_uilist_label_1)
(TextArea ug_uilist_txtarea)
(Label ug_uilist_lable_2)
)
(Resources
(Layout ug_uilist_layout2
(Components
(PushButton ug_uilist_ok)
(PushButton ug_uilist_cancel)
)
(Resources
(ug_uilist_ok.Label "Ok")
(ug_uilist_ok.TopOffset 4)
(ug_uilist_ok.BottomOffset 4)
(ug_uilist_ok.RightOffset 20)
(ug_uilist_cancel.Label "Cancel")
(ug_uilist_cancel.TopOffset 4)
(ug_uilist_cancel.BottomOffset 4)
(ug_uilist_cancel.LeftOffset 20)
(.Layout
(Grid (Rows 1) (Cols 1 1 1)
ug_uilist_ok
(Pos 1 3)
ug_uilist_cancel
)
)
)
)
(Resources
(TextArea1.Rows 10)
(TextArea1.Columns 25)
(.Label "Menubar dialog")
(.Layout
(Grid (Rows 1) (Cols 1)
TextArea1
)
)
)
)
(MenuPane MenuPane1
(Components
(PushButton PushButton1)
(PushButton PushButton2)
)
(Resources
(.Label "MenuPane1")
(PushButton1.Label "Button1")
(PushButton2.Label "Button2")
)
)
(MenuPane MenuPane2
(Components
(PushButton PushButton3)
(Separator Separator1)
(RadioGroup RadioGroup1)
(RadioGroup RadioGroup2)
(Separator Separator2)
(CascadeButton CascadeButton2
MenuPane4)
(CheckButton CheckButton1)
)
(Resources
(.Label "MenuPane2")
(PushButton3.Label "Pushbutton")
(RadioGroup1.Names "RG1"
"RG2")
(RadioGroup1.Labels "Radio group 1"
"Radio group 2")
(CascadeButton2.Label "Cascade button")
(CheckButton1.Label "Checkbutton")
)
(MenuPane MenuPane4
(Components
(PushButton PushButton5)
(PushButton PushButton6)
)
(Resources
(PushButton5.Label "Pushbutton")
(PushButton6.Label "Pushbutton")
)
)
(Resources
(ProgressBar2.ProgressStyle 0)
(ProgressBar2.TopOffset 4)
(ProgressBar2.BottomOffset 4)
(ProgressBar2.LeftOffset 4)
(ProgressBar2.RightOffset 4)
(ProgressBar3.ProgressStyle 1)
(ProgressBar3.TopOffset 4)
(ProgressBar3.BottomOffset 4)
(ProgressBar3.LeftOffset 4)
(ProgressBar3.RightOffset 4)
(ProgressBar4.TopOffset 4)
(ProgressBar4.BottomOffset 4)
(ProgressBar4.LeftOffset 4)
(ProgressBar4.RightOffset 4)
(ProgressBar5.ProgressStyle 3)
(ProgressBar5.TopOffset 4)
(ProgressBar5.BottomOffset 4)
(ProgressBar5.LeftOffset 4)
(Dialog uguivisibility
(Components
(SubLayout PushbuttonVisibility)
(Layout PushbuttonVisibility
(Components
(PushButton TargetBtn)
(CheckButton VisibleCheck)
(CheckButton SensitiveCheck)
(InputPanel ButtonLabel)
)
(Resources
(TargetBtn.Label "PushButton")
(TargetBtn.TopOffset 4)
(TargetBtn.BottomOffset 4)
(TargetBtn.LeftOffset 4)
(TargetBtn.RightOffset 4)
(TargetBtn.Resizeable True)
(VisibleCheck.Label "Visible")
(VisibleCheck.Set True)
(VisibleCheck.TopOffset 4)
(VisibleCheck.BottomOffset 4)
(VisibleCheck.LeftOffset 4)
(VisibleCheck.RightOffset 4)
(SensitiveCheck.Label "Sensitive")
(SensitiveCheck.Set True)
(SensitiveCheck.TopOffset 4)
(SensitiveCheck.BottomOffset 4)
(SensitiveCheck.LeftOffset 4)
(SensitiveCheck.RightOffset 4)
(ButtonLabel.Value "PushButton")
(ButtonLabel.TopOffset 4)
(ButtonLabel.BottomOffset 4)
(ButtonLabel.LeftOffset 4)
(ButtonLabel.RightOffset 4)
(.Label "PushButtons")
(.Layout
Example 18: Resource File for Dialog with Slider and Linked
InputPanel
This example shows the resource file for a dialog with slider and linked input
panel. For a programatic method of creating this dialog box refer to Example 4:
Source of Dialog with Slider and Linked InputPanel on page 395.
(Dialog angle
(Components
(SubLayout Layout1)
(SubLayout Layout2)
)
(Resources
(.Label "Angle")
(.DefaultButton "OK")
(.Layout
(Grid (Rows 1 1) (Cols 1)
Layout1 Layout2
)
)
)
)
(Layout Layout1
(Components
(Slider Slider)
(InputPanel InputPanel)
(Label Prompt)
)
(Resources
(Slider.MinInteger -180)
(Slider.MaxInteger 180)
(Slider.Length 12)
(Slider.Tracking True)
(Slider.TopOffset 4)
(Slider.BottomOffset 4)
(Slider.LeftOffset 4)
(Slider.RightOffset 4)
(InputPanel.Columns 4)
(InputPanel.AttachLeft False)
(InputPanel.AttachRight False)
(InputPanel.MinInteger -180)
(Resources
(ToCopy.Visible False)
(ToCopy.AttachTop True)
(ToCopy.AttachBottom True)
(ToCopy.Names "ONE"
"MANY")
(ToCopy.Labels "Select One"
"Select Many")
(.Label "UG Tables")
(.Layout
(Grid (Rows 1 0 1) (Cols 1)
TableLayout
ButtonLayout
ToCopy
)
)
)
)
(Layout TableLayout
(Components
(Table LargeTable)
)
(Resources
(LargeTable.Columns 40)
(LargeTable.MinRows 4)
(LargeTable.TopOffset 4)
(LargeTable.BottomOffset 4)
(LargeTable.LeftOffset 4)
(LargeTable.RightOffset 4)
(LargeTable.RowNames "A"
"B"
"C"
"D"
"E")
(LargeTable.ColumnNames "1"
"2"
"3"
"4")
(LargeTable.RowLabels "Alpha"
"Beta"
"Gamma"
"Delta"
"Epsilon")
(LargeTable.ColumnLabels "One"
"Two"
(TableLayout LargeTable
(Components
(PushButton BaseButton)
(CheckButton BaseCheckButton)
(InputPanel BaseInputPanel)
)
(Resources
(BaseButton.Label "Table Button")
(BaseCheckButton.Label "Table Check Button")
(BaseInputPanel.Value "Table Input Panel")
)
)
(Layout ButtonLayout
(Components
(PushButton CloseButton)
(PushButton ModifySelectButton)
(Label Label1)
)
(Resources
(CloseButton.Label "Close")
(CloseButton.TopOffset 4)
(CloseButton.BottomOffset 4)
(CloseButton.LeftOffset 4)
(CloseButton.RightOffset 4)
(ModifySelectButton.Label "Toggle cells")
(ModifySelectButton.Visible False)
(ModifySelectButton.TopOffset 4)
(ModifySelectButton.BottomOffset 4)
(ModifySelectButton.LeftOffset 4)
(ModifySelectButton.RightOffset 4)
(.Layout
(Grid (Rows 1 1) (Cols 1 1 1)
(Pos 1 3)
(Resources
(ExternalButtonToCopy.Label "From other dialog...")
(.Layout
(Grid (Rows 1) (Cols 1)
ExternalButtonToCopy
)
)
)
)
This chapter introduces the basics of dashboards and describes how Creo
Parametric TOOLKIT offers the capability to create and control dashboards. Creo
Parametric TOOLKIT applications can construct dashboards for any tool where
they would typically require a dialog box.
The behavior of the Creo Parametric TOOLKIT dashboard is similar to the Creo
Parametric dashboard. The TOOLKIT dashboards use the same commands and
dismiss mechanism as the native Creo Parametric dashboard. However, individual
commands may have different accessibility logic and so different dashboards can
have slightly different commands available.
467
Introduction to Dashboards
A dashboard is an embedded "dialog box" at the top of the Creo Parametric
graphics window. A dashboard typically appears when you create or modify a
feature in Creo Parametric. It offers the necessary controls, inputs, status and
guidance for creating or editing of features.
Dashboard components
1 Tool Icon
2 Dialog Bar
3 Slide-down Panels
4 Standard Buttons
A dashboard consists of the following components:
• A main dialog bar, which show the commonly used commands and entry
fields. You perform most of your modeling tasks in the graphics window and
the dialog bar. When you activate a tool, the dialog bar displays commonly
used options and collectors.
• Standard buttons for controlling the tool.
• Slide-down panels that open to reveal less commonly-used functionality. You
can use them to perform advanced modeling actions or retrieve comprehensive
feature information.
• A bitmap identifies the tool (typically the same icon used on buttons that
invoke the tool).
Creo Parametric uses the dashboard to create features that involve extensive
interaction with user interface components and geometry manipulation. You can
use dashboards in Creo Parametric TOOLKIT applications:
• Where a dialog box is too large in size or is intrusive onto the graphics
window. Dashboards enable you to make a smooth-flow tool.
• To present a streamlined "simple-user" activity with more complicated actions
available to "expert users".
• Where Creo Parametric TOOLKIT dashboards are not only limited to feature
creation activities and solid model modes.
Dashboard
An opaque pointer ProUIDashboard is a handle to the overall dashboard tool
after it has been shown.
• 1. Dashboard icon
• 2. Dashboard help text
Use the function ProUIDashboardshowoptionsDefaultOpenSet() to
set the specified dashboard as the open by default page. The input arguments
follow:
• dash_options—Specify the handle to the data used to build the dashboard.
• page_name—Specify the page name to be opened by default.
You can use the function ProUIDashboardshowoptionsFree() to free a
handle containing the data used to build a dashboard.
Use the function ProUIDashboardDestroy() to pop the dashboard from the
dashboard stack mechanism. The dashboard User Interface will be destroyed.
Accessing a Dashboard
Functions Introduced:
Dashboard Page
Each section of content in a dashboard is called a dashboard page. The opaque
handle ProUIDashboardPage represents an individual page, that is, either the
dialog bar, or a single slide-down panel.
This chapter describes all the functions provided by Creo Parametric TOOLKIT
that create and manipulate graphics and object displays.
Creo Parametric TOOLKIT refers to windows using integer identifiers. The base
window (the big graphics window created automatically when you enter Creo
Parametric) is window 0, and the text message window at the bottom is window 1.
In many of the functions in this section, you can use the identifier “–1” to refer to
the current window (the one current to the Creo Parametric user).
Windows
Functions Introduced:
• ProWindowNameGet()
The function ProWindowNameGet() returns the window name for the
specified window identifier. The input parameter win_id is the identifier of the
Creo Parametric window. The output parameter win_name is the name of the Creo
Parametric window.
Resizing Windows
Functions Introduced:
• ProWindowSizeGet()
• ProGraphicWindowSizeGet()
• ProWindowPixelOutlineGet()
• ProWindowCoordinatePixelGet()
The function ProWindowSizeGet() returns the size of the Creo Parametric
window including the User Interface border.
The function ProGraphicWindowSizeGet() returns the size of the Creo
Parametric graphics window without the border. If the window occupies the whole
screen. the window size is returned as 1. If the screen is 1024 pixels wide and the
window is 512 pixels, the width will be returned as 0.5.
The function ProWindowPixelOutlineGet() returns the outline of the
Creo Parametric window in pixels. The outline is the height and width of the
graphic area.
Note
The functions ProWindowBrowserSizeGet() and
ProWindowBrowserSizeSet() are not supported if the browser is open
in a separate window.
Repainting Windows
Functions Introduced:
• ProWindowClear()
• ProWindowRepaint()
• ProWindowRefresh()
• ProWindowRefit()
• ProTreetoolRefresh()
In Creo Parametric, when the main window is active, you can open an accessory
window for operations such as edit an inserted component or a feature, preview an
object, select a reference, and some other operations. The model tree associated
with this Creo Parametric object is also displayed in the accessory window. For
more information about the accessory window, refer the Creo Parametric help.
In Creo Parametric TOOLKIT , the function
ProAccessorywindowWithTreeMdlnameCreate() opens an accessory
window containing the specified object. If a window is already open with the
specified object, the function returns the identifier of that window. If an empty
window exists, the function uses that window to open the object. The input
argument tree_flag controls the display of the model tree in the accessory window.
If this flag is set to PRO_B_TRUE the model tree is displayed.
Note
If no model is associated with the specified window, Creo Parametric
TOOLKIT returns NULL as a model pointer and PRO_TK_NO_ERROR as a
return value.
Visiting Windows
Function Introduced:
• ProWindowsVisit()
The function ProWindowsVisit() enables you to visit all the Creo Parametric
windows. For a detailed explanation of visiting functions, see the section Visit
Functions in the Fundamentals on page 22 chapter.
Note
This function works in asynchronous graphics mode only.
Note
You must not call this function often, as it causes the systems running on
Windows Vista and Windows 7 to slow down. It is recommended that you call
this function only after you complete all the display operations.
Note
Function ProViewMatrixSet() does not cause the view to be repainted.
Note
PTC reserves the right to change both the definitions of the predefined
colormap and also of the assignment of entities to members of the color map
as required by improvements to the user interface. PTC recommends not
relying on the predefined RGB color for displaying of Creo Parametric
TOOLKIT entities or graphics, and also recommends against relying on the
relationship between certain colormap entries and types of entities. The
following section describe how to construct your application so that it does not
rely on potentially variant properties in Creo Parametric.
Note
Changing the Creo Parametric color map can have unintended effects if the
user has chosen an alternate color scheme. It may cause certain entries to
blend into the background or to be confused with other types of entries.
Displaying Graphics
Functions Introduced:
• ProGraphicsPenPosition()
• ProGraphicsLineDraw()
• ProGraphicsPolylineDraw()
• ProGraphicsMultiPolylinesDraw()
• ProGraphicsArcDraw()
• ProGraphicsCircleDraw()
• ProGraphicsPolygonDraw()
All the functions in this section draw graphics in the current window (the Creo
Parametric current window, unless redefined by a call to
ProWindowCurrentSet()), and use the color and line style set by calls to
ProGraphicsColorSet() and ProLinestyleSet(). The functions draw
the graphics in the Creo Parametric graphics color. The default graphics color is
white.
By default, the graphics elements are not stored in the Creo Parametric display
list, so they do not get redrawn by Creo Parametric when the user selects the
Repaint command or the orientation commands in the Orientation group in the
View tab. However, if you store graphics elements in either 2-D or 3-D display
lists, Creo Parametric redraws them. See the section Display Lists on page 493 for
more information.
The functions ProGraphicsPenPosition() and
ProGraphicsLineDraw() draw three-dimensional polylines in solid mode,
and take solid coordinates.
Displaying Text
Function Introduced:
• ProGraphicsTextDisplay()
The function ProGraphicsTextDisplay() places text, specified as a wide
string, at a position specified in screen coordinates. Therefore, if you want to add
text to a particular position on the solid, you must transform the solid coordinates
into screen coordinates by using the view matrix.
Like the graphics polylines, arcs, and so on (added by the functions described in
the section Displaying Graphics on page 490), the text items drawn by
ProGraphicsTextDisplay() are not known to Creo Parametric, and
therefore are not redrawn when you use the Repaint command. Use the notify or
display list functions to tell Creo Parametric about the items. See the section
Display Lists
Functions Introduced:
• ProDisplist2dCreate()
• ProDisplist2dDisplay()
• ProDisplist2dDelete()
• ProDisplist3dCreate()
• ProDisplist3dDisplay()
• ProDisplist3dDelete()
To generate the display of a solid in a window, Creo Parametric maintains two
display lists. A display list contains a set of vectors used to represent the shape of
the solid in the view.
Note
If you save the display information, you can reuse it in any session. The
application should delete the display list data when it is no longer needed.
Using 3-D display lists is exactly analogous to using 2-D display lists.
Note that the function ProWindowRefresh() does not cause either of the
display lists to be regenerated, but simply repaints the window using the 2-D
display list.
The function ProSolidDisplay() regenerates both display lists, and
therefore not only recenters the solid in the view and removes any highlights, but
also removes any graphics you added using the 2-D display list functions.
Cosmetic Properties
You can enhance your model using Creo Parametric TOOLKIT functions that
change the surface properties, or set different light sources. The following sections
describe these functions in detail.
Note
To set the default surface appearance properties, pass the argument
appearance_properties as NULL in the
ProSurfaceAppearancepropsSet() function.
This chapter contains functions that enable you to select objects in Creo
Parametric from within the Graphics Window or the Model Tree using the mouse
or the keyboard.
503
The Selection Object
Like ProModelitem, the object ProSelection identifies a model item in the
Creo Parametric database. ProSelection, however, contains more information
than ProModelitem, and is therefore sometimes used instead of
ProModelitem in situations where the extra information is needed. The most
important use of ProSelection is as the output of the function for interactive
selection, ProSelect() (thus the name ProSelection).
ProSelection is declared as an opaque pointer, and is, strictly speaking, a
WHandle because, although the model item is a reference to a Creo Parametric
database item, the other information is not.
Functions Introduced:
• ProSelectionAlloc()
• ProSelectionSet()
• ProSelectionCopy()
• ProSelectionFree()
• ProSelectionAsmcomppathGet()
• ProSelectionModelitemGet()
• ProSelectionUvParamGet()
• ProSelectionViewGet()
• ProSelectionPoint3dGet()
• ProSelectionDepthGet()
• ProSelectionVerify()
• ProSelectionWindowIdGet()
• ProSelectionUvParamSet()
• ProSelectionViewSet()
• ProSelectionPoint3dSet()
• ProSelectionDrawingGet()
• ProSelectionDwgtblcellGet()
The assembly component path is the path down from the root assembly to the
model that owns the database item being referenced. It is represented by the object
ProAsmcomppath and is described fully in the Assembly: Basic Assembly
Access on page 1130 section.
The model item describes the database item in the context of its owning model,
but does not refer to any parent assembly.
The 3-D point is the location, in solid coordinates, of a selected point on the
model item, if it is a geometry object. The solid coordinates are those of the solid
directly owning the model item.
If the model item is a surface, ProUvParam contains the u and v values that
correspond to the 3-D selection point described above. If the item is an edge or
curve, ProUvParam contains the t value.
The selection depth is the distance between the selected point and the point from
which the selection search started. This is important only when you are using
ProSolidRayIntersectionCompute(), described in the section Ray
Tracing on page 194.
The view is used to distinguish different views of a solid in a drawing.
Note
When using this function in a UI command, make sure that the command
priority for the UI command is appropriate for using ProSelect().
Improper priority settings can cause unpredictable results. See also Normal
priority actions on page in the User Interface: Menu on page 301 chapter.
The second argument specifies the maximum number of items the user can select.
If there is no maximum, set this argument to -1.
Note
The attribute PRO_SELECT_BY_BOX_ALLOWED can be used only for
the types specified under “Geometry Items” in the above table.
Therefore, you must not free the output array. Also, if you wish to preserve any of
the selections made, you should copy that selection using
ProSelectionCopy().
Note
• When using the function ProSelect() from within a loop, if you encounter
the error PRO_TK_PICK_ABOVE (-14), then you must handle this error by
returning control back to Creo Parametric.
• The function ProSelect() returns PRO_TK_NO_ERROR when you end the
command without making any selection in Creo Parametric. The function
returns the output argument p_n_sels as zero and the array p_sel_array
as NULL.
Highlighting
Functions Introduced:
• ProSelectionHighlight()
• ProSelectionDisplay()
• ProSelectionUnhighlight()
The function ProSelectionHighlight() highlights an item specified by a
ProSelection object in a color chosen from the enumerated type
ProColortype. This highlight is the same as the one used by Creo Parametric
(and ProSelect()) when selecting an item—it just repaints the wire-frame
display in the new color. The highlight is removed if you use the View Repaint
command or ProWindowRepaint(); it is not removed if you use
ProWindowRefresh().
The function ProSelectionUnhighlight() removes the highlight.
ProSelectionHighlight() will not change the highlight color of an item
already highlighted. If you need to do this, call
ProSelectionUnhighlight() on the first item.
Note
For performance reasons, calls to ProSelectionHighlight() are
cached and executed after a short delay or after a window repaint.
Selection Buffer
Introduction to Selection Buffers
Selection is the process of choosing items on which you want to perform an
operation. In Creo Parametric, before a feature tool is invoked, the user can select
items to be used in a given tool's collectors. Collectors are like storage bins of the
references of selected items. The location where preselected items are stored is
called the selection buffer.
Depending on the situation, different selection buffers may be active at any one
time. In Part and Assembly mode, Creo Parametric offers the default selection
buffer, the Edit selection buffer, and other more specialized buffers. Other Creo
Parametric modes offer different selection buffers.
In the default Part and Assembly buffer there are two levels at which selection is
done:
• First Level Selection
Provides access to higher-level objects such as features or components. You can
make a second level selection only after you select the higher-level object.
• Second Level Selection
Provides access to geometric objects such as edges and faces.
Note
First-level and second-level objects are usually incompatible in the selection
buffer.
Creo Parametric TOOLKIT allows access to the contents of the currently active
selection buffer. The available functions allow your application to:
Note
As per the manner of storage of the collection in the selection buffer, once the
collection has been cleared from the buffer the ProSelection referring to
the collection is no longer valid. Therefore it is recommended to extract the
ProCollection object from the ProSelection before there is a
possibility that it may be cleared from the selection buffer.
Note
The selected item must refer to an item that is in the current model such as its
owner, component path or drawing view.
Note
because of the specialized nature of the Edit buffer in Creo Parametric,
modification of the contents of the Edit buffer is not supported.
This chapter describes the Creo Parametric TOOLKIT functions to access the
details of curve and surface collections for query and modification. Curve and
surface collections are required inputs to a variety of Creo Parametric tools such
as Round, Chamfer, and Draft.
515
Introduction to Curve and Surface
Collection
A curve collection or chain is a group of separate edges or curves that are related,
for example, by a common vertex, or tangency. Once selected, these separate
entities are identified as a chain so they can be modified as one unit.
The different chain types are as follows:
• One-by-one—a chain of edges, curves or composite curves, each adjacent pair
of which has a coincident endpoint. Some applications may place other
conditions on the resulting chain.
• Tangent—a chain defined by the selected item and the extent to which
adjacent entities are tangent.
• Curve—an entire composite curve or some portion of it that is defined by two
component curves of the curve.
• Boundary—an entire loop of one-sided edges that bound a quilt or some
portion thereof defined by two edges of the boundary loop.
• Surf Chain—an entire loop of edges that bound a face (solid or surface) or
some portion of it that is defined by two edges of the loop.
• Intent Chain—an intent chain entity, usually created as the result of two
intersecting features.
• From/To—a chain that begins at a start-point, follows an edge line, and ends at
the end-point.
Surface sets are one or more sets of surfaces either for use within a tool, or before
entering a tool.
The definition of a surface set may not be independent in all respects from that of
any other. In other words, the ability to construct some types of surface sets may
depend on the presence of or on the content of others. On this account, we have
different surface sets as follows:
• One-by-One Surface Set—Represents a single or a set of single selected
surfaces, which belong to solid or surface geometry.
• Intent Surface Set—Represents a single or set of intent surfaces, which are
used for the construction of the geometry of features. This instruction
facilitates the reuse of the feature construction surface geometry as "intent"
reference. This is also known as "logical object surface set".
• All Solid or Quilt Surface Set—Represents all the solid or quilt surfaces in the
model.
Interactive Collection
Functions Introduced:
• ProCurvesCollect()
• ProSurfacesCollect()
Use the function ProCurvesCollect() to interactively create a collection of
curves by invoking a chain collection user interface.
Note
It is recommended to extract the ProCollection object from the
ProSelection before it can be cleared from the selection buffer.
Note
ProCrvcollectionCopy() function should be used to convert the
collection object returned by ProCurvesCollect() to a PRO_
COLLECTION_CRVCOLL type of collection so that it can be used by the
curve collection access functions.
Note
In the functions ProSrfcollinstrAlloc() and
ProSrfcollinstrIncludeSet() to exclude the surfaces generated in
the collection instruction pass the input arguments as follows:
• Specify the surface collection instruction as PRO_SURFCOLL_SINGLE_
SURF.
• Specify the include argument as PRO_B_FALSE.
Note
The bit flags PRO_SURFCOLL_SHAPE_ROUND, PRO_SURFCOLL_
SHAPE_PROTR_BOSS, PRO_SURFCOLL_SHAPE_PROTR_RIB, PRO_
SURFCOLL_SHAPE_CUT_POCKET, PRO_SURFCOLL_SHAPE_CUT_
SLOT, PRO_SURFCOLL_SHAPE_MORE_SHAPES and PRO_
SURFCOLL_SHAPE_CHAMFER are related to PRO_SURFCOLL_
SHAPE_BASED, that is, the shape surface set.
Note
• Before you call ProSrfCollinstrInfoSet() function, you must set
the include flag (PRO_B_TRUE / PRO_B_FALSE) for the surface
collection instruction using the ProSrfcollinstrIncludeSet().
• For the geometry based, the shape based, and the tangent based surface
collections, the surface collection reference type (first input argument to
the function ProSrfcollrefAlloc()) must be PRO_SURFCOLL_
REF_SEED.
• If you want to apply all the geometry rule flags included in the info
argument of the function ProSrfCollinstrInfoSet(), the flag
PRO_SURFCOLL_ALL_GEOM_RULE must be included in info argument.
If you do not include the PRO_SURFCOLL_ALL_GEOM_RULE flag, any
of the geometry rule flags will be applied.
Note
Point collections (PRO_E_POINT_COLLECTION_APPL) are accessed from
the element as normal ProReference object—by using
ProElementReferenceGet() and ProElementReferenceSet()
APIs.
Note
If this element is extracted from an existing feature tree using
ProFeatureElemtreeExtract(), the returned reference_array
will be on the basis of the feature rules. On the other hand, if this element is
newly created and not yet assigned to a feature, then the returned
reference_array will be as per the default rules.
This chapter describes the Creo Parametric TOOLKIT functions that enable you to
create animation frames and movies.
535
Introduction
Creo Parametric TOOLKIT provides the functions that enable you to animate
parts and assemblies. Creo Parametric TOOLKIT handles lower-level
considerations, such as hardware-dependent graphics and the user interface.
Two animation techniques are available:
• Batch animation—You create an animation movie (ProAnimMovie object)
and users control the movie using an interface similar to a VCR. Users can
perform such operations as “Play”, “Fast-Forward”, “Rewind”, and so on. The
following figure shows the animation dialog box.
Animation Frames
Functions Introduced:
• ProAnimframeCreate()
• ProAnimframeObjAdd()
• ProAnimframeObjRemove()
• ProAnimframeDelete()
• ProAnimframeObjVisit()
After you have created animation objects, you must create an animation frame in
which to store the objects. To create an animation frame, call the function
ProAnimframeCreate() and supply a frame view matrix. The frame view
matrix is a transformation from the top model coordinate system that allows you
to alter the view of the top-level model in your animation. This functionality could
be used, for example, to change the view of an assembly while the assembly
components (animation objects) move as specified in the call to
ProAnimobjectCreate().
Note
The frame view matrix is specified as a transformation from the root assembly.
Creating an animation frame does not cause the animation objects to be contained
in the frame. To add animation objects to a frame, you must call the function
ProAnimframeObjAdd().
Playing Animations
This section describes how to use your animation frames to construct and play the
animation. As previously mentioned, there are two types of animation—single and
batch.
Single Animation
Functions Introduced:
• ProSingleAnimationInit()
• ProSingleAnimationPlay()
• ProSingleAnimationClear()
If you want to use single animation, your Creo Parametric TOOLKIT application
must include a control loop that displays one animation frame after another.
Before executing your control loop, initialize the single animation by calling
ProSingleAnimationInit(). Within the loop, display each frame in turn
using the function ProSingleAnimationPlay().
Note
Single animation does not involve the batch animation user interface. The
control over a single animation is contained entirely within your application.
Batch Animation
Batch animation implements the user interface shown in the Introduction on page
536 section. The interface enables users to control the playing of your animation
movie.
541
This chapter describes how to access annotation features for special
customizations. It provides specific functions for creation, access, and
modification of annotation features and elements.
Note
The functions in this section are shortcuts to redefining the feature containing
the annotation elements. Because of this, Creo Parametric must regenerate the
model after making the required changes to the annotation element. The
functions include a flag to optionally allow the Fix Model User Interface to
appear upon a regeneration failure.
Functions Introduced:
• ProAnnotationfeatElementAdd()
• ProAnnotationfeatElementArrayAdd()
• ProAnnotationfeatElementDelete()
• ProAnnotationfeatElementCopy()
The function ProAnnotationfeatElementAdd() adds a new non-
graphical annotation element to the feature.
The function ProAnnotationfeatElementArrayAdd() adds a series of
new annotation elements to the feature. Each element may be created as non-
graphical or may be assigned a pre-existing annotation.
Note
In case of Datum Target Annotation Features (DTAFs),
ProAnnotationfeatElementDelete() allows you to delete only a
Datum Target Annotation Element (DTAE) from a DTAF. This function does
not allow deletion of a set datum tag annotation element from the DTAF.
Note
All the surfaces made inactive by features occurring after the annotation
element in the model regeneration are also returned.
Note
The description string is same as that of the tooltip text for the reference name
in the Annotation Feature UI.
Functions Introduced:
• ProAnnotationelemAnnotationSet()
• ProAnnotationelemCopySet()
• ProAnnotationelemDependencySet()
• ProAnnotationelemReferenceAdd()
• ProAnnotationelemReferenceRemove()
• ProAnnotationelemReferenceStrengthen()
• ProAnnotationelemReferenceWeaken()
• ProAnnotationelemReferenceDescriptionSet()
• ProAnnotationelemReferenceAutopropagateSet()
• ProAnnotationelemReferencesSet()
• ProAnnotationelemArrayReferencesSet()
• ProAnnotationreferencesetAlloc()
• ProAnnotationreferencesetReferenceAdd()
• ProAnnotationreferencesetFree()
• ProAnnotationreferencesetProarrayFree()
The function ProAnnotationelemAnnotationSet() allows you to
modify the annotation contained in an annotation element. Specify the value for
the input argument annotation as NULL to modify the annotation element to be a
non-graphical annotation.
Note
The above function does not support Datum Target Annotation Elements
(DTAEs).
If you modify the annotation contained in the annotation element, the original
annotation is automatically removed from the element and is owned by the model.
Note
All the annotation elements must belong to the same feature. The number of
reference sets should match the number of annotation elements to be modified.
Note
The function ProAnnotationelemAutopropagate() works regardless
of the current value for the configuration option, auto_propagate_ae.
PTC advises that the Creo Parametric TOOLKIT application respect the
current value of this configuration option; otherwise, duplicate versions of the
propagated annotations can result.
Detail Tree
Creo Parametric 1.0 onwards, when the 3D Annotation tab is active, you can view
the active combination state of a model and the annotations assigned to it. This
representation is called a Detail Tree. For more information on Detail Tree, see the
Creo Parametric help. Use the following functions to refresh, expand, and collapse
the detail tree:
Functions Introduced:
Note
Use PRO_VALUE_UNUSED to refresh, expand, or collapse the detail tree
in the active window.
Access to Annotations
The structure for the annotations is similar to the structure ProModelitem and
is defined as
typedef struct pro_model_item
{
ProType type;
int id;
ProMdl owner;
}ProAnnotation
The value of type for different annotations is as follows:
• PRO_NOTE—Specifies a note. Functions specific to notes use the object type
ProNote.
• PRO_SYMBOL_INSTANCE—Specifies a symbol instance. Functions specific
to symbols use the object ProDtlsyminst.
• PRO_GTOL—Specifies a geometric tolerance. Functions specific to Gtols use
the object ProGtol.
• PRO_SURF_FIN—Specifies a surface finish. Functions specific to surface
finish use the object ProSurfFinish.
Note
In Creo Parametric 2.0 M050, you must pass the input argument view as
NULL.
Note
To get the display status of set datum tags in a drawing, use the function
ProDrawingSetDatumTagIsShown().
Note
• The function ProAnnotationDisplay() supersedes the functions
ProDimensionShow() and ProGtolShow().
• The function ProAnnotationUndisplay() supersedes the functions
ProDimensionErase() and ProGtolErase().
• The function ProDimensionDisplayUpdate() is superseded by a
combination of ProAnnotationDisplay() and
ProAnnotationUndisplay().
Annotation Orientation
An Annotation Orientation refers to the annotation plane or the parallel plane in
which the annotation lies, the viewing direction, and the text rotation. You can
define the annotation orientation using a datum plane or flat surface, a named
view, or as flat to screen. If the orientation is defined by a datum plane, you can
set its reference to frozen or driven; where frozen indicates that the
reference to the datum plane or named view has been removed.
Functions Introduced:
• ProAnnotationplaneCreate()
• ProAnnotationplaneFromViewCreate()
• ProAnnotationplaneFlatToScreenCreate()
• ProAnnotationplaneTypeGet()
• ProAnnotationplaneReferenceGet()
• ProAnnotationplanePlaneGet()
• ProAnnotationplaneVectorGet()
• ProAnnotationplaneFrozenGet()
Note
You can only place notes, surface finishes, and symbols as flat to screen.
Dimensions, geometric tolerances and set datum tags are not supported as flat-
to-screen annotations.
Note
If the named view orientation has been changed after the annotation plane was
created, the orientation of the plane will not match the current orientation of
the view.
Note
You can only rotate annotations that belong to annotation elements using the
above function.
Note
• Drawing annotations can have only uni-directional associativity, that is,
changes to the position and attachment of the annotation in the 3D model are
reflected for the annotation in the drawing view, but not vice-versa.
• You cannot modify the position associativity and attachment associativity of a
drawing annotation from the 3D model.
• You cannot make free, flat-to-screen annotations in a drawing view associative
to the annotations in the 3D model.
• Annotation properties such as text, jogs, breaks, skew, witness line clippings,
and flip arrow states are not associative.
Functions Introduced:
• ProAnnotationIsAssociative()
• ProAnnotationPositionUpdate()
• ProAnnotationAttachmentUpdate()
The function ProAnnotationIsAssociative() identifies if a given
annotation in a drawing view is associative to the annotation in the 3D model. It
has the following output arguments:
• assoc_position—Specifies if the position of the annotation is associative.
• assoc_attach—Specifies the attachment associativity. It takes one of the
following values:
○ PRO_ANNOTATTACH_ASSOCIATIVITY_PARTIAL—Specifies that the
drawing annotation is partially associative.
○ PRO_ANNOTATTACH_ASSOCIATIVITY_FULL—Specifies that the
drawing annotation is fully associative.
• future_use—This argument is for future use.
The function ProAnnotationPositionUpdate() updates the position of
the drawing annotation, and makes it associative to the position of the annotation
in the 3D model.
Note
You can update the associative attachment only for drawing annotations that
are attached to the geometry.
Annotation Security
The functions described in this section allow you to manage whether an
annotation is designated as a security marking. You can independently control the
security marking option of a drawing annotation. You cannot copy such
annotations. Annotations designated as security markings have the following
characteristics:
• Always visible whenever the model is viewed in a product that supports the
security markings.
• Listed at the top of the detail tree in an active combined state.
• Shown by an icon in the Detail Tree and Model Tree.
Functions Introduced:
• ProAnnotationSecuritymarkingSet()
• ProAnnotationSecuritymarkingGet()
Use the function ProAnnotationSecuritymarkingSet() to set the
security marking option for notes and symbols. The input arguments follow:
• a
• annotation—Annotation must be flat to screen, unattached, and standalone
note or symbol.
• is_secure—Pass a ProBoolean value PRO_B_TRUE to designate security
marking.
Interactive Selection
Annotation features, annotation elements, and annotations can be selected
interactively using ProSelect() or can be obtained from the selection buffer
using the function ProSelbufferSelectionsGet().
For more information on interactive selection refer to chapter User Interface:
Selection on page 503.
Display Modes
Functions Introduced:
• ProDisplaymodeGet()
• ProDisplaymodeSet()
These functions specify whether the display of dimensions shows symbols or
values, and enables you to switch the mode. This is the equivalent to the Creo
Parametric command Switch Dimensions in the Relations dialog box.
Visiting Dimensions
Functions Introduced:
• ProSolidDimensionVisit()
• ProDrawingDimensionVisit()
• ProDimensionSymbolGet()
• ProDimensionValueGet()
• ProDimensionParentGet()
• ProDimensionTypeGet()
• ProDimensionNomvalueGet()
• ProDimensionIsDisplayRoundedValue()
• ProDimensionDisplayRoundedValueSet()
• ProDimensionDisplayedValueGet()
• ProDimensionOverridevalueGet()
• ProDimensionValuedisplayGet()
• ProDimensionIsFractional()
• ProDimensionDecimalsGet()
• ProDimensionDenominatorGet()
• ProDimensionIsReldriven()
Note
Multiple dimensions may depend on a single parent dimension.
Note
The override value is available only for driven dimensions.
Note
For dimensions or reference dimensions in annotation elements, the function
ProDimensionOwnerfeatureGet() returns the annotation feature that
directly owns the annotation element.
Note
The function will return the error PRO_TK_NO_CHANGE if the specified
symbol already exists for another dimension in the model.
Note
The value given for the input argument decimals of the function
ProDimensionDecimalsSet() should be a non-negative number. It
should be such that when you apply either the upper or the lower values of the
tolerance to the given dimension, the total number of digits before and after
the decimal point in the resulting values does not exceed 13.
Note
The basic and inspection notations of the dimension are not available when
only the tolerance value for a dimension is displayed.
The function ProDimensionElbowSet() sets the length of the elbow for the
specified dimension in a solid. The function can also be used to set the length of
the elbow for a dimension in a drawing, where the dimension is created in a solid
and is displayed in a drawing. To work with dimensions shown in a drawing, pass
the name of the drawing in the input argument drawing.
The function ProDimensionSimpleBreakCreate() creates a simple break
on an existing dimension witness line. The input arguments are:
• dimension—Specifies a pointer to the dimension whose witness line is to
be broken.
• drawing—Specifies the drawing in which the dimension is present. You can
specify a NULL value.
• index—Specifies the index of the witness line. Depending on which side of
the dimension the witness line lies, specify the value as 1 or 2. Use the
method ProDimlocationWitnesslinesGet to get the location of the
witness line end points for a dimension.
Note
This argument is not applicable for ordinate, radius, and diameter
dimensions.
Note
This argument is not applicable for ordinate, radius, and diameter
dimensions.
Note
The functions ProDimensionSimpleBreakCreate() and
ProDimensionJogCreate() return the error type PRO_TK_INVALID_
TYPE when breaks and jogs are not supported for the specified dimension
type, for example, diameter dimension.
The functions return the error type PRO_TK_ABORT when it is not possible to
create breaks or jogs for the specified dimension witness line. For example, if
you add a jog that is duplicate to an existing jog on the dimension witness line.
Note
The value of arrow_index is ignored for ordinate and radius dimensions.
Note
The functions ProDimensionWitnesslineErase() and
ProDimensionWitnesslineShow() erase and show the witness lines
of dimensions and reference dimensions, respectively. These functions work
with both drawings and solids.
Dimension References
The functions explained in this section enable you to work with semantic
dimension references.
Function Introduced:
• ProDimensionAdditionalRefsAdd()
• ProDimensionAdditionalRefsGet()
• ProDimensionAdditionalRefDelete()
The function ProDimensionAdditionalRefsAdd() adds additional
semantic references in the specified dimension. The input arguments are:
• dim—Specifies a dimension.
• type—Specifies the type of reference using the enumerated data type
ProDimensionReferenceType. The type is classified based on the list
to which the references are added. The valid values are:
○ PRO_DIM_REF_FIRST—Adds the semantic references to the first list of
references.
○ PRO_DIM_REF_SECOND—Adds the semantic references to the second
list of references.
Note
When a reference includes more than one collection, the function
ProDimensionAdditionalRefsAdd() returns the error PRO_TK_
MAX_LIMIT_REACHED and no reference is added.
Note
Currently, the reference types PRO_ANNOT_REF_SINGLE and PRO_
ANNOT_REF_SRF_COLLECTION are supported.
Dimension Tolerances
Functions Introduced:
• ProToleranceDefaultGet()
• ProDimensionDisplayedToleranceGet()
• ProSolidToleranceGet()
• ProSolidToleranceSet()
• ProDimensionIsToleranceDisplayed()
• ProDimensionToltypeGet()
• ProDimensionToltypeSet()
• ProDimensionToleranceGet()
• ProDimensionToleranceSet()
• ProDimensionTolerancedecimalsGet()
• ProDimensionTolerancedecimalsSet()
• ProDimensionTolerancedenominatorGet()
• ProDimensionTolerancedenominatorSet()
Note
This format is not available when only the tolerance value for a dimension
is displayed.
Note
If the upper tolerance value is negative, it will be displayed with a ‘-’ sign. But
if the lower tolerance value is negative, it will be displayed with a ‘+’ sign.
Dimension Text
Functions Introduced:
• ProDimensionTextWstringsGet()
• ProDimensionTextWstringsSet()
Superseded Functions:
• ProDimensionTextGet()
• ProDimensionTextSet()
The functions ProDimensionTextGet() and ProDimensionTextSet()
have been deprecated. Use the functions
ProDimensionTextWstringsGet() and
ProDimensionTextWstringsSet() instead.
The function ProDimensionTextWstringsGet() retrieves the text of the
specified dimension as a ProArray of wide character strings. Use the function
ProWstringproarrayFree() to release the memory allocated for the
ProArray.
The function ProDimensionTextWstringsSet() sets the text of the
specified dimension using a ProArray of wide character strings. This is
equivalent to editing dimensions in Creo Parametric.
Note
From Creo Parametric 2.0 onward, the functions
ProDimensionTextWstringsGet() and
ProDimensionTextGet() will always include the dimension value @D
that appears in the Dimension Properties dialog box.
Note
Only some of the text style properties may be assigned to dimensions.
Dimension Location
The functions described in this section extract the dimension location and
geometry in 3D space for solid model dimensions.
Functions Introduced:
• ProDimensionLocationGet()
• ProDimlocationFree()
• ProDimensionMove()
The function ProDimensionLocationGet() returns the location of the
elements that make up a solid dimension or reference dimension.
This function optionally takes a view used to determine the orientation of the
model when calculating the dimension locations. The orientation often determines
the text location, presence or absence of elbows, and other dimension location
properties.
Use the function ProDimlocationFree() to free the structure containing the
dimension location data.
Note
If the value of the elbow length was originally set by the function
ProDimensionElbowlengthSet(), then the value returned by
ProDimlocationTextGet() is equal to the value set by the function
ProDimensionElbowlengthSet() minus the padding around the text
for all dimension types.
Note
○ A center leader type is available only for linear and diameter dimensions.
○ The elbow length and direction is not available for PRO_DIM_
PARALLEL_ABOVE and PRO_DIM_PARALLEL_BELOW center leader
types.
For a linear type of dimension, there are typically two arrow locations A1 and A2
as shown in the above figure. w1 and w2 indicate the two witness line locations.
If the dimension type has an elbow joint indicated by E, the elbow length is the
distance between the text and E. If the dimension does not have an elbow, the text
occurs on the line between A1 and A2, and its position is returned by the function
ProDimensionTextGet(). Pattern parameter dimensions and length-of-arc
dimensions also typically return this dimension structure.
For an angular type of dimension, there are two arrow locations A1 and A2 as
shown in the above figure. w1 and w2 indicate the two witness line locations. For
some angular dimensions the two witness line endpoints are coincident, but they
are returned as independent locations. This dimension type does not have an
elbow joint.
Diameter dimensions
For a diameter type of dimension, there are two arrow locations A1 and A2 as
shown in the above figure. The elbow joint for this dimension is indicated by E.
The elbow length is the distance between the text and the elbow joint. This
dimension type does not have any witness line locations.
For a radius type dimension, there is one arrow location indicated by A1 and an
elbow joint indicated by E. The elbow length is the distance between the text and
the elbow joint.
The function ProDimlocationArrowsGet() returns a NULL value for the
second arrow location. This dimension type does not have any witness line
locations.
Dimension Orientation
Functions Introduced:
• ProDimensionPlaneSet()
• ProDimensionPlaneGet()
The function ProDimensionPlaneSet() assigns an annotation plane as the
orientation of a specified dimension stored in an annotation element.
The function ProDimensionPlaneGet() obtains the orientation of a
specified dimension stored in an annotation element.
Note
The attachments structure is an array of two ProSelection entities. It
is provided to support options such as intersect where two entities must be
passed as input. From Creo Parametric 3.0 onward, you can create
dimensions that have intersection type of reference. The intersection type
of reference is a reference that is derived from the intersection of two
entities. Refer to the Creo Parametric Detailed Drawings Help for more
information on intersection type of reference.
Note
The default display of a 45-degree chamfer dimension depends upon the
setting of the config.pro option, default_chamfer_text.
Functions Introduced:
• ProDimensionChamferLeaderGet()
• ProDimensionChamferLeaderSet()
• ProDimensionChamferTextGet()
• ProDimensionChamferTextSet()
• ProDimensionConfigGet()
• ProDimensionConfigSet()
From Creo Parametric 3.0 M060 onward, the functions
ProDimensionChamferLdrstyleGet() and
ProDimensionChamferLdrstyleSet() have been deprecated. Use the
functions ProDimensionChamferLeaderGet() and
ProDimensionChamferLeaderSet() instead.
The functions ProDimensionChamferLeaderGet() and
ProDimensionChamferLeaderSet() retrieve and set the style of the
leader for the specified 45-degree chamfer dimension. The valid values are as
follows:
Baseline Dimensions
Functions Introduced:
• ProAnnotationfeatBaselineCreate()
• ProDimensionIsBaseline()
The function ProAnnotationfeatBaselineCreate() creates an ordinate
baseline annotation element and corresponding dimension. Specify the feature
reference geometry, text location, direction and annotation plane as input
arguments for this function.
The function ProDimensionIsBaseline() identifies whether a dimension
is a baseline dimension.
Ordinate Dimensions
Function Introduced:
• ProDimensionOrdinateCreate()
• ProDimensionOrdinatestandardGet()
• ProDimensionOrdinatestandardSet()
• ProDimensionOrdinatereferencesSet()
• ProDimensionMove()
• ProDimensionIsOrdinate()
• ProDimensionAutoOrdinateCreate()
The function ProDimensionOrdinateCreate() creates a new model
ordinate driven dimension or a model ordinate reference dimension in a solid
model. It requires the input of a reference baseline annotation as well as a
Notes
The functions in this section enable you to access the notes created in Creo
Parametric .
Note
These functions are applicable to solids (parts and assemblies) only. However,
when notes on a solid are viewed from Drawing mode, they can also be
accessed using the ProDtlnote() functions described in the chapter
Drawings on page 1226.
Note Properties
Functions Introduced:
• ProNoteTextGet()
• ProNoteTextSet()
• ProNoteURLGet()
• ProNoteURLSet()
• ProNoteURLWstringGet()
• ProNoteURLWstringSet()
• ProNoteURLExtraInfoGet()
• ProNoteURLExtraInfoSet()
• ProNoteOwnerGet()
• ProNoteLeaderstyleGet()
• ProNoteLeaderstyleSet()
• ProNoteElbowlengthGet()
• ProNoteElbowlengthSet()
• ProNoteLineEnvelopeGet()
• ProNoteAttachNormtanleaderGet()
• ProNoteAttachScreenSet()
• ProNoteWrapTextGet()
• ProNoteWrapTextSet()
• ProNoteReferencesAdd()
• ProNoteReferencesGet()
• ProNoteReferenceDelete()
The function ProNoteTextGet() returns the text of a 3D model note. The
function ProNoteTextSet() modifies the text of an exisitng 3D model note.
You can also make symbols to be called out in the 3D notes using the function
ProNoteTextSet().
Use the function ProNoteUndisplay() followed by ProNoteDisplay()
to update the display status of the note.
Note
The functions ProNoteURLGet() and ProNoteURLSet() have been
deprecated. Instead, use the functions ProNoteURLWstringGet() and
ProNoteURLWstringSet() that return and set, respectively, the Uniform
Resource Locator (URL) associated with the specified note as a widestring.
Note
The elbow properties can be retrieved and set for the flat-to-screen notes and
the drawing notes.
Note
Creo Parametric adds hard line breaks to the multiple lines drawing notes
created in Creo Elements/Pro during retrieval. The hard line breaks display the
text of the note on separate lines in the Note Properties dialog box as they
actually appear in the drawing note.
Note
When a reference includes more than one collection, the function
ProNoteReferencesAdd() returns the error PRO_TK_MAX_
LIMIT_REACHED and no reference is added.
Visiting Notes
Function introduced:
• ProMdlNoteVisit()
The function ProMdlNoteVisit() enables you to visit all the notes in the
specified solid model.
Note
The system uses the value –1.0 for properties that use default values, or that
have not been set yet.
Note
The function ProNoteAttachLeadersGet() requires the owner of the
note to be displayed.
Note
If modifying an existing note, the functions ProNoteAttach*Set() do
not modify the note until the note attachment is reassigned to the note using
the modification function ProNotePlacementSet().
Geometric Tolerances
For more information on Geometric Tolerances refer to the chapter Annotations:
Geometric Tolerances on page 617.
Note
From Creo Parametric 2.0 M090 onward, to specify the datum plane or datum
axis as the attachment option, pass the input argument attachment as
NULL in the function ProSetdatumtagAttachmentSet(). The datum
tag is attached to the datum axis at the default location.
Note
The functions ProGeomitemSetdatumtagGet() and
ProSetdatumtagReferenceGet() return information only for datum
tags created in releases prior to Creo Parametric 4.0 F000.
Note
When a reference includes more than one collection, the function
ProSetdatumtagReferencesAdd() returns the error PRO_TK_MAX_
LIMIT_REACHED and no reference is added.
Note
These function support the “Set Datum” capability which existed before Set
Datum Tag annotations.
Functions Introduced:
• ProGeomitemSetdatumGet()
• ProGeomitemSetdatumSet()
• ProGeomitemSetdatumClear()
The function ProGeomitemSetdatumGet() specifies whether the datum
plane or axis is a “Set Datum”. This function supersedes the function
ProGeomitemIsGtolref().
The function ProGeomitemSetdatumSet() sets the datum plane or axis to
be a “Set Datum”. This function supersedes the function
ProGeomitemGtolrefSet().
The function ProGeomitemSetdatumClear() removes the “Set Datum”
status of a datum plane or axis. This function supersedes the function
ProGeomitemGtolrefClear().
Note
The data must conform to the requirements for surface finishes, that is,
attachment must be via leader to or on one or more surfaces.
Note
Only those surface finishes that are contained within annotation elements may
use a collection of references instead of a single surface reference.
Symbol Annotations
The functions described in this section provide support for 3D mode symbols.
Creo Parametric TOOLKIT functions for symbol instances are used in both 2D
and 3D modes. Symbols for a particular mode must conform to the requirements
for that mode. Some ProDtlsyminst functions have been modified to accept a
ProMdl object as the input instead of ProDrawing object to support 3D mode
operations.
617
Geometric Tolerance Objects
Overview
The geometric tolerance objects enable you to access internal data structure of
geometric tolerances (gtol). The object also references and gets attachment details
for gtols.
From Creo Parametric 4.0 F000 onward, the object Gtoldata has been
deprecated. All the ProGtolData* functions have also been deprecated. Use
the new ProGtol* functions instead. The new functions are defined in the
header files ProGtol.h and ProGtolAttach.h.
Note
Geometric tolerance functions deprecated in Creo Parametric 4.0 F000 must
not be used with the new geometric tolerance functions available from Creo
Parametric 4.0 F000 in a Creo Parametric TOOLKIT application. If the
functions are used together in an application, the results may be unpredictable.
ProGtol
Geometric tolerances in a Creo Parametric model are referenced by the data
handle, ProGtol. This handle is identical to ProModelitem, in which the
type field is set to PRO_GTOL. You can use ProSelect() with the option
gtol to select a gtol, after which you can extract the ProGtol handle using
ProSelectionModelitemGet().
ProGtolAttach
This is an opaque handle object that references an internal data structure which
provides complete attachment details for a gtol. The structure contains attachment
information such as, type of placement, annotation plane, location and references
and so on for a gtol.
Note
You can use the reciprocity condition together with the maximum
material condition or the minimum material condition to use the
maximum tolerance allowed for a feature. The material conditions with
reciprocity are applicable only for the ISO standard.
Note
When a reference includes more than one collection, the function
ProGtolReferencesAdd() returns the error PRO_TK_MAX_LIMIT_
REACHED and no reference is added.
The following table lists the various system parameters and the gtol attributes for
which the parameters are generated:
Parameter Gtol Attribute
PTC_GTOL_PRIMAY_TOL Primary tolerance value
PTC_GTOL_TYPE Geometric tolerance type
PTC_GTOL_MATERIAL_CONDITION Material condition for the primary tolerance value
PTC_GTOL_COMPOSITE_TOL Composite tolerance value; available only if the gtol
type is Surface or Position
PTC_GTOL_PERUNIT_TOL Pre-unit tolerance value; available only if the gtol
type is Straightness, Perpendicular, Surface, Parallel,
or Flatness
PTC_GTOL_UNITLENGTH_TOL Unit length value; available only if the gtol type is
Straightness, Perpendicular, Surface, or Parallel
PTC_GTOL_UNITAREA_TOL Unit area value; available only if the gtol type is
Flatness
PTC_GTOL_PROJECTEDTOLZONE_TOL Projected tolerance zone value; available only if the
gtol type is Angular, Perpendicular, Parallel, or
Position
PTC_GTOL_UNEQUALLYDISPOSED_TOL Unequally disposed tolerance value; available only if
the gtol type is Surface
You can access the parameters of gtol attributes by using the Creo Parametric
TOOLKIT parameter functions ProParameter*Get() and
ProParameter*Set(), and the UDF placement functions related to variable
parameters ProUdfvarparam*() and ProUdfdataVarparamAdd().
Refer to the chapter Core: Parameters on page 210 for more information on
parameters.
This chapter describes how to access designated area features through Creo
Parametric TOOLKIT.
635
Introduction to Designated Area Feature
A Designated Area is a “cosmetic surface" that can be referenced by annotations
(including driven dimensions), and propagates as you add geometry to the model.
It is used to indicate an area that needs to be closely examined or treated
differently.
The designated area is made up of sets of chains constructed by a selection of
edges or curves. The curves might lie on a solid (by default), a quilt, or on a plane.
If the chains lie on multiple object types, then you must decide on one object type
to place the target area.
You can attach an annotation to the created surface or to its boundaries. You can
also include the designated area as a reference in a data sharing feature, if its
parent surface is included. Geometry of this feature can be accessed using
standard Creo Parametric TOOLKIT functions such as
ProFeatureGeomitemVisit() and ProSolidQuiltVisit().
The following list details special information about the elements in this tree:
Note
When Creo Parametric applications are running in asynchronous non-
graphical mode, they require login credentials before execution. If you want to
override the requirement of specifying login credentials for Creo Parametric
applications, set the environment variable PROWT_AUTH_MODE to PROWT_
AUTH_UNATTENDED.
For more information about batch mode refer to the section Using Creo
Parametric TOOLKIT to Make a Batch Creo Parametric Session on page 52 and
for asynchronous mode refer to the chapter Core: Asynchronous Mode on page
277.
Note
ProServerVersionGet() works only for Windchill servers and returns
the PRO_TK_UNSUPPORTED error, if the server is not a Windchill server.
Workspace Data
Functions Introduced:
• ProServerworkspacedataAlloc()
• ProServerworkspacedataNameGet()
• ProServerworkspacedataContextGet()
• ProServerworkspacedataFree()
• ProServerworkspacedataProarrayFree()
The workspace data is an opaque handle that contains the name and context of the
workspace. The function ProServerWorkspacesCollect() returns an
array of workspace data. Workspace data is also required for the function
ProServerWorkspaceCreate() to create a workspace with a given name
and a specific context.
Note
You can create a workspace only after the server is registered.
Aliased URL
An aliased URL serves as a handle to the server objects. You can access the server
objects in the commonspace (shared folders) and the workspace using the aliased
URL. An aliased URL is a unique identifier for the server object and the format is
as follows:
• Object in workspace has a prefix wtws
Note
○ <object_server_name> must be in lowercase.
○ The APIs are case-sensitive to the aliased URL.
○ <object_extension> should not contain Creo Parametric versions,
for example, .1 or .2, and so on.
Server Operations
After registering the Windchill server with Creo Parametric, you can start
accessing the data on the Windchill servers. The Creo Parametric interaction with
Windchill servers leverages the following locations:
• Commonspace (Shared folders)
• Workspace (Server-side workspace)
• Workspace local cache (Client-side workspace)
Save
Functions Introduced:
• ProMdlSave()
The function ProMdlSave() stores the object from the session in the local
workspace cache, when a server is active.
Note
To upload all the objects to the workspace without retrieving them in the
current Creo Parametric session, use the function
ProServerObjectsCheckin() with the checkin option upload_only set
to PRO_B_TRUE.
CheckIn
After you have finished working on objects in your workspace, you can share the
design changes with other users. The checkin operation copies the information and
files associated with all changed objects from the workspace to the Windchill
database.
Functions Introduced
• ProServerObjectsCheckin()
• ProServercheckinoptsAlloc()
• ProServercheckinoptsDeflocationSet()
• ProServercheckinoptsLocationAdd()
• ProServercheckinoptsBaselineSet()
• ProServercheckinoptsKeepcheckedoutSet()
• ProServercheckinoptsAutoresolveSet()
• ProServercheckinoptsUploadonlySet()
• ProServercheckinoptsFree()
Note
ProServerObjectsCheckin() checks in the target object by default. To
only upload the object, set the checkin option upload_only to PRO_B_TRUE.
If you pass NULL as the value of the input argument options, the checkin
operation is similar to the Auto Check In option in Creo Parametric. For more
details on Auto Check In, refer to the online help for Creo Parametric.
By using an appropriately constructed options argument, you can control the
checkin or upload operation. The APIs described in this section help in
constructing the options argument.
The function ProServercheckinoptsAlloc() allocates a set of checkin or
upload options for the object. These options are as follows:
• Default location—Specifies the default folder_location on the server for the
automatic checkin operation. Use the function
ProServercheckinoptsDeflocationSet() to set this location.
• Server location—Specifies the folder_location on the server in which an
object will be checked in or uploaded. Use the function
ProServercheckinoptsLocationAdd() to set this location.
• Baseline—Specifies the baseline information for the objects upon checkin.
This information does not apply to upload operations. Use the function
ProServercheckinoptsBaselineSet() to create a new baseline.
The baseline information for a checkin operation is as follows:
○ baseline_name—Specifies the name of the baseline.
○ baseline_number—Specifies the number of the baseline.
The default format for the baseline name and baseline number is Username
+ time (GMT) in milliseconds.
○ baseline_location—Specifies the location of the baseline.
○ baseline_lifecycle—Specifies the name of the lifecycle.
• keep_checked_out—If this option is set to PRO_B_TRUE, then the contents of
the selected object are checked in to the Windchill server and automatically
checked out again for further modification. The default value is PRO_B_
FALSE. This option does not apply to upload operations. Use the function
Notification Functions
A Creo Parametric TOOLKIT notification is called before you attempt to check in
a model through the Creo Parametric user interface. The notification functions are
established in a session using the function ProNotificationSet().
Function Introduced:
• ProCheckinUIPreAction()
The notification function ProCheckinUIPreAction() is called when you
select File>Auto Check In, File>Custom Check In, or the corresponding options on
the Model Tree menu in the Creo Parametric user interface. It is called before any
action is performed by the corresponding menu commands. This function is
available by calling ProNotificationSet() with the value of the notify
type as PRO_CHECKIN_UI_PRE.
Note
Creo Parametric TOOLKIT functions do not support the AS_STORED
configuration.
If you specify the value of the input argument checkout as PRO_B_TRUE in the
above functions, the selected object is checked out. Otherwise, the object is
downloaded without being checked out. The download action enables you to bring
read-only copies of objects into your workspace. This allows you to examine the
object without placing a lock on it.
If you pass NULL as the value of the input argument options in the above
functions, then the default Creo Parametric checkout rules apply.
The function ProServercheckoutoptsAlloc() allocates a set of checkout
options for the object. These options are as follows:
• dependency—Specifies the dependency rule used while checking out
dependents of the object selected for checkout. The function
ProServercheckoutoptsDependencySet() sets the dependency
rule for checkout. The types of dependencies specified by the enumerated type
ProServerDependency are as follows:
○ PRO_SERVER_DEPENDENCY_ALL—All the objects that are dependent
on the selected object are downloaded, that is, they are added to the
workspace.
○ PRO_SERVER_DEPENDENCY_REQUIRED—All the objects that are
required to successfully retrieve the selected object in the CAD application
are downloaded, that is, they are added to workspace.
○ PRO_SERVER_DEPENDENCY_NONE—None of the dependent objects
Undo Checkout
Function Introduced:
• ProServerObjectsUndocheckout()
Use the function ProServerObjectsUndocheckout() to undo a checkout
of the specified object. When you undo a checkout, the changes that you have
made to the content and metadata of the object are discarded and the content, as
stored in the server, is downloaded to the workspace. This function is applicable
only for the model in the active Creo Parametric session.
File Copy
Creo Parametric TOOLKIT provides you with the capability of copying a file
from the workspace or target folder to a location on the disk and vice-versa.
Functions Introduced:
• ProFileCopyToWS()
• ProFileCopyFromWS()
• ProFileCopyFromWSDocument()
• ProFileselectionDocNameGet()
• ProDocumentFileContentsRead()
Use the function ProFileCopyToWS() to copy a file from disk to the
workspace. The file can optionally be added as secondary content to a given
workspace file. If the viewable file is added as secondary content, a dependency is
created between the Creo Parametric model and the viewable file.
Use the function ProFileCopyFromWS() to copy a file from the workspace to
a location on disk.
Note
The function ProDocumentFileContentsRead() is not supported for
CAD models.
Note
The function ProServerObjectStatusGet() is deprecated. Use the
function ProServerObjectIsModified() instead.
Delete Objects
Function Introduced:
• ProServerObjectsRemove()
The function ProServerObjectsRemove() deletes the array of objects from
the workspace. When passed with the mode_names array as NULL, this function
removes all the objects in the active workspace.
Utility APIs
The functions specified in this section enable you to obtain the handle to the
server objects to access them. The handle may be the Aliased URL or the model
name of the http URL. These utilities enable the conversion of one type of handle
to the other type.
Functions Introduced:
• ProServerModelNameToAliasedURL()
• ProServerAliasedURLToModelName()
• ProServerAliasedURLToURL()
The function ProServerModelNameToAliasedURL() enables you to
search for a server object by its name. Specify the complete file name of the object
as the input, for example, test_part.prt. The function returns the aliased
URL for a model on the server. For more information regarding the aliased URL,
refer to the section Aliased URL on page 646. During the search operation, the
workspace takes precedence over the shared space.
You can also use this function to search for files that are not in the Creo
Parametric format. For example, my_text.txt, prodev.dat, intf_
file.stp, and so on.
The function ProServerAliasedURLToModelName() returns the name of
the object from the given aliased URL on the server.
The function ProServerAliaseURLToURL() converts an aliased URL to a
standard URL to the objects on the server.
For example, wtws://my_alias/Wildfire/abcd.prt is converted to an
appropriate URL on the server as http://server.mycompany.com/Windchill.
This chapter describes various methods of importing and exporting files in Creo
Parametric TOOLKIT.
The option PRO_RELATION_FILE creates a file that contains a list of all the
model relations and parameters.
Note
As this report is generated and exported from the Creo Parametric embedded
browser, using this output type will cause Creo Parametric to show the
difference report in the browser.
Exporting 2D Models
Functions Introduced:
• Pro2dExport()
• Pro2dExportdataAlloc()
• Pro2dExportdataFree()
• Pro2dExportdataSheetoptionSet()
• Pro2dExportdataSheetsSet()
• Pro2dExportdataModelspacesheetSet()
• ProProductviewexportoptsAlloc()
• ProProductviewexportoptsFree()
• ProProductviewexportoptsFormatSet()
• ProProductviewFormattedMdlnameExport()
• ProPrintPrinterOptionsGet()
• ProPrintMdlOptionsGet()
• ProPrintPlacementOptionsGet()
• ProPrintPCFOptionsGet()
• ProPrintExecute()
The function gets the initialized printer options. The options include the file
related options, print command options and printer specific options as follows:
• File Related:
○ save_to_file—Saves a plot to a file.
○ save_method—Specifies if the plot is to be appended to a file, saved to a
single file, or saved to multiple files.
○ filename—Specifies the name of the file to which the plot is saved.
○ delete_after—Deletes the plot file after printing.
• Print Command:
○ send_to_printer—Sends the plot directly to the printer.
○ print_command—Specifies the complete command that you want to use
for printing.
○ pen_table—Specifies the complete path to the file containing the pen table.
○ paper_size—Specifies the size of the paper to be printed.
○ quantity—Specifies the number of copies to be printed.
• Printer Specific:
○ sw_handshake—Specifies the type of the handshake initialization
sequence. Specify the value as True to set the initialization sequence to
Software and as False to set it to Hardware.
Note
Consult your system administrator for more information on handshaking.
○ roll_media—Specifies whether to use roll-media or cut-sheet.
○ use_ttf—Specifies whether to use TrueType font or stroked text.
○ slew—Specifies the speed of the pen in centimeters per second in X and Y
direction.
○ rotate_plot—Specifies that the plot is to be rotated by 90 degrees.
Note
Variable size plots are not supported by this utility.
Note
Projection views takes the same view scale and display style as the main
view.
The options correspond to the projected members of the diagram in the user
interface:
Note
The quick drawing operation shows the exact image of the model as is shown
on-screen. Therefore, if the drawing template has drawing views set with
display options such as view clipping, simplified representations, or layers,
these settings are ignored while plotting. The resulting plot reflects whatever is
seen on-screen.
Exporting 3D Models
Creo Parametric TOOLKIT provides export capabilities for three dimensional
geometry to various formats.
Functions Introduced:
• ProIntf3DFileWrite()
• ProIntf3DFileWriteWithDefaultProfile()
• ProIntf3DLayerSetupFileSet()
• ProIntf3DLayerSetupFileIsIgnored()
• ProIntf3DCsysSet()
• ProIntf3DCsysIsIgnored()
• ProIntf3DModelDataClear()
• ProOutputBrepRepresentationAlloc()
• ProOutputBrepRepresentationFlagsSet()
• ProIntfExportProfileLoad()
• ProOutputBrepRepresentationIsSupported()
• ProOutputBrepRepresentationFree()
• ProOutputInclusionAlloc()
• ProOutputInclusionFacetparamsSet()
• ProOutputInclusionWithOptionsSet()
• ProOutputInclusionFlagsSet()
• ProOutputInclusionFree()
• ProOutputLayerOptionsAlloc()
• ProOutputLayerOptionsAutoidSet()
• ProOutputLayerOptionsSetupfileSet()
• ProOutputLayerOptionsFree()
• ProOutputAssemblyConfigurationIsSupported()
• ProRasterFileWrite()
The following data is included during the export of Creo Parametric models to
other formats:
• 3D Manufacturing Format (3MF)—From Creo Parametric 5.0.1.0 onward, you
can export Creo Parametric models to the 3MF format. The export includes
part-level colors, top-assembly parameters, facet geometry, and hidden
entities.
• JT—Creo Parametric models are exported to JT with their color overrides.
Components with color overrides at any level in an assembly structure are
supported.
From Creo Parametric 3.0 onward, the Product Manufacturing Information
(PMI) of the annotations is exported as semantic representation from Creo
Parametric to JT models. The semantic export is supported only for 3D notes
and basic dimensions. All the other types of annotations are exported as
graphical entities. You can export planar and zonal cross-sections attached to
combined states from Creo Parametric files to JT.
Note
From Creo Parametric 2.0 M200 onward the license INTF_for_JT is
required to export a Creo Parametric model to JT. If the license is not
available the functions return the error PRO_TK_NO_LICENSE.
Note
Refer to the Creo Parametric Data Exchange Help for more information on
exporting geometry from Creo Parametric to other formats. Refer to the
compatibility matrix on PTC.com for the supported software versions.
Note
Once the export profile file is loaded in a Creo Parametric session, it will be
active in the interactive mode as well.
Note
The function ProOutputInclusionFacetparamsSet() has been
deprecated. Use the function
ProOutputInclusionWithOptionsSet() instead.
Note
To include annotations, during the export of Creo Parametric model,
you must call the function ProMdlDisplay() before calling
ProIntf3DFileWrite().
Note
The behavior of the function
ProOutputInclusionWithOptionsSet() is similar to the function
ProOutputInclusionFacetparamsSet() if the configuration flag
PRO_FACET_STEP_SIZE_OFF is set.
Note
For best results, use chordal values in conjunction with the Angular
parameter. Chordal values primarily affect the larger features of the
model while the angular values affect the smaller features of the
model.
Note
When autoLODgeneration is set to true, the LOD options set in
the jt.config file are ignored.
Note
When autoLODStepSize is set to true, the step size set in the
jt.config file is ignored.
Shrinkwrap Export
To improve performance in large assembly design, you can export lightweight
representations of models called Shrinkwrap models. A shrinkwrap model is
based on the external surfaces of the source part or assembly model and captures
the outer shape of the source model.
You can create the following types of non associative exported Shrinkwrap
models:
• Surface Subset—This type consists of a subset of the original model’s
surfaces.
• Faceted Solid—This type is a faceted solid representing the original solid.
• Merged Solid—The external components from the reference assembly model
are merged into a single part representing the solid geometry in all collected
components.
Function Introduced:
• ProSolidShrinkwrapMdlnameCreate()
You can export the specified solid model as a Shrinkwrap model using the
function ProSolidShrinkwrapMdlnameCreate(). This function requires:
• The model to be exported as Shrinkwrap
• The template model where the Shrinkwrap geometry will be created.
• The name of the exported file if the export format is VRML or STL.
The option PRO_RELATION_FILE reads a text file that contains a list of all the
model relations and parameters relations in exactly the same format as the Creo
Parametric user enters them.
Use the function ProInputFileRead() with the argument PRO_
CONNECTOR_PARAMS to identify the connectors. To access parameters on
connectors and their entry ports use the following arguments:
• arg1—Represents the integer pointer to ProIdTable. ProIdTable is an
integer array of component identifiers.
• arg2—Represents the integer pointer to the number of component identifiers.
Use the function ProInputFileRead() with the argument PRO_CABLE_
PARAMS_FILE to read cable parameters. You need to set the following
arguments:
• arg1—Represents a ProSolid (part pointer).
• arg2—Represents the cable name.
Use the function ProInputFileRead() with the argument PRO_
WIRELIST_FILE to read files in Mentor Graphics LCABLE format. This
function does not create wires, but provides parameters from a wire list for use
when creating in a harness assembly a wire with the same name as that in the
LCABLE file.
Use the function ProInputFileRead() with the argument PRO_
RELATION_FILE to get the individual feature relations. To access feature
relations use the following arguments:
• arg2—Represents the individual feature relations. It is an integer pointer to the
feature identifier that gets the relations contained in a feature. If this is NULL
you get the relations contained in the model.
• arg3—It is an integer pointer. If it points to 1, then the relations in the file
must be added to the current relations, otherwise the relations in the file must
replace the current relations.
Use function ProInputFileRead() with argument PRO_SPOOL_FILE to
create new spools or update existing ones.
Functions Introduced:
• Pro2dImportMdlnameCreate()
• Pro2dImportAllSheets()
• Pro2dImportAppend()
• ProInputFileRead()
The function Pro2dImportMdlnameCreate() imports interface files and
creates a new two-dimensional model with the specified name. The created
models can be drawings, layouts, diagrams, drawing formats. Use the argument to
control whether or not to import two-dimensional views.
If you want to import all the drawing sheets for formats that support multiple
drawing sheets, use the function Pro2dImportAllSheets(). The function
imports interface files with all the drawing sheets, and creates a new two-
dimensional model. For the model type PRO_MDL_DWGFORM, only the first two
drawing sheets are imported.
The function Pro2dImportAppend() appends a two-dimensional model to
the specified model.
You can import and append the Creo Elements/Direct drafting files using the
functions Pro2dImportMdlnameCreate() and
Pro2dImportAppend().
Use the function Pro2dImportMdlnameCreate() to import the Creo
Elements/Direct drafting file to a Creo Parametric drawing file. The following
data is imported from the .mi, .bi, and .bdl format files:
• Basic entities such as point, line, arc, fillet, circle, polygon, text, spline, b-
spline, center line, symmetry line, reference text line, and projected reference
points
• 2D construction geometry such as lines, arcs, circles, splines, and so on
• Linear, angular, radial, diameter, ordinate, and leader dimensions
Importing 3D Models
The functions described in this section are used to import files of different format
types into Creo Parametric.
Functions Introduced:
• ProIntfimportSourceTypeGet()
• ProIntfimportModelWithOptionsMdlnameCreate()
• ProIntfimportLayerFilter()
Import Format Creo Parametric TOOLKIT Type Constant
Functions
ACIS file ProIntfimportModelWi PRO_INTF_IMPORT_ACIS
CADDS file thOptionsMdlname PRO_INTF_IMPORT_CADDS
Create()
CATIA (.model) file PRO_INTF_IMPORT_CATIA_
MODEL
CATIA (.session) file PRO_INTF_IMPORT_CATIA_
SESSION
DXF file PRO_INTF_IMPORT_DXF
ICEM file PRO_INTF_IMPORT_ICEM
IGES file PRO_INTF_IMPORT_IGES
Neutral file PRO_INTF_IMPORT_NEUTRAL
Parasolid-based CADDS system PRO_INTF_IMPORT_PARASOLID
file
POLTXT file PRO_INTF_IMPORT_POLTXT
STEP file PRO_INTF_IMPORT_STEP
VDA file PRO_INTF_IMPORT_VDA
CATIA (.CATpart) file PRO_INTF_IMPORT_CATIA_
PART
Note
Depending on the Autodesk Inventor model, Creo Parametric imports the
model as a part or an assembly. To let Creo Parametric decide if the
Autodesk Inventor model must be imported as a part or assembly, in the
function
ProIntfimportModelWithOptionsMdlnameCreate(), you
must specify the input argument ProMdlType as PRO_MDL_UNUSED.
• JT—JT models are imported to Creo Parametric with their color overrides.
Components with color overrides at any level in an assembly structure are
supported.
From Creo Parametric 3.0 onward, the Product Manufacturing Information
(PMI) of the annotations is imported as semantic representation from JT
models to Creo Parametric models. The semantic import is supported only for
3D notes and basic dimensions. All the other types of annotations are imported
as graphical entities. You can import the planar and zonal cross-sections of
part and assembly models from JT files to Creo Parametric.
Note
From Creo Parametric 2.0 M200 onward, the license INTF_for_JT is
required to import a JT file to Creo Parametric. If the license is not
available the functions return the error PRO_TK_NO_LICENSE.
Note
Depending on the SolidWorks model, Creo Parametric imports the model
as a part or an assembly. To let Creo Parametric decide if the SolidWorks
model must be imported as a part or assembly, in the function
ProIntfimportModelWithOptionsMdlnameCreate(), you
must specify the input argument ProMdlType as PRO_MDL_UNUSED.
• Solid Edge—From Creo Parametric 3.0 M010 onward, you can import Solid
Edge part and assembly models to Creo Parametric. The import includes
boundary representation geometry, datum features, colors, and attributes.
From Creo Parametric 3.0 M030 onward, Solid Edge models are imported to
Creo Parametric with their color overrides. Components with color overrides
at any level in an assembly structure are supported.
From Creo Parametric 3.0 M020 onward, you can also import a Solid Edge
sheet metal part to Creo Parametric.
Note
Depending on the Unigraphics model, Creo Parametric imports the model
as a part or an assembly. To let Creo Parametric decide if the Unigraphics
model must be imported as a part or assembly, in the function
ProIntfimportModelWithOptionsMdlnameCreate(), you
must specify the input argument ProMdlType as PRO_MDL_UNUSED.
Note
Refer to the Creo Parametric Data Exchange Help for more information on
importing geometry to Creo Parametric. Refer to the compatibility matrix on
PTC.com for the supported software versions.
Note
The input argument profile allows you to include the import of Creo
Elements/Direct containers, face parts, wire parts, and empty parts.
Note
PTC strongly recommends that you create import features in a Creo
Parametric session that has only those models open where the feature is to be
created. It is also recommended not to follow the creation of import features
with calls to the functions ProMdlErase() or ProMdlEraseAll() until
the control returns to Creo Parametric, since this may interfere with erasing
temporary objects at the end of the import.
• p_source—the name of the file with extension. The specified format file
should exist in the current working directory or in a path specified in the
search_path configuration option.
This function returns the handle to the ProIntfDataSource object, which
should be passed to the functions ProImportfeatCreate() and
ProImportfeatureWithProfileCreate().
The function ProImportfeatCreate() is used to create a new import
feature in the Creo Parametric solid model. The input arguments of this function
are:
• p_solid —Specifies the part in which the user wants to create the import
feature.
• data_source—Specifies a pointer to the interface data source. Use the function
ProIntfDataSourceInit() to get the handle to the
ProIntfDataSource object.
• p_csys — Specifies the coordinate system of the part with which the user
wants to align the import feature. If this is NULL, the function uses the default
coordinate system in the Creo Parametric model and the import feature will be
aligned with respect to this coordinate system.
• p_attributes—Specifies the attributes for the creation of the new import
feature. Please see the section Import Feature Attributes on page 736 for more
information.
Note
From Creo Parametric 2.0 M200 onward, the function
ProImportfeatCreate() imports a JT file to Creo Parametric only
if the license INTF_for_JT is available. If the license is not available
the function returns the error PRO_TK_NO_LICENSE.
Note
An import profile is an XML file with the extension dip (Dex In Profile)
and contains the options that control an import operation. It contains all the
options for the supported 3D import formats. Refer to the Creo Parametric
Help for more information on creation and modification of import profiles.
Note
• The function ProImportfeatureWithProfileCreate()( cannot
create an import feature using an import profile for the STL and VRML
formats. Once a profile is set, it remains valid for the entire session unless it is
reset with another profile.
• From Creo Parametric 2.0 M200 onward, the function
ProImportfeatureWithProfileCreate() imports a JT file to Creo
Parametric only if the license INTF_for_JT is available. If the license is not
available the function returns the error PRO_TK_NO_LICENSE.
For all other file types that are not supported, the function
ProDatumcurveFromfileCreate() returns PRO_TK_INVALID_
TYPE.
• p_csys — Specifies the coordinate system of the part with which you align the
import feature If this is NULL, the function uses the default coordinate system
and the import feature is aligned with respect to this coordinate system.
Note
From Creo Parametric 2.0 M200 onward, the function
ProDatumcurveFromfileCreate() creates a new import JT feature
only if the license INTF_for_JT is available. If the license is not available
the function returns the error PRO_TK_NO_LICENSE.
Allocating ProInterfacedata
Function Introduced:
• ProIntfDataAlloc()
Use the function ProIntfDataAlloc() to allocate memory for the interface
data structure.
Adding Surfaces
Function Introduced:
• ProSurfacedataAlloc()
Use the function ProSurfacedataAlloc() to allocate memory for the
surface data. Once the surface data is initialized, it will be appended to the
interface data.
Note
Set the configuration option intf_in_keep_high_deg_bspl_srfs
to YES to preserve the B-spline surfaces returned by
ProBsplinesrfdataInit() in the ProIntData data structure. If
this configuration option is not set, these surfaces are interpreted as spline
surfaces.
• ProFilsrfdataInit()
Refer to the Geometry Representations on page 2147 appendix for more
information on how to use the above functions.
Surfacedata Contours
The geometric representation of the surface created above is unbounded, that is
the nature of the surface boundaries is determined by its array of contours.
Multiple contours can be used for surfaces with internal voids.
Functions Introduced:
• ProSurfacedataContourArraySet()
• ProContourdataAlloc()
• ProContourdataInit()
• ProContourdataEdgeIdArraySet()
Use the function ProSurfacedataContourArraySet() to set an array of
contours on the surface.
The input arguments of this function are:
• p_surf_data—Specifies the surface data to which the array of contour data is
to be set.
• contour_array—Specifies an array of contours on the surface. The
ProContourdata handle can be obtained by using the following functions
in sequence:
ProContourdataAlloc()
ProContourdataInit()
ProContourdataEdgeIdArraySet()
Adding Edges
Functions Introduced:
• ProEdgedataAlloc()
• ProEdgedataInit()
• ProCurvedataAlloc()
• ProLinedataInit()
• ProArcdataInit()
• ProEllipsedataInit()
Note
PTC recommends that you split the closed loop edge into two or more
continuous edges while specifying the inputs to the function
ProEdgedataInit(). For example, to create a circular edge, instead
of specifying the start angle as 0 and the end angle as 360, split the circular
edge into 2 or more edges. The angular measurements of the split edges
could be 0 to 30 for the first split and 30 to 360 for the second split. The
function ProEdgedataInit() must be called for each split.
Note
Although ProBsplinedataInit() returns B-spline curves, these
curves are interpreted as spline curves in the ProIntData data structure
used by the function ProImportfeatCreate() while creating the
import feature.
The values PRO_TK_BSPL_UNSUITABLE_DEGREE and PRO_TK_
BSPL_NON_STD_END_KNOTS returned by
ProBsplinedataInit() should be treated as warnings. These values
indicate that the geometry finally imported in Creo Parametric is different
from the geometry initially supplied to the function. The geometry is not
rejected by ProBsplinedataInit() and is used to generate the
ProCurvedata data structure.
Adding Quilts
Functions Introduced:
• ProQuiltdataAlloc()
• ProQuiltdataInit()
• ProQuiltdataSurfArraySet()
• ProIntfDataQuiltAppend()
Use the function ProQuiltdataAlloc() to allocate memory to the quilt data
structure.
Adding Datums
Functions Introduced:
• ProDatumdataAlloc()
Use the function ProDatumdataAlloc() to allocate memory to the datum
data structure.
Initializing Datums
• ProDatumdataInit()
• ProDatumCsysdataInit()
• ProDatumCurvedataInit()
• ProDatumPlanedataInit()
• ProDatumdataMemoryFree()
Use the function ProDatumdataInit() to initialize the datum data structure.
The input arguments of this function are:
• datum_id—Specifies a unique identifier of the datum.
• datum_type—Specifies the datum type. The types of datums are:
○ PRO_CSYS
○ PRO_CURVE
○ PRO_DATUM_PLANE
Note
The value PRO_TK_BSPL_MULTI_INNER_KNOTS returned by
ProDatumCurvedataInit() should be treated as a warning. This
value indicates that the geometry finally imported in Creo Parametric is
different from the geometry initially supplied to the function. The
geometry is not rejected by ProDatumCurvedataInit() and is used
to generate the ProCurvedata data structure.
Note
If you are planning to recompile your Creo Parametric TOOLKIT in Creo
Parametric 7.0.0.0, you must set the default value of the enumerated data type
body_use_opt to PRO_IMPORT_BODY_USE_DEFAULT, add_bodies to
0, and body_arr to NULL otherwise the behavior of Creo Parametric may be
unpredictable.
Note
The function ProImportfeatureWithProfileCreate() cannot
create an import feature using an import profile for the STL and VRML
formats.
Note
If the import feature is an open surface, setting attempt_make_solid
to 1 does not make the import feature of solid type.
Note
When attempt_make_solid is set to 0, the value assigned to cut_
or_add is not considered.
Note
When redefining the attributes of the import feature, Creo Parametric will
not use the value of the attribute join_surfaces, because this attribute
is valid only for import feature creation.
Note
ProImportfeatRedefine() does not support ATB-enabled features.
It returns PRO_TK_BAD_CONTEXT while accessing such features.
Note
• If the link of a TIM or ATB-enabled feature is broken, you cannot re-
establish the link or update the part that is independent and has lost its
association with the reference model.
• The geometry added or removed from the model before the update is
added or removed from the TIM after the update.
• The geometry added or removed from the model before the update is
added or removed from the TIM after the update.
• ATB incorrectly identifies the imported geometry as up-to-date based on
the old reference file which is found before the updated reference file.
This chapter describes the customized plot driver functions supported by Creo
Parametric TOOLKIT .
745
Using the Plot Driver Functionality
The functions described in this section enable you to plot the two-dimensional
entities, such as, lines, circles, arcs, and text that are used by Creo Parametric.
These functions enable you to implement a customized plot format in Creo
Parametric. You can do this by providing your own function for plotting each of
the two-dimensional entities and then binding them to Creo Parametric so that it
uses these functions to plot the contents of the object currently in session.
The following restrictions apply while using this functionality:
1. You cannot plot shaded models using these functions. This applies to plots of
models generated from 3D model modes as well as shaded drawing views.
2. The contents of OLE objects embedded in drawings will not be included in the
output.
3. Text contents provided to the implementation may include special Creo
Parametric symbols. The Creo Parametric TOOLKIT application must
transform this text into something that can be displayed correctly in the output
format.
4. User defined plotter formats registered using the functions listed here will not
be accessible from the Creo Parametric Print dialog box, or from the Creo
Parametric TOOLKIT function ProPrintExecute(). In order to export
the model with this custom plot driver, you must use
ProPlotdriverExecute().
Functions Introduced:
• ProPlotdriverInterfaceCreate()
• ProPlotdriverInterfaceobjectsSet()
• ProPlotdriverArcPlot()
• ProPlotdriverArcfunctionSet()
• ProPlotdriverCirclePlot()
• ProPlotdriverCirclefunctionSet()
• ProPlotdriverLinePlot()
• ProPlotdriverLinefunctionSet()
• ProPlotdriverPolygonPlot()
• ProPlotdriverPolygonfunctionSet()
• ProPlotdriverPolylinePlot()
• ProPlotdriverPolylinefunctionSet()
• ProPlotdriverTextPlot()
This chapter describes how to work with non-Creo parts and assemblies using
Creo Unite.
Note
Do not use space as the first character in file names for models.
Superseded Functions
The following table lists the functions that have been superseded and the
corresponding new functions to support multi-CAD assemblies:
Superseded Function New Function
ProIntfimportModelWithOptionsCreate ProIntfimportModelWithOptionsMdl-
() nameCreate()
ProMdlDependenciesList() ProMdlDependenciesDataList()
ProMdlNameGet() ProMdlMdlnameGet()
ProMdlfileCopy() ProMdlfileMdlnameCopy()
ProMdlBackup() ProMdlnameBackup()
ProMdlCopy() ProMdlnameCopy()
ProMdlInit() ProMdlnameInit()
ProMdlRename() ProMdlnameRename()
ProMdlRetrieve() ProMdlnameRetrieve()
ProMdlDataGet() ProMdlOriginGet()
ProMdlMdlnameGet()
ProMdlExtensionGet()
ProFilenameParse()
ProMdlDeclaredList() ProMdlDeclaredDataList()
ProMfgCreate() ProMfgMdlCreate()
ProReferenceOriginalownernameGet() ProReferenceOriginalownerMdlname-
Get()
ProReferenceOwnernameGet() ProReferenceOwnerMdlnameGet()
ProSolidShrinkwrapCreate() ProSolidShrinkwrapMdlnameCreate()
ProAssemblySimprepRetrieve() ProAssemblySimprepMdlnameRetrieve
()
ProBoundaryBoxSimprepRetrieve() ProSimprepMdlnameRetrieve()
ProDefaultEnvelopeSimprepRetrieve() ProSimprepMdlnameRetrieve()
ProGraphicsSimprepRetrieve() ProSimprepMdlnameRetrieve()
ProSimprepMdlnameRetrieve()
Note
This function is not
supported for non-
Creo models and Creo
assemblies with
mixed content.
ProMdlDeclaredDataList 80 characters
()
ProMfgMdlCreate() 31 characters
ProIntfimportModelWi- 31 characters In Creo Parametric 3.0,
thOptionsMdlnameCreate this API is functionally
() similar to the superseded
function
ProIntfimportMo
delWithOption
sCreate(). It returns
an error for model names
longer than 31 characters.
ProIntfSliceFileWithOp- 31 characters
tionsMdlnameExport()
Pro2dImportMdlname- 31 characters
Create()
ProProductviewFormat- 31 characters
tedMdlnameExport()
ProObjectwindowMdlna- 80 characters
meCreate()
ProAccessorywindow- 80 characters
WithTreeMdlnameCreate
()
ProBarewindowMdlna- 80 characters
meCreate()
ProATBMdlnameVerify() 80 characters
ProAsmcompMdlname- 31 characters
CreateCopy()
ProCavitylayoutLea- 31 characters In Creo Parametric 3.0,
derMdlnameSet() this API is functionally
similar to the superseded
function
ProCavitylayout
Note
When you save a copy, the non-Creo models are saved as Creo models.
This chapter describes the basic principles of programmatic feature creation that
are applicable to all types of feature that can be created in the current version of
Creo Parametric TOOLKIT. This chapter also describes how to extract the
internal description of features of those feature types in the Creo Parametric
TOOLKIT database, and how to modify them.
Feature Creation
There are many kinds of feature in Creo Parametric and each one can contain a
large and varied amount of information. All this information must be complete
and consistent before a feature can be used in regeneration and give rise to
geometry. This raises several problems for programmatic creation of features
through an API.
It is necessary to build all the information needed by a feature into a data structure
before passing that whole structure to Creo Parametric. However, the object-
oriented style of Creo Parametric TOOLKIT requires that such a data structure is
not directly visible to the application. Therefore, Creo Parametric TOOLKIT
defines this structure as a workspace object that can be allocated and filled using
special functions for that purpose, but that is not part of the Creo Parametric
database.
There are three steps in creating a feature in Creo Parametric:
1. Allocate the workspace structure.
2. Fill the workspace structure.
3. Pass the workspace structure to Creo Parametric to create the feature.
Note
Because Creo Parametric TOOLKIT is the same toolkit used to build Creo
Parametric, improvements to Creo Parametric may require the definition of
the element tree to be altered for some features. PTC will make every
effort to maintain upward compatibility. However, there may be cases
where the old application will not run with the new version of Creo
Parametric, unless you rewrite the application's code to conform to the new
definition of the feature tree.
The feature element tree for the Fixture Setup feature defined in the header file
ProFixture.h is deprecated. Use the element tree defined in the header file
ProMfgFeatFixture.h instead. For more information, please refer to the
section Manufacturing Holemaking Step on page 1578.
The first two elements are common to all features. The root of a feature tree is
always a compound element with the identifier PRO_E_FEATURE_TREE. The
first element within the root always specifies the feature type; it is a single-valued
element with the element ID PRO_E_FEAT_TYPE, whose value is one of the
integers in the list of feature types in ProFeatType.h. In this case, the element
table shows that the value must be PRO_FEAT_FIXSETUP.
The next element in a fixture setup gives the name of the feature; its element ID is
PRO_E_FEAT_NAME, and it contains a single wide string. The element tree
shows that this is optional.
Note
From Pro/ENGINEER Wildfire 2.0 onwards, elements with multiple values,
for example, PRO_E_FIXT_COMPONENTS, are deprecated. In subsequent
releases, these elements will be superseded by reference elements or single-
value, type-specific elements. Use the function
ProElementValuetypeGet() to determine the type of the element.
The functions in this section access the contents of a ProValue through the
ProValueData object.
The function ProValueDataGet()provides the ProValueData object for
the specified ProValue object.
The function ProValueAlloc() allocates a new ProValue in memory, as
the first step towards setting the value of a feature element.
The function ProValueDataSet() sets the value of a ProValue object
using the contents of a ProValueData structure.
The function ProValueFree() frees a ProValue object in memory.
The function ProWstringArrayToValueArray() provides a convenient
way to allocate and fill an array of ProValue structures that all contain wide
string values.
The function ProValueArrayToWstringArray() performs the reverse
translation, allocating and filling an array of wide strings. In both cases, the output
array is an expandable array, so you should release the memory using
ProArrayFree().
The transform member of the union ProValueData is declared as double**. It must
be passed a double[][] (a ProMatrix structure). The utility functions
ProValuedataTransformGet() and
ProValuedataTransformSet() specify how to assign the
ProValueData in order to access the matrix correctly.
Feature Elements
Functions introduced:
• ProElementAlloc()
• ProElementFree()
• ProElementIdGet()
• ProElementIdSet()
• ProElemIdStringGet()
• ProElemtreeElementGet()
• ProElemtreeElementAdd()
• ProElemtreeElementRemove()
• ProElementIsMultival()
• ProElementIsCompound()
• ProElementIsArray()
• ProElementChildrenGet()
• ProElementChildrenSet()
• ProElementArraySet()
• ProElementArrayGet()
• ProElementArrayCount()
• ProElemtreeElementVisit()
The function ProElementAlloc() allocates a new ProElement object with
a specified element ID. The function ProElementFree() frees a
ProElement.
The function ProElementIdGet() outputs the element ID of a specified
ProElement. The function ProElementIdSet() enables you to set the
element ID of a specified ProElement.
The function ProElemIdStringGet() returns the string representation of the
specified element ID.
The function ProElemtreeElementGet() enables you to read a specified
element in a tree. The inputs are the root of the tree, specified as a ProElement
object, and the path to the element, specified by a ProElempath. The output is a
ProElement object.
Note
Use the function ProElementDecimalsSet() before using the function
ProElementDoubleSet() to ensure that the double value is assigned
with the correct number of decimal places.
The following functions show how options are constructed and set for
ProElement*Get() functions.
The function ProElementwstroptsAlloc() allocates the options used to
retrieve wide string values.
The function ProElementwstroptsExpressionsSet() sets the options
to retrieve values as expressions or relations, if they exist, instead of a string
representations of the actual value. This function is applicable to nominal double
and integer value elements only.
The function ProElementwstroptsSignoptionsSet() sets the options
to retrieve values with special sign formatting (+/-), etc. This function is
applicable to nominal double and integer value elements only.
The function ProElementwstroptsFree() frees the options used to retrieve
string values.
The function ProElementWstringGet() returns a string value
representation for the element. The function allows, optionally, a
ProElementWstrOpts() structure that dictates the format of the output. Use
the function ProWstringFree() to free this string.
The function ProElementWstringSet() sets the string value for the
element.
The function ProElementStringGet() returns an ASCII string value
representation for the element. The inputs for this function are the element and
options for how the string should be obtained. The output is the ASCII string
value. Free this string using ProStringFree().
The function ProElementStringSet() sets the ASCII string value for the
element.
Note
The ProSelection object input to ProFeatureCreate(), and all the
ProSelection objects assigned to elements in the feature element tree,
must all refer to the same root assembly.
The second input argument is the ProElement object that forms the root of the
feature element tree.
The next two inputs are an array of creation options and the size of the array. The
creation options specify what ProFeatureCreate()should do if the element
tree is incomplete, or if the geometry cannot be constructed. Each option is one of
the following values of the enumerated type ProFeatureCreateOptions:
• PRO_FEAT_CR_NO_OPTS—No options were chosen.
• PRO_FEAT_CR_DEFINE_MISS_ELEMS—Prompt the user to complete the
feature if any elements are missing.
• PRO_FEAT_CR_INCOMPLETE_FEAT—Create the feature, even if some
Feature Inquiry
Functions introduced:
• ProFeatureElemtreeCreate()
• ProFeatureElemtreeExtract()
• ProFeatureElemtreeFree()
• ProFeatureElemValueGet()
• ProFeatureElemValuesGet()
• ProFeatureElemDimensionIdGet()
• ProFeatureElemIsVisible()
• ProFeatureIsIncomplete()
• ProFeatureElemIsIncomplete()
This section describes how to extract the element tree from a feature and analyze
it. To find out how to inquire about the feature as a whole and its role in the
owning solid, see the section Feature Inquiry on page 785.in the Core: Features on
page 131.
The function ProFeatureElemtreeCreate() creates a copy of the feature
element tree that describes the contents of a specified feature in the Creo
Parametric database. It is applicable only to those feature types that can be created
using ProFeatureCreate() (as described in Overview of Feature Creation
on page 765). The tree can then be analyzed using the read-access functions, such
as ProElement*Get(),ProElement*Visit(), and
ProElementArrayCount() described in the sections Feature Elements on
page 774 and Feature Element Paths on page 772.
Feature Redefine
Function introduced:
To Redefine a Feature
1. Call ProFeatureElemtreeExtract() to get a copy of the element tree.
2. Analyze and modify the tree using functions ProFeatureElem*(),
ProElement*(), and ProElempath*()
3. Call ProFeatureRedefine() to replace the old element tree with the
new one.
The XML Schema defines the structure and data type for XML. The element
name is compared with the element specified in schema for validation. In the case
of compound elements, validation is done for name, order and number of the sub-
Curve Collection
<PRO_E_STD_CURVE_COLLECTION_APPL type="collection">
<PRO_XML_COLLECTION type="curve">
<PRO_XML_COLLECTION_INSTRUCTIONS type="array">
<PRO_XML_COLLECTION_INSTRUCTION type="compound">
<PRO_XML_COLLECTION_INSTRUCTION_TYPE type="int">105</PRO_XML_COLLECTION_
INSTRUCTION_TYPE>
<PRO_XML_CRVCOLL_REFS type="array">
<PRO_XML_CRVCOLL_REF type="selection">
<PRO_XML_REFERENCE type="reference">
<PRO_XML_REFERENCE_OWNER type="owner">CRV_COLLECTION_PART.prt
</PRO_XML_REFERENCE_OWNER>
<PRO_XML_REFERENCE_ID type="id">703</PRO_XML_REFERENCE_ID>
<PRO_XML_REFERENCE_TYPE type="protype">PRO_QUILT</PRO_XML_REFERENCE_TYPE>
</PRO_XML_REFERENCE>
</PRO_XML_CRVCOLL_REF>
<PRO_XML_CRVCOLL_REF type="selection">
<PRO_XML_REFERENCE type="reference">
<PRO_XML_REFERENCE_OWNER type="owner">CRV_COLLECTION_PART.prt
</PRO_XML_REFERENCE_OWNER>
<PRO_XML_REFERENCE_ID type="id">679</PRO_XML_REFERENCE_ID>
<PRO_XML_REFERENCE_TYPE type="protype">PRO_EDGE</PRO_XML_REFERENCE_TYPE>
</PRO_XML_REFERENCE>
</PRO_XML_CRVCOLL_REF>
</PRO_XML_CRVCOLL_REFS>
</PRO_XML_COLLECTION_INSTRUCTION>
</PRO_XML_COLLECTION_INSTRUCTIONS>
</PRO_XML_COLLECTION>
</PRO_E_STD_CURVE_COLLECTION_APPL>
Surface Collection
<PRO_E_STD_SURF_COLLECTION_APPL type="collection">
<PRO_XML_COLLECTION type="surface">
<PRO_XML_COLLECTION_INSTRUCTIONS type="array">
Pointer Element
Most pointer elements are written with their value appearing as “**”. Elements
with this value type are not supported by ProElemtreeFromXMLCreate()
(this element is not added to the created element tree.) The most common pointer
element of this type is the Creo Parametric sketch element PRO_E_SKETCHER.
<PRO_E_SKETCHER type="pointer">**</PRO_E_SKETCHER>
Compound Element
A compound element represents a collection of different types of sub-elements.
Following is an example in XML format.
<PRO_E_REV_ANGLE type="compound">
<PRO_E_REV_ANGLE_FROM type="compound">
<PRO_E_REV_ANGLE_FROM_TYPE type="int">262144</PRO_E_REV_ANGLE_FROM_TYPE>
<PRO_E_REV_ANGLE_FROM_VAL type="double">0.00</PRO_E_REV_ANGLE_FROM_VAL>
<PRO_E_REV_ANGLE_FROM_REF type="selection" />
Array Element
An array element represents a collection of elements of the same type. Following
is an example of an array of PRO_E_RNDCH_RADIUS elements in XML format.
<PRO_E_RNDCH_RADII type="array">
<PRO_E_RNDCH_RADIUS type="compound">
<PRO_E_STD_POINT_COLLECTION_APPL type="selection">
<PRO_XML_REFERENCE type="reference">
<PRO_XML_REFERENCE_OWNER type="owner">K01_X_COLLECTION_PART.prt
</PRO_XML_REFERENCE_OWNER>
<PRO_XML_REFERENCE_ID type="id">1268</PRO_XML_REFERENCE_ID>
<PRO_XML_REFERENCE_TYPE type="protype">PRO_CRV_END</PRO_XML_REFERENCE_TYPE>
</PRO_XML_REFERENCE>
</PRO_E_STD_POINT_COLLECTION_APPL>
<PRO_E_RNDCH_LEG1 type="compound">
<PRO_E_RNDCH_LEG_TYPE type="int">1</PRO_E_RNDCH_LEG_TYPE>
<PRO_E_RNDCH_LEG_VALUE type="double">36.00</PRO_E_RNDCH_LEG_VALUE>
<PRO_E_RNDCH_REFERENCE_EDGE type="selection" />
<PRO_E_RNDCH_REFERENCE_POINT type="selection" />
</PRO_E_RNDCH_LEG1>
<PRO_E_RNDCH_LEG2 type="compound">
<PRO_E_RNDCH_LEG_TYPE type="int">0</PRO_E_RNDCH_LEG_TYPE>
<PRO_E_RNDCH_LEG_VALUE type="double">0.00</PRO_E_RNDCH_LEG_VALUE>
<PRO_E_RNDCH_REFERENCE_EDGE type="selection" />
<PRO_E_RNDCH_REFERENCE_POINT type="selection" />
</PRO_E_RNDCH_LEG2>
</PRO_E_RNDCH_RADIUS>
<PRO_E_RNDCH_RADIUS type="compound">
<PRO_E_STD_POINT_COLLECTION_APPL type="selection">
<PRO_XML_REFERENCE type="reference">
<PRO_XML_REFERENCE_OWNER type="owner">K01_X_COLLECTION_PART.prt
</PRO_XML_REFERENCE_OWNER>
<PRO_XML_REFERENCE_ID type="id">1268</PRO_XML_REFERENCE_ID>
<PRO_XML_REFERENCE_TYPE type="protype">PRO_CRV_START</PRO_XML_REFERENCE_TYPE>
</PRO_XML_REFERENCE>
</PRO_E_STD_POINT_COLLECTION_APPL>
<PRO_E_RNDCH_LEG1 type="compound">
<PRO_E_RNDCH_LEG_TYPE type="int">1</PRO_E_RNDCH_LEG_TYPE>
<PRO_E_RNDCH_LEG_VALUE type="double">55.39</PRO_E_RNDCH_LEG_VALUE>
<PRO_E_RNDCH_REFERENCE_EDGE type="selection" />
Multivalued Element
The multi-valued element represents an array of same types of elements. The
difference between the array and multi-valued elements lies in the Creo
Parametric TOOLKIT handling of these elements. In the XML format both the
representations are similar.
<PRO_E_SHELL_SRF type="multivalue">
<PRO_E_SHELL_SRF_MULTI type="selection">
<PRO_XML_REFERENCE type="reference">
<PRO_XML_REFERENCE_OWNER type="owner">X_SHELL_REDEF.prt</PRO_XML_REFERENCE_OWNER>
<PRO_XML_REFERENCE_ID type="id">76</PRO_XML_REFERENCE_ID>
<PRO_XML_REFERENCE_TYPE type="protype">PRO_SURFACE</PRO_XML_REFERENCE_TYPE>
</PRO_XML_REFERENCE>
</PRO_E_SHELL_SRF_MULTI>
<PRO_E_SHELL_SRF_MULTI type="selection">
<PRO_XML_REFERENCE type="reference">
<PRO_XML_REFERENCE_OWNER type="owner">X_SHELL_REDEF.prt</PRO_XML_REFERENCE_OWNER>
<PRO_XML_REFERENCE_ID type="id">72</PRO_XML_REFERENCE_ID>
<PRO_XML_REFERENCE_TYPE type="protype">PRO_SURFACE</PRO_XML_REFERENCE_TYPE>
</PRO_XML_REFERENCE>
</PRO_E_SHELL_SRF_MULTI>
<PRO_E_SHELL_SRF_MULTI type="selection">
<PRO_XML_REFERENCE type="reference">
<PRO_XML_REFERENCE_OWNER type="owner">X_SHELL_REDEF.prt</PRO_XML_REFERENCE_OWNER>
<PRO_XML_REFERENCE_ID type="id">68</PRO_XML_REFERENCE_ID>
<PRO_XML_REFERENCE_TYPE type="protype">PRO_SURFACE</PRO_XML_REFERENCE_TYPE>
</PRO_XML_REFERENCE>
</PRO_E_SHELL_SRF_MULTI>
</PRO_E_SHELL_SRF>
799
Overview of Reference Objects
Reference objects are an alternative method for representing a geometric reference
in Creo Parametric. Geometric references are usually represented using the
ProSelection structure. Since ProSelection is designed as the result of
an interactively selected item, it lacks some capabilities to provide complete
meaning as a geometric reference.
The opaque handle ProReference provides complete functionality for
geometric referencing including functions to access multiple or missing
references.
Reading References
Functions Introduced:
• ProReferenceStatusGet()
• ProReferenceIsLocalcopy()
• ProReferenceTypeGet()
• ProReferenceIdGet()
• ProReferenceOwnerGet()
• ProReferenceOwnerMdlnameGet()
• ProReferenceOriginaltypeGet()
• ProReferenceOriginalidGet()
• ProReferenceOriginalownerGet()
• ProReferenceOriginalownerMdlnameGet()
• ProReferenceAsmcomppathGet()
• ProReferenceParamsGet()
• ProReferencePointGet()
• ProReferenceToSelection()
• ProSelectionToReference()
• ProReferencearrayToSelections()
• ProSelectionarrayFree()
• ProSelectionarrayToReferences()
• ProReferenceFree()
• ProReferencearrayFree()
Note
Reference status is highly dependent on the model state at the time the
reference was obtained. References obtained from a feature via
ProFeatureElemtreeExtract() may become “Missing” or “Not
found” due to changes in the geometry applied later in the feature list. To
obtain the reference status for a given reference as it is seen by a feature,
use ProInsertModeActivate() to revert the model to the state just
after that feature is created.
Note
References obtained from a feature that removes a geometric empty body
can have a “Warning” or “Invalid” state. The statuses of the references are
not stored in the models and are thrown at run time during feature creation,
redefinition, or regeneration.
Modifying References
Functions Introduced:
• ProReferenceAlloc()
• ProReferenceSet()
• ProReferenceParamsSet()
• ProReferencePointSet()
The function ProReferenceAlloc() allocates a reference handle.
The function ProReferenceSet() sets the referenced model item and
optionally component path for the reference handle.
The function ProReferenceParamsSet() sets the u-v parameters of a
reference handle.
The function ProReferencePointSet() sets the selected point of a
reference handle.
See Creo Parametric online help on datum planes for a detailed description of the
valid constraint combinations and references.
Examples
The following table specifies the element tree constraints for this type.
Placement Constraint Placement Constraint Valid Value
Element Member Elements
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_OFFS
(Constraint 1) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_SURFACE (Plane)
PRO_E_DTMPLN_CONSTR_ Offset value
REF_OFFSET
The following table specifies the element tree constraints for this type.
Placement Constraint Placement Constraint Valid Value
Element Member Elements
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_E_DTMPLN_OFF_CSYS_
(Constraint 1) TYPE OFFSET
PRO_E_DTMPLN_CONSTR_REF PRO_CSYS
The following table specifies the element tree constraints for this type.
Placement Constraint Placement Constraint Valid Value
Element Member Elements
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_THRU_CSYS_XY
(Constraint 1) TYPE or PRO_DTMPLN_THRU_CSYS_
YZ or PRO_DTMPLN_THRU_
CSYS_ZX
PRO_E_DTMPLN_CONSTR_REF PRO_CSYS
The following table specifies the element tree constraints for this type.
Placement Constraint Placement Constraint Valid Value
Element Member Elements
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_PRL
(Constraint 1) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_SURFACE (Plane)
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_THRU
(Constraint 2) TYPE
The following table specifies the element tree constraints for this type.
Placement Constraint Placement Constraint Valid Value
Element Member Elements
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_THRU
(Constraint 1) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_AXIS, PRO_CURVE
(STRAIGHT), PRO_EDGE
(STRAIGHT)
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_ANG
(Constraint 2) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_SURFACE (Plane),
PRO_E_DTMPLN_CONSTR_ Angle value (-360.0,
REF_ANGLE 360.0)
The following table specifies the element tree constraints for this type.
Placement Constraint Placement Constraint Valid Value
Element Member Elements
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_THRU
(Constraint 1) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_AXIS, PRO_CURVE
(STRAIGHT), PRO_EDGE
(STRAIGHT, PRO_
SURFACE(CYLINDER/CONE/
SPHERE/TORUS/General
surface of revolution)
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_THRU
(Constraint 2) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_POINT, PRO_EDGE_
START, PRO_EDGE_END, PRO_
CRV_START, PRO_CRV_END
The following table specifies the element tree constraints for this type.
Placement Constraint Placement Constraint Valid Value
Element Member Elements
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_MIDPLN
(Constraint 1) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_SURFACE (Plane)
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_PRL
(Constraint 2) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_SURFACE (Plane)
The following table specifies the element tree constraints for this type.
Placement Constraint Placement Constraint Valid Value
Element Member Elements
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_MIDPLN
(Constraint 1) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_SURFACE (Plane)
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_BISECTOR1
(Constraint 2) TYPE
PRO_DTMPLN_BISECTOR2
PRO_E_DTMPLN_CONSTR_REF PRO_SURFACE (Plane)
The following table specifies the element tree constraints for this type.
Placement Constraint Placement Constraint Valid Value
Element Member Elements
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_MIDPLN
(Constraint 1) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_SURFACE (Plane)
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_MIDPLN
(Constraint 2) TYPE
PRO_EDGE_START,
PRO_EDGE_END,
PRO_CRV_START,
PRO_CRV_END
The following table specifies the element tree constraints for this type.
Placement Constraint Placement Constraint Valid Value
Element Member Elements
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_THRU
(Constraint 1) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_POINT, PRO_EDGE_
START,
PRO_EDGE_END,
PRO_CRV_START,PRO_CRV_
END
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_THRU
(Constraint 2) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_POINT, PRO_EDGE_
START, PRO_EDGE_END, PRO_
CRV_START, PRO_CRV_END
PRO_E_DTMPLN_CONSTRAINT PRO_E_DTMPLN_CONSTR_ PRO_DTMPLN_THRU
(Constraint 3) TYPE
PRO_E_DTMPLN_CONSTR_REF PRO_POINT, PRO_EDGE_
START, PRO_EDGE_END, PRO_
CRV_START, PRO_CRV_END
The following table specifies the element tree to use fit elements.
Fit Compound Element Fit Member Elements Valid Value
PRO_E_DTMPLN_FIT PRO_E_DTMPLN_FIT _TYPE PRO_DTMPLN_FIT_PART
PRO_E_DTMPLN_FIT _REF PRO_PART
Note
The sketched datum point is obsolete. Hence, the element tree for sketched
datum point defined in the header file ProDtmPnt.h is no longer supported.
The sketched datum points are consolidated within the sketched feature as a
geometry point. The geometry entities within the sketched feature generate the
corresponding datum entities. To create new sketched datum points, you must
use the element tree for sketched datum curves defined in the header file
ProDtmCrv.h. Refer to the section Sketched Datum Curves on page 848,
for more information on sketched datum curves.
The following figure shows the element tree for a sketched datum point.
See the chapter Element Trees: Sketched Features on page 1004 for techniques
that must be used to create a sketched feature, like a sketched datum point.
Feature Elements
The following table describes the elements of the element tree for sketched datum
points:
Feature Elements
The following table describes the elements of the element tree for the field datum
points:
Element ID Element Name Data Type Valid Value
PRO_E_FEATURE_ Feature Type PRO_VALUE_TYPE_ PRO_FEAT_DATUM_
TYPE INT POINT
PRO_E_DPOINT_TYPE Datum Point Type PRO_VALUE_TYPE_ PRO_DPOINT_
INT TYPE_FIELD
Feature Elements
The following table describes the elements in the element tree for datum points.
Feature Elements
The following table describes the elements of the element tree for datum points.
Constraint References
Valid values for the PRO_E_DPOINT_DIM_CONSTR_REF dimension references
are as following:
• Curve—SEL_3D_CURVE, SEL_3D_CABLE, SEL_CRV_PNT, SEL_IGES_
WF
• Edge—SEL_3D_EDG, SEL_EDG_PNT
• Axis—SEL_3D_AXIS
• Coordinate system—SEL_3D_CSYS
• Vertex—SEL_3D_VERT or SEL_CURVE_END
• Surface—SEL_3D_SRF, SEL_SRF_PNT, SEL_3D_SRF_LIST
• Coordinate system axis—SEL_3D_CSYS_AXIS
• Datum Point—SEL_3D_PNT
Constraint Type
Valid values for PRO_E_DPOINT_DIM_CONSTR_TYPE are as follows:
• PRO_DTMPNT_CONSTR_TYPE_OFFSET
• PRO_DTMPNT_CONSTR_TYPE_LENGTH
• PRO_DTMPNT_CONSTR_TYPE_RATIO
Examples
The following tables provide valid values for Constraint 2. You can create a point
at an offset using values from one of the following tables for Constraint 2.
OR
Placement Constraint Reference Element Valid Value
Element
PRO_E_DPOINT_PLA_ PRO_E_DPOINT_PLA_ Surface
CONSTRAINT (Constraint 2) CONSTR_REF
PRO_E_DPOINT_PLA_ PRO_DTMPNT_CONSTR_TYPE_
CONSTR_TYPE NORMAL
PRO_E_DPOINT_PLA_ Not applicable
CONSTR_VAL
OR
Placement Constraint Reference Element Valid Value
Element
PRO_E_DPOINT_PLA_ PRO_E_DPOINT_PLA_ Csys Axis
CONSTRAINT (Constraint 2) CONSTR_REF
PRO_E_DPOINT_PLA_ PRO_DTMPNT_CONSTR_TYPE_
CONSTR_TYPE PARALLEL
PRO_E_DPOINT_PLA_ Not applicable
CONSTR_VAL
OR
Placement Constraint Reference Element Valid Value
Element
PRO_E_DPOINT_PLA_ PRO_E_DPOINT_PLA_ Csys
CONSTRAINT (Constraint 2) CONSTR_REF
PRO_E_DPOINT_PLA_ PRO_DTMPNT_CONSTR_TYPE_
CONSTR_TYPE CARTESIAN or
PRO_DTMPNT_CONSTR_TYPE_
CYLINDRICAL or PRO_
DTMPNT_CONSTR_TYPE_
SPHERICAL
PRO_E_DPOINT_PLA_ Not applicable
CONSTR_VAL
Note
If more than one intersections exist, the point is created at the intersection
nearest to the curve reference parameter value.
The following tables provide valid values for constraint 2. You can create a point
on curve using values from one of the following tables for constraint 2.
Use the following values for constraint 2 if the length of curve from the start point
or the end point is used to locate the point.
Placement Constraint Reference Element Valid Value
Element
PRO_E_DPOINT_DIM_ PRO_E_DPOINT_DIM_ Curve (Use the same curve as used
CONSTRAINT (Constraint 2) CONSTR_REF in Constraint 1)
PRO_E_DPOINT_DIM_ PRO_DTMPNT_CONSTR_TYPE_
CONSTR_TYPE LENGTH or PRO_DTMPNT_
CONSTR_TYPE_LENGTH_END
PRO_E_DPOINT_DIM_ Length value (from curve start
CONSTR_VAL point or end point)
Use the following values for constraint 2 if the ratio of distance from the start
point or the end point is used to locate the point.
Placement Constraint Reference Element Valid Value
Element
PRO_E_DPOINT_DIM_ PRO_E_DPOINT_DIM_ Curve (Use the same curve as used
CONSTRAINT (Constraint 2) CONSTR_REF in contrarian 1)
PRO_E_DPOINT_DIM_ PRO_DTMPNT_CONSTR_TYPE_
CONSTR_TYPE RATIO or PRO_DTMPNT_
CONSTR_TYPE_RATIO_END
PRO_E_DPOINT_DIM_ Ratio value (from curve start or
CONSTR_VAL end)
Use the following values for constraint 2 if the offset surface is used to locate the
point on curve.
OR
Placement Constraint Reference Element Valid Value
Element
PRO_E_DPOINT_PLA_ PRO_E_DPOINT_PLA_ Surface
CONSTRAINT (Constraint 2) CONSTR_REF
PRO_E_DPOINT_PLA_ PRO_DTMPNT_CONSTR_TYPE_
CONSTR_TYPE ON
PRO_E_DPOINT_PLA_ Not applicable
CONSTR_VAL
Examples
Note
For the Normal type of datum axis creation, the reference provided for the first
constraint that is, PRO_DTMAXIS_CONSTR_TYPE_THRU should not lie on
the reference provided for second constraint that is PRO_DTMAXIS_
CONSTR_TYPE_NORMAL.
Note
To determine whether a coordinate system is a default coordinate system,
query the number of PRO_E_CSYS_ORIGIN_CONSTRS and the number of
PRO_E_CSYS_ORIENTMOVES. If both of the numbers are zero, then Csys is
the default coordinate system.
The following elements are common for all the cases of the coordinate system
feature creation:
Element ID Value Comments
PRO_E_FEATURE_TYPE PRO_FEAT_CSYS Mandatory
PRO_E_STD_FEATURE_NAME Feature Name Optional
Examples
This chapter describes how to create, redefine, and access data for datum curve
features using Creo Parametric TOOLKIT. The chapter Element Trees: Datum
Features on page 804 provides necessary background for creating features; we
recommend you read that material first.
847
Datum Curve Features
The element trees for datum curve features supported in Creo Parametric
TOOLKIT are documented in the header file ProDtmCrv.h. Each datum feature
type has a unique element tree containing the parameters and references necessary
to create that type of feature.
Not all datum curve types are currently supported in Creo Parametric TOOLKIT.
Some curve feature types are yet to be converted into element tree form. Other
curve types have element trees with data that is not yet accessible through Creo
Parametric TOOLKIT.
Common Elements
All datum curve features support the following common elements.
Element ID Value
PRO_E_FEATURE_TYPE PRO_FEAT_CURVE
PRO_E_CURVE_TYPE As listed in ProCurveType. This element identifies
the subtree to be used.
PRO_E_STD_FEATURE_NAME Wstring (feature name)
This chapter describes how to construct and access the element tree for some Edit
Menu features in Creo Parametric TOOLKIT. It also shows how to redefine,
create and access the properties of these features.
853
Mirror Feature
The Mirror feature creates a copy of the selected geometry by mirroring about a
mirror plane. Creo Parametric TOOLKIT supports Mirror features where the
initial selection of items was of geometry (curves and /or surfaces).Creo
Parametric TOOLKIT does not support the element tree for Mirror features where
the initial selection was of one or more features. Mirror features made from other
features will have subfeatures listed under the Mirror entry in the Creo Parametric
model tree, while Mirror features made from geometry will not include any sub-
features.
Mirroring
where,
1—Specifies original entity such as plane, surfaces, axes or parts.
2—Specifies mirror line (mirror plane).
3—Specifies the copy of the original entity.
The Mirror element tree contains no non-standard element types. The following
list details special information about some of the elements in this tree:
• PRO_E_FEATURE_TYPE—Must be PRO_FEAT_SRF_MDL.
• PRO_E_STD_FEATURE_NAME—Specifies the feature name.
• PRO_E_MIRROR_REF_ITEMS—A multivalued element that includes the
mirror item reference. It must be references of the following types: PRO_
CURVE, PRO_COMP_CRV, PRO_AXIS, PRO_QUILT, PRO_PART.
• PRO_E_MIRROR_REF_PLANE—Specifies the mirror plane and is a
mandatory element and must be PRO_DATUM_PLANE or PRO_SURFACE
(only planar surfaces).
• PRO_E_COPY_NO_COPY—Specifies the option to create a copy or not and is
a mandatory element. It can have either of the following values:
○ PRO_MIRROR_KEEP_ORIGINAL
○ PRO_MIRROR_HIDE_ORIGINAL
Move Feature
The Move feature can be used to create and move a copy of an existing surface or
curve rather than moving the original. Using the Move feature saves time because
it enables you to create simple patterns with surfaces and curves.
The Move feature is available for both part and assembly modes. You can apply
this feature in different modes:
• Translate mode—Translate surfaces, datum curves, and axes in a direction
perpendicular to a reference plane. You can also translate along a linear edge,
axis, perpendicular to plane, two points, or coordinate system.
• Rotate mode—Rotate surfaces, datum curves, and axes about an existing axis,
linear edge, perpendicular to plane, two points, or coordinate system.
To move a surface or curve relative to its original position, define a move
reference. In the Translate mode, the move reference is typically a plane or edge
that is perpendicular to the direction in which you want to translate the moved
feature. In Rotate mode, the move reference is typically an axis or edge about
which you want to rotate the moved feature. In this mode, the moved object
moves about the direction reference.
Following types of move references exists in Translate mode:
• Linear curve
• Linear edge
• Axis
• Axis of a coordinate system
Note
The direction reference is always perpendicular to the direction in which
you want to move.
Note
You can flip the direction of the move in the Rotate mode.
Creo Parametric TOOLKIT supports Move features where the initial selection of
items was of geometry (curves and /or surfaces). Creo Parametric TOOLKIT does
not support the element tree for Move features where the initial selection was of
one or more features. Move features made from other features will have
subfeatures listed under the Move entry in the Creo Parametric model tree, while
Move features made from geometry will not include any sub-features.
The move element tree contains no non-standard element types. The following list
details special information about some of the elements in this tree:
• PRO_E_FEATURE_TYPE—Must be PRO_FEAT_SRF_MDL.
• PRO_E_STD_FEATURE_NAME—Specifies the feature name.
• PRO_E_SRF_TR_SURF_SELECTION—Specifies whether to move or copy
the selected geometry. Curves, composite curves, axes and quilts are eligible
to for this element.
• PRO_E_MOVE_NO_COPY—Specifies an option to control copy of the
original geometry.
• Provides the ability to transform geometry with or without a copy.
• PRO_E_MOVE_WITH_COPY—Specifies whether to hide or display the
original geometry after copy.
• PRO_E_MOVE_GEOM_TRF_ARR—Contains an array of movements applied
to the selected entities. This can be a combination of translational and
rotational transformations.
• PRO_E_DIRECTION_COMPOUND—Specifies the direction reference for the
translation or rotational movement. This compound element is a standard Creo
Parametric element subtree and is described in ProDirection.h.
Fill Feature
Creo Parametric TOOLKIT enables you to create and redefine flat surface features
called fill features. A fill feature is simply a flat surface feature that is defined by
its boundaries and is used to thicken surfaces.
Note
All fill features must consist of a flat, closed-loop sketched feature.
The fill element tree contains no non-standard element types. The following list
details special information about some of the elements in this tree:
• PRO_E_FEATURE_TYPE—It should be PRO_FEAT_DATUM_SURF.
• PRO_E_FEATURE_FORM—Specifies feature form and should be of PRO_
FLAT type only.
• PRO_E_STD_SECTION—Specifies a sketched section. Refer to the section
Creating Features Containing Sections on page 1006 for details on how to
create features that contain sketched sections.
The element tree for the Fill feature also supports access to Flat Sheetmetal Wall
features. Refer to the chapter Production Applications: Sheetmetal on page 1310
for element details.
Intersect Feature
Refer to the section Intersect Datum Curves on page 849 in the chapter Element
Trees: Datum Curves on page 847 for details about this feature.
Merge Feature
The Merge Feature is created by merging two or more selected quilts. In case of
more than two quilts, every input quilt should have at least one of its edges
adjacent to the edge of any other input quilt, and the surfaces must not overlap.
You can merge a number of input quilts by joining two adjacent quilts one after
another, that is, by aligning the edges of one quilt to the edges of the other. The
first quilt selected for the merge operation becomes the primary reference quilt.
The second adjacent quilt is joined to the primary quilt, forming the main body or
a newly formed primary quilt. The third quilt is, then, joined to the main body.
This process continues until all the input quilts are joined together.
You can also select the input quilts for the merge operation using region selection.
In case of region selection, only box selection is available and the quilts to be
selected must be completely inside the region. The selected quilts are ordered
based on the feature number of the quilt’s parent feature.
You can merge only two quilts by intersecting. You can specify which portion of
the quilt to include in the merge feature by selecting the sides for each of the
quilts.
A merged quilt consists of two or more original quilts that provide the geometry,
and a merge feature that contains the information for the surface joining. The
input quilts are retained, even if you delete the Merge feature.
Note
In Assembly mode, you can merge only assembly-level quilts. If you want to
create component-level merge features, you must first activate the component,
and then merge the quilts in the component. Surface merge is available only
for surfaces that belong to the same component.
The following list details special information about the elements in this tree:
• PRO_E_FEATURE_TYPE—Specifies the feature type; must be PRO_FEAT_
DATUM_QUILT.
• PRO_E_SRF_MRG_QUILT_ARR—Specifies an array of the following
compound element. The array must have atleast two elements to create the
Merge feature.
○ PRO_E_SRF_MRG_QUILT_CMPD—Specifies the set of references and
sides to be used for the merge operation. The set consists of the following
two elements:
◆ PRO_E_SRF_MRG_QUILT_REF—Specifies the quilt of the type
PRO_QUILT selected for the merge operation. This is a mandatory
element.
◆ PRO_E_SRF_MRG_QUILT_SIDE—Specifies the side of the selected
quilt that should be included in the merge feature in case of
intersecting quilts. This element is ignored when the quilt array PRO_
E_SRF_MRG_QUILT_ARR contains more than two elements.
• PRO_E_SRF_MRG_TYPE—Specifies the merge type and can have following
merge type options:
○ PRO_SRF_MRG_JOIN—For joining quilts.
○ PRO_SRF_MRG_INTSCT—For merging two quilts at the intersection.
This is the default option.
The merge type must be PRO_SRF_MRG_JOIN when the quilt array PRO_
E_SRF_MRG_QUILT_ARR contains more than two elements.
• PRO_E_STD_FEATURE_NAME—Specifies the merge feature name.
Pattern Feature
Refer to the chapter Element Trees: Patterns on page 963 for details about this
feature.
Wrap Feature
Refer to the section Wrap Datum Curves on page 850 in the chapter Element
Trees: Datum Curves on page 847 for details about this feature.
The trim element tree contains no non-standard element types. The following list
details special information about some of the elements in this tree:
• PRO_E_FEATURE_TYPE—It should be PRO_FEAT_CUT.
• PRO_E_FEATURE_FORM—Specifies feature form and is a mandatory
element applicable only for use quilt and thin types. It has PRO_USE_SURFS
and PRO_NOTYPE as their valid values.
• PRO_E_SRF_TRIM_TYPE—Specifies trim type identity and is a non-
redefinable mandatory element. The trim type determines the required
Offset Feature
Refer to the section Offset Datum Curves on page 850 in the chapter Element
Trees: Datum Curves on page 847 for details about this feature.
Thicken Feature
The Thicken feature is available for both part and for assembly modes and can be
defined with respect to coordinate systems, axes, and surfaces. You can apply this
feature to check the thickness of a part in the model. This feature also forms the
basis for model analysis and thickness check. The result of the thickness analysis
is as follows:
• The thickness is between the design range.
• The thickness exceeds the maximum design value.
• The thickness is below the minimum design value.
The Thicken element tree contains no non-standard element types. The following
list details special information about some of the elements in this tree:
• PRO_E_FEATURE_TYPE—PRO_FEAT_PROTRUSION or PRO_FEAT_
CUT.
• PRO_E_FEATURE_FORM—Must be PRO_E_SURFS.
Note
If you change the offset method for a particular feature, all children of this
feature fail.
Solidify Feature
Solidify features are used to create complex geometry that would be difficult to
create using regular solid features.
Solidify features use predetermined surface features or quilt geometry and convert
them into solid geometry. You can use Solidify features to add, remove, or replace
solid material in the designs. The quilt geometry provides greater flexibility within
the design, and the Solidify feature enables the designer to transform the geometry
to meet design needs.
The attributes of the Solidify feature are:
• Patch—Replaces a portion of the surface with quilt. The quilt boundary must
lie on the surface.
• Add Material—Fills a quilt with solid material.
• Remove Material—Removes material from inside or outside a quilt.
Note
add material and remove material attributes are always available. Patch is
available only if the selected quilt boundaries lie on solid geometry.
The solidify element tree contains no non-standard element types. The following
list details special information about some of the elements in this tree:
• PRO_E_STD_FEATURE_TYPE—Must be one of the following types—
○ Protrusion—PRO_FEAT_PROTRUSION
○ Cut—PRO_FEAT_CUT
○ Patch—PRO_FEAT_PATCH
• PRO_E_FEATURE_FORM— Must be of the following types:
○ PRO_USE_SURFS— Represents protrusion (PRO_FEAT_PROTRUSION)
and cut (PRO_FEAT_CUT).
○ PRO_NOTYPE— Represents patch (PRO_FEAT_PATCH).
• PRO_E_PATCH_QUILT— Specifies the reference quilt and is a mandatory
element. A valid quilt or surface satisfies any of the following contexts:
Quilt is open
• CASE 1
○ All boundaries lie on solid surfaces.
○ Solid geometry does not intersect quilt.
○ Solid geometry and quilt form closed empty volume.
• CASE 2
○ All boundaries lie on solid surfaces.
○ Solid geometry intersects quilt.
• CASE 3
○ All one sided edges are inside solid geometry.
• CASE 4
○ All one sided edges are outside solid geometry.
Remove Feature
Use the Remove feature to remove geometry without disturbing the feature
history. It allows you to modify existing imported geometry or delete some
geometry from a part (not necessarily formed by a single feature) without having
to reroute and refine a number of features.
You can select one of the following items for removal:
• Surfaces, surface sets, or intent surfaces
• One closed loop chain of one-sided edges from a single quilt
Geometry removal results in neighboring surfaces being extended or trimmed to
converge and close the void. The extended geometry is attached as a solid or
surface to the selected surfaces. In case of a one-sided edge chain selected as the
reference, the extended geometry can be attached to the selected quilt, or created
as a new quilt.
You can exclude contours in multi-contour surfaces from being removed. For
periodic features separated by artificial edges (for example, extruded cylinders or
revolved features), the feature internally references all the surfaces, even if one of
them is selected.
The Remove element tree contains standard element types. The following list
details special information about the elements in this tree:
• PRO_E_FEATURE_TYPE—Specifies the feature type and should always
have the value PRO_FEAT_RM_SURF.
• PRO_E_STD_FEATURE_NAME—Specifies the name of the remove feature.
• PRO_E_RM_SURF_REF_TYPE—Specifies the reference type. This element
decides the type of references that you can select for removal. It can have the
following values:
○ PRO_RM_SURF_SRF_REF—Specifies that surface sets can be selected as
the references.
○ PRO_RM_SURF_CRV_REF—Specifies that a chain of one-sided edges
can be selected as the reference.
PRO_E_STD_EXCL_CNTRS_ONE_CNTR
Attach Feature
The Attach feature allows you to attach open quilts to solid or quilt geometry, if
the open quilt does not intersect the solid or quilt geometry. You can select an
open quilt and attach it to another quilt or solid geometry within the same model.
You can also select two open quilts within the same model which do not intersect
and attach them.
This feature is useful in case of UDF placement when the geometry of the UDF
does not intersect the part.
This chapter describes the basic principles of creating a tweak surface replacement
feature. The chapter Element Trees: Principles of Feature Creation on page 764 is
a necessary background for this topic. Read that chapter before this one.
The following table describes the elements in the element tree for the surface
replacement feature.
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT PRO_FEAT_REPLACE_SURF
PRO_E_STD_REPLACED_SURF PRO_VALUE_TYPE_ The surface to be removed
SELECTION
PRO_E_STD_REPLACEMENT_ PRO_VALUE_TYPE_ The replacement surface
SURF SELECTION
PRO_E_STD_KEEP_QUILT PRO_VALUE_TYPE_INT Specifies whether to keep the quilt
To keep the replacement surface (datum plane or quilt), add the element PRO_E_
STD_KEEP_QUILT and set its value to 1. If you omit the element, or its value is
0, the replacement surface will be consumed by the replacement feature.
After you have defined the element tree, call the function
ProFeatureCreate() to create the tweak surface replacement feature.
This chapter introduces and shows how to create, redefine and access draft
features.
Note
It is an option for the earlier versions of Pro/ENGINEER.
Note
It is applicable for features created using Pro/ENGINEER version prior to
Pro/ENGINEER Wildfire2.0 Release and is available only when PRO_E_
DRAFT_TWEAK_OR_INTERSEC is equal to PRO_DRAFT_UI_
INTERSECT.
Creating a Draft
Function Introduced:
Redefining a Draft
Function Introduced:
• ProFeatureRedefine()
Use the function ProFeatureRedefine() to redefine a Draft based on the
changes made in the element tree. For more information about
ProFeatureRedefine(), refer to the section Feature Redefine on page 786
of the chapter Element Trees: Principles of Feature Creation on page 764.
Accessing a Draft
Function Introduced:
• ProFeatureElemtreeExtract()
Use the function ProFeatureElemtreeExtract() to create a feature
element tree that describes the contents of a Draft and to retrieve the element tree
description of a Draft. For more information about
ProFeatureElemtreeExtract() refer to the section Feature Inquiry on
page 785 of the chapter Element Trees: Principles of Feature Creation on page
764.
Creating a VPDD
Function Introduced:
• ProFeatureCreate()
Use the function ProFeatureCreate() to create a VPDD based on element
tree input. For more information about ProFeatureCreate(), refer to the
section Overview of Feature Creation on page 765 of the chapter Element Trees:
Principles of Feature Creation on page 764.
Redefining a VPDD
Function Introduced:
• ProFeatureRedefine()
Use the function ProFeatureRedefine() to redefine a VPDD based on the
changes made in the element tree. For more information about
ProFeatureRedefine(), refer to the section Feature Redefine on page 786
of the chapter Element Trees: Principles of Feature Creation on page 764.
Accessing a VPDD
Function Introduced:
This chapter describes how to create, redefine, and query round and chamfer
features through element trees and element tree functions. The section Overview
of Feature Creation on page 765 of the chapter Element Trees: Principles of
Feature Creation on page 764 provides a necessary background information for
this topic.
See the Part Modeling module in Creo Parametric for further details on round and
chamfer feature creation.
The following sections describe the procedure for accessing the chamfers and
round features in detail.
901
Round Feature
Feature Element Tree for Round Feature
The element tree for a round is documented in the header file ProRound.h, and
has a simple structure. The following figure demonstrates the feature element tree
structure:
PRO_E_RNDCH_TRANSITIONS
The following list details special information about the elements in this tree:
Note
During the creation of rounds, the options D1 x D2 Conic and Normal to
spine cannot be used together. Due to this restriction, the existing rounds
with their conic type option set as PRO_ROUND_CONIC_INDEPENDENT
and with the round creation method set to PRO_ROUND_NORMAL_TO_
SPINE are reset to PRO_ROUND_ROLLING_BALL when the round is
redefined. Therefor, for the conic type option PRO_ROUND_CONIC_
INDEPENDENT you must specify the round creation method as PRO_
ROUND_ROLLING_BALL.
Note
Ambiguity occurs in round features when other placement locations exist
for the round set. The ambiguity condition occurs when two surfaces
intersect in multiple locations.
Creating a Round
Function Introduced:
• ProFeatureCreate()
Use the function ProFeatureCreate() to create a round based on element
tree input. For more information about ProFeatureCreate(), refer to the
section Overview of Feature Creation on page 765 in the Element Trees:
Principles of Feature Creation on page 764 chapter.
Note
In Pro/ENGINEER Wildfire 2.0,
• Pro/TOOLKIT does not support the temporary geometry required for user-
specified ambiguity and non-default transitions. Therefore, these elements
cannot be used for creation of new rounds.
• If transitions are specified in the input element tree, a round feature with the
default transition will be created.
• In case of ambiguous situation (where more than one valid solutions exist, e.g.
for surface-surface round - surfaces having discontinuous edges of
intersection), a round feature with default solution will be created.
Redefining a Round
Function Introduced:
• ProFeatureRedefine()
Use the function ProFeatureRedefine() to redefine a round based on the
changes made in the element tree. For more information about
ProFeatureRedefine(), refer to the section Feature Redefine on page 786
in the Element Trees: Principles of Feature Creation on page 764 chapter.
Accessing a Round
Function Introduced:
• ProFeatureElemtreeExtract()
Use the function ProFeatureElemtreeExtract() to create a feature
element tree that describes the contents of a round and to retrieve the element tree
description of a round. For more information about
ProFeatureElemtreeExtract(), refer to the section Feature Inquiry on
page 785 in the Element Trees: Principles of Feature Creation on page 764
chapter.
Note
The element PRO_E_MODRND_CLOSEGEOM is applicable only if the
element PRO_E_MODRND_ATTACH has the value PRO_MODRND_
DONOT_ATTACH_GEOM, meaning that the rounds are recreated as
new surfaces or quilts.
Chamfer Feature
Feature Element Tree for Chamfer Feature
The element tree for a chamfer is documented in the header file ProChamfer.h,
and has a simple structure. The following figure demonstrates the feature element
tree structure:
PRO_E_RNDCH_TRANSITIONS
The following list details special information about some of the elements in this
tree:
Note
The chamfer set can contain ambiguity if the chamfer set contains chamfer
pieces that co-exist and can be placed in various locations in the selected
references and in part geometry.
Note
In Pro/ENGINEER Wildfire 2.0,
1. Pro/TOOLKIT does not support the temporary geometry required for user-
specified ambiguity and non-default transitions. Therefore, these elements
cannot be used for creation of new chamfers.
2. If transitions are specified in the input element tree, a chamfer feature with the
default transition will be created.
3. In case of ambiguous situation (where more than one valid solutions exist, e.g.
for surface-surface chamfer - surfaces having discontinuous edges of
intersection), a chamfer feature with default solution will be created.
Redefining a Chamfer
Function Introduced:
• ProFeatureRedefine()
Use the function ProFeatureRedefine() to redefine a Chamfer based on the
changes made in the element tree. For more information about
ProFeatureRedefine(), refer to the section Feature Redefine on page 786
in the Element Trees: Principles of Feature Creation on page 764 chapter.
Accessing a Chamfer
Function Introduced:
• ProFeatureElemtreeExtract()
Use the function ProFeatureElemtreeExtract() to create a feature
element tree that describes the contents of a Chamfer and to retrieve the element
tree description of a Chamfer. For more information about
ProFeatureElemtreeExtract(), refer to the section Feature Inquiry on
page 785 in the Element Trees: Principles of Feature Creation on page 764
chapter.
This chapter describes the programmatic creation of Hole features using the Creo
Parametric TOOLKIT include file ProHole.h.
We recommend you read the section, Overview of Feature Creation on page 765
in the chapter, Element Trees: Principles of Feature Creation on page 764 It
provides the necessary background for creating features using Creo Parametric
TOOLKIT.
Note
All angle elements are specified in degrees.
You can use Intent Datums such as Intent Point, Intent Axis, and Intent Plane for
hole placement in parts.
Lightweight holes can be created only in parts and not in assemblies. You can
toggle between a lightweight and regular hole, only in case of simple holes and
not in sketched, standard, or custom holes.
Note
This option is not available for the
following hole depth options:
○ To Next
○ Through Until
• PRO_BODY_USE_SELECTED—Hole is
created on the selected bodies.
PRO_E_BODY_SELECT PRO_VALUE_ Specifies the reference to the selected body.
TYPE_ Mandatory if the value of PRO_E_BODY_USE is
SELECTION set to PRO_BODY_USE_SELECTED.
Note
Multiple references are allowed.
Straight Hole
The following table shows elements for creating a straight hole.
Straight Hole Elements
Element Status
PRO_E_HLE_TYPE_NEW PRO_HLE_NEW_TYPE_STRAIGHT
PRO_E_HLE_MAKE_LIGHTWT Mandatory
PRO_E_DIAMETER Mandatory
PRO_E_HOLE_STD_DEPTH Mandatory
PRO_E_HOLE_DEPTH_TO Mandatory
PRO_E_HOLE_DEPTH_TO_TYPE Mandatory
PRO_E_EXT_DEPTH_TO_VALUE Depends on PRO_E_HOLE_DEPTH_TO_TYPE
PRO_E_EXT_DEPTH_TO_REF Depends on PRO_E_HOLE_DEPTH_TO_TYPE
PRO_E_HOLE_DEPTH_FROM Mandatory
PRO_E_HOLE_DEPTH_FROM_TYPE Mandatory
PRO_E_EXT_DEPTH_FROM_VALUE Depends on PRO_E_HOLE_DEPTH_FROM_TYPE
PRO_E_EXT_DEPTH_FROM_REF Depends on PRO_E_HOLE_DEPTH_FROM_TYPE
PRO_E_HLE_TOP_CLEARANCE Mandatory
Figure Straight Hole with Linear Placement on page 940 shows code for creating
a straight hole with linear placement and through-all depth. The hole has 100 units
diameter, and is placed 100 units distant from the first reference and 200 units
distance from the second.
The function ProDemoHoleCreate() builds the complete element tree
serially. First add all elements required for the straight hole under the PRO_E_
HLE_COM element. Then enter the placement elements under the PRO_E_HLE_
PLACEMENT element. Use element PRO_E_HOLE_DEPTH_TO_TYPE to specify
the hole as 'through all'.
The function UserElemtreeElementAdd() is a small utility that add an
element to the element tree.
Custom Hole
The following table outlines the elements for creating a custom hole.
Custom Hole Elements
Element Status
PRO_E_HLE_TYPE_NEW Mandatory
PRO_E_HLE_ADD_CBORE Mandatory
PRO_E_HLE_ADD_CSINK Mandatory
PRO_E_HLE_HOLEDIAM Mandatory
PRO_E_HLE_DRILLANGLE Required for variable depth hole
PRO_E_HLE_CSINKANGLE Required for countersink option
PRO_E_HLE_CBOREDEPTH Required for counterbore option
PRO_E_HLE_CBOREDIAM Required for counterbore option
PRO_E_HLE_CSINKDIAM Required for countersink option
/* Blind*/
PRO_HLE_STRGHT_BLIND_DEPTH
/*Thru Next*/
PRO_HLE_STRGHT_THRU_NEXT_DEPTH
/* Thru All*/
PRO_HLE_STRGHT_THRU_ALL_DEPTH
/*Thru Until*/
PRO_HLE_STRGHT_THRU_UNTIL_DEPTH
/*Upto Ref*/
PRO_HLE_STRGHT_UPTO_REF_DEPTH
/*None */
PRO_HLE_STRGHT_NONE_DEPTH
/*Symmetric*/
PRO_HLE_STRGHT_SYM_DEPT
PRO_E_EXT_DEPTH_FROM_VALUE Stores variable depth double value when PRO_E_
HOLE_DEPTH_FROM_TYPE equals PRO_HLE_
STRGHT_BLIND_DEPTH.
PRO_E_EXT_DEPTH_FROM_REF Stores the upto reference when PRO_E_HOLE_DEPTH_
FROM_TYPE is not PRO_HLE_STRGHT_BLIND_
DEPTH and is not PRO_HLE_STRGHT_NONE_DEPTH
and not PRO_HLE_STRGHT_SYM_DEPTH.
Sketch Hole
PRO_E_HLE_TYPE_NEW set to PRO_HLE_NEW_TYPE_SKETCH
PRO_E_HLE_SKETCHER 2D Sketcher Element
PRO_E_HLE_CRDIR_FLIP Direction of creation, type ProHleCrDir
Standard Hole
PRO_E_HLE_TYPE_NEW set to PRO_HLE_NEW_TYPE_STANDARD
/* Close Fit */
PRO_HLE_CLOSE_FIT
/* Free Fit */
PRO_HLE_FREE_FIT
/* Medium Fit */
PRO_HLE_MEDIUM_FIT
PRO_E_HLE_SCREWSIZE Integer Stores an index to the screw_size list. Selecting a
thread series, choose one of the .hol files. From that file
screw-size list is extracted.
PRO_E_HLE_DEPTH It is an option for different type drill depth, that is, of
type ProHleStdDepType.
Note
PRO_HLE_STD_VAR_DEPTH is not available for
clearance hole (not for PRO_E_HLE_STAN_TYPE
== PRO_HLE_CLEARANCE_TYPE).
PRO_E_STD_HOLE_DEPTH_REF Stores reference, when PRO_E_HLE_DEPTH equals
toPRO_HLE_STD_THRU_UNTIL_DEPTH
or PRO_HLE_STD_TO_SEL_DEPTH
PRO_E_HLE_HOLEDIAM Stores Drill Diameter double value. See Hole Diameter.
PRO_E_HLE_DRILLANGLE Stores Drill Angle. Double value. Available for tapped
hole with variable depth (when PRO_E_HLE_STAN_
TYPE equals PRO_HLE_TAPPED_TYPE and PRO_E_
HLE_DEPTH is PRO_HLE_STD_VAR_DEPTH.
PRO_E_HLE_ADD_THREAD Option for adding thread. Available for tapped hole
(when PRO_E_HLE_STAN_TYPEequals PRO_HLE_
TAPPED_TYPE). Type ProHleAddThrdFlag. For
add thread option it's value is PRO_HLE_ADD_
THREAD. For no thread option, the value is PRO_HLE_
NO_THREAD.
PRO_E_HLE_THRD_DEPTH Option for different type of thread depth. Type
ProHleThrdDepType. Available for tapped hole with
thread option, when PRO_E_HLE_STAN_TYPE equals
PRO_HLE_TAPPED_TYPE and PRO_E_HLE_ADD_
THREAD equals PRO_HLE_ADD_THREAD.
Note
All options are available in both assembly & part
level.
PRO_E_HLE_THRDDEPTH Stores thread depth. Double value. Available for tapped
hole, with variable thread option. That is, when PRO_E_
HLE_STAN_TYPE equals PRO_HLE_TAPPED_TYPE,
PRO_E_HLE_ADD_THREAD equals PRO_HLE_ADD_
THREAD, and PRO_E_HLE_THRD_DEPTHequals
PRO_HLE_VARIABLE_THREAD.
PRO_E_HLE_ADD_CBORE Option for Counter Bore. Type
ProHleAddCboreFlag. For counter bore it's value is
PRO_HLE_ADD_CBORE. For the no counterbore option,
set to PRO_HLE_NO_CBORE.
PRO_E_HLE_CBOREDEPTH Stores counterbore depth. Double value. Available for
counterbore option, when PRO_E_HLE_ADD_CBORE
equals PRO_HLE_ADD_CBORE.
PRO_E_HLE_CBOREDIAM Stores counterbore diameter. Double value. Available for
counterbore option, when PRO_E_HLE_ADD_CBORE is
PRO_HLE_ADD_CBORE.
PRO_E_HLE_ADD_CSINK It is an option for Counter Sink. Type
ProHleAddCsinkFlag. For counter sink it's value is
PRO_HLE_ADD_CSINK. For no countersink, set to
PRO_HLE_NO_CSINK.
PRO_E_HLE_CSINKANGLE Stores counter sink angle. Double value. Available for
countersink option, when PRO_E_HLE_ADD_CSINK
equals PRO_HLE_ADD_CSINK.
PRO_E_HLE_CSINKDIAM Stores countersink diameter. Double value. Available for
countersink option, when PRO_E_HLE_ADD_CSINK
PRO_HLE_ADD_CSINK.
PRO_E_HLE_DRILLDEPTH Stores drill depth double value. Available for tapped
hole, with variable depth option. That is, when PRO_E_
Hole Placement
The elements discussed in the following sections specify how to place a hole in
relation to the model geometry. The reference entity elements are carried as
selection objects, and the other elements carrying actual values of distances,
offsets or angles.
Creo Parametric TOOLKIT supports the following types of hole placement:
• Linear Hole on a Plane on page 951
• Radial Hole on Plane with Radial Dimensioning on page 952
• Radial Hole on Plane with Diameter Dimensioning on page 953
• Radial Hole on Plane with Linear Dimensioning on page 953
• Radial Hole on Cone or Cylinder on page 953
• Coaxial Hole with Axis as Primary Reference on page 954
• Coaxial Hole with Primary Reference not Axis on page 954
• Onpoint Hole with Primary Reference as a Point on Surface on page 954
• Onpoint Hole with Primary Reference as Datum Point on page 954
• Onpoint Hole with Primary Reference as Datum Point with Orientation
References on page 955
• Hole with Primary Reference as Sketch on page 955
Miscellaneous Information
The following sections discuss important issues relating to hole feature creation.
Hole Diameter
The drill diameter PRO_E_HLE_HOLEDIAM, as required for the Standard Type
of holes, must be smaller than the thread diameter calculated from the .hol file
for the threaded hole. As specified in the *.hol files, the thread diameter is the
element corresponding to BASIC_DIAM column and the selected screw size row
in the table, as specified in the selected .hol file. If the PRO_E_HLE_
HOLEDIAM is not smaller than the thread diameter, the ProFeatureCreate()
function fails and returns a PRO_TK_GENERAL_ERROR.
Follow these steps to enter the proper value for PRO_E_HLE_HOLEDIAM:
1. Determine the values to pass from the Creo Parametric user interface to the
following elements:
• PRO_E_HLE_THRDSERIS. Note that UNC corresponds to 0, UNF to 1,
and ISO to 2. These values change if you create a local .hol file.
• PRO_E_HLE_SCREWSIZE (the values start with zero).
2. From the Creo Parametric User Interface, set the options to be passed to the
elements PRO_E_HLE_THRDSERIS and PRO_E_HLE_SCREWSIZE. For
example, ISO with M1X25 or UNC with 1-64.
3. Observe the value hole diameter in the dialog box. The dialog box appears
grayed out unless you set the configuration option hole_diameter_
override to yes.
4. The value thus obtained for the hole diameter should be greater than the value
defined for element PRO_E_HLE_HOLEDIAM.
Hole-specific Functions
Functions Introduced:
Note
The screw size depends on the type of thread. Therefore, before you call the
function ProElementHoleScrewSizeSet() you must ensure that the
thread type is set in the element PRO_E_HLE_THRDSERIS.
Thischapter introduces and shows how to create, redefine and access Shell
features in Creo Parametric TOOLKIT.
The shell element tree contains standard element types. The following list details
special information about the elements in this tree:
• PRO_E_FEATURE_TYPE—Specifies the feature type and should have the
value PRO_FEAT_SHELL.
• PRO_E_STD_FEATURE_NAME—Specifies the name of the Shell feature.
• PRO_E_BODY—Specifies the body options and is a branch of the general
body options elements defined in the ProBodyOpts.h as follows:
○ PRO_E_BODY_USE—The valid value is PRO_BODY_USE_SELECTED
This chapter describes the element tree structure required to create patterns of
features. The chapter on Element Trees: Principles of Feature Creation on page
764 is a necessary background for this topic. Read that chapter before this one.
963
Introduction
Using Creo Parametric TOOLKIT, you can create patterns of features, including
those not supported by Creo Parametric TOOLKIT feature creation. Consequently,
you can programmatically create patterns of any feature that can be patterned in
Creo Parametric.
The creation and manipulation of patterns use the following Creo Parametric
TOOLKIT objects:
• ProPattern—A structure that contains the type and owner of the pattern,
and an opaque pattern handle
• ProPatternClass—An enumerated type that contains the pattern class,
which specifies either a feature pattern (PRO_FEAT_PATTERN) or a group
pattern (PRO_GROUP_PATTERN)
The procedure for creating a pattern is similar to creating features, in that you
construct an element tree and pass this element tree to Creo Parametric. When you
pass the tree to Creo Parametric, you also specify the feature to be patterned.
The following figure shows a part of the element tree for patterns. All elements
are described in detail in the following sections.
Dimension Patterns
If the pattern type is PRO_GENPAT_DIM_DRIVEN, the element tree must
include information about the dimensions used to drive the pattern. You must
specify this information for each direction in which the feature is to be patterned.
PRO_PAT_VALUE
_DRIVEN
PRO_E_GENPAT_DIR_ Variation value PRO_VALUE_TYPE_
VAR_VALUE (increment) DOUBLE
PRO_E_GENPAT_ Relation Application (PRO_
RELATION_EDIT VALUE_TYPE
_POINTER)
Table Patterns
If the pattern type is PRO_GENPAT_TABLE_DRIVEN, your element tree must
contain the table-driven dimensions and table information (variation in
dimensions for each instance). The following figure shows the elements of the
Table pattern:
Fill Patterns
A fill pattern controls the pattern by filling an area with pattern members. You can
select a grid to define this area.
If the pattern type in your element tree is PRO_GENPAT_FILL_DRIVEN, the
element tree must contain information about the grid and pattern members. The
following figure shows the elements of the Fill pattern:
Direction Patterns
A direction pattern adds pattern members in one or two selected directions.
If the pattern type in the element tree is PRO_GENPAT_DIR_DRIVEN, the
element tree must contain the information about the two directions and the pattern
members.
The following figure shows the elements of a direction pattern:
Curve Patterns
A curve pattern creates instances of a feature along a sketched curve or a datum
curve.
If the pattern type in your element tree is PRO_GENPAT_CRV_DRIVEN, the
element tree must contain information about the curve and the pattern members.
Point Patterns
A point pattern creates a pattern by placing a pattern member at a particular point.
The following figure shows the elements of a point pattern:
Pattern Features
The compound element PRO_E_PAT_APPLICATIONS contains elements for
pattern applications. You can create a NC sequence using the elements under the
compound element PRO_E_PAT_MFG_TOOL_PATH. You can view the various
parameters of a pattern using the Pattern Recognition feature elements under the
compound element PRO_E_PAT_GPRF.
Note
The functionality to select the manufacturing order for each pattern
member is currently not supported through Creo Parametric TOOLKIT.
For more information on the geometry pattern recognition, refer to the Creo
Parametric help.
Note
Inspection of Fill, Axis, and Directional patterns is not supported via the
element tree in Pro/ENGINEER Wildfire 2.0.
ProPatternElemtreeCreate() returns PRO_TK_NOT_
IMPLEMENTED for fill patterns.
987
Overview
A section is a parametric two-dimensional model used to define the shape of
three-dimensional features in parts and assemblies. When using Creo Parametric
interactively, you create a section using Sketcher mode. In a Creo Parametric
TOOLKIT application, you can create sections completely programmatically
using the functions described in this section.
Sections fall into two types: 2D and 3D. Both types are represented by the object
ProSection (an opaque handle) and manipulated by the same functions.
The difference between the types arises out of the context in which the section is
being used, and affects the requirements for the contents of the section and also of
the feature element tree in which it is placed when creating a sketched feature.
Put simply, a 2D section is self-contained, whereas a 3D section contains
references to 3D geometry in a parent part or assembly.
You can use Intent Datums such Intent Axis, Intent Point, Intent Plane, and Intent
Coordinate System as references for sketcher dimensions. You can use Intent
Point and Intent Axis to create sections using projections.
In a Creo Parametric TOOLKIT application, you can work with a section either in
an Intent Manager or a non-Intent Manager mode. In the non-Intent Manager
mode, if you make any changes to the section, you must solve and regenerate the
section to apply the changes. On the other hand, in the Intent Manager mode, all
the changes are applied immediately.
You can create section constraints programmatically using the Intent Manager
property. This corresponds to creating sections within the Intent Manager mode in
Creo Parametric.
This chapter is concerned with 2D sections, which are the simplest. The extra
steps required to construct a 3D section are described in the chapter Element
Trees: Sketched Features on page 1004, which follows this one.
ProSection2DAlloc (§ion);
ProStringToWstring (wname, "demo");
ProSectionNameSet (section, wname);
Note
The function call ProSectionActiveSet() makes the Undo and Redo
menu options available in Creo Parametric.
Section Constraints
Functions Introduced:
Note
You must solve the section first by calling the function
ProSectionSolve() to get the section constraints. Because adding or
deleting section entities might invalidate the current list of section constraint
identifiers, you must solve the section again to get the up-to-date list.
If a section has not been fully dimensioned with dimensions created explicitly by
the user, the Sketcher will make assumptions in order to solve the section. If the
Sketcher can assume enough constraints to find a unique solution to the section, it
solves the section successfully.
However, you might want to disable certain Sketcher constraints to have more
control over the way the section is dimensioned and solved. To do this, use the
function ProSectionConstraintDeny() to deny a certain section
constraint.
Note
The function ProSectionConstraintDeny() is not supported for
sections that have the Intent Manager property set to ON.
Note
The function ProSectionConstrainCreate() works only if the Intent
Manager property of the specified section is set to ON.
Note
The ProSectionSolve() and ProSectionRegenerate() are not
supported for sections that have the Intent Manager property set to ON.
When there are a lot of section entities, this function dramatically reduces the
amount of time required to solve a section.
Note
The function ProSectionSolveRigid() is not supported for sections
that have the Intent Manager property set to ON.
Epsilon is the tolerance value, which is used to set the proximity for automatic
finding of constraints. Use the function ProSectionEpsilonSet() to set the
value for epsilon. For example, if your section has two lines that differ in length
by 0.5, set the epsilon to a value less than 0.5 to ensure that
ProSectionSolve() does not constrain the lines to be the same length. To get
the current epsilon value for the section, use the function
ProSectionEpsilonGet().
Please note the following important points related to epsilon:
• Epsilon determines the smallest possible entity in a section. If an entity is
smaller than epsilon, then the entity is considered to be a degenerate entity.
Degenerate entity is an entity which cannot be solved. It causes solving and
regenerating of the section to fail. For example, a circle with radius 0 or line
with length 0 are considered as degenerate entities.
• There are many types of constraints, and epsilon has a different meaning for
each type. For example, consider two points. For the constraint PRO_
CONSTRAINT_SAME_POINT, epsilon is the minimum distance between the
two points beyond which the points will be treated as separate points. If the
distance between the two points is within the epsilon value, the two points are
treated as coincident points.
• Creo Parametric has a default value set for epsilon. This value is also used in
the Sketcher user interface.
• If the input geometry is accurate and the user does not want the solver to
change it by adding constraints, then set the value of epsilon to 1E-9.
• If the input geometry is nearly accurate and the user wants the solver to guess
Note
The function ProSectionAutodim() is not supported for sections that
have the Intent Manager property set to ON.
line.type = PRO_2D_LINE;
line.end1[0] = 0.0;
line.end1[1] = 0.0;
line.end2[0] = 10.0;
line.end2[1] = 0.0;
ProSectionEntityAdd (section,
(Pro2dEntdef*)&line, &line_id);
The function ProSectionEntityDelete() enables you to delete a section
entity from the specified section.
The function ProSectionEntityReplace() enables you to replace an
existing entity from the specified section with another entity in the same section.
This functionality enables you to redefine an existing section programmatically.
To use the function ProSectionEntityReplace(), you must first add the
new entity to the section (to get its identifier), then replace the old entity identifier
with the new one.
Construction Entities
Functions Introduced:
• ProSectionEntityIsConstruction()
• ProSectionEntityConstructionSet()
Use the function ProSectionEntityIsConstruction() to determine if
the specified entity is a construction entity. Construction entities are used for
reference and are not used to create feature geometry.
The function ProSectionEntityConstructionSet() sets the specified
entity to be of type construction.
Modifying Entities
Functions Introduced:
Note
The dimensions do not need to be given values to create a complete and
correct section of any form. See the section Solving and Regenerating a
Section on page 992 for a detailed explanation of the assignment of values.
The following code fragment shows how to create a dimension for the length of a
line entity.
int line_id[1], width_dim;
Pro2dPnt point;
ProSectionPointType pnt_type[1];
line_id[0] = 1;
point[0] = 5.0;
point[1] = 1.0;
pnt_type[0] = PRO_ENT_WHOLE;
pnt_types[0] = PRO_ENT_START;
pnt_types[1] = PRO_ENT_END;
entity[0] = arc1_end2;
entity[1] = arc2_end1;
point[0] = 5.0;
point[1] = 5.0;
Error Reporting
Functions Introduced:
• ProSecerrorAlloc()
• ProSecerrorCount()
• ProSecerrorMsgGet()
• ProSecerrorItemGet()
• ProSecerrorAdd()
• ProSecerrorFree()
Both ProSectionSolve() and ProSectionRegenerate() might result
in a list of errors about the entities in the section. These errors are stored in an
opaque structure called ProWSecerror. Before calling one of these functions,
use ProSecerrorAlloc() to allocate memory for an error structure, then pass
the pointer to the error structure to ProSectionSolve() or
ProSectionRegenerate().
You can add application-specific section errors to an error structure. To do this,
call the function ProSecerrorAdd().
The function ProSecerrorCount() tells you how many error messages are
contained in the error structure. The errors themselves are identified by sequential
integers, so you can step through the list. Use the function
ProSecerrorMsgGet() to get the text of each message. Use the function
ProSecerrorAlloc (&errors);
status = ProSectionSolve (section, &errors);
if (status != PRO_TK_NO_ERROR)
{
ProSecerrorCount (&errors, &n_errors);
for (e = 0; e < n_errors; e++)
{
ProSecerrorMsgGet (errors, e, wmsg);
ProWstringToString (msg, wmsg);
ProSecerrorItemGet (errors, e, &ent_id);
printf ("%s: Problem ID, %d\n", msg, ent_id);
}
ProSecerrorFree (&errors);
return (-1);
}
This chapter describes the Creo Parametric TOOLKIT functions that enable you to
create and manipulate sketched features.
Sketched features are features that require one or more sections to completely
define the feature, such as extruded and revolved protrusions.
This chapter outlines the necessary steps to programmatically create sketched
features using Creo Parametric TOOLKIT.
The following table shows the sketched features that are supported by Creo
Parametric TOOLKIT, the names of the corresponding header files which show
their element trees, and the IDs of the elements in each tree which contain the
standard sketch subtree as shown in the above figure Element Tree for Sketched
Features
Feature Header Element containing Subtree
Extrude ProExtrude.h PRO_E_STD_SECTION
Revolve ProRevolve.h PRO_E_STD_SECTION
Rib ProRib.h PRO_E_STD_SECTION
Hole ProHole.h PRO_E_SKETCHER (2D)
PRO_E_STD_SECTION
Fill (Flat datum surface) ProFlatSrf.h PRO_E_STD_SECTION
Draft ProDraft.h PRO_E_STD_SECTION
Sketched datum curve ProDtmCrv.h PRO_E_STD_SECTION
Sketched datum point ProDtmCrv.h PRO_E_STD_SECTION
Simple (constant) sweep ProSweep.h PRO_E_SWEEP_SPINE
PRO_E_SWEEP_SECTION(2D)
Note
For 2D sketched features, you need not specify section references or use
projected 3D entities. Entities in a 2D section are dimensioned to themselves
only. A 2D section does not require any elements in the tree to setup the sketch
plane or the orientation of the sketch. Thus, the PRO_E_STD_SEC_SETUP_
PLANE subtree is not included.
Note
Use geometry entities and not construction entities to define section shapes
that are then used to create solid or surface geometry. To convert the
construction entities to geometry entities, use the function
ProSectionEntityConstructionSet() with the input argument
construction set to PRO_B_FALSE.
This chapter describes how to use the include files ProExtrude.h, and
ProRevolve.h so that you can create extruded and revolved features
programmatically. As Extrude and Revolve features are sketched features; we
recommend you to read the chapters Element Trees: Principles of Feature Creation
on page 764 and Element Trees: Sketched Features on page 1004 before referring
to this chapter.
1013
The Element Tree for Extruded Features
The element tree for extrude features is documented in the header file
ProExtrude.h. The functions ProFeatureTypeGet() and
ProFeatureSubtypeGet() return an Extrude feature. The types of Extrude
features are:
• Protrusion
• Cut
• Surface
• Surface Trim
• Thin Protrusion
• Thin Cut
• Sheetmetal Cut
• Sheetmetal Unattached Wall
Refer to the chapter Production Applications: Sheetmetal on page 1310 for
element details on sheetmetal features.
The extrude element tree contains toggles to switch between different feature
types. An extruded feature tree also contains subtrees supporting the section and
depth parameters for the feature.
You can use Intent Datums such as Intent Point, Intent Axis, and Intent Plane for
depth reference in extrude features.
The following figure shows the element tree for extruded features.
PRO_FEAT_CUT
PRO_FEAT_DATUM_SURFN
PRO_E_FEATURE_FORM Mandatory = PRO_EXTRUDE
PRO_E_EXT_SURF_CUT_SOLID_TYPE Mandatory
Of type ProExtFeatType
= PRO_EXT_FEAT_TYPE_SOLID
= PRO_EXT_FEAT_TYPE_SURFACE
Of type ProExtRemMaterial
= PRO_EXT_MATERIAL_ADD
= PRO_EXT_MATERIAL_REMOVE
Of type ProExtDirection
= PRO_EXT_CR_IN_SIDE_ONE
= PRO_EXT_CR_IN_SIDE_TWO
Elements identified with ‘*’ depend on the definition of the standard section.
These elements are not assigned values until the standard section has been
completely allocated (which typically happens during redefine of the feature).
Values assigned to these elements while the section is not complete are ignored.
The following table lists the elements needed to create extruded features, in
addition to those already discussed:
Feature Type Element ID Comment
Solid PRO_E_EXT_COMP_DRFT_ANG Compound element to specify
draft options.
PRO_E_BODY Compound element
PRO_E_BODY_USE Mandatory. Specifies the body to
add geometry to.
Mandatory if PRO_E_BODY_USE
is set to PRO_BODY_USE_
SELECTED
Note
Only single reference is
allowed.
Thin PRO_E_THICKNESS Mandatory >= 0.0
Of type PRO_VALUE_TYPE_
DOUBLE
PRO_E_BODY Compound element
PRO_E_BODY_USE Mandatory. The valid values for
PRO_BODY_USE_NEW and PRO_
BODY_USE_SELECTED are same
as Solid.
PRO_E_BODY_SELECTED Same as Solid.
PRO_E_FEAT_FORM_IS_THIN Of Type ProExtFeatForm
= PRO_EXT_FEAT_FORM_NO_
THIN for a feature not having
Thin
= PRO_EXT_FEAT_FORM_THIN
for a Thin feature
PRO_E_STD_MATRLSIDE Mandatory
Of type ProExtMatlSide
PRO_E_FEAT_THIN Compound element to specify
options to cap and attach thin
features to solid geometry.
Solid Cut PRO_E_BODY Compound element
PRO_E_BODY_USE Mandatory. Specifies the body
features that cuts the geometry.
Mandatory if PRO_E_BODY_USE
is set to PRO_BODY_USE_
SELECTED
Note
Multiple references are
allowed.
PRO_E_STD_MATRLSIDE Mandatory
Of type ProExtMatlSide
PRO_E_EXT_COMP_DRFT_ANG Draft compound element for
features that do not have feature
= PRO_EXT_FEAT_FORM_NO_
THIN for a feature not having
Thin
= PRO_EXT_FEAT_FORM_THIN
for a Thin feature
Thin Cut PRO_E_BODY Compound element
PRO_E_BODY_USE Same as Solid Cut
PRO_E_BODY_SELECTED Same as Solid Cut
PRO_E_STD_MATRLSIDE Mandatory
Of type ProExtMatlSide
PRO_E_THICKNESS Mandatory >= 0.0
Of type PRO_VALUE_TYPE_
DOUBLE
PRO_E_FEAT_FORM_IS_THIN Of Type ProExtFeatForm
= PRO_EXT_FEAT_FORM_NO_
THIN for a feature not having
Thin
= PRO_EXT_FEAT_FORM_THIN
for a Thin feature
Surface PRO_E_SRF_END_ Mandatory
ATTRIBUTES
Of type ProExtSurfEndAttr
= PRO_EXT_FEAT_FORM_NO_
THIN for a feature not having
Thin
= PRO_EXT_FEAT_FORM_THIN
for a Thin feature
Surface Trim PRO_E_STD_MATRLSIDE Mandatory
Of type ProExtMatlSide
PRO_E_TRIM_QUILT Mandatory
Of type Quilt
PRO_E_TRIM_QLT_SIDE Mandatory
Of typeProExtTrimQltSide
PRO_E_FEAT_FORM_IS_THIN Of Type ProExtFeatForm
= PRO_EXT_FEAT_FORM_NO
_THIN for a feature not having
Thin
= PRO_EXT_FEAT_FORM
_THIN for a Thin feature
PRO_E_EXT_COMP_DRFT_ANG Draft compound element for
features that do not have feature
form as Thin.
Thin Surface Trim PRO_E_STD_MATRLSIDE Mandatory
Of type ProExtMatlSide
PRO_E_THICKNESS Mandatory >= 0.0
Of type PRO_VALUE_TYPE_
DOUBLE
PRO_E_TRIM_QUILT Mandatory
Of type Quilt
PRO_E_TRIM_QLT_SIDE Mandatory
Of type ProExtTrimQltSide
if PRO_E_STD_MATRLSIDE is
“both”. Must be assigned at the
same time as PRO_E_STD_
MATRLSIDE.
PRO_E_FEAT_FORM_IS_THIN Of Type ProExtFeatForm
= PRO_EXT_FEAT_FORM_NO
_THIN for a feature not having
Thin
= PRO_EXT_FEAT_FORM_THIN
for a Thin feature
Conventional Approach
PRO_FEAT_PROTRUSION
PRO_FEAT_CUT
PRO_FEAT_DATUM_SURF
Of type ProRevFeatType
= PRO_REV_FEAT_TYPE_SOLID
= PRO_REV_FEAT_TYPE_SURFACE
Of Type ProRevFeatForm
= PRO_REV_FEAT_FORM_NO
_THIN
= PRO_REV_FEAT_FORM_THIN
Of type ProRevRemMaterial
= PRO_REV_MATERIAL_ADD
= PRO_REV_MATERIAL_REMOVE
Of type ProRevDirection
= PRO_REV_CR_IN_SIDE_ONE
= PRO_REV_CR_IN_SIDE_TWO
Of type ProRevAngleToType
PRO_E_REV_ANGLE_TO_VAL Depends on PRO_E_REV_ANGLE_TO_TYPE
Of type ProRevAngleFromType
PRO_E_REV_ANGLE_FROM_VAL Depends on PRO_E_REV_ANGLE_FROM_TYPE
Elements identified with ‘*’ depend on the definition of the standard section.
These elements may not be assigned values until the standard section has been
completely allocated (which typically happens during redefine of the feature).
Values assigned to these elements while the section is not complete are ignored.
The following table lists the angle types for revolved features along with possible
valid references:
Angle Type Valid Reference Types
PRO_REV_ANGLE_TO_REF PRO_POINT, PRO_EDGE_START, PRO_EDGE_
END, PRO_CRV_START, PRO_CRV_END, PRO_
SURFACE (Plane).
PRO_REV_ANGLE_FROM_REF PRO_POINT, PRO_EDGE_START, PRO_EDGE_
END, PRO_CRV_START, PRO_CRV_END, PRO_
SURFACE (Plane).
The following table lists the elements needed to create revolved features, in
addition to those already discussed:
Feature Type Element ID Comment
Solid PRO_E_BODY Compound element
PRO_E_BODY_USE Mandatory. Specifies the body to
add geometry to.
Mandatory if PRO_E_BODY_USE
is set to PRO_BODY_USE_
SELECTED
Note
Only single reference is
allowed.
Thin PRO_E_STD_MATRLSIDE Mandatory
Of type ProRevMatlSide
PRO_E_BODY Compound element
PRO_E_BODY_USE Same as Solid
PRO_E_BODY_SELECTED Same as Solid
PRO_E_THICKNESS Mandatory >= 0.0
Of type PRO_VALUE_TYPE_
DOUBLE
PRO_E_FEAT_FORM_IS_THIN Of Type ProRevFeatForm
= PRO_REV_FEAT_FORM_NO
_THIN for feature not having
Thin
= PRO_REV_FEAT_FORM_THIN
for a Thin feature
PRO_E_FEAT_THIN Compound element to specify
options to cap and attach thin
features to solid geometry.
Solid Cut PRO_E_BODY Compound element
PRO_E_BODY_USE Mandatory. Specifies the body
features that cuts the geometry.
Mandatory if PRO_E_BODY_USE
is set to PRO_BODY_USE_
SELECTED
Note
Multiple references are
allowed.
PRO_E_STD_MATRLSIDE Mandatory
Of type ProRevMatlSide
PRO_E_FEAT_FORM_IS_THIN Of Type ProRevFeatForm
= PRO_REV_FEAT_FORM_NO
_THIN for feature not having
Thin
= PRO_REV_FEAT_FORM_THIN
for a Thin feature
Thin Cut PRO_E_BODY Compound element
PRO_E_STD_MATRLSIDE Mandatory
Of type ProRevMatlSide
Of type PRO_VALUE_TYPE_
DOUBLE
= PRO_REV_FEAT_FORM_NO_
THIN for feature not having Thin
= PRO_REV_FEAT_FORM_THIN
for a Thin feature
Surface PRO_E_SRF_END_ Mandatory
ATTRIBUTES
Of type ProRevSurfEndAttr
= PRO_REV_FEAT_FORM_NO
_THIN for feature not having
Thin
= PRO_REV_FEAT_FORM_THIN
for a Thin feature
Surface Trim PRO_E_STD_MATRLSIDE Mandatory
Of type ProRevMatlSide
PRO_E_TRIM_QUILT Mandatory
Of type Quilt
PRO_E_TRIM_QLT_SIDE Mandatory
Of type ProRevTrimQltSide
if PRO_E_STD_MATRLSIDE is
“both”. Must be assigned at the
same time as PRO_E_STD_
MATRLSIDE.
PRO_E_FEAT_FORM_IS_THIN Of Type ProRevFeatForm
= PRO_REV_FEAT_FORM_NO
_THIN for feature not having
Thin
= PRO_REV_FEAT_FORM_THIN
for a Thin feature
Thin Surface Trim PRO_E_STD_MATRLSIDE Mandatory
Of type ProRevMatlSide
PRO_E_THICKNESS Mandatory >= 0.0
Of type PRO_VALUE_TYPE_
DOUBLE
PRO_E_TRIM_QUILT Mandatory
Of type Quilt
Of type ProRevTrimQltSide
PRO_E_FEAT_FORM_IS_THIN Of Type ProRevFeatForm
= PRO_REV_FEAT_FORM_NO
_THIN for feature not having
Thin
= PRO_REV_FEAT_FORM_THIN
for a Thin feature
Of Type ProRevFeatForm
Note
Only single reference is allowed.
PRO_E_SKETCHER Sketcher pointer. Used because the standard section
requires selected references not available in an empty
model.
PRO_E_STD_MATRLSIDE* Mandatory if thin
Of type PRO_VALUE_TYPE_DOUBLE
PRO_E_EXT_DEPTH_FROM Compound Element (Extrude only)
PRO_E_EXT_DEPTH_FROM_VAL Depth dimension (of type PRO_VALUE_TYPE_
DOUBLE) (Extrude only)
PRO_E_REV_ANGLE_FROM Compound Element (Revolve only)
(Revolve only)
PRO_E_STD_FEATURE_NAME Default given by application depending on the
feature type. Can be modified by the user.
Elements identified with ‘*’ depend on the definition of the standard section.
These elements may not be assigned values until the standard section has been
completely allocated (which typically happens during redefine of the feature).
Values assigned to these elements while the section is not complete are ignored.
This chapter describes how to use the include files ProRib.h, so that you can
create ribs programmatically. As ribs are sketched features; we recommend you to
read the chapters Element Trees: Principles of Feature Creation on page 764 and
Element Trees: Sketched Features on page 1004 before referring to this chapter.
1037
The Element Tree for Rib Features
The element tree for Rib features is documented in the Creo Parametric header file
ProRib.h.
The following figure shows the element tree for rib features.
The following table lists the data types for rib feature and their permissible values:
Element ID Data Type Description
PRO_E_FEATURE_ PRO_VALUE_TYPE_ Feature type: PRO_
TYPE INT FEAT_RIB
PRO_E_FEATURE_ PRO_VALUE_TYPE_ Mandatory= PRO_
FORM INT EXTRUDE
PRO_E_STD_ PRO_VALUE_TYPE_ Name of the rib feature.
FEATURE_NAME WSTRING The default value is RIB.
PRO_E_BODY Compound Compound element that
holds Body options. For
more information, refer to
the ProBodyOpts.h
element tree.
PRO_E_BODY_USE PRO_VALUE_TYPE_ Holds Body use options.
INT The valid value is PRO_
BODY_USE_SELECTED.
PRO_E_BODY_SELECT PRO_VALUE_TYPE_ Specifies the reference to
SELECTION the selected body.
Note
Only single reference
is allowed.
PRO_E_RIB_ Compound Element Holds section related
SECTION_COMP elements.
PRO_E_RIB_ PRO_VALUE_TYPE_ Thickness of the rib. The
THICKNESS DOUBLE value of the thickness
should be positive and
bigger than zero. The
default value depends on
part epsilon.
PRO_E_STD_SECTION PRO_VALUE_TYPE_ Compound Element
INT
This chapter describes the principles of creating a sweep feature. The chapters
Element Trees: Principles of Feature Creation on page 764 and Element Trees:
Sketched Features on page 1004 provide the necessary background for this topic.
Read those chapters before this one.
Sweep Feature
The element tree for the sweep feature is documented in the header file
ProSweep.h, and is shown in the following figure.
The following table describes the elements in the element tree for sweeps:
Element ID Data Type Description
PRO_E_FEATURE_FORM PRO_VALUE_TYPE_INT Specifies the feature form. The
valid value is PRO_SWEEP
defined in the enumerated data
type ProFeatFormType in
ProFeatForm.h.
PRO_E_SWEEP_TYPE PRO_VALUE_TYPE_INT Specifies the type of sweep. The
valid value is PRO_SWEEP_
Mandatory if PRO_E_BODY_USE
is set to PRO_BODY_USE_
SELECTED.
Note
Both the options are available
only if the trajectory is a two-
sided edge of a surface. In
case of one-sided edge, only
one option is available.
PRO_E_SURF_CHAIN_REF Array Specifies an array of surface
_SURFS edges.
Note
It is sometimes necessary to
specify the x-axis direction,
for example, for straight line
trajectories or trajectories that
have a straight segment at the
start.
Note
If these elements PRO_E_FRAME_SETUP and PRO_E_FRM_ORIENT are
not defined, you have to redefine the feature twice to get the valid initiated
sketch handle.
The following table describes the elements in the element tree for simple sweeps:
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Feature type
PRO_E_FEATURE_FORM PRO_VALUE_TYPE_INT Feature form (PRO_SWEEP)
PRO_E_SWEEP_SPINE Compound Trajectory (like (PRO_E_STD_
SECTION)
PRO_E_SWEEP_SECTION Compound Section (like PRO_E_STD_
SECTION)
Note
Release 20 of Pro/TOOLKIT supports only sketched, constant cross-sectional
sweeps.
The following figure shows the valid elements within this subtree.
Swept, constant, cross-sectional feature forms are supported for the following
feature types:
• PRO_FEAT_FIRST_FEAT
• PRO_FEAT_PROTRUSION
• PRO_FEAT_CUT
• PRO_FEAT_DATUM_SURF
This chapter describes the element tree structure for body options that can be
selected while creating a feature. You can perform geometric operations such as
splitting a body or merging with other bodies and boolean operations such as
merge, intersect, and subtract.
The following sections describe the procedure for performing Boolean operations
such as intersect, subtract, and, merge bodies in a model. This chapter also
describes how to copy, remove, and split bodies.
1055
Introduction
Using Creo Parametric TOOLKIT, you can create bodies. The creation and
manipulation of bodies use the following Creo Parametric TOOLKIT objects:
• ProSolid
• ProSolidBody
Splitting by Object
You can split one body into two bodies using a plane, surface, or quilt as the
splitting object. The following table lists the mandatory element types for splitting
a body by object:
Note
Bodies that are removed do not contribute to mass properties.
The element tree for the body remove feature is documented in the Creo
Parametric header file ProRemoveBody.h. Using this element tree you can
remove bodies in a model.
The Element Tree for The Element Tree for Boolean Body Operation
The following figure shows the element tree for Boolean body operation.
This chapter describes how to construct and access the element tree for some Creo
Flexible Modeling features in Creo Parametric TOOLKIT. It also shows how to
redefine, create and access the properties of these features.
1067
Move and Move-Copy Features
This section describes how to construct and access the element tree for Move and
Move-Copy features. It also shows how to create, redefine, and access the
properties of these features.
Introduction
The Move and the Move-Copy features allow a rigid transformation to a geometry
selection or its copy. The surfaces within the geometry selection must belong
either to the solid geometry or to a single quilt. You can move the following the
geometry selection:
• Any surface collection within the solid geometry or a single quilt.
• An intent surface within the solid geometry or a single quilt.
• Regular or intent datums (planes, axes, points and coordinate systems).
• Regular or intent curves.
• Any combination of the above geometries.
When you create a move feature at assembly level, the following types of
references can be moved:
• Geometry of assembly components—Part level geometry only, that is,
surfaces, quilts, curves, datums
• Assembly components—Parts and subassemblies
The moved entities are copies of the original entities and will have new IDs. The
original entities can be removed (Move) or kept (Copy-Move).
A Move feature will act on a single set of objects. To move different geometry
selections, multiple move features must be created.
The following table describes the elements in the element tree for the Move and
Move-Copy features:
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Specifies the type of feature.
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Specifies the name of the feature.
The default value is Flex_Move.
PRO_E_FLEXMOVE_MOVED_ Compound Specifics the geometry to be
GEOMETRY moved.
PRO_E_FLEXMOVE_MOVED_ PRO_ELEM_TYPE_MULTI_ Optional element. This element is
COMPS VALUE available only when you create the
move feature at the assembly
level. Specifies the collection of
component references, that is,
parts and subassemblies in an
assembly, which are moved by the
assembly level move feature.
Note
The data type PRO_ELEM_
TYPE_MULTI_VALUE
enables you to assign
multiple values to the
element, though the data type
is not an array.
PRO_E_FLEXMOVE_DEFINE_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
METHOD method to be used to move the
entities. It takes the following
values:
• PRO_FLEXMOVE_DEF_
METHOD_3D
_DRAG—You can use the 3D
transformation sets (in Creo
Parametric interface using 3D
Dragger) to define the flexible
move feature.
• PRO_FLEXMOVE_DEF_
METHOD_DIMENSIONS—
You can specify up to three
constraining nonparallel linear
dimensions or angular
dimensions to define the
flexible move feature.
• PRO_FLEXMOVE_DEF_
METHOD_CONSTRAINTS—
You can specify component-
like (assembly-like) constraints
to define the flexible move
feature.
PRO_E_D3ELEM_SETS Array holder Mandatory element when the
definition method is PRO_
FLEXMOVE_DEF_METHOD_3D_
DRAG. An array holder of PRO_
E_D3ELEM_SET elements.. The
elements for 3D transformation
sets are defined in
ProD3Elem.h.
Moved Geometry
The feature PRO_E_FLEXMOVE_MOVED_GEOMETRY is a compound element
that allows you to select the geometries to be moved and the geometries to be
excluded.
PRO_E_FLEXMOVE_MOVED_GEOMETRY
Dimension Elements
The element PRO_E_FLEXMOVE_DIMS_COMPOUND is a compound element
that allows you to specify the dimensions to move the geometries.
PRO_E_FLEXMOVE_DIMS_COMPOUND
The following table describes the elements in the element tree for the 3D
Transformation Set feature:
Element ID Data Type Description
PRO_E_D3ELEM_SETS Array holder An array holder of PRO_E_
D3ELEM_SET elements.
PRO_E_D3ELEM_SET Compound A compound element representing
a single transformations set.
PRO_E_D3ELEM_PLACEMENT_ PRO_VALUE_TYPE_ Optional element. Specifies the
REFERENCE SELECTION placement reference for the 3D
transformation sets.
Note
In case of an empty value for
the placement reference, the
default placement reference
will be used.
PRO_E_D3ELEM_ PRO_VALUE_TYPE_ Optional element. Specifies up to
ORIENTATION_REFERENCE SELECTION two references to define the
orientation for the 3D
transformation sets.
Note
In case of an empty value for
the placement reference, the
default placement reference
will be used.
PRO_E_D3ELEM_LOCATION PRO_VALUE_TYPE_INT Optional element. Specifies
whether the transformation set
moves with the geometry for every
move. It takes the following
values:
• PRO_D3_LOCATION_
MOVING—This is the default
value. The coordinate system
of the transformation set
moves with each move made
in the set.
• PRO_D3_LOCATION_
FIXED—This value can be set
only if the placement reference
and the orientation reference
Note
This move type is
relevant only if the move
set is placed on a surface.
○ ProFeatureD3ele-
mUvGet()
○ ProFeatureD3ele-
mUvSet()
• PRO_D3_MOVE_TYPE_
EDGE
—Specifies that the move is
made to coordinate (ratio
parameter) on an edge, from its
initial placement on that edge.
The position is recorded as a
length ratio on the edge.
Note
This move type is
relevant only if the move
set is placed on an edge.
○ ProFeatureD3elem-
RatioSet()
• PRO_D3_MOVE_TYPE_
FREE
—Specifies the move using a
transformation matrix. It stores
the final 3D location of the
moved geometry. To compute
the final position of the moved
geometry, the saved 3D
location is used.
Note
This move type is
relevant only if the
placement reference and
the orientation reference
elements have default
(empty) values.
○ ProFeatureD3elem-
MatrixGet()
○ ProFeatureD3elem-
MatrixSet()
• PRO_D3_MOVE_TYPE_
FREETRF
—Specifies the move using a
transformation matrix, similar
to PRO_D3_MOVE_TYPE_
FREE. It stores the
Note
This move type is
relevant only if the
placement reference and
the orientation reference
elements have default
(empty) values.
• PRO_D3_MOVE_TYPE_
XMOVE—Specifies the linear
translation along the current
coordinate system's X-vector.
• PRO_D3_MOVE_TYPE_
YMOVE—Specifies the linear
translation along the current
coordinate system's Y-vector.
• PRO_D3_MOVE_TYPE_
ZMOVE—Specifies the linear
translation along the current
coordinate system's Z-vector.
• PRO_D3_MOVE_TYPE_
XROTATE—Specifies the
rotational angle along the
current coordinate system's X-
vector.
• PRO_D3_MOVE_TYPE_
YROTATE—Specifies the
rotational angle along the
current coordinate system's Y-
vector.
• PRO_D3_MOVE_TYPE_
ZROTATE—Specifies the
rotational angle along the
current coordinate system's Z-
vector.
PRO_E_D3ELEM_MOVE_VALUE PRO_VALUE_TYPE_DOUBLE Mandatory element. Specifies the
translation distance or the
rotational angle for the move
command.
Note
The functions ProFeatureD3elemUvGet() and
ProFeatureD3elemUvSet() are relevant only when the element PRO_
E_D3ELEM_MOVE_TYPE has its move value as PRO_D3_MOVE_TYPE_
SRF.
Note
The functions ProFeatureD3elemRatioGet() and
ProFeatureD3elemRatioSet() are relevant only when the element
PRO_E_D3ELEM_MOVE_TYPE has its move value as PRO_D3_MOVE_
TYPE_EDGE.
Note
The functions ProFeatureD3elemMatrixGet() and
ProFeatureD3elemMatrixSet() are relevant only when the element
PRO_E_D3ELEM_MOVE_TYPE has its move value as PRO_D3_MOVE_
TYPE_FREE.
The following table describes the elements in the element tree for the Geometry
Attachment feature:
Element ID Data Type Description
PRO_E_FLEX_OPTS_CMPND Compound Specifies the flexible modeling
geometry reattachment options.
PRO_E_FLEX_TRF_SEL_ATT_ PRO_VALUE_TYPE_INTEGER Mandatory element. Specifies
GEOM whether the chamfers and rounds
that attach the moved geometry to
the model must also be
transformed.
○ PRO_FLEXMODEL_OPT_
YES—The rounds are
recreated.
○ PRO_FLEXMODEL_OPT_
NO—The rounds are not
recreated.
• When PRO_E_FLEX_
ATTACH_GEOM is set to
PRO_FLEXMODEL_OPT_No
the rounds are not reattached.
However, in this case you can
save the information about the
attachment properties for the
rounds. PRO_E_FLEX_CR_
RND_GEOM is set to following
values:
○ PRO_FLEXMODEL_OPT_
YES—The attachment
information of the rounds
is stored in intent objects.
This information can be
used by some other
features.
○ PRO_FLEXMODEL_OPT_
NO—The attachment
information of the rounds
is not stored.
PRO_E_FLEX_KEEP_ORIG_ PRO_VALUE_TYPE_INTEGER Mandatory element. Specifies if
GEOM the original geometry must be
moved or a copy of the geometry
should be moved.
Note
You cannot select the
solution interactively
using Creo Parametric
TOOLKIT applications.
PRO_E_STD_CURVE_ Chain Optional element. Collects the
COLLECTION_APPL bounding edges from the geometry
list to which the primary feature
geometry will be reattached. The
bounding edges are used as the
limiting edges for the feature
reattachment solutions. The edges
that belong to the primary feature
references cannot be used as
bounding edges.
Note
The information on the
chosen solution is stored in
the element PRO_E_FLEX_
SOL_INDEX. This element is
not accessible by Creo
Parametric TOOLKIT, under
which a default solution will
be always used.
Introduction
The Offset Geometry feature allow you to offset a geometry selection that belongs
to a solid geometry or to a quilt, and reattach it back to the solid or quilt. You can
offset the following geometry selection:
• Any surface collection.
• An intent surface.
• Any combination of the above geometries.
A offset feature will act on a single geometry selection. To offset a different
geometry selection, a new Offset Geometry feature must be created.
The following table describes the elements in the element tree for the Offset
Geometry feature:
Introduction
The Modify Analytic Surface feature allows you to modify the analytic surfaces.
The modification is done by creating and modifying basic dimensions that define
each surface type.
The following analytic surfaces can be modified:
• Cylinder—The axis remains fixed and the radius can be modified.
• Torus—The axis of revolution of the circle remains fixed. The radius of the
circle and the distance (radius) from the center of the circle to the axis of
revolution can be modified.
• Cone—The axis and vertex of the cone remain fixed, and the angle can be
modified.
The following table describes the elements in the element tree for the Modify
Analytic Surface feature:
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Specifies the type of feature.
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Specifies the name of the feature.
The default value is MODIFY_
ANALYTIC_SURFACE.
PRO_E_STD_SURF_ PRO_VALUE_TYPE_ Mandatory element. Specifies the
COLLECTION_APPL SELECTION collection of analytical surface sets
to be modified. The valid surface
selections are: cylindrical, conical
or toroidal surfaces.
Note
You can specify only one
reference surface or surface
region at a time in this
element.
PRO_E_STD_FLEX_ PRO_VALUE_TYPE_ Optional element. Specifies a
PROPAGATION SELECTION pattern or mirror recognition
feature to propagate the modified
analytic surface feature changes.
PRO_E_FLEX_OPTS_CMPND Compound Mandatory element that contains
the flexible modeling geometry
Tangency Propagation
This section describes how to construct and access the elements for propagating
tangency in a flexible modeling feature.
Introduction
When geometry is modified with Move, Offset, or Modify Analytic command, you
can maintain the tangency between the modified geometry and the neighboring
geometry. To maintain the tangency, the neighboring geometry may be modified,
though it was not selected for modification. The geometry that is included during
tangency propagation is defined as dragged geometry. The dragged geometry is
modified in such a way that it always remains tangential to the directly modified
geometry. The tangency propagation stops when the application recognizes a
surface that is round or chamfer. The chamfer or round surface, except variable
rounds, is recreated after the geometry is modified. The round and chamfer
geometry are called connecting geometry.
Depending on the type of round surface, the tangency may or may not be
propagated. The rounds are of the following types:
• Rounds that can be propagated. Tangency propagation can be forced to be
carried through and continue onto adjacent tangent geometry.
• Rounds that cannot be propagated. The tangency stops and cannot be forced to
go further.
The following table describes the elements in the element tree for the Tangency
Propagation:
Element ID Data Type Description
PRO_E_FLXSLV_PROP_ Array Specifies an array of conditions
CONSTRS that control the tangency
propagation.
PRO_E_FLXSLV_CONSTR Compound Mandatory element. Specifies a
single condition for tangency
along with the reference geometry.
Mirror Feature
This section describes how to construct and access the element tree for Mirror
feature for flexible modeling. It also shows how to create, redefine, and access the
properties of this feature.
Introduction
The Mirror feature allows you to mirror a selected set of geometry about a plane.
You can either attach the mirrored geometry to the solid or quilt from which it was
created or keep it detached.
If the geometry selection for the mirror feature includes or is attached by round
geometry, then the round geometry can be recreated in the new mirrored location.
Note
The group header of the Mirror feature behaves as a standard feature. You can
extract the header element tree in Creo Parametric TOOLKIT.
The following table describes the elements in the element tree for the Mirror
feature:
Element ID Data Type Description
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Specifies the name of the feature.
The default value is Mirror_
Geometry.
PRO_E_MGF_REFS Compound Compound element that specifics
the geometry, curves, and datums
to be mirrored.
PRO_E_STD_SURF_ PRO_VALUE_TYPE_ Mandatory element. Specifies the
COLLECTION_APPL SELECTION collection of surface sets of the
geometry to be mirrored.
PRO_E_MGF_MIRROR_PLANE PRO_VALUE_TYPE_ Mandatory element. Specifies the
SELECTION datum plane or intent datum plane
about which the geometry will be
mirrored.
Substitute Feature
This section describes how to construct and access the element tree for Substitute
feature. It also shows how to create, redefine, and access the properties of this
feature.
Introduction
The Substitute feature allows you to replace a geometry selection that belongs to a
solid geometry or a quilt with replacing surfaces. The replacing surfaces are
attached to the solid or quilt, and any round geometry between the geometry
selection. The model is recreated after the replacing geometry is attached.
You can substitute the following geometry selection:
• Any surface collection.
• An intent surface.
• Any combination of the above geometries.
• Any one-sided edges on surfaces or quilts.
All the surfaces and one-sided edges in the geometry selection must belong to the
same solid geometry or to the same quilt. The geometry selection must not be
tangential to the neighboring geometry, or should be attached to the neighboring
geometry with round geometry.
The replacing surfaces must be large enough to attach to the extension of the
neighboring geometry, without the need to extend the replacing surfaces.
After substitution, the replacing surfaces that define the one-sided edge loops are
extended and trimmed so that the resulting edges lie on the substituting geometry.
Refer to the Creo Flexible Modeling Help for more information.
The following table describes the elements in the element tree for the Substitute
feature:
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Mandatory element. Specifies the
type of feature. The value of this
feature must be PRO_FEAT_
FLEXSUBST.
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Specifies the name of the feature.
The default value is
Substitute.
PRO_E_CMP_SUBSTITUTED Compound Compound element for surfaces to
be substituted.
PRO_E_FLXSUBST_METHOD PRO_VALUE_TYPE_INT Specifies which kind of geometry
must be substituted. The valid
geometry types are:
Introduction
The Planar Symmetry Recognition feature allows you to identify and modify
geometry that is symmetric with respect to a plane. The modifications made to the
geometry on one side are automatically propagated to the other side and the
symmetry is kept.
The Planar Symmetry Recognition feature identifies symmetrical geometry in the
following ways:
• You can collect two seed surfaces or surface regions that are symmetric. The
feature computes the plane of symmetry, and finds all pairs of neighboring
surfaces and surface regions which are symmetric with respect to the
symmetry plane. The propagation ends when non-symmetric neighboring
surfaces are found.
The two seed surfaces or regions must belong to:
○ The solid geometry.
○ A single quilt.
○ Two quilts.
• You can collect a seed surface or surface region and a plane of symmetry. The
feature finds the mirror image of the seed surface or surface region and, finds
all the pairs of neighboring surfaces and surface regions which are symmetric
with respect to the symmetry plane.
According to the correspondence between the geometry of the symmetrical
members, the following variation of planar symmetry recognition are possible:
• Identical—There is exact correspondence between the surfaces of the
symmetrical members as well as between the intersection edges defined by
these members and the surrounding geometry.
• Similar—There is exact correspondence between the surfaces of the
symmetrical members, but there is no exact correspondence between the
intersection edges defined by these members and the surrounding geometry.
The number of intersection loops must be the same, but the type of edges,
number of edges in each intersection loop and the intersected model surfaces
do not have to be the same.
The following table describes the elements in the element tree for the Planar
Symmetry Recognition feature:
Element ID Data Type Description
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Specifies the name of the feature.
The default value is Mirror_
Recognition.
PRO_E_PSR_PLN_REF PRO_VALUE_TYPE_ Mandatory element. Specifies the
SELECTION collection of two seed surfaces or
one seed surface and the symmetry
mirror plane.
Attach Feature
This section describes how to construct and access the element tree for Attach
feature. It also shows how to create, redefine, and access the properties of this
feature.
Introduction
The Attach feature allows you to attach open quilts to solid or quilt geometry, if
the open quilt does not intersect the solid or quilt geometry. You can select an
open quilt and attach it to another quilt or solid geometry within the same model.
You can also select two open quilts within the same model which do not intersect
and attach them.
This feature is useful in case of UDF placement when the geometry of the UDF
does not intersect the part.
The following table describes the elements in the element tree for the Attach
feature:
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Mandatory element. Specifies the
type of feature. The value of this
feature must be PRO_FEAT_
ATTACH.
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Specifies the name of the feature.
The default value is Attach_1.
PRO_E_REF_ATTACH_PRIM_ PRO_VALUE_TYPE_ Mandatory element. Specifies the
QLT SELECTION primary open quilt to be attached
to another quilt. The primary quit
will be extended or trimmed
during the attachment.
PRO_E_REF_ATTACH_MERG_ PRO_VALUE_TYPE_ Optional element. Specifies the
QLT SELECTION merge quilt or solid geometry upto
which the primary quilt can be
extended or trimmed.
PRO_E_OPT_ATTACH_OPER PRO_VALUE_TYPE_BOOLEAN Mandatory element. Specifies
whether to attach the primary quilt
to the merge quilt or solid
geometry.
This chapter describes how to construct and access the element tree for Bushing
Load features in Creo Parametric TOOLKIT. It also shows how to redefine, create
and access the properties of these features.
Note
• The default units of the spring stiffnesses and the damping coefficients on
the three rotational axes are degree-based.
• If bushing load reference is a weld connection, any axis can be locked. In
this case the spring stiffness on the locked axis should have a value of -1.0,
regardless of the current units.
The following table describes the elements in the element tree for the bushing load
feature:
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Specifies the type of feature
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Specifies the name of the feature
PRO_E_BUSHLD_REF PRO_VALUE_TYPE_ Specifies the weld or 6DOF
SELECTION reference connection
PRO_E_BUSHLD_T1_STF_ PRO_VALUE_TYPE_DOUBLE Specifies the spring stiffness on
COEFF the 1st translation axis
PRO_E_BUSHLD_T1_DMP_ PRO_VALUE_TYPE_DOUBLE Specifies the damping coefficient
COEFF on the 1st translation axis
PRO_E_BUSHLD_T2_STF_ PRO_VALUE_TYPE_DOUBLE Specifies the spring stiffness on
COEFF the 2nd translation axis
PRO_E_BUSHLD_T2_DMP_ PRO_VALUE_TYPE_DOUBLE Specifies the damping coefficient
COEFF on the 2nd translation axis
PRO_E_BUSHLD_T3_STF_ PRO_VALUE_TYPE_DOUBLE Specifies the spring stiffness on
COEFF the 3rd translation axis
PRO_E_BUSHLD_T3_DMP_ PRO_VALUE_TYPE_DOUBLE Specifies the damping coefficient
COEFF on the 3rd translation axis
PRO_E_BUSHLD_R1_STF_ PRO_VALUE_TYPE_DOUBLE Specifies the spring stiffness on
COEFF the 1st rotational axis
PRO_E_BUSHLD_R1_DMP_ PRO_VALUE_TYPE_DOUBLE Specifies the damping coefficient
COEFF on the 1st rotational axis
This chapter describes how to construct and access the element tree for Cosmetic
Thread features. It also shows how to create, redefine, and access the properties of
these features.
The following table describes the elements in the element tree for the cosmetic
thread feature:
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Specifies the type of feature
PRO_E_FEATURE_FORM PRO_VALUE_TYPE_INT Optional element. Specifies the
type of the feature form. Use the
value PRO_EXTRUDE or PRO_
REVOLVE from the enumerated
type ProFeatFormType
depending on the threaded surface.
• Use PRO_EXTRUDE when the
referenced threaded surface is
cylindrical.
• Use PRO_REVOLVE when the
referenced threaded surface is
conical.
Note
If the enumerated value and
referenced threaded surface
are incorrectly selected, the
feature creation or
redefinition will fail.
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifics the
cosmetic thread feature name. The
default value is COSMETIC_
THREAD.
PRO_E_THRD_TYPE_OPT_NEW PRO_VALUE_TYPE_BOOLEAN Optional element. Specifies if a
simple or a standard thread should
be created. It has two values:
FALSE for simple thread and
TRUE for standard thread.
PRO_E_THRD_SERIES_NEW PRO_VALUE_TYPE_INT Specific the thread series for the
standard threads. From the *.hol
files information about different
THREAD_SERIES is gathered
and a list is generated. You can
specify UNC, UNF, and ISO as the
standard thread series. The current
index to the list is stored in this
element.
PRO_E_THRD_SCREWSIZE_ PRO_VALUE_TYPE_INT Optional element. Specifies the
NEW screw size for the standard thread.
The screw_size list is
extracted from the *.hol files
corresponding to the thread series.
The index to the screw_size
list is stored in this element.
PRO_E_THRD_SURF_NEW PRO_VALUE_TYPE_ Specifies the surface to thread.
SELECTION
PRO_E_THRD_DIAM_NEW PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
diameter for a simple thread. If the
reference threaded surface is
conical, the thread diameter value
can be between 0.0 and diam/4,
where diam is the largest
estimated diameter of the cone.
For all other reference surfaces,
the diameter can have values
between 0.1 and MAX_DIM_
VALUE, that is the maximum
allowed diameter value.
PRO_E_THRD_START_REF_ PRO_VALUE_TYPE_ Specifies the starting location of
NEW SELECTION the cosmetic thread.
PRO_E_THRD_DEP_COMP_NEW Compound Specifies the depth and flip
elements. It contains the following
elements:
This chapter describes how to access ECAD Area feature through Creo Parametric
TOOLKIT.
1125
Introduction to ECAD Area Feature
An ECAD Area specifies where you can place electrical components or cannot
place them to avoid interference with other electric components or electrical
routing. You can create an ECAD area as a sketched cosmetic feature of an
electrical board part. However, since this area is sketched, you cannot dimension
or regenerate it.
The ECAD area can have a closed 3D volume represented by a quilt. Use these
quilts to perform a clearance and interference check on the neighboring electric
components. You can access the geometry of the ECAD area feature by using
standard Creo Parametric TOOLKIT functions such as
ProFeatureGeomitemVisit() and ProSolidQuiltVisit().
This chapter describes the Creo Parametric TOOLKIT functions that access the
contents of a Creo Parametric assembly. Before you read this chapter, you should
be familiar with the following documentation:
• User Interface: Selection on page 503
• Core: Coordinate Systems and Transformations on page 222
• Core: 3D Geometry on page 170
In the assembly shown in Figure 12-1, Sample Assembly Hierarchy on page 1132
subassembly C is component identifier 11 within assembly A, Part B is
component identifier 3 within assembly AB, and s on. The subassembly AB
occurs twice. To refer to the two occurrnces of part B, use the following:
Component Placement
• ProAsmcompIsBulkitem()
• ProAsmcompIsPackaged()
The function ProAsmcompIsBulkitem() reports whether an assembly
component is a bulk item. A bulk item is a non-geometric assembly feature that
should appear in an assembly bill of materials.
Use the function ProAsmcompIsPackaged() to determine whether the
specified component is packaged.
Simplified Representations
• ProAsmcompIsUnderconstrained()
• ProAsmcompIsFrozen()
• ProAsmcompIsUnplaced()
• ProAsmcompIsPlaced()
• ProAsmcompIsSubstitute()
• ProAsmcompVisibilityGet()
The function ProAsmcompIsUnderconstrained() determines whether the
specified component is underconstrained, that is, it has one or more constraints but
they are not sufficient to fully constraint the component location.
The function ProAsmcompIsFrozen() determines whether the specified
component is frozen. The frozen component behaves similar to the packaged
component and does not follow the constraints that you specify.
From Creo Parametric 3.0 onward, the frozen status in components is set only
during the regeneration of the model. You cannot use the freeze commands in the
Creo Parametric user interface, to set the frozen status on a component. By
default, behavior of the configuration option freeze_failed_assy_comp is
ignored. For the models created in releases prior to Creo Parametric 3.0, the
frozen status of components is retained during model retrieval.
Note
The function returns the error PRO_TK_UNSUPPORTED when the model to
which the template model is being copied is an unsupported model. For
example, it is an embedded model.
Assembling Components
To assemble components into an assembly, use the methods of feature creation.
These methods are described in detail in the chapter Assembly: Assembling
Components on page 1159.
Deleting Components
Function Introduced:
• ProFeatureDelete()
The function ProFeatureDelete() deletes components. It has the same
options as described in the sectionchapter Core: Features on page 131.
Flexible Components
A flexible component allows variance of items such as features, dimensions,
annotations, and parameters of a model in the context of an assembly.
The object ProAsmitem describes the contents of a variant item in an assembly
component. The declaration for this object is as follows:
typedef struct pro_asm_item
{
ProModelitem item;
ProName name; /* used for PRO_PARAMETER in
this case item->type == PRO_PART or PRO_ASSEMBLY */
ProAsmcomppath path;
} ProAsmitem;
Exploded Assemblies
An exploded view of an assembly shows each component of the model separated
from the other components. An exploded view affects the appearance of the
assembly only. The design intent and the true distance between the assembly
components do not change.
Functions Introduced:
• ProAssemblyExplode()
• ProAssemblyUnexplode()
• ProAssemblyIsExploded()
Note
These functions explode the assembly using the default exploded state of the
assembly. Creo Parametric defines the positions of an assembly component in
the default exploded state.
Automatic Interchange
Functions Introduced:
• ProAssemblyAutointerchange()
In Creo Parametric, it is possible to interchange an assembly component with
another model that contains equivalent assembly constraints. The Creo Parametric
TOOLKIT function that performs this action is
ProAssemblyAutointerchange(). Depending on the type of component
interchange, the assembly constraints may need to be respecified for the
replacement model.
Instances in a family table share the same assembly constraints. Consequently, you
can automatically replace an assembly component with another instance in the
component's family table without respecifying any assembly constraints. Simply
retrieve the handle for the replacement instance and pass this handle to
ProAssemblyAutointerchange().
If the assembly component and replacement model are not instances in the same
family table, you can define the necessary relationships between them
interactively and save them in an Interchange Assembly. (See the Assembly
Modeling User’s Guide for details.) To perform an interchange using models in an
interchange assembly, first retrieve the interchange assembly (using the function
ProMdlnameRetrieve()), and then pass the handle of the replacement model
to function ProAssemblyAutointerchange(). Note that the interchange
assembly must be in memory before the call to
ProAssemblyAutointerchange().
This chapter describes the Creo Parametric TOOLKIT Design Manager functions.
For more information on Design Intent, Top-Down Design, and other Design
Manager issues, refer to the Assembly portion of the Creo Parametric help data, or
the Top-Down Design Task Guide.
1147
Overview
Creo Parametric supports a design concept called Top-Down Design. Top-Down
Design is a method of designing a product by specifying top-level design criteria
and passing those criteria down from the top level of the product’s structure to all
affected subsystems. The Creo Parametric TOOLKIT Design Manager functions
support this design concept. The next sections contain a brief summary of the six
steps of Top-Down Design.
Note
CopyGeom features have no local backup of reference data.
Note
Use the functions ProFeatureDSFDependencyNotifySet() and
ProFeatureDSFDependencyNotifyGet() only if the dependency
status of the DSF feature is set to PRO_DSF_UPDATE_MANUALLY.
This chapter describes how to use the concepts of feature creation to assemble
components into an assembly. Read the chapter Element Trees: Principles of
Feature Creation on page 764 before this chapter.
1159
Assembling Components by Functions
Functions Introduced:
• ProAsmcompMdlnameCreateCopy()
• ProAsmcompAssemble()
• ProAsmcompPositionGet()
• ProAsmcompPositionSet()
• ProAsmcompConstraintsWithComppathGet()
• ProAsmcompConstraintsSet()
• ProAsmcompAllConstrRemove()
• ProAsmcompConstrRemove()
• ProAsmcompRegenerate()
Superseded Function:
• ProAsmcompConstraintsWithDtmOrientGet()
Use the function ProAsmcompMdlnameCreateCopy() to create a new
component in the assembly by copying from an existing model. Specify the
handle to the model to be used as a template for the copy. If a model is not
specified, a component that does not have initial geometry is created. The function
provides the ProAsmcomp handle to the new component.
The function ProAsmcompAssemble() assembles a component to the
assembly or sub-assembly using the parametric constraints available when
assembling a component in Creo Parametric. The initial position of the component
is a ProMatrix object. Specify the orientation of the three axes and the position
of the origin of the component coordinate system, with respect to the target
assembly coordinate system. The function provides the ProAsmcomp feature
handle to the newly created assembly.
Note
If the transform matrix passed as the initial position of the component is
incorrect and non-orthonormal, the function ProAsmcompAssemble()
returns the error PRO_TK_BAD_INPUTS. In such scenario, you can use the
function ProMatrixMakeOrthonormal() to convert this non-
orthonormal matrix to an orthonormal matrix.
Note
The assembly reference selection must be assigned an assembly component
path, even if the reference geometry is in the top-level assembly. In that
situation the table_num value of the ProAsmcomppath structure would
be 0.
Model
The element PRO_E_COMPONENT_MODEL defines the model to be assembled
into the assembly.
Attributes
The element PRO_E_MISC_ATTR defines the type of component being
assembled. You can also access this property through ProAsmcompTypeGet()
and ProAsmcompTypeSet().
Initial Position
The element PRO_E_COMPONENT_INIT_POS defines the absolute position of
the component in the absence of any parametric constraints. Its value is a
ProMatrix object describing the component position. If you supply this element
but no PRO_E_COMPONENT_CONSTRAINT elements, the component is
assembled as packaged at this location.
If you under constrain the component, the value of this element is used in
conjunction with the constraints to set the packaged position for the component.
PRO_E_COMPONENT_SET
Placement Constraints
The element PRO_E_COMPONENT_CONSTRAINTS is an array of elements of
type PRO_E_COMPONENT_CONSTRAINT, each representing a single
component placement constraint.
PRO_E_COMPONENT_CONSTRAINT
Note
this reference must include a component path referencing the top level
assembly, even if the reference belongs directly to the top level assembly.
PRO_E_COMPONENT_MOVEMENT
PRO_E_COMP_PLACE_INTERFACE
Note
If this value is not set (set to 0) then component interfaces are not used to
define this component.
This chapter describes the Creo Parametric TOOLKIT functions for dragging
assembly entities through an allowable range to see how your assembly works in a
specific configuration. These functions provide the same result as obtained by
using the Drag dialog box in the Creo Parametric user interface.
This chapter also describes the functions to create snapshots of the assembly in
different positions and orientations.
Snapshot Constraints
The constraints that can be applied to a snapshot are contained by the structure
ProSnapshotConstraint. The declaration for
ProSnapshotConstraint is as follows:
typedef struct proSnapshotConstraint
{
ProSnapshotConstraintType type;
ProSelection *sel_array;
double value;
ProBool user_active;
ProBool valid
} ProSnapshotConstraint;
The fields in the above structure are described as follows:
• type—Specifies the type of snapshot constraint. The type is represented by
the enumerated type ProSnapshotConstraintType and can take one of
the following values:
○ PRO_SNAP_ALIGN—Select two points, two lines, or two planes from the
top-level assembly. The two entities remain aligned during the drag
operation.
○ PRO_SNAP_MATE—Select two planes from the top-level assembly. The
planes remain mated during the drag operation.
○ PRO_SNAP_ORIENT—Select two planes that orient at an angle with each
other.
○ PRO_SNAP_MOTION_AXIS_POS—Select a motion axis to specify the
motion axis position.
○ PRO_SNAP_BODY_LOCK—Select the bodies to be locked together while
dragging.
○ PRO_SNAP_CONNECTION_DISABLE—Select a connection that will be
disabled while dragging.
○ PRO_SNAP_PARALLEL_VIEW_PLANE—Select a body that will move
parallel only to the view plane. This constraint type is the same as the
PRO_SNAP_ALIGN or PRO_SNAP_MATE types, but the second
reference in this case is the view plane. This constraint type is available
only via Creo Parametric TOOLKIT. If set by the Creo Parametric
Note
The constraint types PRO_SNAP_CAM_LIFTOFF_ENABLE and PRO_
SNAP_CAM_LIFTOFF_DISABLE override the Enable Liftoff
property that you set from the Cam-Follower Connection Definition dialog
box in the Creo Parametric user interface.
• value—Depending upon the constraint type, this field takes the following
values:
Snapshot Transforms
Functions Introduced:
Note
Creo Parametric TOOLKIT supports retrieval and activation of both part and
assembly simplified representations. In addition, Creo Parametric TOOLKIT
supports creation and modification of assembly simplified representations.
Functions not appropriate for part mode are identified in the description.
Note
When two standard representations of the same model are retrieved, for better
memory usage, only one representation is used in the memory. The lower
detailed representation is integrated into higher detailed representation. This
higher detailed representation is used to retrieve both the representations.
If you retrieve a lower detailed representation when a higher detailed
representation is already in the memory, this higher detailed representation is
used and actually no retrieval is done.
The hierarchy for the representations is as follows with Master Simplified
Representation being the highest representation level:
• Boundary Box Simplified Representation
• Symbolic Simplified Representation
• Graphic Simplified Representation
• Geometry Simplified Representation
• Master Simplified Representation
Refer to the Creo Parametric help for more information on Assembly Design.
Note
The functions ProAutomaticSimprepRetrieve(),
ProAutomaticSimprepConvert() and
ProAutomaticSimprepActivate() support only assemblies.
Note
Creo Parametric TOOLKIT does not support creation of part simplified
representations.
Note
Creo Parametric TOOLKIT supports simplified representation of
Assemblies only, not Parts.
Note
Creo Parametric TOOLKIT supports simplified representation of
Assemblies only, not Parts.
Using Creo Parametric TOOLKIT, you can modify the attributes of existing
simplified representations. After you create or retrieve a simplified representation,
you can make calls to the ProSimprepdata*Set() functions listed in this
section to designate new values for the fields in the ProSimprepdata structure.
To modify an existing simplified representation, retrieve it, then get the handle to
its ProSimprepdata structure by calling the function
ProSimprepdataGet(). (If you created the representation programmatically
within the same application, the ProSimprepdata handle is already available.)
After modifying the data structure, reassign it to the corresponding simplified
representation by calling the function ProSimprepdataSet(). Use the
Note
Use the function ProSimprepdataTmpvalSet() to set the value of the
temp input argument in the specified ProSimprepdata structure while
creating new simplified representations only. Once the simplified
representation is created, this attribute is controlled by Creo Parametric. For
all the existing representations, Creo Parametric controls the temp input
argument and sets its value automatically
Note
Creo Parametric TOOLKIT supports simplified representation of
Assemblies only, not Parts.
You can add and delete items from the list of components in a simplified
representation using Creo Parametric TOOLKIT. If you created a simplified
representation using the option PRO_SIMPREP_EXCLUDE as the default rule,
you would generate a list containing the items you want to include. Similarly, if
the default rule for a simplified representation is PRO_SIMPREP_INCLUDE, you
can add the items that you want to be excluded from the simplified representation
to the list, setting the value of the ProSimprepActionType to PRO_
SIMPREP_EXCLUDE.
To Add Items
1. Get the ProSimprepdata structure, as described in the previous section.
2. Specify the action to be applied to the item with a call to the function
ProSimprepActionInit().
To Remove Items
1. Get the ProSimprepdata structure handle.
2. Pass the ProSimprepdata handle and the ProSimprepitem handle for
the item to be deleted to the function ProSimprepdataitemDelete().
3. Reassign the ProSimprepdata structure to the corresponding
ProSimprep object by calling the function ProSimprepdataSet().
Gathering by Parameters
Function Introduced:
• ProRuleInitExpr()
You can specify a expression in the relations format to search for components of a
particular parameter value. For example, consider the following expression:
type == "electrical" | cost <= 10
When you supply this expression to the rule, it gathers the components that have a
“cost” parameter of less than or equal to 10, or whose type parameter is set to
“electrical.”
Theexpr variable is an array of ProLine structures. You allocate this array using
the function ProArrayAlloc(). The ProArray* functions are used for all
array manipulations.
Gathering by Zone
Function Introduced:
• ProRuleInitZone()
When you specify this rule, all the components that belong to the supplied zone
feature are gathered.
See the Assembly Modeling User’s Guide for detailed information about setting up
and working with zones.
When you create a zone, the function creates a feature of type PRO_FEAT_ZONE
in the top-level assembly.
Gathering by Size
Function Introduced:
• ProRuleInitSize()
By filling the ProRuleSize data structure, you can specify the size of
components to be gathered.
If you want to gather the components greater than the specified size, set the field
greater to PRO_B_TRUE. If you set the field to PRO_B_FALSE, the function
gathers the components that are less than the specified size.
If you want the specified size to be in absolute terms, set the field absolute to
PRO_B_TRUE. Note that in this case, the function uses the units of the top-level
assembly.
If the information is relative, set the field absolute to PRO_B_FALSE. In this
case, the only valid values that can be specified are in the range (0.0, 1.0). The
function compares the component size to that of the top-level assembly, and uses
this ratio to determine whether the component should be gathered.
This chapter describes the Creo Parametric TOOLKIT functions access for Data
Sharing Features (DSF). These types of features are used to transfer information
(geometry, annotations, and other details) from one model to another. Data
Sharing Features also help you to consolidate your design information in a central
location, control change propagation which aid towards accomplishing top down
design objectives. Data Sharing Features are of the following types:
• Copy Geometry / Publish Geometry
• Shrinkwrap
• Merge / Cutout
• Inheritance
It also explains how to access the properties of variant features and lists read and
write functions supporting the Inheritance Features.
1199
Copy Geometry, Publish Geometry, and
Shrinkwrap Features
Copy Geometry Features are used to pass any type of geometric reference
information, user-defined parameters to and from parts, skeleton models, and
assemblies. Copy Geometry features can only copy reference geometry such as
surface, datum features and not solid geometry. They are used in a top-down
design to reduce the amount of data in session, thus avoiding the retrieval of entire
reference source models.
A Publish Geometry feature contains independent, local geometry references.
Only local geometry can be referenced in a Publish Geometry feature and external
references are not allowed. A Publish Geometry feature has no geometry and does
not create local copies of the references selected for its definition. It simply
consolidates multiple local references in a model so that they can be copied to
other models.
A Shrinkwrap feature is a collection of surfaces and datum features of a model
that represents the exterior of the model. You can use a part, skeleton, or top-level
assembly as the source model for a Shrinkwrap feature. A Shrinkwrap feature is
associative and automatically updates to reflect changes in the parent copied
surfaces.
PRO_E_DSF_PROPAGATE_ANNOTS
PRO_E_DSF_DTM_FIT
The following list details special information about some of the elements in this
tree:
• PRO_E_FEATURE_TYPE—Specifies the feature type and should be PRO_
FEAT_GEOM_COPY, for Copy Geometry, Publish Geometry, and Shrinkwrap
features.
• PRO_E_CG_FEAT_SUB_TYPE—Specifies the sub feature type and is a
mandatory element. It is visible for all copy geometry features. The valid sub
types are as follows:
Note
The reference collection elements PRO_E_STD_SURF_COLLECTION_
APPL, PRO_E_STD_CURVE_COLLECTION_APPL, PRO_E_CG_
OBJS_COLL may return the item of type PRO_QUERY. If PRO_QUERY is
encountered, the Creo Parametric TOOLKIT application cannot access or
modify the rules of the query. However, the application can redefine the
other properties of the DSF without affecting or removing the query. For
more information refer to the section Saved Queries for Copy Geometry
and Publish Geometry Features on page 1210.
Note
From Creo Parametric 3.0 onward, the enumerated type
ProDsfDependency has been deprecated. Use the enumerated type
ProDSFDependency instead.
Note
The purpose of External DSF's is to copy geometry from one model to
another model without the need to copy the geometry in the context of the
assembly. External DSF's reduce the dependency on the assembly and all
models along the path between the two components. Once a feature has
been made "External", it cannot be converted to become internal.
The following list details special information about some of the elements in this
tree:
• PRO_E_FEATURE_TYPE—Specifies the feature type and should be PRO_
FEAT_GEN_MERGE.
• PRO_E_GMRG_FEAT_TYPE—Specifies the type of General Merge Feature:
○ PRO_GEN_MERGE_TYPE_MERGE (Merge or cutout feature)
○ PRO_GEN_MERGE_TYPE_INHERITANCE (Inheritance feature)
• PRO_E_DSF_REF_MDL—Specifies the reference model. It has the following
elements:
○ PRO_E_DSF_EXT_LOCAL_TYPE—Specifies the DSF location type and
is of the following type:
◆ PRO_DSF_PLACE_LOCAL type is a local reference to the reference
model
◆ PRO_DSF_PLACE_EXTERNAL indicates an external merge, cutout,
or inheritance feature.
◆ PRO_E_DSF_SEL_REF_MDL—Specifies a selected reference model.
◆ PRO_E_DSF_PLACEMENT—Specifies the placement of the Data
Sharing feature. It contains the following elements:
? PRO_E_COMPONENT_CONSTRAINTS
For more information on component constraint elements, refer to chapter
Assembly: Assembling Components on page 1159.
Note
From Creo Parametric 3.0 onward, the enumerated type
ProDsfDependency has been deprecated. Use the enumerated type
ProDSFDependency instead.
Note
From Creo Parametric 3.0 onward, the value PRO_DSF_DEPENDENT
has been deprecated. Use the enumerated value PRO_DSF_UPDATE_
AUTOMATICALLY instead.
Note
From Creo Parametric 3.0 onward, the value PRO_DSF_
INDEPENDENT has been deprecated. Use the enumerated value PRO_
DSF_UPDATE_MANUALLY instead.
Note
For more information,, refer to the section Sheetmetal Cut Features on page
1345 in the chapter Production Applications: Sheetmetal.
Note
If you are using the variant feature model handle and you need to use an
unsupported function on it, you can attempt to retrieve the actual model by
extracting the model name and type from the model and using
ProMdlnameRetrieve() to get the original model. This requires that the
parent model be accessible in session. Remember that the parent model will
not reflect variations applied by the variant feature.
ProMdlTypeGet()
ProMdlSubtypeGet()
ProMdlPrincipalunitsystemGet()
ProUnitsystemUnitGet()
ProUnitsystemTypeGet()
ProUnitsystemIsStandard()
ProUnitIsStandard()
ProUnitTypeGet()
ProUnitConversionGet()
ProSolidAccuracyGet()
ProSolidOutlineGet()
ProSolidOutlineCompute()
Basic Model Items ProModelitemNameGet()
ProModelitemDefaultnameGet()
ProSelectionModelitemGet()
Dimensions ProSolidDimensionVisit()
ProFeatureDimensionVisit()
ProDimensionNomvalueGet()
ProDimensionBoundGet()
ProDimensionSymtextGet()
ProDimensionTollabelGet()
ProDimensionSymbolGet()
ProDimensionValueGet()
ProDimensionToltypeGet()
ProDimensionToleranceGet()
ProDimensionTolerancedecimalsGet()
ProDimensionTolerancedenominatorGet()
ProDimensionTypeGet()
ProDimensionIsFractional()
ProDimensionDecimalsGet()
ProDimensionDenominatorGet()
ProDimensionIsRegenednegative()
ProDimensionTextGet()
ProDimensionTextstyleGet()
ProDimensionIsToleranceDisplayed()
ProDimensionIsBasic()
ProDimensionIsInspection()
ProDimensionIsBaseline()
ProDimensionIsOrdinate()
ProDimensionOrdinatestandardGet()
ProDimensionLocationGet()
ProDimensionPlaneGet()
ProDimensionAttachmentsGet()
ProDimensionOverridevalueGet()
ProDimensionValuedisplayGet()
Parameters ProParameterVisit()
ProParameterValueWithUnitsGet()
ProParameterUnitsGet()
ProParameterIsEnumerated()
ProParameterRangeGet()
ProParameterScaledvalueGet()
Features ProSolidFeatVisit()
ProFeatureTypeGet()
ProFeatureTypenameGet()
ProFeatureSubtypeGet()
ProFeatureStatusGet()
ProSolidFeatstatusGet()
ProFeatureChildrenGet()
ProFeatureParentsGet()
ProFeatureCopyinfoGet()
ProFeatureGroupGet()
ProFeatureGroupStatusGet()
ProFeatureHasGeomchks()
ProFeatureIsIncomplete()
ProFeatureIsNcseq()
ProFeatureIsReadonly()
ProFeatureNumSectionsGet()
ProFeatureNumberGet()
ProFeaturePatternGet()
ProFeaturePatternStatusGet()
ProFeatureSectionCopy()
ProFeatureSolidGet()
ProFeatureVerstampGet()
ProFeatureVisibilityGet()
Annotations ProMdlNoteVisit()
ProSolidDispoutlineGet()
ProNoteTextGet()
ProNotePlacementGet()
ProNoteURLGet()
ProNoteOwnerGet()
ProNoteTextstyleGet()
ProTextStyle*Get()
ProNoteDtlnoteGet()
ProNoteElbowlengthGet()
ProMdlGtolVisit()
ProGtolTopModelGet()
ProGtolTypeGet()
ProGtol*Get()
ProGtolRightTextGet()
ProGtolTopTextGet()
ProGtolPrefixGet()
ProGtolSuffixGet()
ProAnnotationTextstyleGet()
ProGtoltextTextstyleGet()
ProSolidDtlsyminstVisit()
ProDtlsyminstDataGet()
ProSolidSurffinishVisit()
ProSurffinishValueGet()
ProSurffinishReferencesGet()
ProSurffinishDataGet()
ProAnnotationIsShown()
ProAnnotationIsInactive()
ProAnnotationElementGet()
ProAnnotationelemFeatureGet()
ProAnnotationplaneAngleGet()
ProAnnotationplaneFrozenGet()
ProAnnotationplanePlaneGet()
ProAnnotationplaneReferenceGet()
ProAnnotationplaneTypeGet()
ProAnnotationplaneVectorGet()
ProAnnotationplaneViewnameGet()
ProGtolDatumReferencesGet()
ProDimensionToleranceSet()
ProDimensionBoundSet()
Parameters ProParameterValueWithUnitsSet()
Features ProFeatureSuppress()
ProFeatureResume()
ProFeatureDelete()
Annotations ProNoteTextSet()
ProNoteURLSet()
ProNoteElbowlengthSet()
ProNoteTextstyleSet()
ProTextStyle*Set()
ProGtolValueStringSet()
ProGtolPrefixSet()
ProGtolSuffixSet()
ProGtolTopTextSet()
ProGtolRightTextSet()
ProAnnotationTextstyleSet()
ProGtoltextTextstyleSet()
ProAnnotationShow()
ProCombstateAnnotationErase()
ProSurffinishValueSet()
ProGtolDatumReferencesSet()
ProGtolDatumReferencesSet()
Variant Parameters
Function Introduced:
• ProVariantfeatParamsVisit()
• ProVariantfeatParamStandardize()
Use the function ProVariantfeatParamsVisit()to visit only the variant
parameters owned by an inheritance feature or flexible component. The parameter
handles contain the variant feature model pointer.
Use the function ProVariantfeatParamStandardize() to remove a
varied parameter from the inheritance feature or flexible component.
Variant References
By using variant references, you can reroute or replace the references for features
in the inheritance feature with new references located inside or outside the
inheritance feature. In assemblies, references can be to models other than the
target model, as long as the model is within the assembly.
This chapter describes the Creo Parametric TOOLKIT functions that deal with
drawings. Unless otherwise specified, functions that operate on drawings use
screen coordinates. See the Core: 3D Geometry on page 170 chapter to find out
more about screen coordinates and how to convert to drawing coordinates (or
paper coordinates).
Note
The function ProDrawingFromTmpltCreate() will be deprecated in a
future release. Use the function ProDrawingFromTemplateCreate()
instead.
Note
In the function ProDrawingFromTemplateCreate(), the object
ProMdlnameShortdata supports a file name of 31 characters or less
for a model.
• Drawing output options that specify how you want to view drawings output.
Chose any or all from the following list:
○ PRODWGCREATE_DISPLAY_DRAWING—display new drawing in a
window
○ PRODWGCREATE_SHOW_ERROR_DIALOG—display the template error
dialog to the user
Drawings 1227
○ PRODWGCREATE_WRITE_ERRORS_TO_FILE—write the errors to a
disk file
The function returns an error structure if any errors occur. The error structure
contains an array of errors. Each error message may have:
• Error type
• Name of view where error occurred
• Name of drawing sheet where error occurred
• Name of the invalid or missing object
If the template and/ or the model name of the drawing is an embedded model
name, the function ProDrawingFromTemplateCreate() returns the error
PRO_TK_INVALID_NAME.
If there are one or more errors while creating the drawing, the function returns the
error PRO_TK_DWGCREATE_ERRORS.
Drawing Setup
Functions Introduced:
• ProInputFileRead()
• ProOutputFileMdlnameWrite()
• ProDrawingSetupOptionGet()
• ProDrawingSetupOptionSet()
• ProMdlDetailOptionGet()
• ProMdlDetailOptionSet()
You can set all drawing setup file options from a Creo Parametric TOOLKIT
application. To do this, import a text file in the format of the drawing setup file
using the function ProInputFileRead(), with the file type set to PRO_DWG_
Drawings 1229
SETUP_FILE. You can create such a file from Creo Parametric TOOLKIT with
function ProOutputFileMdlnameWrite(). See the Interface: Data
Exchange on page 664 chapter for information on these functions.
Use the functions ProDrawingSetupOptionGet() and
ProDrawingSetupOptionSet() to return and assign a specific drawing
setup file option.
Some of the 2D detail options of the drawings are also applicable to 3D models.
The detail options are applied to the model in the same way as to the drawings.
Further, the detail options for the model and their values are also stored in the
model in the same way as in the drawings.
Use the function ProMdlDetailOptionGet() to get the value of the
specified detail option for the model. The function
ProMdlDetailOptionSet() sets the value for the specified detail option of
the model.
Note
To set the context to AutobuildZ, you must first set the configuration option
autobuildz_enabled to yes.
Note
If you set context to PRO_RBNCONTEXT_DWG_NONE, all actions for the
selected object are available in all contexts, except the contexts in which
selection is not allowed. For example, the publish context.
Drawing Tree
Pro/ENGINEER Wildfire 5.0 onward, you can view a hierarchical representation
of drawing items in an active drawing sheet. This representation is called a
Drawing Tree. A drawing tree facilitates selection and availability of drawing
operations for the represented drawing items. For more information, see the Creo
Parametric Help. Use the following functions to refresh, expand, and collapse the
drawing tree:
Functions Introduced:
• ProDrawingtreeRefresh()
• ProDrawingtreeExpand()
• ProDrawingtreeCollapse()
Use the function ProDrawingtreeRefresh() to rebuild the drawing tree in
the Creo Parametric window that contains the drawing. You can use this function
after adding a single drawing item or multiple drawing items to a drawing.
Drawings 1231
Use the function ProDrawingtreeExpand() to expand the drawing tree in
the Creo Parametric window and make all drawing sheets and drawing items in
the active drawing sheet visible.
Use the function ProDrawingtreeCollapse() to collapse all nodes of the
drawing tree in the Creo Parametric window and make its child nodes invisible.
The input arguments to these functions are:
• drawing—Handle to the drawing that contains the drawing tree.
• window_id —ID of the Creo Parametric window in which you want to refresh,
expand, or collapse the drawing tree.
Note
Use PRO_VALUE_UNUSED to refresh, expand, or collapse the drawing
tree in the active window.
Merge Drawings
Function Introduced:
• ProDrawingMerge()
Use the function ProDrawingMerge() to merge two drawings.
Drawing Sheets
Functions Introduced:
• ProDrawingSheetNameGet()
• ProDrawingSheetsCount()
• ProDrawingSheetTrfGet()
• ProDrawingSheetSizeGet()
• ProDrawingSheetOrientationGet()
• ProDrawingSheetUnitsGet()
Drawings 1233
The function ProDrawingCurrentSheetSet() sets the sheet number for
the currently selected sheet in the specified drawing. One of the input arguments
to this function is an integer, current_sheet.
The function ProDrawingSheetCreate() adds a sheet to a drawing model
of type Notebook, Format, Drawing, Diagram, or Report. The output argument to
this function is an integer, new_sheet. If the drawing sheet is successfully created,
new_sheet takes the value of the sheet number for the newly created drawing
sheet. Otherwise it takes the value, -1.
The function ProDrawingSheetDelete() deletes a sheet from a drawing
model of type Notebook, Format, Drawing, Diagram, or Report. You need to enter
the type of the drawing model and the sheet number of the sheet to be deleted as
input arguments.
The function ProDrawingSheetCopy() creates a copy of a specified drawing
sheet. The input arguments to this function are:
• drawing—The drawing model handle. Set it to NULL to copy a sheet from the
current drawing.
• sheet_to_copy—The sheet number of the sheet to be copied. Set it to a value
less than 1 to create a copy of the currently selected sheet.
The output argument to this function is:
• sheet_copy (optional)—The sheet number of the newly created sheet. Set it to
NULL, if you do not want the new sheet number.
The function ProDrawingSheetsReorder() assigns a new sheet number to
a specified sheet, and renumbers the remaining sheets accordingly.
The function ProDrawingSheetFormatIsBlanked() identifies whether
the format of a specified drawing sheet is blank. In case of the current sheet, set
the input arguments drawing and sheet to NULL and to a value less than 1,
respectively.
The function ProDrawingFormatGet() returns the name of the drawing
format that was used for the specified sheet. ProDrawingFormatAdd() adds
or replaces a specified format into a specified drawing sheet.
The function ProDrawingSheetFormatShow() displays the drawing format
for a specified drawing sheet. To display the drawing format of the current sheet,
set the input arguments drawing and sheet to NULL and to a value less than 1,
respectively.
Use the function ProDrawingSheetFormatHide() to hide the drawing
format for a specified drawing sheet.
The function ProDrawingSheetFormatIsShown() identifies if the
drawing format for a specified drawing sheet is shown. It returns PRO_B_TRUE if
the drawing format is shown and returns PRO_B_FALSE if the drawing format is
not shown.
Drawings 1235
The function ProDrawingFormatSizeSet() sets the size of the drawing
format in the specified drawing. You can add a standard or customize size format
in the drawing. The input arguments are:
• drawing—Specifies the name of the drawing.
• drawing_sheet—Specifies the number of the drawing sheet where the drawing
format must be set.
• size—Specifies the size of the drawing using the enumerated data type
ProPlotPaperSize.
• width—Specifies the width of the drawing in inches, when size is set to
VARIABLE_SIZE_PLOT.
It specifies the width of the drawing in millimeters, when size is set to
VARIABLE_SIZE_IN_MM_PLOT.
Note
This argument is ignored for all the other sizes of the drawing except
VARIABLE_SIZE_PLOT and VARIABLE_SIZE_IN_MM_PLOT. In
such cases specify the argument as PRO_VALUE_UNUSED.
• height—Specifies the height of the drawing in inches, when the size is set to
VARIABLE_SIZE_PLOT.
It specifies the width of the drawing in millimeters, when the size is set to
VARIABLE_SIZE_IN_MM_PLOT.
Note
This argument is ignored for all the other sizes of the drawing except
VARIABLE_SIZE_PLOT and VARIABLE_SIZE_IN_MM_PLOT. In
such cases specify the argument as PRO_VALUE_UNUSED.
Drawings 1237
• ProDrawingViewDatumdisplayGet()
• ProDrawingViewPipingdisplayGet()
• ProDrawingViewIsErased()
• ProDrawingViewNeedsRegen()
ProDrawingViewsCollect() outputs an array of ProView handles to all
the views in a drawing. ProDrawingViewVisit() is an alternative way to
find the views, and conforms to the usual form of visit functions.
ProDrawingViewSheetGet() outputs the number of the sheet in which a
specified view appears.
The function ProDrawingErasedviewSheetGet() outputs the number of
the sheet, which contained the view that was erased. If the sheet that contained the
erased view is deleted, the sheet ID is returned as PRO_VALUE_UNUSED.
The function ProDrawingViewOutlineGet() outputs the position of the
view in the sheet.
The function ProDrawingViewTypeGet() returns the type of a specified
drawing view. A drawing view can be of the following types:
• PRO_VIEW_GENERAL—Specifies a general drawing view.
• PRO_VIEW_PROJECTION—Specifies a projected drawing view.
• PRO_VIEW_AUXILIARY—Specifies an auxiliary drawing view.
• PRO_VIEW_DETAIL—Specifies a detailed drawing view.
• PRO_VIEW_REVOLVE—Specifies a revolved drawing view.
• PRO_VIEW_COPY_AND_ALIGN—Specifies a copy and align drawing view.
• PRO_VIEW_OF_FLAT_TYPE—Specifies a flat type drawing view.
The function ProDrawingViewIdGet() retrieves the ID of the drawing view
specified by the drawing and the drawing view handles.
The function ProDrawingViewInit() retrieves the drawing view handle
based on the specified drawing handle and the view ID.
The function ProDrawingViewonlyOpen() opens a drawing in the view
only mode.
The function ProDrawingViewParentGet() returns the parent view of a
specified drawing view. The function ProDrawingViewChildrenGet()
returns the child views of a drawing view and the total number of children.
ProDrawingViewOriginGet() returns the location of the origin in terms of
the ProPoint3d object and the selection reference in terms of the
ProSelection object for a specified drawing view.
Drawings 1239
ProDrawingViewZclippingGet() returns the reference of the Z-clipping
on the drawing view. The reference can be an edge, datum, or point on the surface
that is parallel to the view. Geometry contained in the Z-clipping plane and in
front of the plane appears, but geometry behind the plane does not appear. The
system clips geometry that intersects the plane.
The function ProDrawingViewDatumdisplayGet() determines if a solid
model datum has been explicitly shown in a particular drawing view.
The function ProDrawingViewPipingdisplayGet() returns the piping
display option for a drawing view.
The function ProDrawingViewIsErased() identifies if the drawing view is
erased or not.
The function ProDrawingViewNeedsRegen() identifies whether the
drawing or the specified drawing view needs to be regenerated.
Modifying Views
Functions Introduced:
• ProDrawingViewMove()
• ProDrawingViewDelete()
• ProDrawingViewErase()
• ProDrawingViewResume()
• ProDrawingViewOriginSet()
• ProDrawingViewAlignmentSet()
• ProDrawingViewScaleSet()
• ProDrawingScaleSet()
• ProDrawingViewProjectionSet()
• ProDrawingViewFlagSet()
• ProDrawingViewDisplaySet()
• ProDrawingViewNameSet()
• ProDrawingViewZclippingSet()
• ProDrawingViewPipingdisplaySet()
Drawings 1241
The function ProDrawingViewDisplaySet() assigns the fields in the
ProDrawingViewDisplay structure that describe the display status of the
drawing view. This function does not repaint the drawing view, use the function
ProWindowRepaint() to repaint the view.
Note
In order to modify the concept_model field in the
ProDrawingViewDisplay structure, you require an Assembly license.
Note
The configuration option allow_duplicate_view_names enables you
to set duplicate names for drawing views. When the configuration option is set
to no, the function returns an error if another drawing view in the specified
drawing exists with the same name.
Background Views
Functions Introduced:
• ProDrawingViewIsBackground()
• ProDrawingBackgroundViewGet()
Views can be assigned not only to the solid views that the user creates, but also to
each sheet. The view assigned to a drawing sheet is called a background view.
Function ProDrawingViewIsBackground() determines whether the
specified view is a background view.
If you use ProSelect() for an item in a drawing that is not inside a solid view,
such as a detail item, the ProView view handle output by
ProSelectionViewGet() is the background view.
Note
These functions supersede the functions ProDrawingViewIsOverlay()
and ProDrawingOverlayviewGet(), which previously served the same
purpose.
Detailed Views
Functions Introduced:
Drawings 1243
• ProDrawingViewDetailCreate()
• ProDrawingViewDetailReferenceGet()
• ProDrawingViewDetailReferenceSet()
• ProDrawingViewDetailCurvedataGet()
• ProDrawingViewDetailCurvedataSet()
• ProDrawingViewDetailBoundaryGet()
• ProDrawingViewDetailBoundarySet()
A detailed view is a small portion of a model shown enlarged in another view.
The function ProDrawingViewDetailCreate() creates a detailed view
given the reference point on the parent view, the spline curve data, and location of
the new view. A note with the detailed view name and the spline curve border are
included in the parent view for the created detailed view.
The functions ProDrawingViewDetailReferenceGet() and
ProDrawingViewDetailReferenceSet() return and assign, respectively,
the reference point on the parent view for a specified detailed view.
The functions ProDrawingViewDetailCurvedataGet()and
ProDrawingViewDetailCurvedataSet() retrieve and assign,
respectively, the spline curve data in terms of the ProCurvedata handle for a
specified detailed view. The output argument, curve_data specifies the
following:
• The X and Y coordinate directions match the screen space.
• The coordinate point (0,0) maps to the reference point.
• The scaling unit is of one inch relative to the top model of the view. If two
points in the spline are at a distance of '1' from each other, then in the actual
view, the points will be one inch distant from each other, if measured in the
scale of the top model. For example, if one of the points in the spline
definition has coordinates (0.5, 0.0, 0.0), then the position of that point is not
half an inch to the right of the reference point on the paper. Instead, when
projected as a point in the space of the top model of the view, it is half an inch
to the right of the reference point when measured in the space of that model.
Use the function ProCurvedataAlloc()to allocate memory for the curve
data structure.
The function ProDrawingViewDetailBoundaryGet() retrieves the type
of spline curve used to define the boundary of the detailed view and also identifies
whether the boundary is displayed on the parent view.
The function ProDrawingViewDetailBoundarySet() assigns the
boundary type for a detailed view in terms of the enumerated type
ProViewDetailBoundaryType. The types of boundaries are:
Auxiliary Views
Functions Introduced:
• ProDrawingViewAuxiliaryCreate()
• ProDrawingViewAuxiliarySet()
• ProDrawingViewAuxiliaryInfoGet()
An auxiliary view is a type of projected view that projects at right angles to a
selected surface or axis. The selected surface or axis in the parent view must be
perpendicular to the plane of the screen.
The function ProDrawingViewAuxiliaryCreate() creates an auxiliary
view given the selection reference and the point location.
The function ProDrawingViewAuxiliarySet() sets a specified drawing
view as the auxiliary view.
The function ProDrawingViewAuxiliaryInfoGet() retrieves
information such as the selection reference in terms of the ProSelection
object and the point location in terms of the ProPoint3d object for a specified
auxiliary view.
Revolved Views
Functions Introduced:
• ProDrawingViewRevolveCreate()
• ProDrawingViewRevolveInfoGet()
A revolved view is a cross section of a drawing view revolved 90 degrees around
a cutting plane projection.
The function ProDrawingViewRevolveCreate() creates a revolved view
given a cross section, the selection reference, and the point location.
Drawings 1245
The function ProDrawingViewRevolveInfoGet() retrieves information
such as the cross section in terms of the ProXsec object, the selection reference
in terms of the ProSelection object, and the point location in terms of the
ProPoint3d object for a specified revolved view.
Draft Views
Functions Introduced:
• ProDrawingDraftViewsCollect()
• ProDrawingViewIsDraft()
• ProDrawingDraftViewCreate ()
Draft views are created from the Sketch tab in a drawing using the selected draft
entities. The draft entities added to the view are automatically related to the view.
Any pre-existing relationship will be removed, and the entity will be related to the
draft view.
The function ProDrawingDraftViewsCollect() collects all draft views in
the specified drawing. The output argument views is the list of draft views. The
function ProDrawingDraftViewsCollect() allocates memory to the
ProView handle. To free the memory call the function ProArrayFree().
The function ProDrawingViewIsDraft() determines whether the specified
view is a draft view. The input arguments follow:
• drawing—Specify the drawing in which the draft view exists.
• view —Specify the view using the ProView handle.
If the specified view is a draft view, the function returns a ProBoolean output
argument with the value PRO_B_TRUE. Otherwise, the function returns PRO_B_
FALSE.
The function ProDrawingDraftViewCreate() creates a draft view in the
specified drawing sheet. The input arguments follow:
• drawing—Specify the drawing in which draft view is to be created.
• entities—Specify at least one daft entity using the ProDtlentity object.
Entities might or might not be related to any view.
The function outputs a pointer to the ProView handle.
View Orientation
Functions Introduced:
• ProDrawingViewOrientationFromNameSet()
• ProDrawingViewOrientationFromReferenceSet()
• ProDrawingViewOrientationFromAngleSet()
Note
The drawing view must be displayed before applying any orientation to it.
Drawings 1247
• rot_ref_name—Specifies the name of the rotational angle.
• index—Specifies the index of the angle setting.
Drawings 1249
• line_style—Specifies the line style for the broken lines in terms of the
enumerated type ProViewBrokenLineStyle. It can be one of the
following types:
○ PRO_VIEW_BROKEN_LINE_STRAIGHT—Specifies a straight broken
line.
○ PRO_VIEW_BROKEN_LINE_SKETCH—Specifies a random sketch
drawn by the user that defines the broken line.
○ PRO_VIEW_BROKEN_LINE_S_CURVE_OUTLINE—Specifies a S-
curve on the view outline.
○ PRO_VIEW_BROKEN_LINE_S_CURVE_GEOMETRY—Specifies a S-
curve on geometry.
○ PRO_VIEW_BROKEN_LINE_HEART_BEAT_OUTLINE—Specifies a
heartbeat type of curve on the view outline.
○ PRO_VIEW_BROKEN_LINE_HEART_BEAT_GEOMETRY—Specifies a
heartbeat type of curve on the geometry.
• curve_data—Specifies the spline curve data in terms of the ProCurvedata
object when the line_style is of the type PRO_VIEW_BROKEN_LINE_
SKETCH.
The function ProDrawingViewBrokenNumberGet() returns the number of
breaks defined for the broken visible area. Two broken lines define one break.
Note
A broken visible area can be created only for general and projected view
types.
Sections of a View
Functions Introduced:
• ProDrawingViewSectionTypeGet()
• ProDrawingView2DSectionGet()
• ProDrawingView2DSectionSet()
• ProDrawingView2DSectionNumberGet()
• ProDrawingView2DSectionFlip()
• ProDrawingView2DSectionFlipGet()
• ProDrawingView3DSectionGet()
Drawings 1251
• curve_data—Specifies the spline curve data in terms of the ProCurvedata
handle.
• arrow_display_view—Specifies the drawing view, that is, either the parent or
child view, where the section arrow is to be displayed.
Note
For a section area of type PRO_VIEW_SECTION_AREA_FULL in the
above function, you can pass the input arguments ref_sel, curve_data, and
arrow_display_view as NULL.
View States
Functions Introduced:
• ProDrawingViewSimplifiedGet()
• ProDrawingViewSimplifiedSet()
• ProDrawingViewExplodedGet()
• ProDrawingViewExplodedSet()
The functions ProDrawingViewSimplifiedGet() and
ProDrawingViewSimplifiedSet() retrieve and set the simplified
representation for a specified drawing view.
The functions ProDrawingViewExplodedGet() and
ProDrawingViewExplodedSet() retrieve and set the exploded state for a
specified drawing view.
Drawings 1253
Drawing Models
Functions Introduced:
• ProDrawingSolidsCollect()
• ProDrawingSolidsVisit()
• ProDrawingSolidAdd()
• ProDrawingSolidDelete()
• ProDrawingSimprepsCollect()
• ProDrawingAsmsimprepAdd()
• ProDrawingAsmsimprepDelete()
• ProDrawingSolidReplace()
• ProDrawingCurrentsolidGet()
• ProDrawingCurrentsolidSet()
The function ProDrawingSolidsCollect() outputs an array of the solids
attached to the drawing, including those not currently displayed in a view.
Function ProDrawingSolidsVisit() is a visit function of the usual form
which visits the same solids.
The function ProDrawingSolidAdd() adds a new solid to a drawing, but
does not display it. (To create a drawing view, refer to the Creating Views on page
1243 section.)
ProDrawingSolidDelete() deletes a solid from a drawing, provided that
solid is not currently displayed in a view.
Functions
ProDrawingSimprepsCollect(),ProDrawingAsmsimprepAdd(),
and ProDrawingAsmsimprepDelete() are the equivalents to the above
functions but take a handle to a simplified rep.
The function ProDrawingSolidReplace() replaces a drawing model solid
with another solid. The old and new solids must be members of the same family
table. The following example code describes this function.
The functions ProDrawingCurrentsolidGet() and
ProDrawingCurrentsolidSet() provide access to the current solid model
for a given drawing.
Drawings 1255
• PRO_SYMBOL_INSTANCE
• PRO_DRAFT_GROUP
There is generic detail object called ProDtlitem, whose type field can take any
of these values, and is used for arguments to functions that can represent any
detail item. The following object handles are used in the more specific cases:
• ProDtlentity
• ProDtlnote
• ProDtlsymdef
• ProDtlsyminst
• ProDtlgroup
Note
The function ProDrawingDtlentitiesCollect() will not collect
entities with special symbol definition, such as, datum targets or parametric
connector symbols.
Note
The function ProDrawingDtlentityVisit() will not visit entities with
special symbol definition, such as, datum targets or parametric connector
symbols.
Drawings 1257
• ProDtlnoteRemove()
• ProDtlsyminstDraw()
• ProDtlsyminstErase()
• ProDtlsyminstShow()
• ProDtlsyminstRemove()
• ProDtlgroupDraw()
• ProDtlgroupErase()
Each of the displayable item types has four display functions.
The Show function displays the detail item, such that it is repainted on the next
draft regeneration.
The Remove function undraws the detail item permanently, so that it is not
redrawn on the next draft regeneration.
The Draw function draws the detail item temporarily, so that it is removed on the
next draft regeneration.
The Erase function undraws the detail item temporarily, so that it is redrawn on
the next draft regeneration, if it was previously “shown”.
Use the Show function after creating an item, and the Remove function before
deleting it. Use the Erase function before modifying an item, and the Draw
function afterwards.
Note
These functions require that the drawing must be the currently displayed
model. To create or modify detail items in a model that is not currently
displayed, use the attributes in the data structures related to Display. For
example use ProDtlnotedataDisplayedSet() to set the item to be
saved with the displayed status turned on, so that the next retrieval of the
model will display the item.
Drawings 1259
The function ProDtlentityDataGet() returns a structure that contains
information about the specified detail item, in a drawing or in a symbol definition.
Note
The functions ProDtlentityDataGet(), ProDtlentityCreate(),
ProDtlentityDelete(), and ProDtlentityModify cannot access
symbol definitions for special symbols, such as, datum targets or parametric
connector symbols. For such symbols, the functions return the error PRO_TK_
GENERAL_ERROR.
Note
You must set the drawing view before attempting to create a detail entity,
unless you are creating entities in a symbol definition. The view can be a
traditional drawing view obtained through
ProDrawingViewsCollect(), or the drawing sheet background
view obtained from ProDrawingBackgroundViewGet().
The other detail items follow the same principles, although for symbol definitions
there are added complexities; these are explained in section Creating a Symbol
Definition on page 1278.
The function ProDtlentityIsOLEObject() identifies if the specified detail
entity is actually an OLE object. For more information on OLE objects refer to
Accessing OLE Objects on page 1264.
Each entity item has its own Delete() function which removes it permanently
from the Creo Parametric drawing.
Each entity item also has its own Modify() function which passes a new Data
structure.
Use the function ProDtlnoteErase() to temporarily undraw the note (see the
section on Displaying Detail Items on page 1257).
The function ProDtlnoteDataGet() returns the data for the note.
The function ProDtlnotedataColorSet() modifies the color in the data
(see the section on Detail Note Data on page 1271).
The function ProDtlnoteModify() uses the modified data to modify the note
itself.
The function ProDtlnoteDraw() redraws the note (see the section on
Displaying Detail Items on page 1257).
Drawings 1261
The function ProDtlnoteLineEnvelopeGet() determines the screen
coordinates of the envelope around a detail note. This envelope is defined by four
points. See figure Detail Note Envelope Point Order for how point order is
determined.
Drawings 1263
ProDtlentitydataWidthGet() and
ProDtlentitydataWidthSet() get and set the line width of the draft
entity. The value -1.0 indicates that the entity should have the default width for
entities currently set for the drawing. If you do not call
ProDtlentitydataWidthSet() when creating a new entity, the width is
-1.0.
ProDtlentitydataViewGet() and ProDtlentitydataViewSet()
get and set the drawing view to which the entity will be attached. If an entity is
attached to a view, it moves whenever the Creo Parametric user moves that view.
Entities not attached to a model view must be assigned to the drawing sheet
background view instead.
ProDtlentitydataIsConstruction() and
ProDtlentitydataConstructionSet() get and set the flag that controls
whether the entity is created normal or as a construction entity.
The function ProDtlentitydataIsPeriodic() checks if the draft identity
is marked as periodic. The output argument is_periodic is a Boolean. The
value PRO_B_TRUE indicates that the draft entity is periodic.
The function ProDtlentitydataPeriodicSet() marks the draft entity to
be periodic. The input arguments are as follows:
• data—The draft entity data.
• periodic—Specify the value PRO_B_TRUE if the draft entity is to be periodic.
Use the function ProDrawingDraftToDraftent() to convert a selection of
type draft to draft entity in the specified drawing. The input arguments follow:
• p_draw—Specifies the drawing that owns the draft entity.
• p_sel_draft—A ProSelection object that represents the selection of type
as draft.
The output argument r_p_sel_draft_ent returns the handle to the converted
selection using the ProSelection object. The converted selection is managed
by the function that calls the function ProDrawingDraftToDraftent().
Drawings 1265
• ProDtlnotetextStringGet()
• ProDtlnotetextStringSet()
• ProDtlnotetextStyleGet()
• ProDtlnotetextStyleSet()
• ProDtlnoteWrapTextGet()
• ProDtlnoteWrapTextSet
Each line of a drawing note may contain text in several different fonts, heights,
and so on. So each line is described in terms of an array of text items, whose
contents are described by the data structure ProDtlnotetext.
ProDtlnotetextAlloc() and ProDtlnotetextFree() allocate and
free a ProDtlnotetext data structure.
ProTextStyleHeightGet() and ProTextStyleHeightSet() get and
set the height of the text. The value -1.0 means that the text has the default height
for text currently specified for the drawing.
ProTextStyleWidthGet() and ProTextStyleWidthSet() get and set
the width factor of the text. The width factor is the ratio of the width of each
character to the height. The value -1.0 means that the width factor has the default
value for text currently specified for the drawing.
ProTextStyleSlantAngleGet() and
ProTextStyleSlantAngleSet() get and set the slant angle of the text.
ProTextStyleThicknessGet() and
ProTextStyleThicknessSet() get and set the line thickness of the text.
The value -1.0 means that the text has the default thickness for text currently
specified for the drawing.
ProTextStyleFontGet() and ProTextStyleFontSet() get and set
the font used to display the text.
ProDtlnotetextUlineGet() and ProDtlnotetextUlineSet() get
and set whether the text item is underlined. The default is no underline.
ProDtlnotetextStringGet() and ProDtlnotetextStringSet()
get and set the string of characters contained in the text item.
The functions ProDtlnotetextStyleGet() and
ProDtlnotetextStyleSet() retrieve and set the text style for the specified
text as a ProTextStyle structure. It takes as input the ProDtlnotetext
object.
ProDtlnoteWrapTextGet() and ProDtlnoteWrapTextSet() get and
set the wrap status of the text for a specified note in a drawing.
Drawings 1267
"model = &model_name"
Creo Parametric will put the &model_name into a separate text item when the
note is created. If you then use ProDtlnoteDataGet() on the created
note with the mode option set to SYMBOLIC, you will see the following two
text items in the relevant text line
"model = " "&model_name"
Note
Creo Parametric does not resolve and replace symbolic callouts for notes
which are not displayed. Therefore, if the note is not displayed or is hidden
in a layer, the text retrieved may contain symbolic callouts, even when the
mode is set to NUMERIC.
Note that ProDtlnotetextStringGet() does not return the
brackets and numbers for each individual text entity. In addition, the
function does not return the special escape characters (such as \}) to
represent characters previously provided.
Refer to the section Creating a Symbol Definition on page 1278 for a
description of how to find which Creo Parametric model owns the
parameter referred to by parameterized text.
Note
You cannot attach a symbol to 3D model annotation using the OFFSET
attachment type.
• view—The drawing view. If the type is FREE, the attachment is relative to the
drawing view, that is the attachment moves when the drawing view is moved.
This is NULL, if the detail attachment is not related to the drawing view, but is
placed at a specified location in the drawing sheet, or if the attachment is
offset to a model item or to a 3D model annotation.
• location—If the type is FREE or OFFSET, this argument provides the location
of the attachment. This location is in screen coordinates for drawing items,
symbol instances and surface finishes on flat-to-screen annotation planes, and
in model coordinates for symbols and surface finishes on 3D model annotation
planes. The distance from this location to the location of the item to which the
detail item is attached (given by the argument attach_point) is saved as the
offset distance for an OFFSET attachment.
• attach_point—If the type is PARAMETRIC or OFFSET, this
ProSelection structure provides the location of the item to which the
detail item is attached. This includes the drawing view in which the
attachment is made. If you are building this structure using
ProSelectionAlloc(), set the location using
ProSelectionUvParamSet(), and the drawing view using
ProSelectionViewSet().
Use the function ProDtlattachSet() to set the above ProDtlattach
information for an existing attachment.
Drawings 1269
The function ProDtlattachGet() unpacks the above information for an
existing attachment. The output arguments are:
• type—The type of attachment to the drawing view. The detail attachment types
are as follows:
○ FREE—The attachment is to a 2D location in the drawing view.
○ PARAMETRIC—The attachment is to a point on a surface or an edge of a
solid in a drawing view.
○ OFFSET—The attachment is offset to another drawing view, to a model
item, or to a 3D model annotation.
○ UNIMPLEMENTED—The attachment is to an item that is not currently
supported in Creo Parametric TOOLKIT. However, you can still retrieve
the location and the view to which the attachment is connected.
○ SUPPRESSED—The attachment is to an item, which is missing from the
drawing or part.
• view—If the type is FREE or UNIMPLEMENTED, this argument specifies the
drawing view. This is NULL, if the detail attachment is not related to the
drawing view, but is placed at a specified location in the drawing sheet, or if
the attachment is offset to a model item or to a 3D model annotation.
• location—If the type is FREE, OFFSET, or UNIMPLEMENTED, this argument
specifies the location of the attachment. This location is in screen coordinates
for drawing items, symbol instances and surface finishes on flat-to-screen
annotation planes, and in model coordinates for symbols and surface finishes
on 3D model annotation planes. The distance from this location to the location
of the item to which the detail item is attached (given by the argument attach_
point) is saved as the offset distance for an OFFSET attachment.
• attach_point —If the type is PARAMETRIC or OFFSET, this argument
provides the location of the item to which the detail item is attached. This
includes the drawing view in which the attachment is made.
ProDtlattachFree() frees an attachment that was allocated with
ProDtlattachAlloc().
The function ProDtlattachArrowtypeGet() returns the type of arrowhead
used for the leaders attached to a drawing note or symbol instance. Use the
function ProDtlattachArrowtypeSet() to assign the type of arrowhead.
Drawings 1271
• ProDtlnotedataIsDisplayed()
• ProDtlnotedataDisplayedSet()
• ProDtlnoteDtlsyminstsCollect()
• ProDtlnotedataTextStyleGet()
• ProDtlnotedataTextStyleSet()
• ProDtlnoteTableCellGet()
The object ProDtlnotedata is an opaque pointer to a data structure that
describes the contents of a drawing note.
ProDtlnotedataAlloc() and ProDtlnotedataFree() allocate and
free memory for the data.
ProDtlnotedataIdGet() gives you the integer id of the note in Creo
Parametric that the data describes. This will be set if the ProDtlnotedata has
been acquired using ProDtlnoteDataGet(). It is not necessary to set this
when creating a note; the function ProDtlnoteCreate() will assign an id to
the new note.
ProDtlnotedataLineAdd() adds a ProDtlnoteline object to a
ProDtlnotedata description. If the note already contains lines of text, the new
line will be added at the end.
ProDtlnoteldataLinesSet() sets an array of ProDtlnoteline objects
as the lines in a ProDtlnotedata description. If the note already contains text
lines, they will be replaced by the new lines.
ProDtlnotedataLinesCollect() outputs an array of
ProDtlnoteline objects describing the lines in a given ProDtlnotedata
description.
ProTextStyleMirrorSet() specifies the option to mirror the note. Specify
the input argument mirror to true to mirror the note.
ProTextStyleMirrorGet() returns the mirroring option specified for the
note.
ProTextStyleColorGetWithDef() and
ProTextStyleColorSetWithDef() get and set the color for the note. If
you do not call ProTextStyleColorSetWithDef() when creating a note,
the note will have the default color defined by PRO_COLOR_METHOD_
DEFAULT. Refer to the Draft Entity Data on page 1262 section for a fuller
description of the ProColor object.
ProDtlnotedataAttachmentGet() and
ProDtlnotedataAttachmentSet() get and set the ProDtlattach
object which describes the attachment of the note, that is, where and how it is
positioned on the drawing.
Drawings 1273
The function ProDtlnoteTableCellGet() returns the information on the
rows and columns within a table for the specified table note. The information is
given by the following output arguments:
• table—Specifies the table.
• p_row—Specifies the indexed row that starts at 0.
• p_col—Specifies the indexed column that starts at 0.
Read-Only Notes
Functions Introduced:
• ProDtlnotedataReadonlySet()
• ProDtlnotedataReadonlyGet()
• ProDrawingReadonlyselectionAllow()
You can make an existing drawing note unselectable by Creo Parametric users if
you wish to protect it from modification. The functions
ProDtlnotedataReadonlySet() and
ProDtlnotedataReadonlyGet() set and get this property on
ProDtlnotedata objects. Use function
ProDtlnotedataReadonlySet() in conjunction with
ProDtlnoteDataGet() and ProDtlnoteModify() to change the setting.
The function ProDrawingReadonlyselectionAllow() will temporarily
allow the selection of read-only notes.
Note
This function returns the first detail note that calls out the geometric tolerance.
Creo Parametric does not restrict users to showing only a single version of a
geometric tolerance callout.
Drawings 1275
Note
This function returns the first detail note that calls out the solid model note.
Creo Parametric does not restrict users to showing only a single version of a
solid model note callout.
Drawings 1277
• FIXED—The symbol instance height is fixed.
• VARIABLE—The symbol instance height may be modified by the Creo
Parametric user.
• TEXTRELATED—The symbol instance height is related to the height of a text
item in the definition.
If the height type is TEXTRELATED the functions
ProDtlsymdefdataTextrefSet() and
ProDtlsymdefdataTextrefGet() set and get the text item in the symbol
definition which determines the symbol instance height. The reference is by note
id, line index, and text item index.
ProDtlsymdefdataElbowGet() and
ProDtlsymdefdataElbowSet() get and set the bit flag representing the
elbow of the symbol definition.
ProDtlsymdefdataTextangfixedGet() and
ProDtlsymdefdataTextangfixedSet() get and set whether the angle of
text in the symbol is fixed.
ProDtlsymdefdataScaledheightGet() returns the height of the symbol
definition in inches.
ProDtlsymdefdataPathSet() and ProDtlsymdefdataPathGet()
set and get the path and file name of the file in which the symbol definition may
be saved. This is used to give the symbol its name.
ProDtlsymdefdataNameGet() gets the name of the symbol definition.
Drawings 1279
The function ProDtlvartextAlloc() allocates and initializes a
ProDtlvartext object. ProDtlvartextFree() frees the memory, and
ProDtlvartextDataGet() unpacks the information in a
ProDtlvartext.
Note
You cannot attach a symbol to 3D model annotation using the OFFSET
attachment type. While attaching a symbol to 3D model annotation, if you set
the attachment type as OFFSET, the function
ProDtlsyminstdataAttachmentSet() returns the error PRO_TK_
INVALID_TYPE.
Drawings 1281
The function ProDtlsyminstDimattachGet() returns the dimension to
which the specified symbol instance is attached. The function returns the error of
type PRO_TK_BAD_CONTEXT when the dimension to which the specified
symbol instance is attached is not available. In this case, the model containing the
dimension was either deleted or suppressed in the assembly.
ProDtlsyminstdataLeaderAdd() adds a leader to a symbol instance
description.
ProDtlsyminstdataLeadersSet() sets an array of leaders in a symbol
instance, replacing any existing leaders.
Note
To remove all the leaders from the symbol instance data, pass NULL as the
value for the input argument leaders and set the attachment type to
PROSYMDEFATTACHTYPE_FREE.
Note
The scaled height obtained using the above functions is partially based on the
properties of the symbol definition assigned using the function
ProDtlsyminstdataDefSet(). Changing the symbol definition may
change the calculated value for the scaled height.
Drawings 1283
The function ProDtlsyminstIsDatumTarget() checks if the specified
symbol instance is a datum target. This function returns PRO_B_TRUE if the
specified symbol instance is a datum target and returns PRO_B_FALSE if it is
not.
The function ProDtlsyminstEnvelopeGet() returns the envelope of the
symbol. While retrieving coordinates of the symbol in a specified solid, if the
symbol is displayed in the solid as well as in the drawing, the drawing must not be
active. The input arguments follow:
• syminst—Symbol.
• drawing—Drawing. The value for this input argument must be passed only if
the solid symbol is shown in the drawing. Else, pass it as NULL.
• path—If the value of the input argument drawing is not NULL, then the path
points to a part in an assembly whose drawing is passed here. This part is the
owner of the symbol instance.
The output argument envelope is the envelope surrounding the symbol in the
model coordinate system. For drawing, the envelope surrounding the symbol is in
the screen coordinates.
The function ProDtlsyminstReferencesAdd() adds semantic references
to a specified symbol. The input arguments follow:
• syminst—Specifies the symbol to which the semantic references are to be
added.
• refs—Specifies the array of semantic references using the enumerated data
type ProAnnotationReference.
Note
When a reference includes more than one collection, the function
ProDtlsyminstReferencesAdd() returns the error PRO_TK_
MAX_LIMIT_REACHED and no reference is added.
Drawings 1285
• ProDtlgroupdataItemsSet()
• ProDtlgroupdataItemsCollect()
ProDtlgroupdataAlloc() and ProDtlgroupdataFree() allocate and
free a detail group structure in the form of a ProDtlgroup object.
ProDtlgroupdataAlloc() also sets the name of the group.
ProDtlgroupdataIdGet() returns the internal ID of an existing group.
ProDtlgroupdataNameGet() gets the name of the group.
ProDtlgroupdataDisplayedSet() and
ProDtlgroupdataIsDisplayed() set and get the flag that controls
whether or not the group is visible.
ProDtlgroupdataItemAdd() adds an item to the group contents. Items
supported in the groups include entities, notes, symbol instances, and draft
drawing dimensions.
ProDtlgroupdataItemsSet() sets the array of items into a group structure,
replacing any existing items that may have been assigned.
ProDtlgroupdataItemsCollect() returns an array of the items in the
group structure.
Drawings 1287
The function ProDltsymgroupLevelIsExclusive() indicates if the
subgroups stored in the symbol definition at the current level are exclusive or
independent. If groups are exclusive, only one of the groups at this level may be
active in the model at any time. If groups are independent, any number of groups
may be active.
Note
You can select model edges from detailed views for modification, but no
change will be applied. To modify the display of a model edge in a detailed
view, you must select the edge in the parent view.
Functions Introduced:
• ProDrawingEdgeDisplayGet()
• ProDrawingEdgeDisplaySet()
• ProDrawingedgedisplayFree()
• ProDrawingedgedisplayColorGet()
• ProDrawingedgedisplayColorSet()
• ProDrawingedgedisplayFontGet()
• ProDrawingedgedisplayFontSet()
• ProDrawingedgedisplayWidthGet()
• ProDrawingedgedisplayWidthSet()
• ProDrawingedgedisplayIsGlobal()
• ProDrawingedgedisplayGlobalSet()
The function ProDrawingEdgeDisplayGet() obtains the display properties
of a specified model edge in a drawing view. It allocates the
ProDrawingEdgeDisplay object for storing the display properties.
The function ProDrawingEdgeDisplaySet() assigns the display properties
of a specified model edge in a drawing view. After assigning the properties, you
must repaint the drawing view to update the display.
The function ProDrawingedgedisplayFree() frees the memory allocated
for the ProDrawingEdgeDisplay object.
The functions ProDrawingedgedisplayColorGet() and
ProDrawingedgedisplayColorSet() obtain and assign the color to be
used for the display of a specified model edge.
Drawings 1289
The functions ProDrawingedgedisplayFontGet() and
ProDrawingedgedisplayFontSet() obtain and assign the line font to be
used for the display of a specified model edge.
The functions ProDrawingedgedisplayWidthGet() and
ProDrawingedgedisplayWidthSet() obtain and assign the width to be
used for the display of a specified model edge. You must pass a value less than
zero to use the default width.
Note
The width obtained is in screen coordinates. To convert the width value into
drawing coordinates, use the sheet transformation matrix obtained using
ProDrawingSheetTrfGet().
Drawing Tables
A drawing table is identified by the DHandle ProDwgtable which is typedef to
and inherited from ProModelitem. The type field in ProDwgtable has the
value PRO_DRAW_TABLE.
Drawings 1291
Reading Drawing Tables
Functions Introduced:
• ProDrawingTableVisit()
• ProDrawingTablesCollect()
• ProDwgtableInfoGet()
• ProDwgtableColumnsCount()
• ProDwgtableRowsCount()
• ProDwgtableColumnSizeGet()
• ProDwgtableRowSizeGet()
• ProDwgtableCellNoteGet()
• ProDwgtableCelltextGet()
• ProDwgtableIsFromFormat()
• ProDwgtableRetrieve()
• ProDwgtableByOriginRetrieve()
• ProDwgtableGrowthdirectionGet()
ProDrawingTableVisit() visits all the tables in a specified drawing; it
conforms to the usual standard for visit functions.
ProDrawingTablesCollect() is an alternative, and returns an array of
ProDwgtable handles for a drawing.
A table may be divided into several segments, which are numbered sequentially
from 0. The function ProDwgtableInfoGet() takes a ProDwgtable and a
segment ID as input, and fills a data structure that describes the properties of the
table. If the segment does not exist, it returns PRO_TK_NOT_EXIST. The
properties of the table are as follows:
int rotation; The number of 90 degree turns
clockwise.
double seg_origin[3]; The screen coordinates of the
top left corner of the segment.
int nrows; The number of rows.
int ncols; The number of columns.
double outline[2][3]; The outline of the segment.
double seg_char_height; The text height used for the
segment.
double table_char_height; The text height used for the
drawing.
double char_width; The character width factor.
The functions ProDwgtableRowsCount() and
ProDwgtableColumnsCount() return the number of rows and columns in a
table respectively.
Drawings 1293
except that it positions the origin of the table at the specified point in the drawing.
Tables can be created with different origins by specifying the option Direction, in
the Insert Table dialog box.
The function ProDwgtableGrowthdirectionGet() gets the growth
direction of the table using the enumerated type
ProDwgtableGrowthdirType. For more information on the values of
ProDwgtableGrowthdirType, see the section Creating Drawing Tables on
page 1291.
Note
○ The value PRODWGTBLROWHEIGHT_AUTOADJUST_TRUE_LEGACY is
not applicable to the function
ProDwgtableRowheightAutoadjustSet().
○ When using the function
ProDwgtableRowheightAutoadjustSet() any changes in the
height of a row will be seen only after the next regeneration, or a call to
the function ProDrawingTablesUpdate().
Drawings 1295
ProDwgtableCellsMerge() allows the merging of cells within a specified
range of rows and columns, to form a single cell. The new cell can be addressed
(for example, when using ProDwgtableTextEnter(), or other calls to
ProDwgtableCellsMerge()) by the row and column number of the original
top left cell. Rows below, and columns to the right, retain their original numbers.
The function ProDwgtableCellsRemesh() unmerges all the merged cells in
a specified range of rows and columns.
ProDwgtableCelltextWrap() wraps the text in a cell.
ProDwgtableSave() saves a drawing table in one of the formats listed below.
The formats given by the enumerated type ProDwgtableFormattype can be
of the following types:
• PRODWGTABLEFORMAT_TBL—Specifies the tabular format.
• PRODWGTABLEFORMAT_TXT—Specifies the text format.
• PRODWGTABLEFORMAT_CSV—Specifies the CSV format.
ProDwgtableRotate() rotates a table 90 degrees clockwise.
ProDwgtableErase() erases a drawing table.
ProDwgtableDelete() deletes a drawing table.
Notification Functions
Creo Parametric TOOLKIT notifications are available when a drawing table or a
row from a drawing table is deleted. The notification functions are established in a
session using the function ProNotificationSet().
• ProDwgtableDeletePreAction()
• ProDwgtableDeletePostAction()
• ProDwgtableRowDeletePreAction()
• ProDwgtableRowDeletePostAction()
The notification function ProDwgtableDeletePreAction() is called
before deletion of a drawing table. This function is available by calling
ProNotificationSet() with the value of the notify type as PRO_
DWGTABLE_DELETE_PRE.
The notification function ProDwgtableDeletePostAction() is called
after deletion of a drawing table. This function is available by calling
ProNotificationSet() with the value of the notify type as PRO_
DWGTABLE_DELETE_POST.
The notification function ProDwgtableRowDeletePreAction() is called
before the deletion of a row from the selected drawing table. The input arguments
for this function are as follows:
Note
The index of the first row is 1.
Note
For these functions, pass -1 to refer to the only segment of a one-segment
table.
Drawings 1297
Move a drawing table segment to new screen coordinates with the function
ProDwgtableSegMove(). Pass the coordinates of the target position in format
x, y, z=0 to this the function. It moves the table segment to the target position.
Determine the number of segments in a table with the function
ProDwgtableSegCount(). Pass the name of the table to the function and it
returns the number of table segments.
Use the function ProDwgtableSegSheetGet() to determine which sheet
contains a specified drawing table segment.
Use the function ProDwgtableSegmentOriginSet() to assign the origin
for a specified drawing table segment.
Repeat Regions
Functions Introduced:
• ProDwgtableCellIsComment()
• ProDwgtableCellComponentGet()
• ProDwgtableCellRefmodelGet()
• ProDrawingTablesUpdate()
The functions ProDwgtableCellIsComment(),
ProDwgtableCellComponentGet(),
ProDwgtableCellRefmodelGet(), and
ProDrawingTablesUpdate() apply to repeat regions in drawing tables.
ProDwgtableCellIsComment() indicates whether a cell in a repeat region
contains a comment.
ProDwgtableCellComponentGet() returns the full path to the component
referenced in a cell in a repeat region of a drawing table. However, this function
does not return a valid path if the cell has the attribute NO DUPLICATE or NO
DUPLICATE/LEVEL since there is no unique path available. In this case, use
ProDwgtableCellRefmodelGet() to return the reference assembly and
component referred to by the cell in a repeat region. This function differs
fromProDwgtableCellComponentGet() such that it returns reference
objects, even if the cell attribute is set to NO DUPLICATE or NO DUPLICATE/
LEVEL.
Note
You must call the function ProMdlDisplay() to display the drawing
before using the function ProDrawingTablesUpdate().
Drawings 1299
The function ProBomballoonAllCreate() creates the BOM balloons to the
first view of the drawing.
The function ProBomballoonByComponentCreate() creates the balloons
at the specified view and on the specified component. If the view is specified as
NULL, the balloons are added to the first view of the drawing. Specify the path to
the component as component_memb_id_tab.
The function ProBomballoonByRecordCreate() creates the balloons for
the specified record in the BOM table. The input arguments are:
• pro_drawing—Specifies the name of the drawing.
• pro_table—Specifies the name of the table that contains the repeat region and
the bill of material.
• region_id—Specifies the ID of the repeat region that contains the bill of
material.If the ID of the repeat region in the table is -1, use the repeat region
with ID as 0 in the table.
• pro_view—Specifies the view where the balloons must be added. Specify this
argument to create the balloons without a leader.
• table_record_index—Specifies the record in the BOM table. The balloons are
created at the first component that matches the specified record.
• reference_memb_id_tab—Specifies the path to the component. This path is
used as reference for the leader of the balloon.
• reference_id—Specifies the ID of the component. When the ID is set to K_
NOT_USED, the balloons are attached without leaders.
• reference_type—Specifies the type of component using the enumerated data
type ProType.
• attach_note_location—Specifies a ProArray of the attachment point for the
balloons on the component.
The function ProBomballoonClean() cleans up the location and display of
BOM balloons in the specified view. The input arguments are:
• pro_drawing—Specifies the name of the drawing.
• pro_view—Specifies the view where BOM balloons have been added.
• clean_pos—Specifies a boolean value to indicate if the balloon must be
cleaned.
• existing_snap_lines—Specifies a boolean value to indicate if the existing snap
lines must be used for the clean up.
• offset_from_view_outline—Specifies the offset distance for the balloon
placement from the view outline.
• stagger—Specifies a boolean value to indicate if the balloons must be
staggered at different offset distance from the view outline.
• create_stagger_snap_lines—Specifies the incremental value for the stagger
distance between the snap lines.
Drawing Dimensions
This section describes Creo Parametric TOOLKIT functions that give access to
the types of dimension that can be created in drawing mode. They do not apply to
dimensions which are created in solid mode, either those created automatically as
a result of feature creation, or reference dimensions created in a solid.
The ProDimension object is introduced in the section on Dimensions on page
566; read the explanation of ProDimension at the start of that section before
reading further.
Dimensions created in drawing mode are stored either in the solid or in the
drawing, depending upon the setting of the config.pro option CREATE_
DRAWING_DIMS_ONLY. The default is NO, meaning that the dimensions will be
stored in the solid. Refer to the Creo Parametric Detailed Drawings Help for more
information on the various types of created dimension, and their behavior.
The owner field in the ProDimension object always refers to the model in
which the dimension is stored.
The function ProDrawingDimensionVisit(), described in the section on
Dimensions on page 566, can be used to find all the dimensions stored in a
drawing.
Drawings 1301
Note
Dimensions created in solid mode are stored in a different way from those
created in a drawing, because of their different role, and their attachments are
not accessible to this function. If the function is called for a function created in
solid mode, it will return an error.
The information about the entities to which the dimension is attached is given by
the following output arguments:
• attachments_arr—Specifies a ProArray of entities to which a dimension is
attached. Each attachment point is described by two consecutive array
elements, of which the second one may be NULL. If both elements are not
NULL, then the attachment point refers to the intersection of the elements. If
the second element is NULL, then the attachment point refers to the first one.
• dsense_arr—Specifies a ProArray of ProDimSense that gives more
information about how the dimension attaches to the entities.
ProDimSense is declared in header file ProDimension.h. This is the
declaration:
typedef struct pro_dim_sense {
ProDimSenseType type;
int sense;
ProDimAngleSense angle_sense;
ProDimOrient orient_hint;
} ProDimSense;
The type field indicates what type of information is being provided by the
sense and/or angle_sense fields. The following sections list the values of
ProDimSenseType with an explanation of the value of sense and angle_
sense needed in each case.
Drawings 1303
• PRO_DIM_SNS_TYP_LIN_AOC_TGT — The dimension is the
perpendicular distance between a line and a tangent to an arc or a circle which
is parallel to the line. The value of sense is one of the values of the enum
ProDimLinAocTgtSense. If the two possible tangents are on different
sides of the line entity (because the distance from the line to the center is less
than the radius) then the two tangents are distinguished as left or right of the
line (with respect to its natural direction). If the two tangents are on the same
side of the line (because the distance from the line to the center is more than
the radius), the two tangents are distinguished as on the same side of the arc/
circle center (0) or on the opposite side (1). There is an enum value for each of
the four possible combinations of ways to identify a tangent, though of course
only two are possible for a particular line and arc/circle pair.
Drawings 1305
not NULL, the attachment point refers to the intersection of the elements. If the
second element is NULL, the attachment point refers to the first one.
• dsense_arr—Specifies a ProArray of ProDimSense that provides more
information on how the dimension attaches to the entities.
The function ProDrawingDimCreate() has been deprecated. Use the
function ProDrawingDimensionCreate() instead. The function
ProDrawingDimensionCreate() creates a dimension in a drawing. It takes
as input an array of ProSelection objects and an array of ProDimSense
structures that describe the required attachments. It will store the new dimension
in the solid or the drawing depending upon the setting of the config.pro
option CREATE_DRAWING_DIMS_ONLY. Specify the orientation of the
dimension in the input argument orient_hint. You can create dimensions that have
intersection type of reference. The intersection type of reference is a reference that
is derived from the intersection of two entities. Refer to the Creo Parametric
Detailed Drawings Help for more information on intersection type of reference.
The dimension will be added to the drawing view specified in the
ProSelection object. If you want to build the attachment ProSelection
object programmatically by calling ProSelectionAlloc(), rather than
interactively using ProSelect(), call the function
ProSelectionViewSet() to ensure that your ProSelection specifies the
drawing view.
The function outputs a ProDimension object to identify the new dimension.
Ordinate Dimensions
Functions Introduced:
• ProDrawingDimIsOrdinate()
• ProDrawingOrdbaselineCreate()
• ProDrawingDimToOrdinate()
• ProDrawingDimToLinear()
The function ProDrawingDimIsOrdinate() tells you whether a particular
dimension is an ordinate dimension. If so, it also outputs a ProDimension
object to identify the baseline dimension being referenced.
The function ProDrawingOrdbaselineCreate() converts a specified
dimension to an ordinate baseline dimension. The choice of which end of the
dimension becomes the baseline is made by an input of type ProVector which
should be close to the appropriate attachment entity, and be in 3D solid
coordinates. The function outputs a new ProDimension object which is used to
identify the baseline dimension when converting to ordinate other dimensions
which should share that baseline.
Drawings 1307
The function ProDrawingDimensionIsDisplayed() identifies whether a
drawing dimension is displayed in the drawing.
The function ProDrawingDimensionIsToleranceDisplayed()
identifies whether the tolerance value is displayed on the drawing dimension.
The function ProDrawingDimensionViewGet() tells you what drawing
view a dimension is being displayed in. ProDrawingDimSwitchView()
allows you to switch it's display to another view. Note that not all views will
support the display of particular dimension.
The function ProDrawingDimensionPosGet() returns the position of the
center of the text box for the specified dimension. The coordinates returned by this
function cannot be used in the function ProDrawingDimensionMove(). Use
the function ProDimlocationTextGet() instead of the function
ProDrawingDimensionPosGet().
The function ProDrawingDimensionTextstyleGet() retrieves the text
style assigned to the specified dimension or reference dimension. From Creo
Parametric 2.0 M190 onward, the function
ProDrawingDimensionTextstyleGet() has been superseded by the
function ProAnnotationTextstyleGet().
The function ProDrawingDimensionMove() allows you to move the
dimension text to a new position on the drawing. Use the function
ProDimlocationTextGet() to get the position before and after the move.
The function ProDrawingDualDimensionGet() identifies whether a
drawing is using dual dimensioning, and also specifies the properties of the dual
dimensioning.
The function ProDimensionDualOptionsGet() gets information about the
display options for the specified dual dimension. In the input argument drawing,
specify the drawing in which the dimension is displayed. To specify a dimension
in owner model, specify the argument value as NULL. The output arguments are:
• type—From Creo Parametric 5.0.0.0 onward, this argument is no longer
supported. Specifies the type of display for primary and secondary dimension
using the enumerated data type ProDualDimensionDisplayType. The
valid values are:
○ PRO_SECONDARY_DIM_DISPLAY_OFF—Specifies that secondary
dimension is not displayed in a dual dimension.
○ PRO_SECONDARY_DIM_DISPLAY_BOTTOM—Specifies that the
secondary dimension must be placed below the primary dimension.
○ PRO_SECONDARY_DIM_DISPLAY_RIGHT—Specifies that the
secondary dimension on the same line as the primary dimension, on the
right side.
• secondary_unit—From Creo Parametric 5.0.0.0 onward, this argument is no
longer supported. Specifies the name of the unit for secondary dimension.
Drawings 1309
60
Production Applications:
Sheetmetal
Geometry Analysis ................................................................................................ 1312
Bend Tables and Dimensions ................................................................................. 1315
Bend Allowance Parameters .................................................................................. 1316
Unattached Planar Wall Feature ............................................................................. 1317
Flange Wall Feature .............................................................................................. 1329
Extend Wall Feature .............................................................................................. 1346
Split Area Feature ................................................................................................. 1350
Punch and Die Form Features................................................................................ 1352
Quilt Form Feature ................................................................................................ 1359
Flatten Form Feature ............................................................................................. 1362
Convert Features .................................................................................................. 1364
Rip Features ......................................................................................................... 1368
Corner Relief Feature ............................................................................................ 1377
Editing Corner Relief Feature ................................................................................. 1383
Editing Corner Seams............................................................................................ 1385
Bend Feature ........................................................................................................ 1390
Editing Bend Reliefs .............................................................................................. 1403
Edge Bend Feature ............................................................................................... 1407
Unbend Feature .................................................................................................... 1410
Flat Pattern Feature............................................................................................... 1414
Bend Back Feature................................................................................................ 1415
Sketch Form Feature ............................................................................................. 1417
Join Feature.......................................................................................................... 1423
Twist Wall Feature ................................................................................................. 1426
Merge Wall Feature ............................................................................................... 1430
Recognizing Sheet Metal Design Objects ................................................................ 1432
Note
y_factor_value is specified only if the method used to calculate
developed length is PRO_DVL_LEN_DRIVEN_BY_Y_FACTOR.
○ bend_table—Specifies the name of the bend table that controls the bend
allowance calculations for the developed length.
○ formula—Specifies the formula that was used to calculate the developed
length.
○ allowance—Specifies the value of bend allowance from the bend table.
○ dimension—Specifies the dimension ID associated with the developed
length. If the method used to calculate developed length is PRO_DVL_
LEN_DRIVEN_BY_DIMENSION, then developed length is specified
manually by the user.
○ driven_by_part_settings—Specifies if the developed length is driven by
bend allowance settings of a part or by bend allowance settings of a
feature. PRO_B_TRUE indicates that the bend allowance settings of a part
are used.
The feature element tree contains no non-standard element types. The following
list details special information about some of the elements in this tree:
• PRO_E_FEATURE_TYPE—Specifies the feature type and should be PRO_
FEAT_WALL.
• PRO_E_SMT_WALL_TYPE—Specifies the wall type. For Flat Walls, this
should be PRO_SMT_WALL_TYPE_FLAT.
• PRO_E_STD_FEATURE_NAME—Specifies the name of the feature.
• PRO_E_SMT_FLAT_WALL_ATT_EDGE—Specifies the attachment edges.
Note
○ When PRO_E_SMT_THREE_BEND_CRNR_RELIEF_TYPE is set to
PRO_THREE_B_CNR_TYPE_CLOSED, the valid options for PRO_E_
SMT_MITER_CUT_GROOVE_TYPE are:
◆ PRO_MITER_CUT_NO_GAP
◆ PRO_MITER_CUT_OBROUND
○ When PRO_E_SMT_THREE_BEND_CRNR_RELIEF_TYPE is set to
PRO_THREE_B_CNR_TYPE_TANGENT, PRO_THREE_B_CNR_TYPE_
OPEN or PRO_THREE_B_CNR_TYPE_RIP, the valid options for PRO_
E_SMT_MITER_CUT_GROOVE_TYPE are:
◆ PRO_MITER_CUT_NO_GAP
◆ PRO_MITER_CUT_THROUGH_ALL
PRO_E_SMT_MTR_CUTS
PRO_E_SMT_DEV_LEN_CALCULATION
Apart from the usual element for the tree root, a Flange Wall feature contains the
following elements:
Miter Cut
PRO_E_SMT_EXTEND_WALL_EXTENSIONS_CMP
PRO_SMT_SURF_FACE
The surface is the face (green) surface created by a sheet metal feature.
The surface is the offset (white) surface created by a sheet metal feature.
The elements in this tree are as follows:
• PRO_E_FEATURE_TYPE—Specifies the feature type and should be PRO_
FEAT_GEN_MERGE.
• PRO_E_STD_FEATURE_NAME—Specifies the name of the feature.
• PRO_E_GMRG_SMT_TYPE—Specifies the type of sheet metal feature. The
values for this element are specified by the enumerated type
ProGenMergeSmtType and the valid values are:
○ PRO_GEN_MERGE_SMT_TYPE_FORM—Specifies the Punch Form in all
the versions.
Note
Use the element PRO_GEN_MERGE_SMT_TYPE_FORM_PUNCH
instead of PRO_GEN_MERGE_SMT_TYPE_FORM from Creo
Parametric3.0 onwards.
For more information on the types of General Merge features, refer the
General Merge (Merg on page 1211 section in the Assembly: Data Sharing
Features on page 1199 chapter.
• PRO_E_DSF_REF_MDL—Specifies the punch or die model used to create the
Punch or Die Form feature. It consists of the following element:
○ PRO_E_DSF_SEL_REF_MDL—Specifies the selected punch or die
model.
• PRO_E_COMP_PLACE_INTERFACE—Specifies the assembly component
interfaces used to define the placement of the punch or die model in the sheet
metal geometry. For more information on the elements contained by the
placement interfaces element, refer the Placement via Interface on page 1174
section in the Assembly: Assembling Components on page 1159 chapter.
• PRO_E_COMPONENT_CONSTRAINTS—Specifies the assembly component
constraints used to define the placement of the punch or die model in the sheet
metal geometry. For more information on the component constraints elements,
refer the Placement Constraints on page 1172 section in the Assembly:
Assembling Components on page 1159 chapter.
Note
The placement by coordinate system option in the Creo Parametric user
interface for the Punch or Die Form feature is not available via Creo
Parametric TOOLKIT. To place the model in the sheet metal geometry
using a coordinate system, define a coordinate system feature in the sheet
metal model and use it for placement.
Note
From Creo Parametric 3.0 onward, the enumerated type
ProDsfDependency has been deprecated. Use the enumerated type
ProDSFDependency instead.
Note
From Creo Parametric 3.0 onward, the value PRO_DSF_DEPENDENT
has been deprecated. Use the enumerated value PRO_DSF_UPDATE_
AUTOMATICALLY instead.
Note
From Creo Parametric 3.0 onward, the value PRO_DSF_
INDEPENDENT has been deprecated. Use the enumerated value PRO_
DSF_UPDATE_MANUALLY instead.
Note
This element cannot be used for creating Punch Form features and is
specific to Die Form features only.
Convert Features
Shell Feature
You can use the convert features to convert a solid part into a sheet metal part. For
a block-like part, use the Shell feature to remove one or more walls that hollows
the inside of the model, leaving a shell of the specified wall thickness.
The element tree for the Shell feature is documented in the header file
ProSmtShell.h, and is shown in the following figure:
Rip Features
Rip features allow you to tear a continuous piece of sheet metal material so that
when you unbend a design, it tears along the ripped section. There are four types
of rips available:
Bend Feature
The Bend feature allows you to bend the sheet metal in different ways using the
bend line or an edge or a curve and by defining specific radius and angle.
The element tree for the Bend feature is documented in the header file
ProSmtBend.h and is as shown in the following figure:
Note
The transition flip element is
available only if there is one
transition set in the feature.
PRO_E_SMT_BEND_TRANS_ Array An array element of bend
AREAS transition lines that defines the
bend transition area.
PRO_E_SMT_BEND_TRANS_ Compound This compound element defines
SET the bend transition lines.
Unbend Feature
The unbend feature allows you to unbend one or more cylinder based curvature
surfaces such as bends or curved walls in a sheet metal part.
The element tree for the Unbend feature is documented in the header file
ProRegularUnbend.h and is shown in the following figure:
Note
You can specify the value for
this element only if the
enumerated data type
ProUnbendSubTypeis set
to the value PRO_UNBEND_
ALL.
PRO_E_SMT_FLATTEN_ALL_ PRO_VALUE_TYPE_BOOLEAN Specifies if all the forms in the
FORMS model must be flattened. The valid
values are:
Note
You can specify the value for
this element only if the
enumerated data type
ProSmtUnbendTypeis set
to the value PRO_SMT_
FLAT_PATTERN.
PRO_E_SMT_FLATTEN_PROJ_ PRO_VALUE_TYPE_BOOLEAN Specifies if cuts must be projected
CUTS to the flattened form.
PRO_E_SMT_MERGE_SAME_ PRO_VALUE_TYPE_BOOLEAN Specifies if the side surfaces
SIDES located in the same location must
be kept. The valid values for this
element are:
• PRO_B_TRUE
• PRO_B_FALSE
Note
You can specify the value for
this element only if the
enumerated data type
ProSmtUnbendTypeis set
to the value PRO_SMT_
FLAT_PATTERN.
The following table describes the elements in the element tree for the Sketch Form
feature.
Note
Specify a value for this
element only if the element
PRO_E_SKETCH_FORM_
TYPE is set to PRO_SMT_
SKETCH_FORM_
TYPE_PUNCH.
PRO_E_SKETCH_FORM_ PRO_VALUE_TYPE_DOUBLE Defines the depth of the
DEPTH_PIERCING penetration of the piercing
operation.
Note
Specify a value for this
element only if the element
PRO_E_SKETCH_FORM_
TYPE is set to PRO_SMT_
SKETCH_FORM_
TYPE_PIERCING.
PRO_E_SKETCH_FORM_DIR PRO_VALUE_TYPE_INT This element changes the direction
of the form. The valid values for
this element are:
Note
Use this element only if the
element PRO_E_SKETCH_
FORM_TYPE is set to PRO_
SMT_SKETCH_FORM_
TYPE_PUNCH.
PRO_E_EXT_DRFT_ANG PRO_VALUE_TYPE_INT Specifies the addition of a taper to
the sketch form feature. The valid
values for this element are defined
in the enumerated type
ProExtDrftAng and are as
follows:
• PRO_EXT_DRFT_ANG
_NO_DRAFT— Specifies that
the feature has no draft angle
or taper.
• PRO_EXT_DRFT_ANG
_DRAFT— Specifies that the
feature has a draft angle or
taper.
Note
Use this element only if the
element PRO_E_SKETCH_
FORM_TYPE is set to PRO_
SMT_SKETCH_FORM
_TYPE_PUNCH.
PRO_E_EXT_DRFT_ANG_VAL PRO_VALUE_TYPE_DOUBLE Specifies the tapering of the
geometry by the specified value.
Note
Use this element only if the
element PRO_E_SKETCH_
FORM_TYPE is set to PRO_
SMT_SKETCH_FORM_
TYPE_PUNCH.
PRO_E_SRF_END_ PRO_VALUE_TYPE_INT This element caps the sketch plane
ATTRIBUTES and offset surface of the form
Note
Use this element only if the
element PRO_E_SKETCH_
FORM_TYPE is set to PRO_
SMT_SKETCH_FORM
_TYPE_PUNCH.
PRO_E_FORM_PUNCH_ PRO_VALUE_TYPE_INT This element flips the material
MATERIAL_SIDE deformation direction for the
punching operation. The valid
values for this element are defined
in the enumerated type
ProSmdPunchMatSide, and
are as follows:
• PRO_SMT_PUNCH_MAT_
OUTSIDE— Specifies that the
punching operation takes place
on the outer side.
• PRO_SMT_PUNCH_MAT_
INSIDE— Specifies that the
punching operation takes place
on the inner side.
Note
Use this element only if the
element PRO_E_SKETCH_
FORM_TYPE is set to PRO_
SMT_SKETCH_FORM_
TYPE_PUNCH.
PRO_E_SMT_FILLET_ Compound This compound element specifies
INTERSECT an option to round the placement
sharp edges that lie on the
placement references and are
created by the intersection of the
Note
Use this element only if the
element PRO_E_SKETCH_
FORM_TYPE is set to PRO_
SMT_SKETCH_FORM
_TYPE_PUNCH.
PRO_E_SMT_FILLET_ PRO_VALUE_TYPE_DOUBLE Specifies the radius value.
RADIUS_VALUE
Join Feature
The Join feature helps you to connect two intersecting walls in a sheet metal part.
You can trim the non intersecting portions of the walls as well as add a bend and
bend relief at the intersection. You can also control the location of the intersection
in which the feature would be created.
The element tree for the Join feature is documented in the header file
ProSmtJoinWalls.h and is shown in the following figure:
The following table describes the elements in the element tree for the Join feature.
Note
The intersecting walls must
be planar.
PRO_E_SMT_WALL_JOIN_ Array An array element of only two
REFS surfaces, that form a join feature
set.
PRO_E_SMT_WALL_JOIN_ Compound This compound element defines
REFS_CMPND the collection of geometry to be
joined.
PRO_E_SMT_WALL_JOIN_ PRO_ELEM_TYPE_SELECT Select the surfaces which are to be
REFS_SRF connected by the join feature.
The following table describes the elements in the element tree for the merge wall
feature.
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Specifies the type of the sheet
metal feature. The valid value for
this element is PRO_FEAT_
WALL.
PRO_E_SMT_WALL_TYPE PRO_VALUE_TYPE_INT Specifies the wall type for the
sheet metal feature. The default
value is specified by the
enumerated
typeProSmtWallWallType
and the valid value is PRO_SMT_
WALL_TYPE_MERGE.
Note
In the ProSmtRecognition.h element tree, you can tag objects of the
same type at a time as sheet metal design object or not sheet metal design
object. This means only one compound element for objects of the same type
can be defined at a time for a feature.
The element tree to recognize as sheet metal design objects or not sheet metal
design objects is documented in the header file ProSmtRecognition.h and is
shown in the following figure:
1439
Manufacturing Models
Functions Introduced:
• ProMfgAssemGet()
• ProMfgTypeGet()
You can use the function ProSolidFeatVisit() to visit all the components
in a manufacturing model. However, this function requires a ProSolid (or one
of its instances, ProPart or ProAssembly) handle to the model as input. The
function ProMfgAssemGet() outputs a ProAssembly handle to the top-
level assembly in the manufacturing model, given its ProMfg handle. This
assembly handle can then be passed to ProSolidFeatVisit().
Manufacturing models, like other models in Creo Parametric, are uniquely
identified by name and type. However, there are several different varieties of
manufacturing models. For example, assembly machining, sheetmetal
manufacturing, and mold manufacturing are all types of manufacturing models.
The ProMfg object is a general purpose, opaque handle used to represent any of
the different manufacturing model varieties. To distinguish between the different
types of manufacturing model, there are manufacturing subtypes. The complete
list of subtypes is as follows:
• PRO_MFGTYPE_MACH_ASSEM
• PRO_MFGTYPE_SHEET_METAL
• PRO_MFGTYPE_MOLD
• PRO_MFGTYPE_CAST
• PRO_MFGTYPE_CMM
The function ProMfgTypeGet() outputs the subtype, given the ProMfg
handle to the manufacturing object.
In part manufacturing, the storage solid is a part that represents the workpiece or
stock, and the design piece is another component at the same level. In assembly
manufacturing, the storage solid is the actual assembly representing the design
model. The workpiece can be at any level inside this assembly. In both types of
manufacturing, the manufacturing operations are described as features of the
storage solid.
Note
You must have a Creo NC license to create manufacturing features using Creo
Parametric TOOLKIT.
Creating Tools
Functions Introduced:
The following table lists the parameters required to be defined for milling tools.
Parameter Mill Side Mill Thread Mill Groove
CUTTER_DIAM • • • •
CORNER_RADIUS • • •
CUTTER_WIDTH •
SHANK_DIAM •
LENGTH • • • •
INSERT_LENGTH •
END_OFFSET •
SIDE_ANGLE • •
GAUGE_X_ • •
LENGTH
GAUGE_Z_ • • •
LENGTH
NUM_OF_TEETH • • •
TOOL_MATERIAL • •
The following table lists the parameters required to be defined for auxiliary and
contouring tools.
Parameter Auxiliary Contouring
CUTTER_DIAM • •
LENGTH • •
The following table lists the parameters required to be defined for holemaking
tools.
Parameter Drill Csink Tap Ream Center Bore Back-
Drill Spot
CUTTER_DIAM • • • • • • •
POINT_ • •
DIAMETER
DRILL_ •
DIAMETER
BODY_ •
DIAMETER
LENGTH • • • • • • •
CHAMFER_ •
LENGTH
DRILL_LENGTH •
INSERT_ •
LENGTH
TIP_OFFSET •
GAUGE_OFFSET •
CUTTING_ •
OFFSET
SIDE_ANGLE •
Manufacturing Parameters
In general, there are a number of parameters that are mandatory for a given tool
type or NC sequence, and others that are optional. For example, a milling tool
requires that its length and diameter be specified, while other parameters such as
the number of teeth, or tool material are optional.
The addition of manufacturing parameters to both workcells and operations is
optional.
The following figure shows a parameter element subtree.
The process of creating a parameter element subtree is the same for workcells,
operations, and NC sequences. First, allocate the space for the PRO_E_MFG_
PARAMS array element. The simplest method of creating the tree is to delay
adding the PRO_E_MFG_PARAMS element to its parent until you have fully
defined the tree. As you define each PRO_E_MFG_PARAM element, add it to the
PRO_E_MFG_PARAMS array using ProElemtreeElementAdd(). Use
NULL for the element path as each PRO_E_MFG_PARAM element is added to the
parameter element tree.
The PRO_E_MFG_PARAM element itself is a compound element and requires two
children to be defined. One is the PRO_E_MFG_PARAM_NAME element, a string
(not a wide string) that represents the parameter name to define. The other is a
PRO_E_MFG_PARAMVAL element, which represents the value of the parameter.
Depending on the context, this might be an integer, double, or wide string. For
example, CUT_FEED is represented by a double, whereas NUMBER_OF_ARC_
PNTS is an integer. Refer to the Creo Parametric NC Manufacturing Help for
more information on manufacturing parameters.
Note
If no Creo Parametric TOOLKIT application has registered the needed
external function, any relation using the function cannot be evaluated and is
shown as an error. However, when defining Global Relations, even if an
undefined function is encountered, the relation will pass the validation, but,
the relation will not be applied to the steps because the function is not found.
Creating Fixtures
A fixture setup feature is one of the simplest manufacturing features and contains
a maximum of four elements.
You should name a fixture setup feature. Optionally, you can define the following:
• The time required to perform the setup
• The identifiers of the fixturing components
• Associated comments
When the tree is complete, you can pass it (and a selection handle that represents
the manufacturing assembly) to the function ProFeatureCreate().
Creating Workcells
The element tree for workcells is described in the include file ProWcell.h. For
this feature, the feature type element is PRO_FEAT_WORKCELL.
The following table shows the required and optional elements for workcell
features. In this table, the “Value” column specifies whether the element is
required (R) or optional (O).
Element Description Value
Cell type Mill, mill/turn, and so on. R
Number of axes The number of axes. R
Table direction Horizontal or vertical (for turn or R
mill/turn)
Machine number heads 1 or 2 (for turn or mill/turn) R
Name The workcell name. O
Tooling Add tools to the workcell. O
Tool table Manipulate the tools in a tool O
table.
Parameters The workcell parameters. O
The first thing to note is that a workcell can have multiple tool tables, if it has
more than one machine head. In this case, you can create a tool table for each
head.
A manufacturing table is made up of an array of PRO_E_MFG_TABLE_ROW
elements, which is itself an array of PRO_E_MFG_TABLE_CELL elements. Each
PRO_E_MFG_TABLE_CELL is a compound element that contains two more
elements—the cell type and its value.
The following examples show how to create a tool table with five drill bits,
ranging in size from M8 to M16. The tool table for most workcells (excluding
CMM) is of the following format:
POSITION TOOL_ID REGISTER COMMENTS
1 drill_M8 8MM Drill
2 drill_M10 10MM Drill
For example, to create the first row of the table, you would define the following
PRO_E_MFG_TABLE_CELLs:
• To define the first cell so the position of the tool is index 1, set the value of the
PRO_E_MFG_TABLE_CELL_TYPE to PRO_TOOL_TABLE_INDEX, and set
the value of PRO_E_MFG_TABLE_CELL_VALUE to the integer value 1.
• Similarly, define the tool identifier to be a drill_M8. Set the cell type
element to PRO_TOOL_TABLE_TOOL_ID, and set the value to a wide string
of value drill_M8. Because the register column is empty, it can be ignored.
To set the comments element, set the type to PRO_TOOL_TABLE_
COMMENTS, and set the value to a wide string of value “8MM Drill.”
Creating Operations
The element tree for manufacturing operations is described in the header file
ProMfgoper.h. For this feature, the feature type element is PRO_FEAT_
WORKCELL.
The following table shows the elements of a manufacturing operation. In this
table, the “Value” column specifies whether the element is required (R) or
optional (O).
Element Description Value
Workcell The identifier of the workcell R
feature in which to perform the
operation
Machine coordinate system The identifier of the machining R
coordinate system
Name The operation name O
Comments The operation comments O
From point The datum point from which to O
start the operation
Home point The datum point on which to end O
the operation
Parameters The operation parameters O
The creation of the feature tree is simple, apart from the home and point elements.
The following figure shows the element tree for the home points.
Creating NC Sequences
Header file ProNcseq.h describes the element tree for manufacturing NC
sequences.
There are six supported NC sequence types:
• PRO_NCSEQ_PROF_SUR_MILL—Profile milling, feature type PRO_FEAT_
MILL
• PRO_NCSEQ_VOL_MILL—Volume milling, feature type PRO_FEAT_MILL
• PRO_NCSEQ_CONV_SURF_MILL—Conventional surface, feature type
PRO_FEAT_MILL
• PRO_NCSEQ_FACE_MILL—Face milling, feature type PRO_FEAT_MILL
• PRO_NCSEQ_PREV_TOOL_MILL—Local milling using previous tool,
feature type PRO_FEAT_MILL
• PRO_NCSEQ_HOLEMAKING—Holemaking, type PRO_FEAT_DRILL
Like workcells, an NC sequence feature has a number of non-redefinable
elements. For all NC sequences, the PRO_E_NCSEQ_TYPE and PRO_E_NUM_
AXES elements are non-redefinable. For holemaking sequences, the PRO_E_
HOLEMAKING_TYPE, PRO_E_PECK_TYPE, and PRO_E_HOLE_CYCLE_
TYPE elements are non-redefinable. These elements are specific to holemaking
sequences and need not be defined for milling sequences. The following table
shows the elements of an NC sequence. In this table, the Value column specifies
whether the element is required (R) or optional (O).
Element Description Value
Feature type The feature type R
Type The sequence type R
Operation Operation to which to add the NC R
sequence
Retraction plane The retraction plane R
Tool The tool R
Csys The manufacturing coordinate system R
The retraction plane that must be defined as part of the NC sequence requires the
identifier of the underlying geometry of the datum plane. To obtain this identifier,
visit the datum plane geometry items using ProFeatureGeomitemVisit().
There are also a number of required parameters for each NC sequence that must
be defined. For conventional milling, the following parameters are required:
• CUT_FEED
• TOLERANCE
• STEP_OVER
• SPINDLE_SPEED
• CLEAR_DIST
For face milling, the following parameters are required:
• CUT_FEED
• STEP_DEPTH
• TOLERANCE
• STEP_OVER
• SPINDLE_SPEED
• CLEAR_DIST
For holemaking, the following parameters are required:
• CUT_FEED
• TOLERANCE
• SPINDLE_SPEED
• CLEAR_DIST
Note
Currently, using ProFeatureElemtreeExtract()with NC sequences
yields an element tree without holes or surface elements. In other words, there
is no way to retrieve hole set or surface information.
Milling-Specific Functions
Functions Introduced:
• ProNcseqElemSurfaceAdd()
• ProNcseqElemMillsurfSet()
• ProNcseqElemSurfaceflipSet()
After you allocate the surface element with ProElementAlloc(), you can add
the surface to be milled to the element using the function
ProNcseqElemSurfaceAdd().
If the model contains a milling surface, you can set the whole surface in the NC
sequence using ProNcseqElemMillsurfSet(). To control its orientation,
call ProNcseqElemSurfaceflipSet().
Holemaking-Specific Functions
To add hole sets to an element tree, first, obtain the hole set number by calling the
function ProNcseqElemHolesetAdd(). This hole set is used to reference a
set of holes with the same properties, including depth, direction, countersink
diameter, and so on. Note that feature element PRO_E_HOLESETS has limited
support for drill point sets, but allows the user to identify and to delete existing
drill point sets in a feature, or to overwrite drill point sets with drill axes sets.
Note
The following functions (and the element tree PRO_E_HOLES) exist in Pro/
TOOLKIT Revisions 20 and later only to provide backwards compatibility.
Use the more complete and powerful element tree PRO_E_HOLESETS for
holemaking functions.
• ProNcseqElemHolesetAdd()
• ProNcseqElemHolesetDepthTypeSet()
• ProNcseqElemHolesetDepthBySet()
• ProNcseqElemHolesetDepthSet()
• ProNcseqElemHolesetStartSet()
• ProNcseqElemHolesetEndSet()
• ProNcseqElemHolesetDirectionSet()
• ProNcseqElemHolesetAxisAdd()
• ProNcseqElemHolesetDrillpartAdd()
• ProNcseqElemHolesetCsinkdiamSet()
Feature Tree
Functions Introduced:
• ProMfgdbQuerynodeIsLeaf()
• ProMfgdbQuerynodeLeftChildGet()
• ProMfgdbQuerynodeRightChildGet()
• ProMfgdbQuerynodeLogicOperGet()
• ProMfgdbQuerynodeExprGet()
• ProMfgdbQueryTargetGet()
1467
Element Trees: Skirt Feature .................................................................................. 1664
Sub-Element Trees: Creo NC Steps........................................................................ 1672
This chapter describes the Creo Parametric TOOLKIT support for Creo NC
sequences.
ProMfgFeatWcellMill.h
ProMfgFeatWcellMillTurn.h
ProMfgFeatWcellLathe.h
ProMfgFeatWcellCmm.h
Fixture Definition ProMfgFeatFixture.h
Thread Turning ProMfgFeatTurnThread.h
Holemaking ProMfgFeatHolemaking.h
Shut-off Surface Feature ProMoldShutSrf.h
Round and Chamfer ProMfgFeatRoundChamferMilling.h
Engraving ProMfgFeatEngraving.h
Cutline Milling ProMfgFeatCutlineMilling.h
Drill Group Feature ProMfgFeatDrillGroup.h
The following table describes the elements in the element tree for the Roughing
feature.
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677.
PRO_E_MFG_CMP_MILL_WIND Compound Mandatory compound element.
Specifies the mill window
compound definition. For more
information, refer to the section
Surface Collection with Mill
Window on page 1680.
PRO_E_TOOL_MTN_ARR Array Mandatory element. Specifies an
array of tool motions.
PRO_E_TOOL_MTN Compound Mandatory compound element.
Specifies the tool motion
compound specifications. The
applicable tool motion type for
this element is : PRO_TM_TYPE_
AUTOMATIC_CUT.
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
The following table describes the elements in the element tree for the Reroughing
feature.
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677.
PRO_E_MFG_CMP_MILL_WIND Compound Mandatory compound element.
Specifies the mill window
compound definition. For more
information, refer to the section
Surface Collection with Mill
Window on page 1680.
PRO_E_MFG_PREV_SEQ PRO_VALUE_TYPE_ Mandatory Element. Specifies the
SELECTION selection sequence feature that
requires removal of left over
material. The valid values for this
element are:
• Volume Milling
• Profile Milling
• Re-roughing sequence
PRO_E_TOOL_MTN_ARR Array Mandatory element. Specifies an
array of tool motions.
PRO_E_TOOL_MTN Compound Mandatory compound element.
Specifies the tool motion
compound specifications. The
applicable tool motion type for
this element is PRO_TM_TYPE_
AUTOMATIC_CUT. For more
information, refer to the section
Tool Motion — Auto Cut on page
1766 .
PRO_E_MFG_START_PNT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION datum point selection. It allows to
start the machining at the specified
position.
PRO_E_MFG_END_PNT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION datum point selection. It allows to
end the machining at the specified
position.
PRO_E_MFG_PREREQUISITE_ Array Optional element. This array
ARR specifies the Ids of the prerequisite
sequences. For more information,
refer to the section Sequence
Prerequisites on page 1682.
PRO_E_MFG_PROCESS_REF PRO_VALUE_TYPE_ Optional element. Specifies the
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining
step..
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
The following table describes the elements in the element tree for the Finishing
feature.
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677.
PRO_E_MFG_CMP_MILL_WIND Compound Mandatory compound element.
Specifies the mill window
compound definition. For more
information, refer to the section
Surface Collection with Mill
Window on page 1680.
PRO_E_TOOL_MTN_ARR Array Mandatory element. Specifies an
array of tool motions.
PRO_E_TOOL_MTN Compound Mandatory compound element.
Specifies the tool motion
compound specifications. The
applicable tool motion type for
this element is : PRO_TM_TYPE_
AUTOMATIC_CUT.
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677.
PRO_E_MFG_CMP_MILL_WIND Compound Mandatory compound element.
Specifies the mill window
compound definition. For more
information, refer to the section
Surface Collection with Mill
Window on page 1680.
PRO_E_MFG_PREV_TOOL_ID PRO_VALUE_TYPE_WSTRING Optional element. Name of cutting
tool (tool id) which will be used
for calculating the remainder
material.
PRO_E_TOOL_MTN_ARR Array Mandatory element. Specifies an
array of tool motions.
PRO_E_TOOL_MTN Compound Mandatory compound element.
Specifies the tool motion
compound specifications. The
applicable tool motion type for
this element is : PRO_TM_TYPE_
AUTOMATIC_CUT. For more
information, refer to the section
Tool Motion — Auto Cut on page
1766 .
PRO_E_MFG_START_PNT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION datum point selection. It allows to
start the machining at the specified
position.
PRO_E_MFG_END_PNT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION datum point selection. It allows to
end the machining at the specified
position.
PRO_E_MFG_PREREQUISITE_ Array Optional element. This array
ARR specifies the Ids of the prerequisite
sequences. For more information,
refer to the section Sequence
Prerequisites on page 1682 .
PRO_E_MFG_PROCESS_REF PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION reference selections such as part,
feature, curve, surface, datum
plane, axis, point, and datum
coordinate. It allows you to create
additional geometric references to
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
The element tree for the 3 axis trajectory milling sequence is documented in the
header file ProMfgFeatTrajectory.h, and is as shown in the following
figure:
The following table describes the elements in the element tree for the 3 Axis
Trajectory Milling feature.
Note
You can set this element to 5
only if the work center allows
5-axis machining.
PRO_E_NCSEQ_CSYS PRO_VALUE_TYPE_ Mandatory element. Specifies the
SELECTION datum that will be used as the
coordinate system for the Creo NC
sequence.
PRO_E_RETR_SURF Compound Mandatory compound element.
Specifies retract definition. For
more information, refer to the
section Retract Elements on page
1673 .
PRO_E_MFG_SUB_SPINDLE_ PRO_VALUE_TYPE_INT Optional Element. Specifies the
OPT type of spindle assigned to the
sequence. This element can be
used when two parts are machined
during the same operation in
different spindles, that is in the
main spindle and in the sub
spindle. The valid values for this
element are defined by the
enumerated type
ProSubSpindleOpt. For more
information on the values of
ProSubSpindleOpt, refer to
the section Spindle Types on page
1690
PRO_E_MFG_TOOL_REF_ Compound Mandatory compound element.
COMPOUND Specifies tool reference definition.
For more information, refer to the
section Tool Reference on page
1676 .
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677 .
PRO_E_CHECK_SURF_COLL PRO_VALUE_TYPE_ Optional compound element.
SELECTION Specifies the check surfaces
compound definition. For more
information, refer to the section
Checking Surfaces on page 1687.
PRO_E_TOOL_MTN_ARR Array Mandatory element. Specifies an
array of tool motions.
PRO_E_TOOL_MTN Compound Mandatory compound element.
Specifies the tool motion
compound specifications. The
applicable tool motion types for
this element are :
• PRO_TM_TYPE_CURVE
_TRAJECTORY. For more
information, refer to the
section Tool Motion — Curve
Trajectory on page 1740.
• PRO_TM_TYPE_SURF_
TRAJECTORY. For more
information, refer to the
section Tool Motion —
Surface Trajectory on page
1751.
• PRO_TM_TYPE_FOLLOW_
CUT. For more information,
refer to the section Tool
Motion — Follow Cut on page
1770.
• PRO_TM_TYPE_FOLLOW_
CURVE. For more information,
refer to the section Tool
Motion — Follow Curve on
page 1694.
• PRO_TM_TYPE_GOTO
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
Note
The name is going to be
ignored if site does not exist
in the manufacturing model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Specifies an
array of manufacturing
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name. It
allows you to associate a specific
simplified representation with a
machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimate. It allows you to
specify time estimate for the
machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate. It allows you to
specify cost estimate for the
machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time. It allows you to
specify actual time for the
machining step
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
Note
This element is mandatory
for milling manual Creo NC
sequences and is ignored for
turning manual sequences.
.
PRO_E_MFG_SUB_SPINDLE_ PRO_VALUE_TYPE_INT Optional Element. Specifies the
OPT type of spindle assigned to the
sequence. This element can be
used when two parts are machined
during the same operation in
different spindles, that is in the
main spindle and in the sub
spindle. The valid values for this
element are defined by the
enumerated type
ProSubSpindleOpt. For more
information on the values of
ProSubSpindleOpt, refer to
the section Spindle Types on page
Note
This element is optional for
milling manual sequences
and is ignored for turning
manual sequences.
PRO_E_MFG_PARAM_SITE_ PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
NAME name of the site file with default
values for manufacturing
parameters.
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677.
PRO_E_TOOL_MTN_ARR Array Mandatory element. Specifies an
array of tool motions.
PRO_E_TOOL_MTN Compound Mandatory compound element.
Specifies the tool motion
compound specifications. The
applicable tool motion types for
this element are:
• PRO_TM_TYPE_FOLLOW_
CURVE. For more information,
refer to the section Tool
Motion — Follow Curve on
page 1694.
• PRO_TM_TYPE_GOTO
_POINT. For more
information, refer to the
section Tool Motion — Go To
Point on page 1696.
• PRO_TM_TYPE_GO_DELTA.
For more information, refer to
the section Tool Motion — Go
Delta on page 1700.
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
Note
This element is mandatory
when PRO_E_DRILL_MODE
is set to PRO_DRILL_
HOLE_ON_MILL and is
ignored when set to PRO_
DRILL_HOLE_ON_LATHE.
PRO_E_MFG_MILL_THREAD_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
TYPE_OPT thread type. The valid values for
this element are:
• External
• Internal
The value for this element is
defined by the
ProMillThreadType
parameter.
PRO_E_MFG_MILL_THREAD_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
TAPER_OPT taper type. The valid values for
this element are:
• None
• NTP
• Custom
The value for this element is
defined by the
ProMillThreadTaperType
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677.
PRO_E_MFG_THRM_HOLESET_ Array Specifies an array of thread
ARR holesets. It gives specification of
threads to machine. For more
information, refer to the section
Manufacturing Thread Milling
Holeset on page 1513.
PRO_E_TOOL_MTN_ARR Array Mandatory element. Specifies an
array of tool motions.
PRO_E_TOOL_MTN Compound Mandatory compound element.
Specifies the tool motion
compound specifications. The
applicable tool motion types for
this element are:
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
Note
Specify this element only
when the holeset array has at
least one member
PRO_E_HOLESET_TYPE PRO_VALUE_TYPE_INT Mandatory element. Specifies the
holeset type. The valid value for
this element is PRO_HOLESET_
DRILL_AXES.
PRO_E_HOLESET_START Compound Mandatory element. Specifies the
holemaking start compound
specification.
PRO_E_HOLESET_START_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
TYPE start surface option using the
enumerated value
ProDrillStartType.
PRO_E_HOLESET_START_ PRO_VALUE_TYPE_ Specifies the starting surface or
SURFACE SELECTION quilt selection.
Note
This element is mandatory if
the element PRO_E_
HOLESET_START_TYPE is
set to PRO_DRILL_FROM_
SURFACE.
PRO_E_MFG_THRM_HSET_ Compound Mandatory element. Specifies the
END_COMPOUND thread depth compound
specification.
PRO_E_HOLESET_END_TYPE PRO_VALUE_TYPE_INT Mandatory element. Specifies the
end type option. The valid values
for this element are:
• PRO_DRILL_UPTO_
SURFACE
• PRO_DRILL_AUTO_END
• PRO_DRILL_OFFSET_
FROM_START
PRO_E_HOLESET_END_ PRO_VALUE_TYPE_ Specifies the end surface or quilt
SURFACE SELECTION
Note
This element is mandatory if
the element PRO_E_
HOLESET_END_TYPE is set
to PRO_DRILL_UPTO_
SURFACE.
PRO_E_HOLESET_DEPTH_ PRO_VALUE_TYPE_DOUBLE Specifies the depth to the cut
VALUE thread from the start.
Note
This element is mandatory if
the element PRO_E_
HOLESET_END_TYPE is set
to PRO_DRILL_OFFSET_
FROM_START.
PRO_E_DRILL_PART_DATA Compound This element gives compound
information about components
used in depth computation.
Note
Specify this element only if
the start or end of machining
has to be computed and the
following conditions hold
true:
Note
• This element is
mandatory if the element
PRO_E_AUTO_SEL_
DRILL_PARTS is set to
FALSE.
Note
Specify this element only
when at least one of the
following have been defined:
• PRO_E_HOLESET_
SEL_INDIV_AXES
• PRO_E_HOLESET_
SEL_AXIS_PATTS
• PRO_E_HOLESET_
SEL_BY_SURFACES
• PRO_E_MFG_HSET_
DIAM_TYPE_OPT
• PRO_E_MFG_HSET_
THREAD_DESCR_ARR
• PRO_E_MFG_HSET_
DIAM_ARR
• PRO_E_MFG_HSET_
PARAM_ARR
PRO_E_HOLESET_SEL_AXIS_ PRO_VALUE_TYPE_ Optional element. Specifies the
PATTS SELECTION selection of axes of patterned
holes. This element supports
multiple selections.
Note
If a pattern leader is selected,
all holes in pattern will be
collected.
PRO_E_HOLESET_SEL_BY_ PRO_VALUE_TYPE_ Optional element. Specifies the
SURFACES SELECTION selection of surfaces or quilts with
holes. This element supports
multiple selections.
PRO_E_MFG_HSET_DIAM_ PRO_VALUE_TYPE_INT Optional element. Specifies the
TYPE_OPT type of hole diameters that can be
collected in the element PRO_E_
MFG_HSET_DIAM_ARR. The
type of hole diameter is specified
using the enumerated data type
ProHolesetDiamType. The
valid values are:
Note
If the element PRO_E_
MFG_HSET_DIAM_
TYPE_OPT is not
defined, then by default,
the hole diameter of type
PRO_HSET_ALL_
DIAMS is used.
• PRO_HSET_HOLE_DIAMS—
Specifies that diameters only
of solid surfaces can be
collected.
• PRO_HSET_THREAD_
DIAMS—Specifies that
diameters only of cosmetic
threads can be collected.
PRO_E_MFG_HSET_DIAM_ARR Array Optional element. Specifies an
array of diameters of holes to
machine.
PRO_E_MFG_HSET_DIAM_ Compound Optional element. Specifies the
COMPOUND compound definition of a hole
diameter.
PRO_E_MFG_HSET_HOLE_ PRO_VALUE_TYPE_DOUBLE Specifies the diameter of a hole to
DIAM machine.
Note
This element is a mandatory
child element of the element
PRO_E_MFG_HSET_DIAM_
COMPOUND.
PRO_E_MFG_HSET_THREAD_ Array Optional element. This array
DESCR_ARR element gives thread descriptions
of holes to machine.
PRO_E_MFG_HSET_THREAD_ Compound Optional element. Specifies
DESCR_COMP compound definition of a thread
description.
PRO_HSET_BOOL_OPER_
AND—Collects holes that
satisfy all the search conditions
set for a parameter.
Note
This element is a mandatory
child of PRO_E_MFG_
HSET_PARAM_COMPOUND
element.
PRO_E_MFG_HSET_PARAM_ PRO_VALUE_TYPE_INT Specifies the data type of the
DTYPE values using the enumerated value
ProParamvalueType.
Note
This element is a mandatory
child of PRO_E_MFG_
HSET_PARAM_COMPOUND
element.
PRO_E_MFG_HSET_PARAM_ PRO_VALUE_TYPE_INT Specifies the type of expression
OPER operator using the enumerated
value ProDrillParamOper.
Note
This element is a mandatory
child of PRO_E_MFG_
HSET_PARAM_COMPOUND
element.
PRO_E_MFG_HSET_PARAM_ PRO_VALUE_TYPE_DOUBLE Specifies the value of the double
VAL_DBL data type.
Note
• This element is mandatory
child of PRO_E_MFG_HSET_
PARAM_COMPOUND element
for double data type (PRO_E_
MFG_HSET_PARAM_DTYPE
is set to PRO_PARAM_
DOUBLE). It is ignored for
other data types.
PRO_E_MFG_HSET_PARAM_ PRO_VALUE_TYPE_INT Specifies the value of the integer
VAL_INT
Note
• This element is mandatory
child of PRO_E_MFG_HSET_
PARAM_COMPOUND element
for integer data type (PRO_E_
MFG_HSET_PARAM_DTYPE
is set to PRO_PARAM_
INTEGER). It is ignored for
other data types.
PRO_E_MFG_HSET_PARAM_ PRO_VALUE_TYPE_WSTRING Specifies the value of the string
VAL_STR data type.
Note
• This element is mandatory
child of PRO_E_MFG_HSET_
PARAM_COMPOUND element
for string data type (PRO_E_
MFG_HSET_PARAM_DTYPE
is set to PRO_PARAM_
STRING). It is ignored for
other data types.
PRO_E_MFG_HSET_PARAM_ PRO_VALUE_TYPE_INT Specifies the value of the string
VAL_BOOL data type.
Note
• This element is mandatory
child of PRO_E_MFG_HSET_
PARAM_COMPOUND element
for boolean data type (PRO_
E_MFG_HSET_PARAM_
DTYPE is set to PRO_
PARAM_BOOLEAN). It is
ignored for other data types.
PRO_E_HOLESET_SEL_ PRO_VALUE_TYPE_ Specifies the selection of datum
INDIV_AXES SELECTION axes. This element supports
multiple selections.
Note
This element is mandatory if
you have not defined the
following elements:
• PRO_E_HOLESET_
SEL_AXIS_PATTS
• PRO_E_HOLESET_
SEL_BY_SURFACES
• PRO_E_MFG_HSET_
THREAD_DESCR_ARR
• PRO_E_MFG_HSET_
DIAM_ARR
• PRO_E_MFG_HSET_
PARAM_ARR
PRO_E_HOLESET_SEL_ PRO_VALUE_TYPE_ Optional element. Specifies the
UNSEL_AXES SELECTION selection of axes of holes to be
excluded for machining. This
element supports multiple
selections.
PRO_E_MFG_HSET_START_ PRO_VALUE_TYPE_ Optional element. Specifies the
HOLE_REF SELECTION axis selection for the hole to be
machined first.
The following table describes the elements in the element tree for the area turning
feature.
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Mandatory element. Specifies the
type of the feature. The valid value
for this element is PRO_FEAT_
TURN.
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
name for the Creo NC sequence.
The default values for this element
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing parameters.
For more information, refer to the
section Manufacturing Parameters
on page 1677.
PRO_E_TOOL_MTN_ARR Array Mandatory element. Specifies an
array of tool motions.
PRO_E_TOOL_MTN Compound Mandatory compound element.
Specifies the tool motion
compound specifications. The
applicable tool motion types for
this element are:
• PRO_TM_TYPE_AREA_
TURNING. For more
information, refer to the section
Tool Motion — Area and
Groove Turning on page 1731.
• PRO_TM_TYPE_GROOVE_
TURNING. For more
information, refer to the section
Tool Motion — Area and
Groove Turning on page 1731.
• PRO_TM_TYPE_PROF_
TURNING. For more
information, refer to the section
Tool Motion — Profile Turning
on page 1737.
• PRO_TM_TYPE_FOLLOW_
CUT. For more information,
refer to the section Tool Motion
— Follow Cut on page 1770
PRO_TM_TYPE_FOLLOW_
CURVE. For more information,
refer to the section Tool Motion
— Follow Curve on page 1694.
• PRO_TM_TYPE_GOTO_
POINT. For more information,
refer to the section Tool Motion
— Go To Point on page 1696
• PRO_TM_TYPE_GO_DELTA.
For more information, refer to
the section Tool Motion — Go
Delta on page 1700.
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing parameters.
For more information, refer to the
section Manufacturing Parameters
on page 1677.
PRO_E_TURN_PROFILE PRO_VALUE_TYPE_ Mandatory element. Specifies turn
SELECTION profile selection.
PRO_E_TOOL_MTN_ARR Array Mandatory element. Specifies an
array of tool motions.
PRO_E_TOOL_MTN Compound Mandatory compound element.
Specifies the tool motion
compound specifications. For more
information, refer to the section
Tool Motion — Auto Cut on page
1766.
PRO_E_MFG_START_PNT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION datum point selection. It allows to
start the machining at the specified
position.
PRO_E_MFG_END_PNT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION datum point selection. It allows to
end the machining at the specified
position.
PRO_E_MFG_PREREQUISITE_ Array Optional element. This array
ARR specifies the Ids of the prerequisite
sequences. For more information,
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments
Note
This element is ignored for
workcells with single head.
PRO_E_MFG_HOME2_PNT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION datum point selection. Allows to
end machining by head the 2 tool
at the specified position.
Note
This element is ignored for
workcells with single head.
PRO_E_MFG_FROM3_PNT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION datum point geometry item
selection. Allows to start
machining by the head 3 tool at the
specified position.
Note
This element is ignored for
workcells with number of
heads less than 3.
Note
This element is ignored for
workcells with number of
heads less than 3.
PRO_E_MFG_FROM4_PNT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION datum point geometry item
selection. Allows to start
machining by the head 4 tool at the
specified position.
Note
This element is ignored for
workcells with number of
heads less than 4.
PRO_E_MFG_HOME4_PNT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION datum point geometry item
selection. Allows to end machining
by the head 4 tool at the specified
position.
Note
This element is ignored for
workcells with number of
heads less than 4.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Specifies an
array of applicable manufacturing
parameters. The element tree for
the manufacturing parameter is
defined in the header file
ProMfgElemParam.h.
Note
For new features, if the
parameter array is not
specified the default values
will be assigned to the
corresponding manufacturing
parameters of the created
feature.
PRO_E_MFG_OPER_STOCK_ PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
MATERIAL stock material name.
PRO_E_MFG_FIXTURE_REF PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION selection of a fixture setup feature.
PRO_E_FIXTURE_ Array Optional element. Specifies an
COMPONENT_REF array of operation fixture setup
components that can be inserted
into the top assembly. This array
can be can be specified either in
combination with or without a
fixture setup reference specified by
PRO_E_MFG_FIXTURE_REF.
This element supports multiple
selections.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
The following table describes the elements in the element tree for the WEDM
workcell feature.
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Mandatory element. Specifies the
type of the feature. The valid
value for this element is PRO_
FEAT_WORKCELL.
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
name for the Creo NC sequence.
The default value for this element
is WEDM01.
PRO_E_WCELL_TYPE PRO_VALUE_TYPE_INT Mandatory element. Specifies the
type of the workcell used for the
Creo NC sequence. The valid
value for this element is PRO_
WCELL_WEDM.
PRO_E_MFG_WCELL_NUM_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
AXES number of controlled axes
Note
This element is optional ,
when CMM tool head is not
defined.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677.
PRO_E_MFG_WCELL_HEAD_1 Compound Optional element. Specifies the
tool head compound definition.
PRO_E_MFG_WCELL_TOOL_ Array Optional element. Specifies the
SETUP_ARR tool setup array. For more
information, refer to the section
Element Trees: Tool Setup on
page 1683.
PRO_E_MFG_WCELL_CMM_ Compound Optional element. Specifies the
HEAD CMM probes head compound
definition.
Note
This element is ignored if
PRO_E_MFG_ENABLE_
CMM_OPT is set to PRO_B_
FALSE.
PRO_E_MFG_CMM_TOOL_ Array Optional element. Specifies the
SETUP_ARR CMM probes setup array. For
more information, refer to the
section Element Trees: CMM
Probe Setup on page 1686.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the workcell comments.
Note
This element is optional,
when CMM tool head is not
defined or is disabled.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677 .
PRO_E_MFG_WCELL_HEAD_1 Compound Optional element. Specifies the
tool head compound definition.
PRO_E_MFG_WCELL_TOOL_ Array Optional element. Specifies the
SETUP_ARR tool setup array. For more
information, refer to the section
Element Trees: Tool Setup on
page 1683.
PRO_E_MFG_WCELL_CMM_ Compound Optional compound element.
HEAD Specifies the CMM probes head
Note
This element is ignored if
PRO_E_MFG_ENABLE_
CMM_OPT is set to PRO_
B_FALSE.
PRO_E_MFG_CMM_TOOL_ Array Optional element. Specifies the
SETUP_ARR CMM probes setup array. For
more information, refer to the
section Element Trees: CMM
Probe Setup on page 1686 .
PRO_E_MFG_WCELL_CUST_ Array Optional element. Specifies the
CYCLE_ARR array of custom cycle names (to
be used by holemaking
sequences). For holemaking
sequences, For more information,
refer to the section Manufacturing
Holemaking Step on page 1578.
PRO_E_MFG_WCELL_CUST_ Compound Optional compound element.
CYCLE_COMP Specifies the compound definition
of a custom cycle name.
PRO_E_MFG_WCELL_CUST_ PRO_VALUE_TYPE_WSTRING Specifies the custom cycle name.
CYCLE_NAME
Note
This element is a mandatory
child of PRO_E_MFG_
WCELL_CUST_CYCLE_
COMP element.
PRO_E_MFG_WCELL_ASSEM_ Compound Optional compound element.
COMPOUND Specifies the Simulation assembly
compound definition.
PRO_E_MFG_WCELL_ Assembly Name Specifies the simulation assembly
ASSEMBLY_NAME model name.
Note
This element is a mandatory
child of PRO_E_MFG_
WCELL_ASSEM_
COMPOUND element.
Note
• This element is a
mandatory child element
of PRO_E_MFG_
WCELL_ASSEM_
COMPOUND element.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the workcell comments.
Note
This element is ignored if
you have set the element
PRO_E_MFG_WCELL_
NUM_HEADS to PRO_MFG_
ONE_HEAD_WCELL value.
PRO_E_MFG_WCELL_TOOL Array Optional element. Specifies the
_SETUP_ARR Tool setup array. For more
information, refer to the section
Element Trees: Tool Setup on
page 1683.
PRO_E_MFG_WCELL_HEAD_3 Compound Optional element. Specifies the
tools specification for head 3.
Note
This element is ignored for
workcells with number of
heads less than 3 that is,
when the element PRO_E_
MFG_WCELL_NUM_HEADS
is set to PRO_MFG_ONE_
HEAD_WCELL or PRO_
MFG_TWO_HEAD_WCELL.
PRO_E_MFG_WCELL_TOOL_ Array Optional element. Specifies the
SETUP_ARR Tool setup array. For more
information, refer to the section
Element Trees: Tool Setup on
page 1683.
PRO_E_MFG_WCELL_HEAD_4 Compound Optional element. Specifies the
Note
This element is ignored for
workcells with number of
heads less than 4 that is,
when the element PRO_E_
MFG_WCELL_NUM_HEADS
is set to PRO_MFG_ONE_
HEAD_WCELL, PRO_MFG_
TWO_HEAD_WCELL or
PRO_MFG_THREE_HEAD_
WCELL.
PRO_E_MFG_WCELL_TOOL_ Array Optional element. Specifies the
SETUP_ARR Tool setup array. For more
information, refer to the section
Element Trees: Tool Setup on
page 1683.
PRO_E_MFG_WCELL_CMM_ Compound Optional compound element.
HEAD Specifies the CMM probes head
compound definition.
Note
This element is ignored if
PRO_E_MFG_ENABLE_
CMM_OPT is set to PRO_
B_FALSE.
PRO_E_MFG_CMM_TOOL_ Array Optional element. Specifies the
SETUP_ARR CMM probes setup array. For
more information, refer to the
section Element Trees: CMM
Probe Setup on page 1686 .
PRO_E_MFG_WCELL_CUST_ Array Optional element. Specifies the
CYCLE_ARR array of custom cycle names (to
be used by holemaking
sequences). For holemaking
sequences, For more information,
refer to the section Manufacturing
Holemaking Step on page 1578.
PRO_E_MFG_WCELL_CUST_ Compound Optional compound element.
CYCLE_COMP Specifies the compound definition
of a custom cycle name.
Note
This element is a mandatory
child of PRO_E_MFG_
WCELL_ASSEM_
COMPOUND element.
PRO_E_MFG_WCELL_LOCAL_ PRO_VALUE_TYPE_ Specifies the coordinate system
CSYS_REF SELECTION datum feature. It will be aligned
with the simulation assembly
coordinate system during
machining simulation.
Note
This element is a mandatory
child element of PRO_E_
MFG_WCELL_ASSEM_
COMPOUND element.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the workcell comments.
PRO_E_MFG_MILLTURN_HEADS Element
The compound element PRO_E_MFG_MILLTURN_HEADS contains elements
that can be used to define the parameters for the turret head. The elements of
PRO_E_MFG_MILLTURN_HEADS are as follows:
• PRO_E_MFG_MILLTURN_HEAD_1—Contains the options for the first
turret.
• PRO_E_MFG_MILLTURN_HEAD_2—Contains the options for the second
turret.
• PRO_E_MFG_MILLTURN_HEAD_3—Contains the options for the third
turret.
Note
This element is ignored if the
element PRO_E_MFG_
WCELL_ENABLE_TURN_
OPT is set to PRO_B_
FALSE.
PRO_E_WCELL_HEAD_FLASH_ PRO_VALUE_TYPE_INT Optional element. Specifies the
OPT turret flash tool option. The valid
values for this element are:
• PRO_B_TRUE—Enables the
flash tool for the turret.
• PRO_B_FALSE—Disables
the flash tool for the turret.
PRO_E_WCELL_HEAD_ROT_ PRO_VALUE_TYPE_INT Optional element. Specifies the
POS_OPT turret rotation positioning option.
The valid values for this element
are:
• PRO_B_TRUE—Enables the
rotation positioning for the
turret.
• PRO_B_FALSE—Disables
the rotation positioning for the
turret.
Note
This element is ignored if
you have set the element
PRO_E_MFG_WCELL_
NUM_HEADS to PRO_MFG_
ONE_HEAD_WCELL value.
PRO_E_MFG_WCELL_TOOL_ Array Optional element. Specifies the
SETUP_ARR Tool setup array. For more
information, refer to the section
Element Trees: Tool Setup on
page 1683.
PRO_E_MFG_WCELL_CMM_ Compound Optional compound element.
HEAD Specifies the CMM probes head
compound definition.
Note
This element is ignored if
PRO_E_MFG_ENABLE_
CMM_OPT is set to PRO_B_
FALSE.
PRO_E_MFG_CMM_TOOL_ Array Optional element. Specifies the
SETUP_ARR CMM probes setup array. For
more information, refer to the
section Element Trees: CMM
Probe Setup on page 1686.
PRO_E_MFG_WCELL_CUST_ Array Optional element. Specifies the
CYCLE_ARR array of custom cycle names (to
be used by holemaking
sequences). For holemaking
sequences, For more information,
refer to the section Manufacturing
Holemaking Step on page 1578
PRO_E_MFG_WCELL_CUST_ Compound Optional compound element.
CYCLE_COMP Specifies the compound definition
of a custom cycle name.
PRO_E_MFG_WCELL_CUST_ PRO_VALUE_TYPE_WSTRING Specifies the custom cycle name.
CYCLE_NAME
Note
This element is a mandatory
child of PRO_E_MFG_
WCELL_CUST_CYCLE_
COMP element.
PRO_E_MFG_WCELL_ASSEM_ Compound Optional compound element.
COMPOUND Specifies the Simulation assembly
Note
This element is a mandatory
child of PRO_E_MFG_
WCELL_ASSEM_
COMPOUND element.
PRO_E_MFG_WCELL_LOCAL_ PRO_VALUE_TYPE_ Specifies the coordinate system
CSYS_REF SELECTION datum feature. It will be aligned
with the simulation assembly
coordinate system during
machining simulation.
Note
This element is a mandatory
child element of PRO_E_
MFG_WCELL_ASSEM_
COMPOUND element.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the workcell comments.
Note
This element is a mandatory
child of PRO_E_MFG_
WCELL_ASSEM_
COMPOUND element.
PRO_E_MFG_WCELL_LOCAL_ PRO_VALUE_TYPE_ Specifies the coordinate system
CSYS_REF SELECTION datum feature. It will be aligned
with the simulation assembly
coordinate system during
machining simulation.
Note
This element is a mandatory
child element of PRO_E_
MFG_WCELL_ASSEM_
COMPOUND element.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the workcell comments.
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677 .
PRO_E_MACH_SURFS Compound Mandatory element. Specifies the
machining surfaces compound
definition.
PRO_E_MFG_SURF_SIDE_ Compound Optional compound element.
COMPOUND Specifies the surfaces side
compound definition. For more
information, refer to the section
Manufacturing Surface Side on
page 1566.
PRO_E_MFG_4_AXIS_PLANE PRO_VALUE_TYPE_ Specifies the selection of datum
SELECTION plane or planar surface.
Note
• This element is mandatory for
4-axis machining (PRO_E_
MFG_SEQ_NUM_AXES_OPT
set to 4).
• This element is ignored for 3-
axis and 5-axis machining.
PRO_E_SCALLOP_SURF_COLL Compound Optional compound element.
Specifies the scallop surfaces
compound definition.
PRO_E_STD_SURF_ Surface Collection Optional element. Specifies the
COLLECTION_APPL scallop surfaces collection.
PRO_E_CHECK_SURF_COLL PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION check surfaces compound
definition. For more information,
refer to the section Checking
Surfaces on page 1687.
PRO_E_MFG_CMP_APPROACH_ Compound Optional element. Specifies the
EXIT approach and exit compound
definition. For more information,
refer to the section Approach and
Exit on page 1689.
Note
The Follow Cut motion must
be placed just after the
element PRO_TM_TYPE_
PROFILE_MILL_CUT,
motion or another Follow Cut
motion.
PRO_E_MFG_START_PNT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION datum point selection. It allows to
start the machining at the specified
position.
PRO_E_MFG_END_PNT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION datum point selection. It allows to
end the machining at the specified
position.
PRO_E_MFG_PREREQUISITE_ Array Optional element. This array
ARR specifies the Ids of the prerequisite
sequences. For more information,
refer to the section Sequence
Prerequisites on page 1682.
PRO_E_MFG_PROCESS_REF PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION reference selections such as part,
feature, curve, surface, datum
plane, axis, point, and datum
coordinate. It allows you to create
additional geometric references to
be used only in special process
application. This element supports
multiple selections.
PRO_E_MFG_FEAT_VIEW_ PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
NAME name of the view. This element
allows you to associate a specific
view with the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
The following table describes the elements in the element tree for the surface side
feature.
Note
The value for this element
should be nonnegative.
PRO_E_MFG_SURF_SIDE_ PRO_VALUE_TYPE_ Optional element. Specifies the
FLIP_QUILTS SELECTION selection of quilts to be flipped.
This element supports multiple
selections.
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677.
PRO_E_MACH_SURFS Compound Mandatory compound element.
Specifies the machining surfaces
compound definition. For more
information, refer to the section
Element Trees: Machining
Surfaces on page 1573.
PRO_E_MFG_CMP_APPROACH_ Compound Optional compound element.
EXIT Specifies the approach and exit
compound definition. For more
information, refer to the section
Approach and Exit on page 1689.
PRO_E_TOOL_MTN_ARR Array Mandatory element. Specifies an
array of tool motions.
PRO_E_TOOL_MTN Compound Mandatory compound element.
Specifies the tool motion
compound specifications. The
applicable tool motion types for
this element are :
• PRO_TM_TYPE_FACE_
MILLING. For more
information, refer to the
section Tool Motion — Face
Milling on page 1777.
• PRO_TM_TYPE_FOLLOW_
CUT. For more information,
refer to the section Tool
Motion — Follow Cut on page
1770.
• PRO_TM_TYPE_FOLLOW_
CURVE. For more information,
refer to the section Tool
Motion — Follow Curve on
page 1694.
• PRO_TM_TYPE_GOTO_
POINT. For more information,
refer to the section Tool
Motion — Go To Point on
page 1696.
• PRO_TM_TYPE_GO_DELTA.
For more information, refer to
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
Note
This element is ignored if the
element PRO_E_MACH_
SURF_OPT is not set to
PRO_MACH_SURF_OPT_
SURFACES.
PRO_E_MACH_SURF_REF_ PRO_VALUE_TYPE_INTEGER Specifies the reference types. The
TYPE valid values for this element are:
Note
This element is mandatory if
neither PRO_E_MFG_MILL_
WIND_SRF nor PRO_E_
MACH_SURF_PREV_STEP
are defined.
PRO_E_MFG_MILL_WIND_SRF PRO_VALUE_TYPE_ Specifies the selection of mill
SELECTION window feature.
Note
Specify this element only if
the elements PRO_E_STD_
SURF_COLLECTION_APPL
and PRO_E_MACH_SURF_
PREV_STEP are not defined.
Note
This element is mandatory if
neither the element PRO_E_
STD_SURF_COLLECTION_
APPL nor the element PRO_
E_MFG_MILL_WIND_SRF
are defined. This element
must not be set otherwise.
PRO_E_MACH_SRF_FLIP PRO_VALUE_TYPE_INTEGER Specifies the position of flip quilt.
The valid values for this element
are:
• PRO_B_FALSE—Specifies
the machining of the surface
on the side defined by the
default normal.
• PRO_B_TRUE—Specifies the
machining of the surface on
the opposite side defined by
the default normal.
Note
This element is mandatory if
the element PRO_E_MACH_
SURFS is defined and the
reference type is set to PRO_
SURF_REF_TYPE_MILL_
MVOLSRF or PRO_SURF_
REF_TYPE_TOP_ASSEM_
SRF.
Note
Specify this element only if
the component is inserted in
the manufacturing assembly.
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
Note
This element is mandatory
for drilling on mill-turn work
center.
PRO_E_MFG_OPER_REF PRO_VALUE_TYPE_ Mandatory element. Specifies the
SELECTION operation feature selection.
PRO_E_MFG_HOLEMAKING_ PRO_VALUE_TYPE_INT Specifies the holemaking cycle
CYCLE_TYPE type using the enumerated value
ProHmCycleType.
Note
This element is mandatory
for drilling, tapping,
counterboring,
countersinking. For
countersinking, this element
should be set to the value
PRO_HM_CYCLE_TYPE_
STANDARD. This element is
ignored for other types of
holemaking.
PRO_E_MFG_SEQ_NUM_AXES_ PRO_VALUE_TYPE_INT Specifies the number of axes. The
OPT valid value for this element are:
• 3
• 5
Note
This element can be set to 5
only if work center allows 5-
axis machining.
PRO_E_NCSEQ_CSYS PRO_VALUE_TYPE_ Mandatory element. Specifies the
SELECTION coordinate system datum feature to
be used as a sequence coordinate
system.
Note
• This element is
mandatory when the
element PRO_E_
DRILL_MODE is set to
PRO_DRILL_HOLE_
ON_MILL.
Note
The name will be ignored if
site does not exist in the
manufacturing model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Specifies an
array of manufacturing
parameters. The element tree for
the manufacturing parameter is
defined in the header file
ProMfgElemParam.h. For
more information, refer to the
section Manufacturing Parameters
on page 1677 for more
information on the element tree.
PRO_E_MFG_CUSTOM_CYCLE_ PRO_VALUE_TYPE_WSTRING Specifies the name of custom
NAME cycle which will be used to define
machining strategy.
Note
• A custom cycle with
specified name must
exists in manufacturing
model.
• This element is
mandatory for custom
cycle holemaking (when
the element PRO_E_
HOLEMAKING_TYPE is
not set to PRO_HOLE_
MK_CUSTOM)
PRO_E_HOLESETS Array Specifies an array of holesets
which gives specification of holes
to machine. For more information,
refer to the section Manufacturing
Holemaking Holeset on page 1584
for more information on the
element tree.
PRO_E_CHECK_SURF_COLL PRO_VALUE_TYPE_ Specifies the check surfaces
SELECTION compound definition. The element
tree for the Checking Surfaces is
defined in the header file
ProMfgElemCheckSurf.h.
For more information, refer to the
section Checking Surfaces on page
1687 for more information on the
element tree.
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name. It
allows you to associate a specific
simplified representation with a
machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimate. It allows you to
specify time estimate for the
machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate. It allows you to
specify cost estimate for the
machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time. It allows you to
specify actual time for the
machining step
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
Note
The holeset array must have
at least one member.
PRO_E_HOLESET_TYPE PRO_VALUE_TYPE_INT Mandatory element. Specifies the
holeset type - axes, points or
geometry. The values for this
element are defined by
ProHolesetType.
PRO_E_HOLESET_START Compound Mandatory element. Specifies the
holemaking start compound
specification.
Note
This element is ignored for
web drilling. Mandatory for
other types of holemaking.
PRO_E_HOLESET_END Compound Specifies the holemaking depth
compound specification.
Note
This element is ignored for
web drilling. Mandatory for
other types of holemaking.
PRO_E_HOLESET_DEPTH Compound Specifies the web drilling depth
compound specification.
Note
Mandatory for web drilling.
Ignored for other types of
holemaking.
PRO_E_HOLESET_CUSTOM_ Compound Specifies the compound definition
CYCLE_PLATES of the custom cycle.
Note
This element is mandatory
for custom cycle holemaking.
Ignored for other types of
holemaking.
PRO_E_DRILL_PART_DATA Compound Specifies the compound
information about components
used in depth computation.
Note
Mandatory element if PRO_
E_AUTO_SEL_DRILL_
PARTS is set to FALSE.
PRO_E_AUTODRILL_INFO Compound A compound element specifying
auto drilling information.
Note
This element is mandatory
for auto drilling hole sets.
PRO_E_AUTODRILL_DEPTH_ PRO_VALUE_TYPE_INT This element is used for auto
BY_TABLE drilling hole sets. The valid values
for this element are:
• TRUE—It reads the depth
information from the auto
drilling table.
• FALSE—It takes the depth
information from the hole set
Note
This element is mandatory
for auto drilling hole sets.
PRO_E_HOLESET_ORIENT_ PRO_VALUE_TYPE_INT Specifies the machining direction
TYPE option for 5-axis holemaking from
the selected reference. The valid
values for this element are:
• Away
• Toward
Note
This element is optional for
axes holeset for 5-axis
holemaking. Ignored in all
other cases.
PRO_E_HOLESET_ORIENT_ PRO_VALUE_TYPE_ Specifies the single reference
REF SELECTION selection (surface, point, axis) to
define the direction of machining
for 5-axis holemaking.The valid
values for this element are:
• Away—Applicable when the
element PRO_E_HOLESET_
ORIENT_TYPE is set to
PRO_DRILL_ORIENT_TO_
REF.
• Toward—Applicable when
the element PRO_E_
HOLESET_ORIENT_TYPE is
set to PRO_DRILL_
ORIENT_FROM_REF
Note
This element is optional for
axes holeset for 5-axis
holemaking. Ignored in all
other cases.
PRO_E_HOLESET_TIP_CTRL_ PRO_VALUE_TYPE_INT Optional element. Specifies the
PNT cutting tool control tip number. It
defines a point on the cutting tool
to be controlled during machining
Note
The first point of the tool is
used if the element does not
exist.
PRO_E_HOLESET_ Compound Mandatory element. Specifies the
SELECTION_RULES compound information about
location of holes to drill.
Note
Define this element when at
least one of the following
child elements are defined:
• PRO_E_HOLESET_
SEL_PNTS_ON_
SURFACES
• PRO_E_HOLESET_
SEL_INDIV_PNTS
• PRO_E_HOLESET_
SEL_PNTS_BY_
FEATURE
• PRO_E_HOLESET_
SEL_AUTO_CHAMFER
• PRO_E_HOLESET_
SEL_INDIV_AXES
• PRO_E_HOLESET_
SEL_AXIS_PATTS
• PRO_E_MFG_HSET_
DRILL_GROUP_REF
• PRO_E_HOLESET_
SEL_BY_SURFACES
• PRO_E_MFG_HSET_
DIAM_TYPE_OPT
• PRO_E_MFG_HSET_
DIAM_ARR
• PRO_E_MFG_HSET_
PARAM_ARR
PRO_E_MFG_HSET_START_ PRO_VALUE_TYPE_ Optional element. Specifies the
HOLE_REF SELECTION axis selection (for axes holeset) or
Note
This element is optional for
axes holeset for 5-axis
holemaking. Ignored in all
other cases.
PRO_E_HOLESET_FLIPPED_ PRO_VALUE_TYPE_ Specifies the axis selections for
AXES SELECTION holes that should be drilled in the
direction opposite to the
orientation of the axis entities.
This element supports multiple
selections.
Note
This element is optional for
axes holeset for 5-axis
holemaking. Ignored in all
other cases.
PRO_E_HOLESET_GANG_ Compound Optional element. A compound
TOOL_INFO element specifying the gang tool
properties.
PRO_E_HSET_GANG_TOOL_ PRO_VALUE_TYPE_INT This element is mandatory for
PARENT_ID gang tool specification. Specifies
the parent step id.
PRO_E_HSET_IS_GANG_ PRO_VALUE_TYPE_INT This element is mandatory for
TOOL_LEADER gang tool specification. Specifies
if holeset is a leader of the gang
tool. It takes the following values:
• True—Specifies that the
holeset is a leader of the gang
tool.
• False—Specifies that the
holeset is not a leader of the
gang tool.
Note
This element is ignored for
web drilling. Mandatory for
other types of holemaking.
PRO_E_HOLESET_START_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
TYPE start surface option using the
enumerated value
ProDrillStartType.
Note
This element is ignored for
web drilling and
counersinking (when PRO_
E_HOLEMAKING_TYPE is
set toPRO_HOLE_MK_
CSINK or PRO_HOLE_MK_
WEB). Mandatory for other
types of holemaking.
Note
• For countersink, this
element is optional if
auto_chamfer rule is set
and there is no explicit
axes selection.
Note
This element is mandatory if
the element PRO_E_
HOLESET_START_TYPE is
set to PRO_DRILL_START_
OFFSET_FROM_CSYS.
Ignored in all other cases.
Note
This element is ignored for
web drilling. Mandatory for
other types of holemaking.
PRO_E_HOLESET_END_TYPE PRO_VALUE_TYPE_INT Specifies the end type option. The
values for this element are defined
by ProDrillEndType.
Note
This element is ignored for
counersinking. Mandatory for
other types of holemaking.
PRO_E_HOLESET_END_ PRO_VALUE_TYPE_INT Specifies the depth calculation
MEASURE_BY option.The valid values for this
element are
• Tip
• Shoulder
Note
This element is ignored for
counersinking and web
drilling. Mandatory for other
types of holemaking.
PRO_E_HOLESET_END_ PRO_VALUE_TYPE_ Specifies the end surface or quilt
SURFACE SELECTION selection.
Note
• This element is ignored
for countersinking and
web drilling.
• This element is
mandatory if PRO_E_
HOLESET_END_TYPE is
set to PRO_DRILL_
UPTO_SURFACE.
Ignored in all other cases.
PRO_E_HOLESET_DEPTH_ PRO_VALUE_TYPE_DOUBLE Specifies the depth to drill from
VALUE start.
Note
This element is mandatory if
PRO_E_HOLESET_END_
TYPE is set to PRO_DRILL_
OFFSET_FROM_START.
Ignored in all other cases.
PRO_E_HOLESET_END_Z_ PRO_VALUE_TYPE_DOUBLE Specifies that the drilling will end
OFFSET at this offset from sequence
Note
This element is mandatory if
the element PRO_E_
HOLESET_END_TYPE is set
to PRO_DRILL_END_
OFFSET_FROM_CSYS.
Ignored in all other cases.
PRO_E_HOLESET_CSINK_ PRO_VALUE_TYPE_DOUBLE Specifies the countersink diameter.
DIAM
Note
This element is mandatory
for countersink sequence
(when PRO_E_
HOLEMAKING_TYPE is set
to PRO_HOLE_MK_CSINK).
Ignored in all other cases.
PRO_E_HOLESET_USE_ PRO_VALUE_TYPE_DOUBLE Optional element.Specifies the
BRKOUT_DIST depth breakout option. The valid
values for this element are:
• TRUE—To drill an additional
BREAKOUT_DISTANCE
(manufacturing parameter)
deeper.
• FALSE— Does not drill
deeper than defined by depth
specification. Ignored for
countersink sequences.
Note
This element is ignored if
end_type is PRO_DRILL_
THRU_ALL_PARTS or
PRO_DRILL_AUTO_END.
Note
Mandatory for web drilling.
Ignored for other types of
holemaking.
PRO_E_HOLESET_DEPTH_ PRO_VALUE_TYPE_INT Specifies the web drilling depth
TYPE type option. The valid values for
this element are:
• Blind
• Auto
• Through
• The values for this element are
defined by
ProDrillDepthType.
Note
This element is mandatory
for web drilling. Ignored for
other types of holemaking.
PRO_E_HOLESET_DEPTH_BY_ PRO_VALUE_TYPE_INT Specifies the web drilling depth
TYPE calculation option. The valid
values for this element are:
• Tip
• Shoulder
• The values for this element are
Note
This element is mandatory
for web drilling. Ignored for
other types of holemaking.
PRO_E_HOLESET_DEPTH_ Array Specifies an array of web drilling
PLATES plates.
Note
This element is mandatory
for web drilling. Ignored for
other types of holemaking.
PRO_E_HOLESET_DEPTH_ Compound Mandatory element. Specifies the
PLATE web drilling plate definition.
Note
At least one plate must be
defined in array of plates.
PRO_E_HOLESET_PLATE_ PRO_VALUE_TYPE_ Specifies the web drilling plate
START SELECTION starting surface or quilt selection.
Note
This element is mandatory if
PRO_E_HOLESET_DEPTH_
TYPE is set to PRO_DRILL_
BLIND. Ignored in all other
cases.
PRO_E_HOLESET_PLATE_ PRO_VALUE_TYPE_INT Specifies the web drilling plate
END_OPT depth type option. The values for
this element are defined by
ProDrillEndType.
Note
This element is mandatory
for web drilling. Ignored for
other types of holemaking.
PRO_E_HOLESET_PLATE_END PRO_VALUE_TYPE_ Specifies the web drilling plate
SELECTION
Note
This element is mandatory
for web drilling if PRO_E_
HOLESET_PLATE_END_
OPT is set to PRO_DRILL_
UPTO_SURFACE. Ignored in
all other cases.
PRO_E_HOLESET_PLATE_ PRO_VALUE_TYPE_DOUBLE Specifies the web drilling depth
DEPTH from plate start.
Note
Mandatory for web drilling if
PRO_E_HOLESET_PLATE_
END_OPT is set to PRO_
DRILL_OFFSET_FROM_
START. Ignored in all other
cases.
PRO_E_HOLESET_PLATE_ PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
BRKOUT web drilling depth breakout
option. The valid values for this
element are:
• TRUE—Drills an additional
BREAKOUT_DISTANCE
(manufacturing parameter)
deeper.
• FALSE—Does not drill deeper
than defined by depth
specification.
Note
This element is ignored for
countersink sequences.
Note
This element is mandatory
for custom cycle holemaking.
Ignored for other types of
holemaking.
PRO_E_HOLESET_CUSTOM_ Array Specifies an array of custom cycle
CYCLE_REFERENCES
Note
• The number of members
in array should match
with number of references
in custom cycle definition
(stored in manufacturing
model).
• Mandatory if references
are used in the custom
cycle definition (see
PRO_E_MFG_CUSTOM_
CYCLE_NAME).
PRO_E_HOLESET_CUSTOM_ Compound Mandatory element for custom
CYCLE_REF cycle with references. Specifies
the compound definition of a
custom cycle reference.
PRO_E_MFG_CUST_CYCLE_ Compound Mandatory element for reference
PLATE_NAME definition. Specifies the name of
custom cycle reference.
PRO_E_HOLESET_CUSTOM_ PRO_VALUE_TYPE_INT Mandatory element for reference
CYCLE_REF_OPT definition. Specifies the type of
reference specification. The values
for this element are defined by
ProCustomRefOption.
PRO_E_HOLESET_CUSTOM_ PRO_VALUE_TYPE_ Specifies the custom cycle
CYCLE_REF_SEL SELECTION reference surface or quilt
selection.
Note
Mandatory if PRO_E_
HOLESET_CUSTOM_
CYCLE_REF_OPT is set to
PRO_CUSTOM_DRILL_
SELECT_REFERENCE.
Ignored in all other cases.
PRO_E_HOLESET_CUSTOM_ PRO_VALUE_TYPE_DOUBLE Specifies the custom cycle
CYCLE_REF_Z_OFFSET reference specification by offset
value from sequence coordinate
Note
Mandatory if PRO_E_
HOLESET_CUSTOM_
CYCLE_REF_OPT is set to
PRO_CUSTOM_DRILL_
OFFSET_FROM_CSYS.
Ignored in all other cases.
PRO_E_HOLESET_CUSTOM_ Specifies the custom cycle
CYCLE_REF_DEPTH reference specification by offset
value from start surface.
Note
Mandatory if PRO_E_
HOLESET_CUSTOM_
CYCLE_REF_OPT is set to
PRO_CUSTOM_DRILL_
OFFSET_FROM_START.
Ignored in all other cases.
PRO_E_HOLESET_CUSTOM_ Array Specifies an array of custom cycle
CYCLE_VARIABLES variables.
Note
• The number of members
in array should match
with number of variables
in the custom cycle
definition (stored in
manufacturing model).
• Mandatory if variables
are used in named custom
cycle (see PRO_E_MFG_
CUSTOM_CYCLE_
NAME).
PRO_E_HOLESET_CUSTOM_ Compound Mandatory element for custom
CYCLE_VAR cycle with variables. Specifies the
compound definition of a custom
cycle variable.
Note
Define this element when at
least one of the following
child elements are defined:
• PRO_E_HOLESET_
SEL_PNTS_ON_
SURFACES
• PRO_E_HOLESET_
SEL_INDIV_PNTS
• PRO_E_HOLESET_
SEL_PNTS_BY_
FEATURE
• PRO_E_HOLESET_
SEL_AUTO_CHAMFER
• PRO_E_HOLESET_
SEL_INDIV_AXES
• PRO_E_HOLESET_
SEL_AXIS_PATTS
• PRO_E_MFG_HSET_
DRILL_GROUP_REF
• PRO_E_HOLESET_
SEL_BY_SURFACES
• PRO_E_MFG_HSET_
DIAM_TYPE_OPT
• PRO_E_MFG_HSET_
DIAM_ARR
• PRO_E_MFG_HSET_
PARAM_ARR
PRO_E_HOLESET_SEL_PNTS_ PRO_VALUE_TYPE_ Specifies the selection of surfaces
ON_SURFACES SELECTION (or quilts) with points. This
element supports multiple
Note
• This element is optional
for points holeset (PRO_
E_HOLESET_TYPE is
set to PRO_HOLESET_
DRILL_POINTS).
Note
• This element is optional
element for points holeset
(PRO_E_HOLESET_
TYPE is set to PRO_
HOLESET_DRILL_
POINTS).
Note
• This element is
mandatory for five-axis
holemaking (PRO_E_
MFG_SEQ_NUM_AXES_
OPT is set to 5) if at least
one point selection is set
for one of the following
elements:
○ PRO_E_HOLESET_
SEL_INDIV_PNTS
○ PRO_E_HOLESET_
SEL_PNTS_BY_
FEATURE
Note
• This element is
mandatory for five-axis
holemaking (PRO_E_
MFG_SEQ_NUM_AXES_
OPTis set to 5) if at least
one point selection is set
for one of the following
elements:
○ PRO_E_HOLESET_
SEL_INDIV_PNTS
○ PRO_E_HOLESET_
SEL_PNTS_BY_
FEATURE
Note
• This element is optional
for points holeset (PRO_
E_HOLESET_TYPE is
set to PRO_HOLESET_
DRILL_POINTS).
Note
• This element is
mandatory for points
holeset (PRO_E_
HOLESET_TYPE is set to
PRO_HOLESET_
DRILL_POINTS) if
none of the following
elements is defined:
○ PRO_E_HOLESET_
SEL_PNTS_ON_
SURFACES
○ PRO_E_HOLESET_
SEL_PNTS_BY_
FEATURE
Note
This element is ignored for
points holeset (PRO_E_
HOLESET_TYPE is set to
PRO_HOLESET_DRILL_
POINTS).
PRO_E_HOLESET_SEL_AXIS_ PRO_VALUE_TYPE_ Specifies the selection of axes of
PATTS SELECTION patterned holes. If a pattern leader
is selected, all holes in pattern will
be collected. This element
supports multiple selections.
Note
• This element is Optional
for axes holeset (PRO_E_
HOLESET_TYPE is set to
PRO_HOLESET_
DRILL_AXES).
Note
• This element is Optional
for axes holeset (PRO_E_
HOLESET_TYPE is set to
PRO_HOLESET_
DRILL_AXES).
Note
• This element is Optional
for axes holeset (PRO_E_
HOLESET_TYPE is set to
PRO_HOLESET_
DRILL_AXES).
Note
If the element PRO_E_
MFG_HSET_DIAM_
TYPE_OPT is not
defined, then by default,
the hole diameter of type
PRO_HSET_ALL_
DIAMS is used.
• PRO_HSET_HOLE_DIAMS—
Specifies that diameters only
of solid surfaces can be
collected.
• PRO_HSET_THREAD_
DIAMS—Specifies that
diameters only of cosmetic
threads can be collected.
Note
This element is not required
for holeset of type points and
geometry.
PRO_E_MFG_HSET_DIAM_ARR Array Specifies an array of diameters of
holes to machine.
Note
• This element is Optional
for axes holeset (PRO_E_
HOLESET_TYPE is set to
PRO_HOLESET_
DRILL_AXES).
Note
• This element is Optional
for axes holeset (PRO_E_
HOLESET_TYPE is set to
PRO_HOLESET_
DRILL_AXES).
Note
This element is a mandatory
child of PRO_E_MFG_
HSET_DIAM_COMPOUND
element.
PRO_E_MFG_HSET_PARAM_ PRO_VALUE_TYPE_INT Specifies the type of query that
RULE_OPT must be used to search for holes to
machine.
PRO_HSET_BOOL_OPER_
AND—Collects holes that
satisfy all the search conditions
set for a parameter.
Note
• This element is Optional
for axes holeset (PRO_E_
HOLESET_TYPE is set to
PRO_HOLESET_
DRILL_AXES).
Note
• This element is Optional
for axes holeset (PRO_E_
HOLESET_TYPE is set to
PRO_HOLESET_
DRILL_AXES).
Note
This element is a mandatory
child of PRO_E_MFG_
HSET_PARAM_COMPOUND
element.
Note
This element is a mandatory
child of PRO_E_MFG_
HSET_PARAM_COMPOUND
element.
PRO_E_MFG_HSET_PARAM_ PRO_VALUE_TYPE_INT Specifies the Ttype of expression
OPER operator. The values for this
element are defined by defined by
ProDrillParamOper.
Note
This element is a mandatory
child of PRO_E_MFG_
HSET_PARAM_COMPOUND
element.
PRO_E_MFG_HSET_PARAM_ PRO_VALUE_TYPE_DOUBLE Specifies the value of type double.
VAL_DBL
Note
This element is a mandatory
child of PRO_E_MFG_
HSET_PARAM
_COMPOUND element for
double data type (PRO_E_
MFG_HSET_PARAM_DTYPE
is set to PRO_PARAM_
DOUBLE). Ignored for other
data types.
PRO_E_MFG_HSET_PARAM_ PRO_VALUE_TYPE_INT Specifies the value of type integer.
VAL_INT
Note
This element is a mandatory
child of PRO_E_MFG_
HSET_PARAM_COMPOUND
element for double data type
(PRO_E_MFG_HSET_
PARAM_DTYPE is set to
PRO_PARAM_INTEGER).
Ignored for other data types.
Note
This element is a mandatory
child of PRO_E_MFG_
HSET_PARAM_COMPOUND
element for double data type
(PRO_E_MFG_HSET_
PARAM_DTYPE is set to
PRO_PARAM_BOOLEAN).
Ignored for other data types.
PRO_E_HOLESET_SEL_ PRO_VALUE_TYPE_ Specifies the selection of axes of
UNSEL_AXES SELECTION holes to be excluded for
machining. This element supports
multiple selections.
Note
• This element is Optional for
axes holeset (PRO_E_
HOLESET_TYPE is set to
PRO_HOLESET_DRILL_
AXES).
• This element is ignored for
points holeset (PRO_E_
HOLESET_TYPE is set to
PRO_HOLESET_DRILL_
POINTS).
Note
This element is ignored for
points holeset (PRO_E_
HOLESET_TYPE is set to
PRO_HOLESET_DRILL_
POINTS).
Note
• This element is optional
for a geometry holeset
that is, if the element
PRO_E_HOLESET_
TYPE is set to PRO_
HOLESET_DRILL_
GEOM.
Note
This element is ignored for
points holeset and axes
holeset.
The following table describes the elements in the element tree for the shut-off
surface feature.
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Specifies the type of the feature.
The valid value for this element is
PRO_MOLD_SHUTOFF_SRF.
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Specifies the name of the feature.
PRO_E_SHUT_SRF_REF_TYPE PRO_VALUE_TYPE_INT Mandatory element. Specifies the
type of references to be selected
for the shut off surface. Select
either surface references or curve
references. The valid values for
this element are defined in the
enumerated type
ProShutSrfRefType:
• PRO_SHUT_SRF_SRF_
REF— Specifies the references
for a surface.
• PRO_SHUT_SRF_CRV_
REF— Specifies the references
Note
The selected loops are
excluded while creating shut
off surfaces only if the
element PRO_E_SHUT_
SRF_CLOSE_ALL is set to
PRO_SHUT_SRF_SHUT_
ALL and this element
becomes optional.
PRO_E_STD_CURVE_ PRO_VALUE_TYPE_ Specifies the reference chain loops
COLLECTION_APPL SELECTION to be included or excluded while
creating shut off surfaces. Select
both open and closed chain loops
as reference. By default all the
selected reference chain loops are
included while creating the shut
off surfaces. The reference chain
loops are excluded only if the
value of the element PRO_E_
SHUT_SRF_CLOSE_ALL is set
Note
You can specify only one-
sided edges as curve chain
loops if the element PRO_E_
SHUT_SRF_REF_TYPE is
set to PRO_SHUT_SRF_
CRV_REF.
PRO_E_SHUT_SRF_CAP_SRFS Compound Optional element. Specifies a
compound element for cap surface
references.
PRO_E_STD_SURF_ PRO_VALUE_TYPE_ Specifies the selection of reference
COLLECTION_APPL SELECTION surfaces for capping open loops.
This is an optional element and
you can select single or multiple
surfaces as reference.
Note
• You can select multiple
surfaces only if the datum
plane is not selected.
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677.
PRO_E_MACH_SURFS Compound Mandatory compound element.
Specifies the machining surfaces
compound definition. For more
information, refer to the section
Element Trees: Machining
Surfaces on page 1573.
PRO_E_MFG_CUT_START_ PRO_VALUE_TYPE_ Optional element. Select a datum
PNT_REF SELECTION point, or a point on the bottom
edges of the machining surfaces.
Note
This element is applicable
only when the machining
surfaces form a closed loop.
It allows to start machining at
the location nearest to the
selected point.
PRO_E_CHECK_SURF_COLL PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION check surfaces collection. For
more information, refer to the
section Checking Surfaces on page
1687.
PRO_E_TOOL_MTN_ARR Array Optional element. Specifies an
array of tool motions.
PRO_E_TOOL_MTN Compound Optional compound element.
Specifies the tool motion
compound specifications. The
applicable tool motion type for
this element are:
PRO_TM_TYPE_CL_
COMMAND. For more
information, refer to the
section Tool Motion — CL
Command on page 1767.
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
The following table describes the elements in the element tree for the Engraving
feature.
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677 .
PRO_E_MFG_MACH_CRVS Compound Mandatory compound element.
Specifies the machining curves
compound definition.
PRO_E_STD_CURVE_ Chain Collection Specifies the curve collection.
COLLECTION_APPL
Note
This element is mandatory if
the element PRO_E_MFG_
CURVE_FEAT is not set.
PRO_E_MFG_CURVE_FEAT PRO_VALUE_TYPE_ Specifies the curve feature
SELECTION selection. This element supports
multiple selections.
Note
This element is mandatory if
the element PRO_E_STD_
CURVE_COLLECTION_
APPL is not set.
PRO_E_MFG_NORM_SRFS Compound Optional element. Specifies the
normal surfaces compound
definition.
PRO_E_STD_SURF_ Surface Collection Specifies the normal surfaces
COLLECTION_APPL collection and is used for tool axis
Note
• This element is mandatory if
the element PRO_E_STD_
CURVE_COLLECTION_
APPL is set with curves.
• This element is ignored for 3-
axis machining.
PRO_E_MFG_NORM_GEOM PRO_VALUE_TYPE_ Specifies the normal surface
SELECTION selection and is used for tool axis
control.
Note
• This element is mandatory if
the element PRO_E_STD_
CURVE_COLLECTION_
APPL is set with edges.
• This element is ignored for 3-
axis machining.
PRO_E_MFG_4_AXIS_PLANE PRO_VALUE_TYPE_ Specifies the selection of datum
SELECTION plane or planar surface.
Note
• This element is
mandatory for 4-axis
machining, when the
element PRO_E_MFG_
SEQ_NUM_AXES_OPT
is set to 4.
PRO_TM_TYPE_CL_
COMMAND. For more
information, refer to the
section Tool Motion — CL
Command on page 1767.
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
PRO_E_MFG_PARAM_ARR Array Mandatory element. Defines an
array of manufacturing
parameters. For more information,
refer to the section Manufacturing
Parameters on page 1677.
PRO_E_MACH_SURFS Compound Mandatory compound element.
Specifies the machining surfaces
compound definition. For more
information, refer to the section
Element Trees: Machining
Surfaces on page 1573.
PRO_E_CUTLINE_TP_ Compound Optional element. Specifies tool
OPTIONS path options.
PRO_E_CUTLINE_TP_TOOL_ PRO_VALUE_TYPE_INT Optional element. Specifies the
CENTER_OPT tool center curve option.
PRO_E_CUTLINE_CUT_ Compound Mandatory element. Specifies the
DEFINITION cutline array compound definition.
For more information on the sub
elements, For more information,
refer to the section Element Tree
for PRO_E_CUTLINE_CUT_
DEFINITION on page 1642.
PRO_E_MFG_SURF_SIDE_ Compound Optional element. Specifies the
COMPOUND surface side definition. For more
information, refer to the section
Manufacturing Surface Side on
page 1566.
PRO_E_MFG_4_AXIS_PLANE PRO_VALUE_TYPE_ Specifies the selection of datum
SELECTION plane or planar surface.
Note
This element is mandatory
for 4-axis machining, when
the element PRO_E_MFG_
SEQ_NUM_AXES_OPT is set
to 4 and is ignored for 3-axis
and 5-axis machining.
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
time estimated for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
cost estimate for the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
The following table lists the sub elements of the element PRO_E_CUTLINE_
REF_ARR defined in the header file ProMfgFeatCutlineMilling.h.
Note
This element is mandatory if
the element PRO_E_
CUTLINE_AUTO_OUTER_
OPT is set to PRO_B_FALSE
and is not used if PRO_E_
CUTLINE_AUTO_OUTER_
OPT is set to PRO_B_TRUE.
PRO_E_CUTLINE_ID PRO_VALUE_TYPE_INT Mandatory element. Specifies the
cutline id.
PRO_E_STD_CURVE_ Chain Collection Mandatory element. Specifies the
COLLECTION_APPL cutline chain collection.
PRO_E_NCD_CURVE_POINT Compound Optional element. Specifies the
cutline start point compound
definition.
PRO_E_NCD_CURVE_POINT_ PRO_VALUE_TYPE_ Optional element. Specifies the
REF SELECTION cutline start point reference.
PRO_E_NCD_CURVE_POINT_ PRO_VALUE_TYPE_INT Optional element. Specifies the
OFFSET_TYPE cutline start point offset type.
PRO_E_NCD_CURVE_POINT_ PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
OFFSET cutline start point offset definition.
PRO_E_CUTLINE_PROJ_PLN PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION cutline project plane definition.
Note
This element is mandatory,
only if the element PRO_E_
MFG_AXIS_DEF_TYPE is
set to the value PRO_AXIS_
DEF_BY_PIVOT_REF This
element is ignored in all other
cases.
PRO_E_MFG_AXIS_DEF_ Compound Normal Surface compound
NORM_SRF element.
Note
This element is mandatory,
only if the element PRO_E_
MFG_AXIS_DEF_TYPE is
set to the value PRO_AXIS_
DEF_BY_ NORM_SURF. This
element is ignored in all other
cases.
Note
This element is mandatory, if
the elements PRO_E_MFG_
AXES_DEF_ANGLE_X and
PRO_E_MFG_AXES_DEF_
ANGLE_Y are not defined.
PRO_E_MFG_AXES_DEF_ PRO_VALUE_TYPE_DOUBLE Specifies the lead angle. The valid
ANGLE_X range for this element is from —90
to +90.
Note
This element is mandatory, if
the element PRO_E_MFG_
AXIS_DEF_ORIENT_REF
is not defined.
PRO_E_MFG_AXES_DEF_ PRO_VALUE_TYPE_DOUBLE Specifies the tilt angle. The valid
ANGLE_Y range for this element is from —90
to +90.
Note
This element is mandatory, if
the element PRO_E_MFG_
AXIS_DEF_ORIENT_REF
is not defined.
Note
This element is mandatory, if
the element PRO_E_MFG_
AXIS_DEF_TYPE is set to
the value PRO_AXIS_DEF_
BY_TWO_CONTOURS. This
element is ignored in all other
cases.
PRO_E_STD_CURVE_ Chain Collection Mandatory element. Specifies a
COLLECTION_APPL general compound element for
chain collection.
PRO_E_MFG_AXIS_DEF_ Array Optional element. Specifies the
SYNC_ARR synchronization array.
PRO_E_MFG_AXIS_DEF_ Compound Optional element. Specifies the
SYNC_COMP synchronization compound
element.
PRO_E_MFG_AXIS_DEF_ PRO_VALUE_TYPE_ Mandatory element. Specifies the
SYNC_PNT_1 SELECTION single reference selection. Select a
point on the trajectory curve.
PRO_E_MFG_AXIS_DEF_ PRO_VALUE_TYPE_ Mandatory element. Specifies the
SYNC_PNT_2 SELECTION single reference selection. Select a
point on the pivot curve.
PRO_E_MFG_AXIS_DEF_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
SYNC_FLIP_OPT flip direction.The valid values for
this element are:
• PRO_B_TRUE—Specifies that
the tool motion is flipped in the
reverse direction.
• PRO_B_FALSE—Specifies
that the direction will remain
the same.
PRO_E_MFG_AXIS_DEF_ PRO_VALUE_TYPE_INT Specifies the flip direction. The
FLIP_OPT valid values for this element are:
• PRO_B_TRUE—Specifies that
the direction will be reversed.
• PRO_B_FALSE—Specifies
that the direction will remain
the same.
The following table describes the elements in the element tree for the Drill Group
feature.
Note
This element is not supported
for the Creo Parametric 2.0
release.
PRO_E_DRILL_GRP_AXES_ Compound Mandatory element. This
COMPOUND compound element specifies
information about location of
holes to be drilled.
Note
You can use this element only
when at least one of the
following child elements are
defined:
• PRO_E_DRILL_GRP_
AXES_INDIV
• PRO_E_DRILL_GRP_
AXES_PATTERN
• PRO_E_DRILL_GRP_
SURFACES
• PRO_E_DRILL_GRP_
DIAM_ARR
• PRO_E_DRILL_GRP_
PARAM_ARR
PRO_E_DRILL_GRP_AXES_ PRO_VALUE_TYPE_ Optional element. Specifies the
EXCL SELECTION selection of axes of holes to be
excluded for machining. This
element supports multiple
selections.
PRO_E_DRILL_GRP_AXES_ PRO_VALUE_TYPE_ Optional element. Specifies the
PATTERN SELECTION selection of axes of patterned
holes. This element supports
multiple selections.
Note
If a pattern leader is selected,
all the holes in the pattern
will be collected.
PRO_E_DRILL_GRP_RULES_ Compound Optional element. This compound
COMPOUND element specifies the information
about hole search rules.
PRO_E_DRILL_GRP_ PRO_VALUE_TYPE_ Optional element. Specifies the
SURFACES SELECTION selection of surfaces or quilts with
holes. This element supports
multiple selections.
PRO_E_DRILL_GRP_DIAM_ PRO_VALUE_TYPE_INT Optional element. Specifies the
TYPE_OPT type of hole diameters that can be
collected in the element PRO_E_
DRILL_GRP_DIAM_ARR. The
type of hole diameter is specified
using the enumerated data type
ProHolesetDiamType. The
valid values are:
• PRO_HSET_ALL_DIAMS—
This is the default value.
Specifies that diameters of
both solid surfaces and
cosmetic threads can be
collected.
Note
If the element PRO_E_
DRILL_GRP_DIAM_
TYPE_OPT is not
defined, then by default,
the hole diameter of type
PRO_HSET_ALL_
DIAMS is used.
• PRO_HSET_HOLE_DIAMS—
Specifies that diameters only
of solid surfaces can be
collected.
• PRO_HSET_THREAD_
DIAMS—Specifies that
diameters only of cosmetic
threads can be collected.
PRO_E_DRILL_GRP_DIAM_ Array Optional element. Specifies an
ARR array of diameters of holes to be
machined.
PRO_E_DRILL_GRP_DIAM_ Compound Optional element. Specifies a
COPMPOUND compound definition of a hole
diameter.
PRO_E_DRILL_GRP_DIAM PRO_VALUE_TYPE_DOUBLE Specifies the diameter of the hole
Note
This element is a mandatory
child of PRO_E_DRILL_
GRP_DIAM_COPMPOUND
element.
PRO_E_DRILL_GRP_PARAM_ PRO_VALUE_TYPE_INT Specifies the type of query that
RULE_OPT must be used to search for holes to
machine.
PRO_HSET_BOOL_OPER_
AND—Collects holes that
satisfy all the search conditions
set for a parameter.
Note
In Creo Parametric, each
condition defines expression
with user defined parameter
name on the left side of the
expression and value on the
right side for comparison.
PRO_E_DRILL_GRP_PARAM_ PRO_VALUE_TYPE_WSTRING Specifies the name of the user
NAME
Note
This element is a mandatory
child of PRO_E_DRILL_
GRP_PARAM_COMPOUND
element.
PRO_E_DRILL_GRP_PARAM_ PRO_VALUE_TYPE_INT Specifies the data type of specified
DATA_TYPE value using the enumerated type
ProParamvalueType.
Note
This element is a mandatory
child of PRO_E_DRILL_
GRP_PARAM_COMPOUND
element.
PRO_E_DRILL_GRP_PARAM_ PRO_VALUE_TYPE_INT Specifies the type of the
OPER expression operator using the
enumerated type
ProDrillParamOper.
Note
This element is a mandatory
child of PRO_E_DRILL_
GRP_PARAM_COMPOUND
element.
PRO_E_DRILL_GRP_PARAM_ PRO_VALUE_TYPE_INT Specifies the value of type double.
VAL_INT
Note
This element is a mandatory
child of PRO_E_DRILL_
GRP_PARAM_COMPOUND
element for double data type
and is ignored for other data
types.
PRO_E_DRILL_GRP_PARAM_ PRO_VALUE_TYPE_DOUBLE Specifies the value of type integer.
VAL_DBL
Note
This element is a mandatory
child of PRO_E_DRILL_
GRP_PARAM_COMPOUND
element for integer data type
and is ignored for other data
types.
Note
This element is a mandatory
child of PRO_E_DRILL_
GRP_PARAM_COMPOUND
element for ProBoolean data
type and is ignored for other
data types.
PRO_E_DRILL_GRP_AXES_ PRO_VALUE_TYPE_ Specifies the selection of datum
INDIV SELECTION axes. This element supports
multiple selections.
Note
This element is mandatory if
none of the following
elements are defined:
• PRO_E_DRILL_GRP_
AXES_PATTERN
• PRO_E_DRILL_GRP_
SURFACES
• PRO_E_DRILL_GRP_
DIAM_ARR
• PRO_E_DRILL_GRP_
PARAM_ARR
Note
The site file name will be
ignored if the site does not
exist in the manufacturing
model.
Note
This element is used only in
special process application.
PRO_E_MFG_SIMP_REP_NAME PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
simplified representation name.
This element allows you to
associate the specific simplified
representation with the machining
step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the time
estimated for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COST_ESTIMATE PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the cost
estimate for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_TIME_ACTUAL PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
actual time for the machining step.
Note
This element is used only in
special process application.
PRO_E_MFG_COMMENTS PRO_VALUE_TYPE_WSTRING Specifies the sequence comments.
The following table describes the elements in the element tree for the Skirt
Extension feature.
The following table describes the elements in the element tree for the Skirt Fill
feature.
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Specifies the type of the feature.
The valid value for this element is
PRO_FEAT_DATUM_SURF.
PRO_E_FEATURE_FORM PRO_VALUE_TYPE_INT Specifies the feature form and
should be of type PRO_SKIRT_
FILL only.
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Specifies the default name of the
feature. The default value for this
element is Skirt_Fill_1
PRO_E_SKIRT_REF_MODEL PRO_VALUE_TYPE_ Mandatory element. Select the
Note
The values PRO_RETR_
SURF_CYLINDER, PRO_
RETR_SURF_SPHERE, and
PRO_RETR_SURF_
REVOLVED are not
applicable for 3-axis
sequences and operations
with 3-axis workcell.
PRO_E_RETR_SURF_REF PRO_VALUE_TYPE_ Mandatory element. Specifies the
SELECTION selection of retract surface. The
type of reference depends on
values specified for the element
PRO_E_RETR_SURF_TYPE.
The valid values for this element
are:
Note
For 3-axis sequence
(operation):
○ Z axis of selected
datum coordinate
system must be
alligned with Z axis
of sequence
(operation) coordinate
system.
• Cylinder retract: Cylinder
retract includes datum axis and
coordinate system.
• Sphere retract: It includes
datum point and coordinate
system.
• Revolved surface retract: It
includes revolved quilts.
PRO_E_RETR_SURF_ORIENT PRO_VALUE_TYPE_INT Specifies the orientation of the
axis for the retract cylinder if
coordinate system is selected as
retract reference
Note
This element is mandatory if
coordinate system is selected
for cylindrical retract
reference and is ignored in all
other cases.
Tool Reference
The element PRO_E_MFG_TOOL_REF_COMPOUND is documented in the header
file ProMfgElemToolRef.h, and is as shown in the following figure.
Note
You can specify the tools in
head 1 for all types of
workcells. Tools in head 2
can be specified for lathe and
mill-turn workcells and tools
in heads 3 and 4 can be
specified for mill-turn
workcells.
PRO_E_MFG_TOOL_REF_ PRO_VALUE_TYPE_INT Mandatory element. This element
POCKET defines the position of the tool in
the turret head.
PRO_E_MFG_TOOL_REF_ID PRO_VALUE_TYPE_WSTRING Mandatory element. Specifies the
tool Id.
Manufacturing Parameters
The element PRO_E_MFG_PARAM_ARR is documented in the header file
ProMfgElemParam.h, and is as shown in the following figure.
Note
This element is a mandatory
child of PRO_E_MFG_
PARAM_COMPOUND
element.
PRO_E_MFG_PRM_ATTR PRO_VALUE_TYPE_INT Mandatory element. Specifies the
option to define logic for
parameter value assignment. The
values for this element are defined
by ProMfgParamAttr. The
valid values for this element are:
• PRO_MFG_PRM_ATTR_
DEFAULT—The value from
PRO_E_MFG_PRM_VAL_
DBL or PRO_E_MFG_PRM_
VAL_STR is going to be
assigned to the corresponding
manufacturing parameter.
• PRO_MFG_PRM_ATTR_
AUTOMATIC—Default value
Note
This element is a mandatory
child of PRO_E_MFG_
PARAM_COMPOUND
element.
PRO_E_MFG_PRM_VAL_DBL PRO_VALUE_TYPE_DOUBLE Specifies the value of type double.
Note
This element is Mandatory
for Double data type
parameters with attribute set
to PRO_MFG_PRM_ATTR_
MODIFIED. Ignored for
other data types.
Note
Mandatory for String data
type parameters with attribute
set to PRO_MFG_PRM_
ATTR_MODIFIED. Ignored
for other data types.
Note
Specify a value for this
element only for finishing
and corner finishing
sequences.
PRO_E_STD_SURF_ PRO_VALUE_TYPE_ Optional element. Specifies the
COLLECTION_APPL SELECTION surface collection.
PRO_E_MFG_SURF_SIDE_ Compound Optional element. Specifies the
COMPOUND surface side compound
specification. This element is used
as a sub element of PRO_E_MFG_
CMP_MILL_WIND only when you
click Adjust geometry
collection within window
and select Quilt during the Mill
Window feature definition in the
Creo Parametric user interface.
PRO_E_MFG_SURF_SIDE_ PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
TOLERANCE tolerance used for the grouping of
quilts.
PRO_E_MFG_SURF_SIDE_ PRO_VALUE_TYPE_ Optional element. Specifies the
FLIP_QUILTS SELECTION selection of quilts with changed
normal. This element supports
multiple selections.
PRO_E_MFG_CMP_CLOSED_LOOPS Element
The elements under the compound element PRO_E_MFG_CMP_CLOSED_LOOPS
are described in this section .
Sequence Prerequisites
The element PRO_E_MFG_PREREQUISITE_ARR is documented in the header
file ProMfgElemPrerequisite.h, and is shown in the following figure.
Note
Tool with such ID should
exist in manufacturing
model.
PRO_E_MFG_WCELL_TOOL PRO_VALUE_TYPE_INT Optional element, if not defined or
_OUTPUT_TIP if the value is set to 1. Specifies
the tip number.
Note
The tool tip number should
not be greater than the
number of children in PRO_
E_MFG_TOOL_TIP_ARR.
PRO_E_MFG_TOOL_TIP_ARR Array Optional element. Specifies an
array of tips.
PRO_E_MFG_TOOL_TIP_ Compound Optional element. This compound
COMPOUND element defines the tip
specification.
PRO_E_MFG_TOOL_TIP_ PRO_VALUE_TYPE_INT Optional element. Specifies the tip
REGISTER register number.
PRO_E_MFG_TOOL_TIP_ PRO_VALUE_TYPE_WSTRING Optional element. Specifies the tip
COMMENT comment.
PRO_E_MFG_TOOL_TIP_ PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
OFFSET_Z offset value for the tool tip in the
Z-direction.
PRO_E_MFG_TOOL_TIP_ PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
OFFSET_X offset value for the tool tip in the
X-direction.
PRO_E_MFG_TOOL_TIP_ PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the tip
OFFSET_ANGLE angle offset value.
PRO_E_MFG_TOOL_TIP_ PRO_VALUE_TYPE_INT Optional element, if the element is
FLASH_OPT not defined or the value of the
element is set to PRO_B_FALSE.
Specifies the enabling/disabling of
the flash option of the tool tip.
The valid values for this element
are:
Note
This element is ignored if the
element PRO_E_MFG_
TOOL_TIP_FLASH_OPT is
set to PRO_B_FALSE.
PRO_E_MFG_TOOL_TIP_ PRO_VALUE_TYPE_WSTRING Optional element. Specifies the
FLSH_COMMENT flash tool alternate tip comments.
Note
This element is ignored if the
element PRO_E_MFG_
TOOL_TIP_FLASH_OPT is
set to PRO_B_FALSE
PRO_E_MFG_TOOL_TIP_ PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
FLSH_OFFSET_Z flash tool alternate tip Z offset.
Note
This element is ignored if the
element PRO_E_MFG_
TOOL_TIP_FLASH_OPT is
set to PRO_B_FALSE
PRO_E_MFG_TOOL_TIP_ PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
FLSH_OFFSET_X flash tool alternate tip X offset.
Note
This element is ignored if the
element PRO_E_MFG_
TOOL_TIP_FLASH_OPT is
set to PRO_B_FALSE
The following table describes the elements in the element tree for the CMM probe
setup feature.
Element ID Data Type Description
PRO_E_MFG_CMM_TOOL_ Array Optional element. Specifies the
SETUP_ARR CMM probes setup array.
PRO_E_MFG_CMM_TOOL_ Compound Optional element. This compound
SETUP element defines the probe setup
compound specification.
PRO_E_MFG_CMM_TOOL_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
POCKET_NUM probe position in tool magazine.
PRO_E_MFG_CMM_TOOL_ PRO_VALUE_TYPE_WSTRING Mandatory element. Specifies the
TOOL_ID Probe ID.
Note
Tool with such ID should
exist in manufacturing
model.
PRO_E_MFG_CMM_TOOL_TIP_ PRO_VALUE_TYPE_INT Optional element, if not defined or
NUM if the value is set to 1. Specifies
the tip number by identifying it
from the array.
Checking Surfaces
The element PRO_E_CHECK_SURF_COLL is documented in the header file
ProMfgElemCheckSurf.h, and is shown in the following figure.
Note
The FALSE value will be
used if element does not
exist.
PRO_E_USE_MILL_STK PRO_VALUE_TYPE_INTEGER Optional element. This element is
used to apply the stock allowance
parameters of mill surface to the
surfaces being checked. The valid
values for this element are:
• TRUE— Mill surface stock
allowance parameter will be
applied to check surfaces.
Value of stock allowance is
defined by sequence
manufacturing parameter.
• FALSE—Mill surface stock
allowance parameter will not
be applied.
Note
The FALSE value will be
used if element does not
exist.
PRO_E_STD_SURF_ Surface Collection Optional element. Specifies the
COLLECTION_APPL collection of selected surfaces to
be checked for collisions.
Note
This element is mandatory if
the element PRO_E_MFG_
APPROACH_AXIS is set. It
is not used otherwise.
PRO_E_MFG_CMP_EXIT Compound This compound element specifies
an exit compound. It combines
exit axis and last slice only.
Note
This element is mandatory if
the element PRO_E_MFG_
EXIT_AXIS is set. It is not
used otherwise.
Spindle Types
This section describes the types of spindles, which can be used while creating a
sequence feature. The types of spindles are defined by the enumerated type
ProSubSpindleOpt and are as follows:
• PRO_MFG_MAIN_SPINDLE—Specifies that the sequence feature is created
for the part in the main spindle.
• PRO_MFG_SUB_SPINDLE—Specifies that the sequence feature is created
for the part in the sub–spindle.
Two parts can be machined during the same operation using the main spindle and
the sub spindle.
Tool Motions
This section describes how to construct and access the sub-element trees for
various Tool Motion types that are used in the creation of Creo NC features.
Note
This element is mandatory if
the element PRO_E_MFG_
TM_TOOL_AXIS_OPT is set
to PRO_TM_AXIS_SEL.
PRO_E_MFG_TM_TOOL_AXIS_ PRO_VALUE_TYPE_INT Specifies the flip options. The
FLIP_OPT valid values for this element are:
• TRUE
• FALSE
Note
This element is mandatory if
the element PRO_E_MFG_
TM_TOOL_AXIS_OPT is set
to PRO_TM_AXIS_SEL.
Note
At least one of elements
below must have a non zero
value.
• PRO_E_TOOL_MTN_X_
OFFSET
• PRO_E_TOOL_MTN_Y_
OFFSET
• PRO_E_TOOL_MTN_Z_
OFFSET
PRO_E_TOOL_MTN_X_OFFSET PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
offset along X-axis. This element
can range from negative to
positive values. The valid range
values for this element are from
-MAX_DIM_VALUE to MAX_
DIM_VALUE.
PRO_E_TOOL_MTN_Y_OFFSET PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
offset along Y-axis. This element
can range from negative to
positive values. The valid range
values for this element are from
-MAX_DIM_VALUE to MAX_
DIM_VALUE.
PRO_E_TOOL_MTN_Z_OFFSET PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
offset along Z-axis. This element
can range from negative to
positive values. The valid range
values for this element are from
-MAX_DIM_VALUE to MAX_
DIM_VALUE
PRO_E_MFG_TM_TOOL_AXIS_ Compound Optional element. This compound
COMPOUND element specifies the tool axis.
PRO_E_MFG_TM_TOOL_AXIS_ PRO_VALUE_TYPE_INT Optional element. This element
OPT specifies the tool axis options. The
valid values for this element are:
• PRO_TM_ALONG_Z
• PRO_TM_USE_PREV
• PRO_TM_AXIS_SEL
Note
This element is mandatory if
the element PRO_E_MFG_
TM_TOOL_AXIS_OPT is set
to PRO_TM_AXIS_SEL.
PRO_E_MFG_TM_TOOL_AXIS_ PRO_VALUE_TYPE_INT Specifies the flip options. The
FLIP_OPT valid values for this element are:
• TRUE
• FALSE
Note
This element is mandatory if
the element PRO_E_MFG_
TM_TOOL_AXIS_OPT is set
to PRO_TM_AXIS_SEL.
Note
By default, Z-axis of the Creo
NC sequence is used to
define the constraint plane.
For 5-axis Creo NC
sequences, you can select an
alternative axis.
Note
This element is optional for
5-axis Creo NC sequences.
By default Z-axis of the Creo
NC sequence is used to
define the constraint plane.
For 5-axis Creo NC
sequences a user can select an
alternative axis.
Note
This element is optional for
5-axis Creo NC sequences.
By default Z-axis of the Creo
NC sequence is used to
define the constraint plane.
For 5-axis Creo NC
sequences a user can select an
alternative axis.
Note
This element is optional for
5-axis Creo NC sequences.
By default Z-axis of the Creo
NC sequence is used to
define the constraint plane.
For 5-axis Creo NC
sequences a user can select an
alternative axis.
Note
This element is optional for
5-axis Creo NC sequences.
By default Z-axis of the Creo
NC sequence is used to
define the constraint plane.
For 5-axis Creo NC
sequences a user can select an
alternative axis.
Note
This element is optional for
5-axis Creo NC sequences.
By default Z-axis of the Creo
NC sequence is used to
define the constraint plane.
For 5-axis Creo NC
sequences a user can select an
alternative axis.
Note
This element is optional for
5-axis Creo NC sequences.
By default Z-axis of the Creo
NC sequence is used to
define the constraint plane.
For 5-axis Creo NC
sequences a user can select an
alternative axis.
Note
This element is mandatory if
coordinate system is selected
for cylindrical retract
reference and is ignored in all
other cases.
PRO_E_TOOL_MTN_TURN PRO_VALUE_TYPE_INT Specifies the orientation of the
_PROF_E_ORIENT axis when coordinate system is
selected as the ending point. The
valid values for this element are:
• PRO_TM_TURN_CSYS_X
• PRO_TM_TURN_CSYS_Y
• PRO_TM_TURN_CSYS_Z
Note
This element is mandatory if
coordinate system is selected
for cylindrical retract
reference and is ignored in all
other cases.
PRO_E_TOOL_MTN_TURN PRO_VALUE_TYPE_INT Mandatory element. Specifies the
_DFLT_CORNER_TYPE default corner type. The valid
values for this element are:
• PRO_TM_TURN_CORNER_
TYPE_SHARP
• PRO_TM_TURN_CORNER_
TYPE_FILLET
• PRO_TM_TURN_CORNER_
TYPE_CHAMFER
PRO_E_TOOL_MTN_TURN_ Array Optional element. Specifies the
CORNER_ARR corner conditions array.
PRO_E_TOOL_MTN_TURN_ Compound This compound element defines
Note
This element is mandatory if
corner type is PRO_TM_
TURN_CORNER_TYPE_
FILLET or PRO_TM_
TURN_CORNER_TYPE_
CHAMFER.
PRO_E_TURN_STK_ALLW_ Array Specifies an array for profile stock
PROF_ARR allowance.
PRO_E_TURN_STK_ALLW_ Array Specifies an array for rough stock
ROUGH_ARR allowance.
PRO_E_TURN_STK_ Compound Specifies the compound element
ALLOWANCE for stock allowance. For more
information, refer to the section
Specifying the Stock Allowance
on page 1735.
PRO_E_TOOL_MTN_TURN_ PRO_VALUE_TYPE_ Mandatory element. Specifies
STK_BND_REF SELECTION reference to the workpiece or
stock boundary.
PRO_E_TOOL_MTN_TURN_EXT Compound Mandatory element. This
compound element specifies
extensions.
Note
This element is mandatory if
coordinate system is selected
for cylindrical retract
reference and is ignored in all
other cases.
PRO_E_TOOL_MTN_TURN_ PRO_VALUE_TYPE_INT Specifies the orientation of the
PROF_E_ORIENT axis when coordinate system is
selected as the ending point. The
valid values for this element are:
• PRO_TM_TURN_CSYS_X
• PRO_TM_TURN_CSYS_Y
• PRO_TM_TURN_CSYS_Z
Note
This element is mandatory if
coordinate system is selected
for cylindrical retract
reference and is ignored in all
other cases.
PRO_E_TOOL_MTN_TURN_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
PROF_OFFSET_CUT offset from turn profile by the tool
radius. The valid values for this
element are:
• PRO_B_TRUE
• PRO_B_FALSE
PRO_E_TOOL_MTN_TURN_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
DFLT_CORNER_TYPE corner type. The valid values for
this element are:
• PRO_TM_TURN_CORNER_
TYPE_SHARP
• PRO_TM_TURN_CORNER_
TYPE_FILLET
• PRO_TM_TURN_CORNER_
TYPE_CHAMFER
PRO_E_TOOL_MTN_TURN_ Array Optional element. Specifies the
CORNER_ARR corner conditions array.
PRO_E_TOOL_MTN_TURN_ Compound This compound element defines
CORNER the elements related to the corner.
PRO_E_TOOL_MTN_TURN_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
CORNER_TYPE corner type. The valid values for
this element are:
Note
This element is mandatory if
corner type is PRO_TM_
TURN_CORNER_TYPE_
FILLET or PRO_TM_
TURN_CORNER_TYPE_
CHAMFER.
PRO_E_TURN_STK_ALLW_ Array Specifies an array for profile stock
PROF_ARR allowance.
PRO_E_TURN_STK_ALLW_ Array Specifies an array for rough stock
ROUGH_ARR allowance.
PRO_E_TURN_STK_ Compound Specifies the compound element
ALLOWANCE for stock allowance. For more
information, refer to the section
Specifying the Stock Allowance
on page 1735.
Note
This element is applicable for
closed loops only.
PRO_E_NCD_CURVE_POINT_ PRO_VALUE_TYPE_ Optional element. Specifies the
REF SELECTION start point vertex definition to
offset from.
PRO_E_NCD_CURVE_POINT_ PRO_VALUE_TYPE_INT Optional element. Specifies the
OFFSET_TYPE start point offset type definition.
The valid values for this element
are:
• PRO_CURVE_POINT_
OFFSET_TYPE_RATIO—
Specifies the offset by
parameter.
• PRO_CURVE_POINT_
OFFSET_TYPE_REAL—
Specifies the offset by length.
PRO_E_NCD_CURVE_POINT_ PRO_VALUE_TYPE_DOUBLE Optional element. Specifies the
OFFSET start point offset definition.
PRO_E_MFG_HELICAL_CUT_ PRO_VALUE_TYPE_INT Optional element. Specifies the
OPT helical cut option. The valid values
for this element are:
Note
This element is mandatory if
the corner type is set to PRO_
TM_TRAJ_CORNER_TYPE_
FILLET or PRO_TM_TRAJ_
CORNER_TYPE_CHAMFER.
Note
This element is mandatory,
only if the element PRO_E_
MFG_AXIS_DEF_TYPE is
set to the value PRO_AXIS_
DEF_BY_
PIVOT_REF. This element is
ignored in all other cases.
PRO_E_MFG_AXIS_DEF_ Compound Specifies the normal surface
NORM_SRF_COMP
Note
This element is mandatory,
only if the element PRO_E_
MFG_AXIS_DEF_TYPE is
set to the value PRO_AXIS_
DEF_BY_
NORM_SURF. This element is
ignored in all other cases.
PRO_E_MFG_AXIS_DEF_ PRO_VALUE_TYPE_ Specifies the selection of multiple
NORM_SRF SELECTION references. You can select surface,
quilt or feature.
Note
The quilt or feature must
represent a Mill surface, if
selected.
Note
This element is mandatory,
only if the element PRO_E_
MFG_AXIS_DEF_TYPE is
set to the value PRO_AXIS_
DEF_BY_
NORM_SURF. This element is
ignored in all other cases.
PRO_E_MFG_AXIS_DEF_ Array Specifies an array of locations.
LOCATION_ARR
Note
This element is mandatory,
only if the element PRO_E_
MFG_AXIS_DEF_TYPE is
set to the value PRO_AXIS_
DEF_BY_LOCATIONS. This
element is ignored in all other
cases.
PRO_E_MFG_AXIS_DEF_ Compound Mandatory element. Specifies the
LOCATION compound element for the location
axis definition.
PRO_E_MFG_AXIS_DEF_ PRO_VALUE_TYPE_ Specifies the selection of the single
ORIGIN_REF SELECTION reference. You can either select a
point on a curve or an edge.
PRO_E_MFG_AXIS_DEF_ Compound Mandatory element. Specifies the
ORIENT_COMP orientation compound element.
PRO_E_MFG_AXIS_DEF_ PRO_VALUE_TYPE_ Specifies the single reference
ORIENT_REF SELECTION selection. You can select either a
point or an axis.
Note
This element is mandatory, if
the elements PRO_E_MFG_
AXES_DEF_ANGLE_X and
PRO_E_MFG_AXES_DEF_
ANGLE_Y are not defined.
PRO_E_MFG_AXES_DEF_ PRO_VALUE_TYPE_DOUBLE Specifies the lead angle. The valid
ANGLE_X range for this element is from —90
Note
This element is mandatory, if
the element PRO_E_MFG_
AXIS_DEF_ORIENT_REF
is not defined.
PRO_E_MFG_AXES_DEF_ PRO_VALUE_TYPE_DOUBLE Specifies the tilt angle. The valid
ANGLE_Y range for this element is from —90
to +90.
Note
This element is mandatory, if
the element PRO_E_MFG_
AXIS_DEF_ORIENT_REF
is not defined.
PRO_E_MFG_AXIS_DEF_LOC_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
FLIP_OPT flip direction at a location. The
valid values for this element are:
• PRO_B_TRUE—Specifies that
the direction will be reversed.
• PRO_B_FALSE—Specifies
that the direction will remain
the same.
PRO_E_MFG_AXIS_DEF_LOC_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
ALIGN_Z alignment of the tool axis with the
Z axis of the step coordinate
system. Specify the value PRO_B_
TRUE to this element.
PRO_E_MFG_AXIS_DEF_ Compound Specifies the compound element
CURVE_COMP for the pivot curve.
Note
This element is mandatory, if
the element PRO_E_MFG_
AXIS_DEF_TYPE is set to
the value PRO_AXIS_DEF_
BY_TWO_CONTOURS. This
element is ignored in all other
cases.
PRO_E_STD_CURVE_ Chain Collection Mandatory element. Specifies a
COLLECTION_APPL general compound element for
chain collection.
PRO_E_MFG_AXIS_DEF_ Array Optional element. Specifies the
Note
This element is applicable
only when the machining
surfaces form a closed loop.
PRO_E_MFG_HELICAL_CUT_ PRO_VALUE_TYPE_INT Optional element. Specifies the
OPT helical cut option. The valid values
for this element are:
• PRO_B_TRUE—Specifies that
helical option and parameters
will be applied.
• PRO_B_FALSE—Specifies
that helical option and
parameters will not be applied.
PRO_E_MFG_START_HEIGHT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION selection of start height surface.
PRO_E_MFG_HEIGHT PRO_VALUE_TYPE_ Mandatory element. Specifies the
SELECTION multiple selections of height
surfaces.
PRO_E_MFG_OFFSET Compound Optional element. Specifies the
offset compound definition.
PRO_E_MFG_OFFSET_CUT PRO_VALUE_TYPE_INT Optional element. Specifies the
Note
This element is mandatory,
only if the element PRO_E_
MFG_AXIS_DEF_TYPE is
set to the value PRO_AXIS_
DEF_BY_PIVOT_REF. This
element is ignored in all other
cases.
PRO_E_MFG_AXIS_DEF_ Compound Specifies the normal surface
NORM_SRF compound element.
Note
This element is mandatory,
only if the element PRO_E_
MFG_AXIS_DEF_TYPE is
set to the value PRO_AXIS_
DEF_BY_
NORM_SURF. This element is
ignored in all other cases.
PRO_E_MFG_AXIS_DEF_ Array Specifies an array of locations.
LOCATION_ARR
Note
This element is mandatory,
only if the element PRO_E_
MFG_AXIS_DEF_TYPE is
set to the value PRO_AXIS_
DEF_BY_LOCATIONS. This
element is ignored in all other
cases.
PRO_E_MFG_AXIS_DEF_ Compound Mandatory element. Specifies the
LOCATION compound element for the location
axis definition.
PRO_E_MFG_AXIS_DEF_ PRO_VALUE_TYPE_ Specifies the selection of the
ORIGIN_REF SELECTION single reference. You can either
select a point on a curve or an
edge.
PRO_E_MFG_AXIS_DEF_ Compound Mandatory element. Specifies the
ORIENT_COMP orientation compound element.
PRO_E_MFG_AXIS_DEF_ PRO_VALUE_TYPE_ Specifies the single reference
ORIENT_REF SELECTION selection. You can select either a
Note
This element is mandatory, if
the elements PRO_E_MFG_
AXES_DEF_ANGLE_X and
PRO_E_MFG_AXES_DEF_
ANGLE_Y are not defined.
PRO_E_MFG_AXES_DEF_ PRO_VALUE_TYPE_DOUBLE Specifies the lead angle. The valid
ANGLE_X range for this element is from —
90 to +90.
Note
This element is mandatory, if
the element PRO_E_MFG_
AXIS_DEF_ORIENT_REF
is not defined.
PRO_E_MFG_AXES_DEF_ PRO_VALUE_TYPE_DOUBLE Specifies the tilt angle. The valid
ANGLE_Y range for this element is from —
90 to +90.
Note
This element is mandatory, if
the element PRO_E_MFG_
AXIS_DEF_ORIENT_REF
is not defined.
PRO_E_MFG_AXIS_DEF_LOC_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
FLIP_OPT flip direction at a location. The
valid values for this element are:
• PRO_B_TRUE—Specifies that
the direction will be reversed.
• PRO_B_FALSE—Specifies
that the direction will remain
the same.
PRO_E_MFG_AXIS_DEF_ Compound Specifies the compound element
CURVE_COMP for the pivot curve.
Note
This element is mandatory, if
the element PRO_E_MFG_
AXIS_DEF_TYPE is set to
the value PRO_AXIS_DEF_
BY_TWO_CONTOURS. This
element is ignored in all other
cases.
Note
This element is mandatory if
the corner type is set to PRO_
TM_TRAJ_CORNER_TYPE_
FILLET or PRO_TM_
TRAJ_CORNER_TYPE_
CHAMFER.
Note
This element is mandatory if
the element PRO_E_TOOL_
MTN_PROFILE_TYPE is set
to PRO_E_MILL_CUT_
FROM_TO. This element is
ignored otherwise.
PRO_E_MFG_HEIGHT PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION height and enables single surface
selection.
Note
This element is mandatory if
the element PRO_E_TOOL_
MTN_PROFILE_TYPE is set
to PRO_E_MILL_CUT_
FROM_TO,PRO_E_MILL_
CUT_UPTO and PRO_E_
MILL_CUT_ONE_SLICE.
This element is ignored
otherwise.
Note
The value for the element
PRO_E_TOOL_MTN_
CL_CMD_PARAM must
be assigned.
• PRO_CL_CMD_LOC_TYPE_
BEGIN—Specifies that the CL
command position is at the
beginning of tool path.
• PRO_CL_CMD_LOC_TYPE_
CURR—Specifies that the CL
command position is at the last
point of the previous motion.
• PRO_CL_CMD_LOC_TYPE_
DTM_PNT—Specifies that the
CL command position is at the
projection of given point on
tool path.
Note
The element NCL_CMD_
LOC_
TYPE_DTM_PNT must
be defined.
• PRO_CL_CMD_LOC_TYPE_
ON_SURFACE— Specifies
that the CL command positions
are at intersection s of given
Note
The element PRO_CL_
CMD_LOC_TYPE_ON_
SURFACE must be
defined
PRO_E_TOOL_MTN_CL_CMD_ PRO_VALUE_TYPE_WSTRING Mandatory element. Specifies a
STR user specified string.
PRO_E_TOOL_MTN_CL_CMD_ PRO_VALUE_TYPE_DOUBLE Specifies the range for the CL
PARAM command parameter. The valid
values for this element are 0 or 1.
Note
This element is mandatory
for PRO_CL_CMD_LOC_
TYPE_SEL location type.
PRO_E_TOOL_MTN_CL_CMD_ PRO_VALUE_TYPE_ Specifies the reference for a datum
GEOM_REF SELECTION point or a surface.
Note
This element is mandatory
for NCL_CMD_LOC_TYPE_
DTM_PNT and PRO_CL_
CMD_LOC_TYPE_ON_
SURFACE location types.
PRO_E_TOOL_MTN_CL_CMD_ PRO_VALUE_TYPE_INT Specifies the CL command surface
SRF_OPT options. The valid values for this
element are:
• PRO_CL_COMMAND_ON_
FIRST_PASS—Specifies that
only the first pass is
considered for surface/tool
path intersection .
• PRO_CL_COMMAND_ON_
LAST_PASS—Specifies that
only the last pass is considered
for surface/tool path
intersection .
• PRO_CL_COMMAND_ON_
ALL_PASSES—Specifies that
all passes are considered for
Note
This element is mandatory
for the element NCL_CMD_
LOC_TYPE_ON_SURFACE.
PRO_E_TOOL_MTN_CL_CMD_ PRO_VALUE_TYPE_INT The valid values for this element
ON_EXIST_PNT are:
• PRO_B_TRUE—It places the
CL command at the nearest
existing point of the tool path;
• PRO_B_FALSE—Adds new
point to the tool path.
Note
This element is mandatory
for PRO_CL_CMD_LOC_
TYPE_DTM_PNT.
PRO_E_TOOL_MTN_PARENT_ PRO_VALUE_TYPE_INT Specifies the tool motion id of the
REF_ID tool motion referred by the cl
command tool motion.
Note
This element is mandatory
for PRO_CL_CMD_LOC_
TYPE_SEL.
Note
The value for the element
PRO_E_TOOL_MTN_TRIM_
END_VAL must be greater
than PRO_E_TOOL_MTN_
TRIM_START_VAL
PRO_E_TOOL_MTN_TRIM_ PRO_VALUE_TYPE_INT Mandatory element. Specifies the
FLIP_DIR direction of the tool motion. The
valid values for this element are:
• PRO_B_TRUE—Specifies
reversed direction.
• PRO_B_FALSE—Specifies
same direction.
Note
By default Z-axis of the Creo
NC sequence is used to
define the constraint plane.
Note
This element is inherited
from Creo NC Sequence if
not specified.
PRO_E_MFG_CMP_APPROACH_ Compound Optional element. Specifies the
EXIT approach and exit compound
definition. For more information,
refer to the section Approach and
Exit on page 1689.
Note
This element is mandatory
only if the element PRO_E_
TOOL_MTN_PROFILE_
TYPE is set to PRO_E_
MILL_CUT_FROM_TO.
PRO_E_MFG_HEIGHT PRO_VALUE_TYPE_ Select a single surface where the
SELECTION
Note
This element is mandatory
only if the element PRO_E_
TOOL_MTN_PROFILE_
TYPE is set to PRO_E_
MILL_CUT_FROM_TO, or
PRO_E_MILL_CUT_UPTO,
or PRO_E_MILL_CUT_
ONE_SLICE.
PRO_E_VOL_MILL_REGION_ Array Optional element. Specifies an
ARR array of region specifications.
Define this element to overwrite
the default order of machining of
different areas
PRO_E_VOL_MILL_REGION Compound Specifies a compound element that
defines the volume milling region.
PRO_E_VOL_MILL_REGION_ PRO_VALUE_TYPE_INT Specifies the skipping option for
SKIP_OPT the region. The valid values for
this element are:
• PRO_B_TRUE—Specifies that
the region will be skipped
while machining.
• PRO_B_FALSE—Specifies
that the region will not be
skipped while machining.
PRO_E_VOL_MILL_AP_REF PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION selection of a vertical datum axis,
or a datum point. This element
defines a location for the region to
make an approach move.
PRO_E_VOL_MILL_EX_REF PRO_VALUE_TYPE_ Optional element. Specifies the
SELECTION selection of a vertical datum axis,
or a datum point. This element
defines a location for the region to
make an exit move.
This chapter describes how to use the Creo Parametric TOOLKIT functions for
assembly process operations. It assumes that you are familiar with the
functionality of Manufacturing Process Planning for ASSEMBLIES.
Optional Elements
The following elements in the tree are optional for all types of process step:
• PRO_E_DESCRIPTION
• PRO_E_SIMPLFD_REP
• PRO_E_EXPLODE_STATE
• PRO_E_TIME_ESTIMATE
• PRO_E_COST_ESTIMATE
For a detailed explanation of explode states and related functions, see the section
Exploded Assemblies on page 1141 in the Assembly: Basic Assembly Access on
page 1130 chapter.
1789
Overview
The Process Manager functionality is based on the Process Table, which lists all
the manufacturing process objects, such as workcells, operations, fixture setups,
tooling, and NC sequences.
The Process Table lets you create new manufacturing objects and modify
properties of existing ones. You can create new Holemaking and some milling
steps directly in the Process Table. Steps of other types, that is, NC Sequences
created outside the Process Manager, are also listed in the Process Table. You can
manipulate the NC Sequences like any other steps, for example, reorder or
duplicate them. However, customizations done to the toolpath outside the Process
Table will be lost as a result of manipulation.
You can also define manufacturing templates based on existing Milling and
Holemaking steps, and use these templates to create manufacturing steps in a
different model.
You can add manufacturing templates as annotations to the reference part. This
way, when you bring a reference part into a manufacturing model, the annotation
can be automatically extracted into the manufacturing process to create the
necessary steps, complete with tooling, parameters, and geometric references.
Step Models
The Step Model object represents the default properties of steps in the process
manager and is a derivative of the ProModelitem and is defined as typedef
struct pro_model_item.
{
ProType type;
int id;
ProMdl owner;
}ProMfgprocItem;
Step objects have a step id, the Mfg owner, and the ProType field as PRO_
NC_PROCESS_MODEL.
Parameters
Several categories of parameters are accessible for items in the process manager
table:
• Manufacturing parameters
• AE parameters
• Step parameters
• Template parameters
Manufacturing Parameters
You can access the manufacturing parameters by reading or writing the
manufacturing feature or step element tree.
Template Parameters
Template parameters are inherited from the step’s process template.
Function Introduced:
• ProMfgprocitemTemplateparamGet()
The function ProMfgprocitemTemplateparamGet() obtains a template
parameter value for the process item.
Special Parameters
Other special parameters are properties of steps and can include the extract status,
machining time, the template name, and so on. Some of these properties may be
also accessible via the step element tree.
Functions Introduced:
• ProMfgprocitemPropertyGet()
• ProMfgprocitemPropertySet()
Manufacturing Features
Functions Introduced:
• ProMfgproctableFeaturesCreate()
• ProMfgproctableFeaturesDelete()
The function ProMfgproctableFeaturesCreate() creates features for
items in the process manufacturing table.
The function ProMfgproctableFeaturesDelete() deletes all existing
manufacturing features from the Creo Parametric model while keeping everything
in the process manager unchanged.
return (PRO_TK_NO_ERROR);
}
ProElement elem_tree;
if ( status == PRO_TK_NO_ERROR)
{
status = ProElemtreeWrite (elem_tree, PRO_ELEMTREE_XML,
L"selecteditem_prereq.inf");
PT_TEST_LOG_SUCC (" ProElemtreeWrite ");
if ( status == PRO_TK_NO_ERROR )
{
status = ProElemtreeElementVisit( elem_tree, ( ProElempath )NULL ,
( ProElemtreeVisitFilter) NULL,
( ProElemtreeVisitAction) PTMfgElemtreePreReqAction,
NULL );
PT_TEST_LOG_SUCC (" ProElemtreeElementVisit ");
}
return PRO_TK_NO_ERROR;
}
status = PTMfgProcitemElemtreeGet(&complete_tree);
PT_TEST_LOG_SUCC("PTMfgProcitemElemtreeGet");
if (status == PRO_TK_NO_ERROR)
PTMfgProcitemToolNameGet(complete_tree);
if (status == PRO_TK_NO_ERROR)
{
status = ProElempathAlloc(&epath);
PT_TEST_LOG_SUCC ("ProElempathAlloc ()");
p_items[0].type = PRO_ELEM_PATH_ITEM_TYPE_ID;
p_items[0].path_item.elem_id = PRO_E_MFG_PARAMS ;
if ( status == PRO_TK_NO_ERROR )
{
status = ProElemtreeElementVisit( params_element,NULL,
( ProElemtreeVisitFilter) NULL,
( ProElemtreeVisitAction)
PTMfgElemtreeWalkthroughAction,
status = PTMfgDialogCreate(params_element);
PTUtilInitCounters();
return PRO_TK_NO_ERROR;
}
The section below describes the action functions for the each of the preceding
sample code.
/***********************ACTION FUNCTIONS*************************/
/*--------------------------------------------------------*\
FUNCTION : PTMfgElemtreeWalkthroughAction()
PURPOSE : Action function for PTUtilElemtreeWalkthroug
\*--------------------------------------------------------*/
ProError PTMfgElemtreeWalkthroughAction ( ProElement params_element,
ProElement element, ProElempath elem_path,
ProAppData app_data )
{ ProElempathItem p_items[3];
ProValueDataType value_type = -1;
ProElemId elem_id,p_elem_id; char * actual_value;
ProValue value = (ProValue)NULL;
ProValueData value_data; Data_Input *my_data;
ProElempath epath; my_data = (Data_Input*) app_data;
status = ProElementIdGet( element, &elem_id);
PT_TEST_LOG_SUCC("ProElementIdGet");
if ( elem_id == PRO_E_MFG_PARAM_NAME )
1813
Cabling
This section describes the functions in Creo Parametric TOOLKIT that access the
contents of a cabling harness created using the cabling module in Creo Parametric.
The explanations in this section assume a knowledge of cabling and the
fundamental concepts of Creo Parametric TOOLKIT, especially assemblies.
Be careful with the terminology of cabling. You can route three kinds of objects to
make electrical connections within a harness: wires, cables, and bundles. The
generic word for all three is cable. Unless otherwise specified, the explanations in
the following sections use the word cable, in its generic sense, to include wires,
cables, and bundles.
Creo Parametric TOOLKIT uses the object type ProCable to refer to any type
of cable object. The data object has the same structure as ProModelitem.
Typedef struct pro_model_item {
ProMdl owner;
int id;
protype type;
)ProCable;
Creating a Harness
Function Introduced:
• ProHarnessCreate()
ProCable operates on a Creo Parametric assembly. Cables can belong to one or
more harness. A harness is a special Creo Parametric part designed to contain
cables.
A harness cannot be retrieved into Creo Parametric Part mode. It appears in the
cabling assembly as an assembly component. A harness is identified by the Creo
Parametric object handle ProHarness.
The function ProHarnessCreate() creates a new harness in the specified
assembly.
Finding a Harness
Function Introduced:
• ProAssemblyHarnessesCollect()
• ProAssemblyHarnessesTopCollect()
• ProAsmcompIsHarness()
• ProCablingIsHarness()
• ProHarnessSubharnessesCollect()
Harness Parameters
Functions Introduced:
• ProCablelocationAttachToHarnessComponentGet()
• ProCablelocationIsAttachToHarness()
Use the function
ProCablelocationAttachToHarnessComponentGet() to get the
component on which the attach to harness location is dependent.
Use the function ProCablelocationIsAttachToHarness() to identify if
the specified location is a cabling attach to harness location.
Managing Spools
Functions Introduced:
• ProAssemblySpoolsCollect()
• ProSpoolCreate()
• ProInputFileRead()
• ProOutputFileMdlnameWrite()
Function ProAssemblySpoolsCollect() returns a list of all spools defined
in the specified assembly.
Use function ProSpoolCreate() to create a new spool of a given cable and
sheath type in the specified assembly.
Use function ProInputFileRead() with argument PRO_SPOOL_FILE to
create new spools or update existing ones. Function
ProOutputFileMdlnameWrite() with the same argument to export a spool
file.
Spool Parameters
Functions Introduced:
• ProSpoolParameterGet()
• ProSpoolParametersCollect()
• ProSpoolParameterDelete()
• ProSpoolParametersSet()
• ProSpoolsFromLogicalGet()
• ProSpoolsFromLogicalCreate()
Connectors Parameters
Functions Introduced:
• ProConnectorEntryPortsGet()
• ProConnectorParamsCollect()
• ProConnectorDesignate()
• ProConnectorWithAllParamsDesignate()
• ProConnectorUndesignate()
• ProConnectorParamGet()
• ProConnectorParamDelete()
• ProConnectorParamsSet()
• ProConnectorsFromLogicalGet()
• ProOutputFileMdlnameWrite()
• ProInputFileRead()
• ProConnectorRefModelNameGet()
Each connector contains a set of entry ports to which cables can be connected.
Each entry port is modeled by a coordinate system datum that belongs to the part
that models the connector. The function ProConnectorEntryPortsGet()
returns a ProArray of datum coordinate systems representing the entry ports in
the specified connector. The connector is identified by its component path (its
memb_id_tab).
The function ProConnectorParamsCollect() provides an array of the
user parameters for the connector. However, this array contains only single-valued
parameters that refer to the connector itself, not the parameters that describe the
entry ports.
To access parameters on the connector entry ports, you must call the function
ProOutputFileMdlnameWrite() with the option PRO_CONNECTOR_
PARAMS_FILE. This writes a text file to disk, which is the same format as the
file you edit when using the ProCable command Connector, Modify Parameters,
Mod Param.
Note
The function ProCableAndConductorsCreate() also creates
conductors if needed. Pass the value of the input argument create_conductors
as PRO_B_TRUE to create conductors.
Cable Parameters
Functions Introduced:
Note
You must set the configuration option display_thick_cables toyes
before using this API.
Cable Geometry
Functions Introduced:
• ProCableLengthGet()
• ProCableSegmentsGet()
• ProCablesegmentPointsGet()
• ProCablesegmentIsInBundle()
• ProCablesegmentIsNew()
The function ProCableLengthGet() provides the length of the specified
wire within a specified harness.
The functions ProCableSegmentsGet() and
ProCablesegmentPointsGet() provide the geometry of a named wire,
bundle, or cable within a specified harness part. The geometry of a wire or cable is
divided into a number of segments, each of which represents a region where the
wire or cable is bundled with other wires and cables. The geometry of each such
segment is described by a series of three-dimensional locations and tangent
vectors.
The function ProCablesegmentIsInBundle() determines whether a cable
segment runs into a bundle.
The function ProCablesegmentIsNew() determines whether the cable
segment is connected to a previous cable segment.
Cable Routing
Functions Introduced:
• ProCableRoutingStart()
• ProCableThruLocationRoute()
• ProCableRoutingEnd()
• ProCablelocationrefAlloc()
• ProCablelocationrefFree()
To Route a Group of Cables Through a Sequence of Locations:
1. Call ProCableRoutingStart() to identify the cables to be routed.
2. Call ProCablelocationrefAlloc() to create a routing reference
location structure.
3. Call ProCableThruLocationRoute() for each location through which
to route the cables.
4. Call ProCablelocationrefFree() to free the location reference.
5. Call ProCableRoutingEnd() to complete the routing.
6. Call ProSolidRegenerate() to make Creo Parametric calculate the
resulting cable geometry and create the necessary cable features.
Note
You must also call the function ProWindowRepaint() to see the new
cables.
This chapter contains information about the Piping API functions. The functions
in this section allow a Creo Parametric TOOLKIT application to create, read, and
write pipe linestock information. These APIs also support analysis of pipeline
connectivity as built with the Creo Parametric module Piping.
Linestock Parameters
Functions introduced:
• ProLnstkParametersCollect()
• ProLnstkParametersSet()
• ProLnstkParameterAdd()
• ProLnstkParameterDelete()
The parameters of a linestock differ from regular Creo Parametric parameters in
that they may be organized hierarchically. The data structure ProLnstkParam
contains the description of a linestock parameter and its member parameters, if
any. Its declaration follows, along with those of its member types.
typedef enum
{
PROLNSTKPRM_SINGLE,
PROLNSTKPRM_MULTIPLE
} ProLnstkParamType;
typedef struct _pro_lnstk_param_memb_
{
ProName name;
ProParamvalue value;
} ProLnstkParamMemb;
typedef struct _pro_lnstk_param_
{
ProName name;
Networks
Functions introduced:
• ProPipelineNetworkEval()
• ProPnetworkFree()
• ProPnetworkLabelGet()
• ProPnetworkSizeGet()
• ProPnetworkSpecGet()
A pipeline is a collection of Creo Parametric piping features and components that
are connected together. A pipeline feature is a single feature that unites all the
features and components in a pipeline. All the features and components that
belong to one pipeline reference the pipeline feature.
A network is a temporary data structure which is the result of analyzing the
connectivity and topology of the features and components in a pipeline. The
functions in this section allow a Creo Parametric TOOLKIT application to create
and analyze the network for a pipeline, which would be the first step in, for
example, an analysis of the fluid flow down the pipeline.
The network is a hierarchical data structure whose branches describe the various
logical subdivisions into which the features and components of a pipeline divide
themselves according to their connectivity.
A network is described by the opaque pointer ProPnetwork. The function
ProPipelineNetworkEval() analyzes the features and components that
belong to a pipeline (specified by its pipeline feature) and builds a network data
structure.
After the structure has been analyzed it should be freed using
ProPnetworkFree().
The functions ProPnetworkLabelGet(), ProPnetworkSizeGet(), and
ProPnetworkSpecGet() get information about the pipeline described by a
specified network.
Extensions
Functions introduced
• ProPnetworkExtensionVisit()
• ProPextensionFlowGet()
Members
Functions introduced:
• ProPextensionMemberVisit()
• ProPmemberTypeGet()
An extension is conceptually divided into objects called members, described by
the opaque object ProPmember. The members in an extension divide it at the
pipeline branches which the extension crosses.
There are three types of member:
• Terminator—The end of a pipeline, where it either opens or connects to an
item outside the pipeline, described by the opaque object
ProPterminator.
• Junction—The item that describes how the pipeline branches, described by the
opaque object ProPjunction.
• Series—A non branching sequence of pipeline objects, described by the
opaque object ProPseries.
The function ProPextensionMemberVisit() visits all the members in an
extension, and the function ProPmemberTypeGet() reports which of the three
types the member represents. Each of three types of member is in turn composed
of one or more objects.
The following sections describe the analysis of the three types of members.
Terminators
Functions introduced:
Junctions
Functions introduced:
• ProPmemberJunctionGet()
The function ProPmemberJunctionGet() outputs the Pjunction object
which represents the junction in the specified member.
Series
Functions introduced:
• ProPmemberSeriesGet()
• ProPseriesIdGet()
The function ProPmemberSeriesGet() outputs the Pseries object which
represents the series in the specified member.
The function ProPseriesIdGet() yields the integer id of the specified series.
Objects
Functions introduced:
• ProPterminatorObjectGet()
• ProPjunctionObjectGet()
• ProPseriesObjectVisit()
• ProPobjectTypeGet()
• ProSelectionPipelineGet(
• ProPobjectSegmentGet()
• ProPobjectFittingGet()
• ProPfittingAsmcompGet()
• ProPobjectStubinGet()
• ProPstubinPointGet()
Segments
Functions introduced:
The following table describes the elements in the element tree for the pipe connect
feature:
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Mandatory element. Specifies the
type of the feature. The valid value
for this element is PRO_FEAT_
PIPE_JOIN.
PRO_E_STD_PIPE_LINE_ENV PRO_ELEM_TYPE_COMPOUND This compound element defines
the pipe options.
PRO_E_STD_PIPE_LINE_ID PRO_ELEM_TYPE_INT This element is mandatory, except
the pipe route environment.
For Specification-Driven
pipelines, the value of bend radius
is defined in the line stock, which
is related to the pipeline.
PRO_E_STD_PIPE_LINE_ PRO_ELEM_TYPE_INT Optional element. This element is
MITER_NUM relevant when the corner type is
set to PRO_PIPE_CORNER_
TYPE_MITER. Specifies the
number of miter cuts. The default
number of cuts is taken from the
related pipeline.
For Specification-Driven
pipelines, the number of miter cuts
is defined in the line stock, which
is related to the pipeline.
PRO_E_STD_PIPE_LINE_ PRO_ELEM_TYPE_DOUBLE Optional element. This element is
MITER_LEN relevant when the corner type is
set to PRO_PIPE_CORNER_
TYPE_MITER. Specifies the
length of the miter cut. The default
length is taken from the related
pipeline.
For Specification-Driven
pipelines, the length of the miter
cut is defined in the line stock,
which is related to the pipeline.
PRO_E_PIPE_CONNECT_ PRO_ELEM_TYPE_SELECT Mandatory element. Specifies the
FROM_MAIN_REF first end of the connect feature.
PRO_E_PIPE_CONNECT_TO_ PRO_ELEM_TYPE_SELECT Mandatory element. Specifies the
MAIN_REF second end of the connect feature.
Note
If length is missing, then its
value is considered as 0. If
angle is missing, then the
default dimensioning scheme
PRO_PIPE_DIM_SCHEME_
L1_L2 is used. Here again, if
length is missing, then its
value is considered as 0.
Note
If the angle is missing, then
the dimensioning scheme
PRO_E_PIPE_CONNECT_
DIMS_SCHEME is changed
to PRO_PIPE_DIM_
SCHEME_L1_L2. The
default values of L1 and L2
are 0.0.
Welding is an optional Creo Parametric module that allows you to model welds in
assemblies. In addition, you can generate report tables about weld parameters and
show welding symbols in assembly drawings. This chapter provides a brief
overview of weld features. For more information, refer to the “Welding Design”
module in the Creo Parametric Online Help.
Each callback has input arguments which identify the drawing, the weld assembly,
the weld feature being annotated, and the path to the drawing symbol being used.
The functions for read-access to welds, described in the previous section, would
be used inside the callbacks to find out about the weld being annotated.
Refer to the Event-driven Programming: Notifications on page 2010 chapter for
more data on how to set a notification.
Weld symbol notification types are:
• PRO_DRAWING_WELD_SYMPATH_GET—allows the callback function to
override the entire weld symbol by specifying the path and file name of a
substitute symbol.
• PRO_DRAWING_WELD_GROUPIDS_GET—allows the callback to selectively
include or exclude symbol groups contained in the symbol. Additional inputs
to the callback are a flag to show which way the symbol will point (left or
right) and an array of the names of the groups in the symbol; the output is an
array of booleans which select the groups to be included.
• PRO_DRAWING_WELD_SYMTEXT_GET—allows the callback to substitute
for variable text in the symbol.
All three notifications can be set at the same time, allowing you to use your own
set of generic symbols which are designed to be customized according to the weld
type and properties.
This chapter describes how to access the properties of Creo Simulate items. The
functions described in this chapter evaluate the model's structural characteristics
and thermal profile and provide powerful tools for examining mechanism
performance.
Note
• You cannot call the function ProMechanicaEnter() from user_
initialize().
• Models created in Creo Simulate Lite mode, in both Structure and Thermal,
are not supported by the Creo Parametric TOOLKIT functions. If you access a
Creo Simulate Lite model in the Creo Simulate environment, the function
ProMechanicaEnter() returns an error PRO_TK_CANT_ACCESS.
Note
Only functions related to the Creo Simulate database must be called between
the calls to the functions ProMechanicaEnter() and
ProMechanicaLeave(). ProMechanicaEnter() must not be used to
initialize the Creo Simulate User Interface.
*Interactive selection using this filter will by default allow the user to select both
loads and constraints. Use the ProSelect() filters if you desire to only allow
selection of one of these types.
Functions
The functions described in this section provide access to the data and contents of
Creo Simulate function items.
Function items use the ProType field in the ProMechitem structure as PRO_
SIMULATION_FUNCTION.
Functions Introduced:
• ProMechfuncCsysGet()
• ProMechfuncCsysSet()
• ProMechfuncDataGet()
• ProMechfuncDataSet()
• ProMechfuncDescriptionGet()
• ProMechfuncDescriptionSet()
• ProMechfuncVartypeGet()
• ProMechfuncVartypeSet()
• ProMechfuncdataTypeGet()
• ProMechfuncdataTypeSet()
• ProMechfuncdataExpressionGet()
• ProMechfuncdataExpressionSet()
• ProMechfuncdataFuncvalueinterpGet()
• ProMechfuncdataFuncvalueinterpSet()
• ProMechfuncdataIndependentvarGet()
• ProMechfuncdataIndepvarinterpGet()
• ProMechfuncdataIndepvarinterpSet()
• ProMechfuncdataMirrordeflectionflagGet()
• ProMechfuncdataMirrordeflectionflagSet()
• ProMechfuncdataFunctableGet()
• ProMechfuncdataFunctableSet()
• ProMechtablentryFunctionvalueGet()
• ProMechtablentryFunctionvalueSet()
The types specified in the preceding table and the functions required to access
these types are defined in the header file ProMechValue.h and
ProMechValueSet.h.
Functions Introduced:
• ProMechvectoredvalueAlloc
• ProMechvectoredvalueDirectiontypeGet()
• ProMechvectoredvalueDirectiontypeSet()
• ProMechvectoredvalueDirectionvectorGet()
• ProMechvectoredvalueDirectionvectorSet()
• ProMechvectoredvalueMagnitudeGet()
• ProMechvectoredvalueMagnitudeSet()
• ProMechvectoredvaluePointsGet()
• ProMechvectoredvaluePointsSet()
• ProMechvectoredvalueFree()
• ProMechdirvectorAlloc()
• ProMechdirvectorComponentsGet()
Note
Once a load has been created and updated successfully, its load type cannot be
changed.
Centrifugal Loads
A centrifugal load results due to the rigid body rotation of the model and is
applied on the entire model. The functions described in this section provide read
access to the data and structure of the Creo Simulate centrifugal loads.
Functions Introduced:
• ProMechcentrifugaldataAlloc()
• ProMechcentrifugaldataVelocityGet()
• ProMechcentrifugaldataVelocitySet()
• ProMechcentrifugaldataAccelerationGet()
• ProMechcentrifugaldataAccelerationSet()
• ProMechcentrifugaldataFree()
The function ProMechcentrifugaldataAlloc() allocates memory for the
centrifugal load data.
The function ProMechcentrifugaldataVelocityGet() returns the
magnitude and direction of the angular velocity of the centrifugal load.
The function ProMechcentrifugaldataVelocitySet() sets the value of
the angular velocity of the centrifugal load.
The function ProMechcentrifugaldataAccelerationGet() returns
the acceleration vector for the centrifugal load. The acceleration vector is the rate
of change of the angular velocity vector, and represents a change in magnitude or
direction of the angular velocity.
The function ProMechcentrifugaldataAccelerationSet() sets the
acceleration vector for the centrifugal load.
The function ProMechcentrifugaldataFree() releases the memory
assigned to the centrifugal load data.
Note
From Creo Parametric onward, the global and external temperature loads are
converted to equivalent structural temperature loads. The functions previously
available to access Creo Simulate global and external temperature loads have
been deprecated. The structural temperature load functions supersede the
global and external temperature load functions.
Note
Once a constraint has been created and updated successfully, its constraint
type cannot be changed.
Convection Constraints
Convection constraints specify a boundary condition on the convective heat
exchange between a moving fluid and geometric entities and/or element entities
within your model.
The functions described in this section provide access to the data and contents of
the Creo Simulate convection constraints. You can define the value of the
convection constraint as a function of temperature.
Functions Introduced:
Radiation Constraints
A thermal radiation exchanges heat between the model surface and the
surroundings. Radiation does not take place between the model surfaces. You can
define the value of the radiation constraint as a function of temperature.
The functions described in this section provide access to the data and contents of
the Creo Simulate radiation constraints.
Functions Introduced:
• ProMechradiationdataAlloc()
• ProMechradiationdataAmbienttempExprGet()
• ProMechradiationdataAmbienttempExprSet()
• ProMechradiationdataEmissivityGet()
• ProMechradiationdataEmissivitySet()
• ProMechradiationdataTemperaturedependenceGet()
• ProMechradiationdataTemperaturedependenceSet()
• ProMechradiationdataFree()
The function ProMechradiationdataAlloc() allocates memory for the
radiation load data.
The model emits and absorbs energy from the surroundings at a fixed ambient
temperature. Use the function
ProMechradiationdataAmbienttempExprGet() to get the value of the
ambient temperature for the radiation constraint data. Use the function
ProMechradiationdataAmbienttempExprSet() to set the value of the
ambient temperature for the radiation constraint data.
The function ProMechradiationdataEmissivityGet() gets the
emissivity value. Use the function
ProMechradiationdataEmissivitySet() to set the emissivity value.
Displacement Constraints
The functions described in this section provide access to the data and contents of
the Creo Simulate displacement constraints.
Functions Introduced:
• ProMechdisplacementdataAlloc()
• ProMechdisplacementdataTypeGet()
• ProMechdisplacementdataTypeSet()
• ProMechdisplacementdataCsysGet()
• ProMechdisplacementdataCsysSet()
• ProMechdisplacementdataRotationconstrsGet()
• ProMechdisplacementdataRotationconstrsSet()
• ProMechdisplacementdataTranslationconstrsGet()
• ProMechdisplacementdataTranslationconstrsSet()
• ProMechdisplacementdataFree()
• ProMechdisplacementregularconstrAlloc()
• ProMechdisplacementregularconstrTypeSet()
• ProMechdisplacementregularconstrTypeGet()
• ProMechdisplacementregularconstrValueSet()
• ProMechdisplacementregularconstrValueGet()
• ProMechdisplacementdataTranslationinterpretinradiansflagGet()
• ProMechdisplacementdataTranslationinterpretinradiansflagSet()
• ProMechdisplacementregularconstrFree()
• ProMechdisplacementregularconstrProarrayFree()
• ProMechdisplacementdataPinconstrSet()
• ProMechdisplacementdataPinconstrGet()
• ProMechdisplacementpinconstrAlloc()
• ProMechdisplacementdataPinangularconstrTypeSet()
Note
The angular constraint cannot be of type PRO_MECH_DISPLACEMENT_
ENFORCED.
Note
The axial constraint cannot be of type PRO_MECH_DISPLACEMENT_
ENFORCED.
PRO_MECH_BEAMSECTION_SQUARE_DIMENSION = 3,
/* ProMechExpression [a] */
PRO_MECH_BEAMSECTION_RECTANGLE_DIMENSION = 4,
/* ProMechVector (2) [b, d] */
PRO_MECH_BEAMSECTION_HOLLOWRECTANGLE_DIMENSION = 5,
/* ProMechVector (4) [b, d, bi, di] */
PRO_MECH_BEAMSECTION_CHANNEL_DIMENSION = 6,
/* ProMechVector (4) [b, t, di, tw] */
PRO_MECH_BEAMSECTION_CHANNEL_SHEARFACTOR = 7,
/* ProMechVector (2) [Fy, Fz] */
PRO_MECH_BEAMSECTION_IBEAM_DIMENSION = 8,
/* ProMechVector (4) [b, t, di, tw] */
PRO_MECH_BEAMSECTION_LSECTION_DIMENSION = 9,
/* ProMechVector (4) [b, t, di, tw] */
PRO_MECH_BEAMSECTION_LSECTION_SHEARFACTOR = 10,
/* ProMechVector (2) [Fy, Fz] */
PRO_MECH_BEAMSECTION_SOLIDCIRCLE_DIMENSION = 12,
/* ProMechExpression [R] */
PRO_MECH_BEAMSECTION_HOLLOWCIRCLE_DIMENSION = 13,
/* ProMechVector (2) [R, Ri] */
PRO_MECH_BEAMSECTION_SOLIDELLIPSE_DIMENSION = 14,
/* ProMechVector (2) [a, b]*/
PRO_MECH_BEAMSECTION_HOLLOWELLIPSE_DIMENSION = 15,
/* ProMechVector (3) [a, b, ai] */
PRO_MECH_BEAMSECTION_HOLLOWELLIPSE_SHEARFACTOR = 16,
/* ProMechVector (2) [Fy, Fz] */
PRO_MECH_BEAMSECTION_GENERAL_AREA = 17,
/* ProMechExpression [Area] */
PRO_MECH_BEAMSECTION_GENERAL_INERTIA = 18,
/* ProMechMatrix (2x2, symmetrical)
[ Ixx Ixy ]
[ Iyy ]
*/
PRO_MECH_BEAMSECTION_GENERAL_TORSIONSTIFFNESS = 19,
/* ProMechExpression [j] */
PRO_MECH_BEAMSECTION_GENERAL_SHEARFACTOR = 20,
/* ProMechVector (2) [Fy, Fz] */
PRO_MECH_BEAMSECTION_GENERAL_SHEARCENTER = 21,
/* ProMechVector (2) [Dy, Dz] */
PRO_MECH_BEAMSECTION_GENERAL_POINT_1 = 22,
/* ProMechVector (2) [y1, z1] */
PRO_MECH_BEAMSECTION_GENERAL_POINT_2 = 23,
/* ProMechVector (2) [y2, z2] */
PRO_MECH_BEAMSECTION_GENERAL_POINT_3 = 24,
/* ProMechVector (2) [y3, z3] */
PRO_MECH_BEAMSECTION_GENERAL_POINT_4 = 25,
/* ProMechVector (2) [y4, z4] */
PRO_MECH_BEAMSECTION_GENERAL_POINT_5 = 26,
/* ProMechVector (2) [y5, z5] */
PRO_MECH_BEAMSECTION_GENERAL_POINT_6 = 27,
/* ProMechVector (2) [y6, z6] */
PRO_MECH_BEAMSECTION_GENERAL_POINT_7 = 28,
/* ProMechVector (2) [y7, z7] */
PRO_MECH_BEAMSECTION_GENERAL_POINT_8 = 29,
/* ProMechVector (2) [y8, z8] */
PRO_MECH_BEAMSECTION_GENERAL_POINT_9 = 30,
/* ProMechVector (2) [y9, z9] */
PRO_MECH_BEAMSECTION_WARPCOEFFICIENT = 31,
/* ProMechExpression
Beam Orientations
The functions described in this section provide read and write access to the data
and contents of the Creo Simulate beam orientations data structure. Beam
orientations use the ProType field in the ProMechitem structure as PRO_
SIMULATION_BEAM_ORIENT.
Functions Introduced:
• ProMechbeamorientDescriptionGet()
• ProMechbeamorientDescriptionSet()
• ProMechBeamorientExpressionGet()
• ProMechBeamorientExpressionSet()
• ProMechBeamorientIntegerGet()
• ProMechBeamorientIntegerSet()
• ProMechBeamorientVectorGet()
• ProMechBeamorientVectorSet()
Functions Superseded:
• ProMechbeamorientDataGet()
• ProMechbeamorientDataSet()
• ProMechbeamorientdataTypeGet()
• ProMechbeamorientdataTypeSet()
PRO_MECH_BEAM_ORIENT_ANGLE = 1, /* ProMechExpression */
Beam Releases
The beam releases specify the degrees of freedom you want to release for a beam
end or beam ends. Beam releases determine the degrees of freedom that do not
participate in a connection at the end of a beam. You can specify beam releases for
both straight and curved beams.
The beam releases data structure contains a combination of the six degrees of
freedom relative to the beam's local axes, that is, translation in X, Y, and Z and
rotation in X, Y, and Z.
The functions described in this section provide read and write access to the data
and contents of the Creo Simulate beam releases data structure. Beam releases use
the ProType field in the ProMechitem structure as PRO_SIMULATION_
BEAM_RELEASE.
Functions Introduced:
• ProMechbeamreleasedataAlloc()
• ProMechbeamreleaseDataGet()
• ProMechbeamreleaseDataSet()
• ProMechbeamreleaseDescriptionGet()
• ProMechbeamreleaseDescriptionSet()
• ProMechbeamreleasedataRotationflagsGet()
• ProMechbeamreleasedataRotationflagsSet()
• ProMechbeamreleasedataTranslationflagsGet()
• ProMechbeamreleasedataTranslationflagsSet()
• ProMechbeamreleasedataFree()
Note
Note: The functions
ProMechsimplespringdataExtensionalstiffnessGet() and
ProMechsimplespringdataExtensionalstiffnessSet() have
been deprecated. Use the functions
ProMechsimplespringdataExtensionalstiffnessValue
Get() and
ProMechsimplespringdataExtensionalstiffnessValue
Set() instead.
Accessing ProMechmatlassign
Functions Introduced:
• ProMechmatlassignReferencesGet()
• ProMechmatlassignReferencesSet()
• ProMechmatlassignDataGet()
• ProMechmatlassignDataSet()
Material Orientations
The functions described in this section specify material orientation for surfaces,
volumes, shells, solids, 2D solids, and 2D plates. These functions provide read
and write access to the data and contents of Creo Simulate material orientation
objects. Material orientations use the ProType field in the ProMechitem
structure as PRO_SIMULATION_MATL_ORIENT.
Functions Introduced:
Shell Properties
Shell properties are used to create shells that are not homogeneous, or to create
shells that are comprised of several layers. A shell property can be assigned to a
face, region, or datum surface.
The functions described in this section provide read and write access to data and
contents of the Creo Simulate shell property objects. Shell properties use the
ProType field in the ProMechitem structure as PRO_SIMULATION_
SHELL_PROPS.
Functions Introduced:
• ProMechshellpropsTypeGet()
• ProMechshellpropsDescriptionGet()
• ProMechshellpropsDescriptionSet()
• ProMechshellpropsHomogeneousdataGet()
• ProMechshellpropsHomogeneousdataSet()
• ProMechshellpropsLaminatelayupdataGet()
• ProMechshellpropsLaminatelayupdataSet()
Shell Pairs
The shell pairs are created based on the surfaces belonging to a part. The shell
pairs are compressed to a mid surface or set of mid surfaces and shell elements are
assigned to it.
The functions described in this section provide read and write access to the data
and contents of the Creo Simulate shell pair objects. Shell pairs use the ProType
field in the ProMechitem structure as PRO_SIMULATION_SHELL_PAIR.
Functions Introduced:
• ProMechshlpairrefsAlloc()
• ProMechshellpairMaterialIdGet()
• ProMechshellpairMaterialIdSet()
• ProMechshellpairMaterialOrientIdGet()
• ProMechshellpairMaterialOrientIdSet()
• ProMechshellpairReferencesGet()
• ProMechshellpairReferencesSet()
• ProMechshlpairrefsTypeGet()
• ProMechshlpairrefsTypeSet()
• ProMechshlpairrefsPlacementtypeGet()
• ProMechshlpairrefsPlacementtypeSet()
• ProMechshlpairrefsBottomreferencesGet()
• ProMechshlpairrefsBottomreferencesSet()
• ProMechshlpairrefsTopreferencesGet()
• ProMechshlpairrefsTopreferencesSet()
Note
From Creo Parametric onwards, the shell type PRO_MECH_SHELL_
PAIR_VARIABLE is also supported in the Native mode of Creo Simulate
.
Interfaces
Interfaces, also called connections, are used to connect surfaces. When you create
an interface in Creo Simulate , specify how Creo Simulate will treat the connected
surfaces during meshing and analysis. Interfaces use the ProType field in the
ProMechitem structure as PRO_SIMULATION_INTERFACE.
Functions Introduced:
• ProMechinterfaceTypeGet()
• ProMechinterfaceReferencesGet()
• ProMechinterfaceReferencesSet()
• ProMechinterfacebonddataAlloc()
• ProMechinterfaceBonddataGet()
• ProMechinterfaceBonddataSet()
• ProMechinterfacebonddataFree()
• ProMechinterfacefreedataAlloc()
• ProMechinterfaceFreedataGet()
• ProMechinterfaceFreedataSet()
• ProMechinterfacefreedataFree()
• ProMechinterfacecontactdataAlloc()
• ProMechinterfaceContactdataGet()
• ProMechinterfaceContactdataSet()
• ProMechinterfacecontactdataFree()
• ProMechinterfacethrresistdataAlloc()
Bonded Interface
Functions Introduced:
• ProMechbondinterfacedataMergenodesGet()
• ProMechbondinterfacedataMergenodesSet()
The function ProMechbondinterfacedataMergenodesGet() specifies
if coincident nodes of components or surfaces touching each other are merged
during meshing. Use the function
ProMechbondinterfacedataMergenodesSet() to set whether
coincident nodes for bonded interface should merge.
Contact Interface
Functions Introduced:
• ProMechcontactinterfacedataSeparationdistanceExprGet()
• ProMechcontactinterfacedataSeparationdistanceExprSet()
• ProMechcontactinterfacedataAnglebetweensurfacesExprGet()
• ProMechcontactinterfacedataAnglebetweensurfacesExprSet()
The function
ProMechcontactinterfacedataSeparationdistanceExprSet()
sets the separation distance. Specify this distance as an expression of type
ProMechExpression.
Note
The function
ProMechcontactinterfacedataSeparationdistanceExpr
Set() supersedes the function
ProMechcontactinterfacedataSeparationdistanceSet().
The function
ProMechcontactinterfacedataAnglebetweensurfacesExpr
Get() returns the angle between planar surfaces while creating contact interface.
This angle is returned as an expression of type ProMechExpression.
Note
The function
ProMechcontactinterfacedataAnglebetweensurfacesExpr
Get() supersedes the function
ProMechcontactinterfacedataAnglebetweensurfacesGet().
The function
ProMechcontactinterfacedataAnglebetweensurfacesExpr
Set() sets the angle between surfaces while creating contact interface. Specify
this angle as an expression of type ProMechExpression.
The function
ProMechcontactinterfacedataCheckonlyplanarGet() returns a
true if the contact is created between planar surfaces in a component-component
type interface.
Use the function
ProMechcontactinterfacedataCheckonlyplanarSet() to create
contacts only between planar surfaces.
The properties of the contact interface are as follows:
Use the function ProMechcontactinterfacedataFrictionSet() to
set the type of the friction at the contact interface, between the pairs of nodes,
using the enumerated type ProMechInterfaceFrictionType. The valid
values are:
• PRO_MECH_INTERFACE_FRICTION_INFINITE—Specifies that infinite
friction exists at the contact interface that is, the two components or surfaces
cannot slide relative to each other.
• PRO_MECH_INTERFACE_FRICTION_FINITE—Specifies that finite
friction exists at the contact interface that is, that is, the two components or
surfaces are able to slide relative to each other.
Use the function ProMechcontactinterfacedataFrictionGet() to
obtain the type of friction present at the contact interface.
The function ProMechcontactinterfacedataSlippageGet() returns
true if slippage has occurred in the contact region during the analysis. Use the
function ProMechcontactinterfacedataSlippageSet() to check for
slippage in the contact area during analysis.
The function ProMechcontactinterfacedataCoefffrictionGet()
returns the coefficient of friction used to calculate the slippage in the contact
region during analysis. Use the function
ProMechcontactinterfacedataCoefffrictionSet() to set the
coefficient of friction for computing the slippage. Specify a positive value as the
coefficient of friction.
The function ProMechcontactinterfacedataSplitsurfacesGet()
returns true if you split the surface shared by the volumes used to define the
interface.
Note
Set a value less than or equal to the value of static coefficient of friction for
this interface.
Free Interface
Functions Introduced:
• ProMechfreeinterfacedataSplitsurfacesGet()
• ProMechfreeinterfacedataSplitsurfacesSet()
The function ProMechfreeinterfacedataSplitsurfacesGet()
returns true if you split the surface shared by the volumes used to define the free
interface.
The function ProMechfreeinterfacedataSplitsurfacesSet() to
specify whether the free interface should split surfaces.
Gaps
A gap is a nonlinear element, used to model connection between points, edges and
curves, or surfaces in your model by connecting two nodes in separated
geometries. Gaps use the ProType field in the ProMechitem structure as
PRO_SIMULATION_GAP.
Functions Introduced:
• ProMechgapTypeGet()
• ProMechgapReferencesGet()
Mesh Control
Mesh controls define the characteristics of a mesh. Mesh controls specify the
minimum or maximum size of the elements, the distribution of nodes along edges,
hard points and hard curves, mesh ID numbering, mesh ID offsets, and the
displacement coordinate system. The functions described in this section provide
access to the data and contents of the Creo Simulate mesh control objects. Mesh
controls use the ProType field in the ProMechitem structure as PRO_
SIMULATION_MESH_CNTRL.
Functions Introduced:
• ProMechmeshcntrlTypeGet()
• ProMechmeshcntrlAutogemedgedistrdataGet()
• ProMechmeshcntrlAutogemedgedistrdataSet()
• ProMechmeshcntrlAutogemminedgedataGet()
• ProMechmeshcntrlAutogemminedgedataSet()
• ProMechmeshcntrlAutogemelemsizedataGet()
• ProMechmeshcntrlAutogemelemsizedataSet()
• ProMechmeshcntrlAutogemedgelencrvdataGet()
Note
If you are creating a new mesh control using this type of data, you should
assign the model as a reference using the function
ProMechmeshcntrlReferencesSet().
Note
If you are creating a new mesh control using this type of data, you should
assign the model as a reference using the function
ProMechmeshcntrlReferencesSet().
Note
If you are creating a new mesh control using this type of data, you should
assign the model as a reference using the function
ProMechmeshcntrlReferencesSet().
Note
If you are creating a new mesh control using this type of data, you should
assign the model as a reference using the function
ProMechmeshcntrlReferencesSet().
Note
If you are creating a new mesh control using this type of data, you should
assign the model as a reference using the function
ProMechmeshcntrlReferencesSet().
Welds
Welds are used to bridge gaps that are formed during shell compression between
plates that have been mated because they touch or overlap. Welds use the
ProType field in the ProMechitem structure as PRO_SIMULATION_WELD.
Functions Introduced:
• ProMechweldReferencesGet()
• ProMechweldReferencesSet()
• ProMechweldTypeGet()
• ProMechweldperimeterAlloc()
• ProMechweldPerimeterdataGet()
• ProMechweldPerimeterdataSet()
• ProMechweldperimeterEdgesGet()
• ProMechweldperimeterEdgesSet()
• ProMechweldperimeterFree()
• ProMechweldedgeAlloc()
• ProMechweldedgeEdgeGet()
• ProMechweldedgeEdgeSet()
• ProMechweldedgeThicknessGet()
• ProMechweldedgeThicknessSet()
• ProMechweldedgeMaterialidGet()
• ProMechweldedgeMaterialidSet()
• ProMechweldedgeFree()
• ProMechweldedgeProarrayFree()
• ProMechweldspotAlloc()
• ProMechweldSpotdataGet()
• ProMechweldSpotdataSet()
• ProMechweldspotPointsGet()
• ProMechweldspotPntsSet()
• ProMechweldspotDiameterGet()
• ProMechweldspotDiameterSet()
1969
Introduction
Creo Simulate Geometry differs from that of standard Creo Parametric geometry
in several ways.
• Creo Simulate geometry provides a non-manifold representation of assembly
models.
Non-manifold geometry
In assemblies, when two parts are mated, there exist two surfaces where the parts
are mated, each of which does not know the existence of the other.
For analysis applications (particularly in meshing), you want the geometry to have
only one surface in this mated area
• Creo Simulate geometry provides mid-surface geometry for models which
have shells defined.
Mid-surface geometry
Without access to the Creo Simulate geometry, it is difficult to use the information
on volume and surface region.
The Creo Simulate geometry identifies which surfaces are "duplicated" at the
boundaries within the solid. This makes it easy for external applications to re-
create the non-manifold solid.
• Creo Simulate Geometry model is devoid of the undesirable features (from the
point of view of analysis) present in the Creo Parametric model such as
○ Small, localized misalignments in the geometry
○ Cusps
○ Very small sliver surfaces
Note
only datum points that have Creo Simulate items referencing them will be
included unless you pass the additional points as input from
ProMechmodeldataEntitiesSet().
Note
This ID is not persistent and is not related to the Creo Parametric surface ID.
Accessing ProMechContour
An opaque handle called a ProMechContour represents a contour member of
the model. See the chapter on Core: 3D Geometry on page 170 for a discussion of
contours.
Functions Introduced:
• ProMechcontourVisitAction()
• ProMechcontourFilterAction()
• ProMechcontourIdGet()
• ProMechcontourSurfaceGet()
• ProMechcontourTraversalGet()
• ProMechcontourEdgeVisit()
• ProMechcontourUvpntVerify()
• ProMechcontourAreaEval()
• ProMechcontourContainingContourGet()
The function types ProMechcontourVisitAction() and
ProMechcontourFilterAction() are used as arguments to functions that
visit ProMechContour objects.
Use the function ProMechcontourIdGet() to obtain the ID for a given
contour. This ID is unique within the surface that owns the contour.
Accessing ProMechEdge
An opaque handle called a ProMechEdge represents an edge member of the
model.
Functions Introduced:
• ProMechedgeVisitAction()
• ProMechedgeFilterAction()
• ProMechedgeIdGet()
• ProMechedgeOwnerGet()
• ProMechedgeSurfaceVisit()
• ProMechedgeContourVisit()
• ProMechedgeEndpointsGet()
• ProMechedgeIncontactedgesGet()
• ProMechedgeAncestorsGet()
The function types ProMechedgeVisitAction() and
ProMechedgeFilterAction() are used as arguments to functions that visit
ProMechEdge objects.
Use the function ProMechedgeIdGet() to obtain the ID of the given edge.
Note
This ID is not persistent and is not related to the Creo Parametric edge ID.
Accessing ProMechVertex
An opaque handle called a ProMechVertex represents a vertex member of the
model.
Functions Introduced:
• ProMechvertexVisitAction()
• ProMechvertexFilterAction()
• ProMechvertexIdGet()
• ProMechvertexOwnerGet()
• ProMechvertexPointGet()
• ProMechvertexSurfaceVisit()
• ProMechvertexEdgeVisit()
• ProMechvertexIncontactverticesGet()
The function types ProMechvertexVisitAction() and
ProMechvertexFilterAction() are used as arguments to functions that
visit ProMechVertex objects.
Use the function ProMechvertexIdGet() to obtain the ID of the given
vertex.
Use the function ProMechvertexOwnerGet() to obtain the volume that
owns this vertex.
Accessing ProMechPoint
An opaque handle called a ProMechPoint represents a datum point member of
the model. By default, the Creo Simulate geometry will include only those points
which have Creo Simulate loads or other items referencing them; you can generate
additional points by including them as inputs to
ProMechmodeldataEntitiesSet().
Functions Introduced:
• ProMechpointVisitAction()
• ProMechpointFilterAction()
• ProMechpointIdGet()
• ProMechpointOwnerGet()
• ProMechpointPointGet()
• ProMechpointPlacementtypeGet()
• ProMechpointPlacementsurfaceGet()
• ProMechpointPlacementedgeGet()
• ProMechpointPlacementvertexGet()
• ProMechpointAncestorsGet()
The function types ProMechpointVisitAction() and
ProMechpointFilterAction() are used as arguments to functions that
visit ProMechPoint objects.
Use the function ProMechpointIdGet() to obtain the ID of the point.
Note
This ID is not persistent and is not related to the Creo Parametric point ID.
Accessing ProMechCompositeCurve
An opaque handle called a ProMechCompositeCurve represents a composite
curve member of the model. By default, the Creo Simulate geometry will include
only those curves which have Creo Simulate loads or other items referencing
them. You can generate additional curves by including them as inputs to
ProMechmodeldataEntitiesSet().
Functions Introduced:
• ProMechcompositecurveVisitAction()
• ProMechcompositecurveFilterAction()
• ProMechcompositecurveIdGet()
• ProMechcompositecurveOwnerGet()
• ProMechcompositecurveCurveVisit()
• ProMechcompositecurveAncestorsGet()
The function types ProMechcompositecurveVisitAction() and
ProMechcompositecurveFilterAction() are used as arguments to
functions that visit ProMechCompositeCurve objects.
Note
This ID is not persistent and is not related to the Creo Parametric composite
curve ID.
Accessing ProMechCurve
An opaque handle called a ProMechCurve represents a curve member of the
model. A curve is always the child of a composite curve.
Functions Introduced:
• ProMechcurveVisitAction()
• ProMechcurveFilterAction()
• ProMechcurveTypeGet()
• ProMechcurveEdgeGet()
• ProMechcurveParentGet()
• ProMechcurveParamGet()
• ProMechcurveEndpointsGet()
• ProMechcurveAncestorsGet()
The function types ProMechcurveVisitAction() and
ProMechcurveFilterAction() are used as arguments to functions that
visit ProMechCurve objects.
Use the function ProMechcurveTypeGet() to obtain the curve's type. Curves
may be of the following types:
• PRO_MECH_SEGMENT_FREE
• PRO_MECH_SEGMENT_ON_EDGE
Note
The Surface Region feature is available and can be regenerated only in the
Creo Simulate environment.
The following figure shows the element tree for the Surface Region feature.
The Surface Region feature element tree contains no non-standard element types.
The following table describes special information about the elements in this tree.
Element ID Value
PRO_E_FEATURE_TYPE PRO_FEAT_SPLIT_SURF
PRO_E_STD_FEATURE_NAME Specifies the name of the Surface Region feature.
The default value is “Surface Region”. This element
is optional.
PRO_E_SURFREG_SPLITTING_OPTION Specifies the method to define the surface contour.
Valid values are:
1987
Overview
The Finite Element Modeling (FEM) functions in this chapter are designed to give
you access to data generated by the Pro/MESH module of Creo Parametric. You
can do the following:
• Export a Pro/MESH output file to disk.
PRO_FEA_PARABOLIC: 10 nodes
Triangle PRO_FEA_LINEAR: 3 nodes
PRO_FEA_PARABOLIC: 6 nodes
Quadrangle PRO_FEA_LINEAR: 4 nodes
PRO_FEA_PARABOLIC: 8 nodes
• solver—The type of solver used for analysis. The possible values are:
○ PRO_FEM_FEAS_ANSYS—Specifies an ANSYS solver.
○ PRO_FEM_FEAS_NASTRAN—Specifies a NASTRAN solver.
Note
Prior to calling this function, the model (pro_solid) should be displayed in
the graphics window.
1991
Mechanism Spring Feature
A spring generates a translational or rotational spring force in a mechanism. It
produces a linear spring force when stretched or compressed, and a torsion force
when rotated. The magnitude of the spring force is directly proportional to the
amount of displacement from the position of equilibrium.
Springs are created as Creo Parametric features and their values are stored as valid
Creo Parametric parameters.
The following list details special information about the elements in the feature
element tree:
The following list details special information about the elements in the feature
element tree:
• PRO_E_STD_FEAT_NAME—Specifies the name of the mechanism damper
feature.
• PRO_E_SPRING_DAMPER_TYPE—Specifies the mechanism damper feature
type. It can have the following values:
The following list details special information about the elements in the feature
element tree:
• PRO_E_FEATURE_TYPE—Specifies the feature type.
• PRO_E_STD_FEATURE_NAME—Specifies the name of the mechanism belt
feature.
• PRO_E_BELT_PULLEYS—Specifies an array of pulley bodies of the type
PRO_E_BELT_PULLEY_RECORD which consists of the following elements:
○ PRO_E_BELT_PULLEY_SEL—Specifies the geometric reference
selected as the pulley body. It can be a cylindrical surface, a circular curve
or edge, or a PIN or Cylinder connection. You must define at least two
pulley bodies for the belt.
Creo Parametric automatically selects both the sides of the cylindrical
surface or the circular curve or edge so that the pulley is complete. In case
of a cylindrical or circular reference, the pulley’s axis of rotation is
automatically detected by detecting a PIN or Cylinder connection aligned
to the theoretical axis of the geometric reference and perpendicular to the
belt plane. If such as a connection does not exist, the reference is
considered invalid. In case of a connection reference, the rotation axis of
the selected connection is used as the pulley axis.
Note
From Pro/ENGINEER Wildfire 5.0 onwards, the feature element tree for the
3D Contact feature has been updated. 3D Contact features created using the
old tree are represented in the new tree format. You will need to rebuild your
existing Pro/TOOLKIT applications according to the new element tree.
The following list details special information about the elements in the feature
element tree:
The following table describes the elements in the element tree for the Mechanism
Motor feature:
Element ID Data Type Description
PRO_E_FEATURE_TYPE PRO_VALUE_TYPE_INT Specifies the type of the motor
feature.
PRO_E_STD_FEATURE_NAME PRO_VALUE_TYPE_WSTRING Specifies the name of the
mechanism motor feature.
PRO_E_MOTOR_MOTION_TYPE PRO_VALUE_TYPE_INT Specifies the motion type of
motor. The motion type is
specified using the enumerated
data type
ProMotorMotionType. The
valid values are:
Note
When you select references
that are a point or a plane to
define the servo motor, you
are creating a geometric
servo motor.
PRO_E_MOTOR_ENT_REF PRO_VALUE_TYPE_ Specifies the reference geometry
SELECTION for a geometric servo motor. You
can select a point or plane.
PRO_E_MOTOR_DIR_MODE PRO_VALUE_TYPE_INT Specifies the type of motion
direction for motors. The valid
values are defined in enumerated
data type
ProMotorFMDirMode:
• PRO_MOTOR_FM_VEC_
DIR—The direction is defined
by explicit vector in a
coordinate system.
• PRO_MOTOR_FM_STD_
DIR—The direction is defined
by standard direction reference
such as, straight edge, curve,
axis, and plane normal.
• PRO_MOTOR_FM_P2P_
DIR—The direction is defined
by a pair of point or vertex.
PRO_E_MOTOR_VEC_DIR_ PRO_VALUE_TYPE_POINTER This element is applicable only for
DATA geometric force motors.
PRO_E_MOTOR_VEC_DIR_Z
Note
It defines the direction when
connection axis motors or
geometric motors do no use
the element PRO_E_
DIRECTION_COMPOUND to
define the direction.
PRO_E_MOTOR_PROFILE PRO_VALUE_TYPE_POINTER Specifies a compound element that
defines the profile options for a
motor.
PRO_E_MOTOR_DRIVEN_ PRO_VALUE_TYPE_INT Specifies the type of driven
QUANTITY quantity. The valid values are
defined in the enumerated data
type
ProMotorDrivenQuantity:
• PRO_MOTOR_POSITION—
Specifies the motion of servo
motor in terms of the position
of the selected entity.
• PRO_MOTOR_VELOCITY—
Specifies the motion of servo
motor in terms of its velocity.
• PRO_MOTOR_
ACCELERATION—Specifies
the motion of servo motor in
terms of its acceleration.
• PRO_MOTOR_FORCE—
PRO_E_MOTOR_FUNC_COEFF_
B
PRO_E_MOTOR_FUNC_COEFF_
C
PRO_E_MOTOR_FUNC_COEFF_
D
PRO_E_MOTOR_FUNC_COEFF_
L
PRO_E_MOTOR_FUNC_COEFF_
H
PRO_E_MOTOR_FUNC_COEFF_
T
PRO_E_MOTOR_TABLE_DATA PRO_VALUE_TYPE_POINTER Specifies a compound element that
defines all the options for table
motor type.
PRO_E_MOTOR_TBL_ PRO_VALUE_TYPE_INT Specifies the interpolation method
INTERPOL_TYPE using the enumerated data type
ProMotorTableInterpType.
The valid values are:
• PRO_MOTOR_TBL_
LINEAR—Connects the table
points with a straight line.
• PRO_MOTOR_TBL_
SPLINE—Fits a cubic spline
to each set of points.
• PRO_MOTOR_TBL_
MONOTONIC—Produces a
monotonic trajectory when you
use default velocity values and
monotonic magnitude values.
PRO_E_MOTOR_TBL_ROWS PRO_VALUE_TYPE_POINTER Specifies an array of table rows.
PRO_E_MOTOR_TBL_ROW PRO_VALUE_TYPE_POINTER Specifies a compound element that
Note
• If you call ProNotificationSet() more than once with the same event
type, the existing callback is overwritten with the one supplied in the later call.
• When notifications are set in Creo Parametric TOOLKIT applications, every
time an event is triggered, notification messages are added to the trail files.
From Creo Parametric 2.0 M210 onward, a new environment variable
PROTK_LOG_DISABLE enables you to disable this behavior. When set to
true, the notifications messages are not added to the trail files.
Notification Types
The notification events in Creo Parametric fall into the following classes:
The possible file management notifications fall into the following subclasses:
Note
From Creo Parametric 3.0 onward, some callback functions and events for
notifications have been deprecated. Refer to the header files ProMdl.h and
ProNotify.h for more information.
Graphics Events
Notifications before and after the repainting of the current Creo Parametric
window. This enables you to overlay your own graphics over the window and
ensure that they get refreshed when the Creo Parametric window is repainted, for
any reason.
Graphics Events
Event type Callback typedef Include file
PRO_MDL_DISPLAY_PRE ProMdlDisplayPreAction ProMdl.h
PRO_MDL_DISPLAY_POST ProMdlDisplayPostAction ProMdl.h
NC Output Events
Notification of the output from Creo NC of an operation CL data file, or an Creo
NC sequence CL data file. This enables you to perform your own post-processing
on these files. The callback functions are called with arguments that provide the
name of the file created.
NC Output Events
Event type Callback typedef Include file
PRO_NCSEQ_CL_POST ProNcseqClPostAction ProNotify.h
PRO_OPER_CL_POST ProMfgoperClPostAction ProNotify.h
CL Command Events
Notifications that give you the ability to create auxiliary NC sequences with
programmatically created CL commands.
CL Command Events
Event type Callback typedef Include file
PRO_NCL_COMMAND_EXPAND ProClCommandExpandAc ProClCmd.h
tion
PRO_NCL_COMMAND_GET_LOC ProClCommandGetLocAc ProClCmd.h
tion
Weld Events
Notifications that give you the ability to customize the results generated by Creo
Parametric when gathering info for weld operations.
Weld Events
Event type Callback typedef Include file
PRO_DRAWING_WELD_ ProDrawingWeldSympathGe ProNotify.h
SYMPATH_GET tAction
PRO_DRAWING_WELD_ ProDrawingWeldGroupids ProNotify.h
GROUPIDS_GET GetAction
PRO_DRAWING_WELD_ ProDrawingWeldSymtextGe ProNotify.h
SYMTEXT_GET tAction
This chapter describes the Creo Parametric TOOLKIT functions that enable you to
create and manipulate external objects.
Note
External objects are limited to text and wireframe entities. In addition, external
objects can be created for parts and assemblies only. That is, external objects
can be stored in a part or assembly database only.
Note
In the assembly mode, ProExtobjScreentrfGet() is applicable for
external objects owned only by the top assembly model. Use the function
ProDispdatTrfGet() to retrieve the transformation of external objects in
sub-models in the assembly mode. In the part mode,
ProExtobjScreentrfGet() is applicable for all objects.
Note
PTC recommends that the size and arrangement of the selection boxes be
dependent on the size and shape of the external object. If the external object is
compact and uniformly distributed in all coordinate directions, one selection
box will probably suffice.
However, if the external object is distributed nonuniformly, or is interfering
with other objects, you must designate more specific locations at which
selection should occur.
To obtain the list of selection boxes in a given selection data, call the function
ProSeldatSelboxesGet().
Note
Setting up the references for an external object does not fully define the
dependency between the object and the reference. You must also specify the
callback function to be called when some action is taken on the reference.
Note
For the sake of simplicity, the example does not implement selection data.
This chapter describes the functions that enable you to create analysis and analysis
feature objects in a Creo Parametric solid.
2037
Overview
Creo Behavioral Modeling allows the creation of two types of objects in a Creo
Parametric solid:
• Analysis
• Analysis Feature
In Creo Parametric you can create an analysis using the commands under the
Analysis tab. Analyses show the results of certain standard types of measurement
or calculation, for example, curvature of an edge or surface, or the center of
gravity of a solid. Users can name an analysis and store it in the solid, along with
the references to the geometry items it analyses. The analysis is then reevaluated
automatically upon each model regeneration, and can be queried at any time using
the Analysis command. Such an analysis is stored separately from the features and
geometry items in the solid.
An analysis feature is a feature that uses an analysis to determine the values of its
feature parameters and the shape of its geometry items. An analysis feature is a
variety of datum feature and is created using the Creo Parametric Datum
command. An example of the use of an analysis feature is the creation of a
coordinate system datum at the center of gravity of a solid, aligned with its axes of
inertia. Another example is a pair of datum points at the closest points of two parts
in an assembly.
Creo Parametric TOOLKIT analysis functions allow definition of analyses and
analysis features whose computations are performed by callback functions
provided by the Creo Parametric TOOLKIT application. This means that Creo
Parametric TOOLKIT can be used to make analysis computations, and determine
feature geometry, in ways not native to Creo Parametric. We refer to the analyses
and analysis features defined by Creo Parametric TOOLKIT as toolkit-based; this
stresses the fact that the computations could be performed by a separate Creo
Parametric TOOLKIT application.
Creo Parametric TOOLKIT users should practice using standard Creo Parametric
analyses and analysis features before studying toolkit-based analyses.
The functions and data structures specific to toolkit-based analysis features are
declared in the header file ProAnalysis.h.
Analysis Callbacks
When registering a Toolkit-Based Analysis type, callbacks must be provided for
each of the following 13 types:
• ui
• dims
When the Creo Parametric user saves the analysis to the solid:
Callback Description
savecheck Tell Creo Parametric whether the description of the
analysis can be saved.
infosave Give Creo Parametric a list of geometry items
referenced by the analysis. Creo Parametric stores
these using its own internal mechanism for storing
references. The references appear in the model as
feature references, and are used to determine the
relationship of the feature to other features, and
therefore when the feature needs to be regenerated.
OR
When the Creo Parametric user leaves the ANALYSIS dialog box without saving
the new analysis, or erases a solid containing a toolkit-based analysis:
Callback Description
infofree The Creo Parametric TOOLKIT application frees the
memory used by its internal description of the
analysis.
Many of the callbacks will be called during other commands in Creo Parametric
whenever the toolkit-based analysis or analysis feature is affected.
Results Data
This section describes in more detail the data given to Creo Parametric by the
Creo Parametric TOOLKIT application as the output from the results callback.
The output consists of two arrays, one for the feature parameters, the other for the
feature geometry. Each of these is a ProArray allocated by Creo Parametric
before calling the callback.
The structure for a feature parameter is:
typedef struct analysis_param
Array “shapes” contains any number of geometric entities of the same type. The
union that represents an entity shape is:
typedef union
{
ProAnalysisSrfData *surface;
ProQuiltdata *quilt;
ProCurvedata *curve;
ProCsysdata csys;
} ProAnalysisEntity;
The fields in this union all have types that are generic geometry types in Creo
Parametric TOOLKIT, and are declared in the appropriate headers:
ProSurfacedata.h, ProQuiltdata.h, ProCurvedata.h,
ProCsysdata.h, ProEdgedata.h. The first three fields, although they are
ProAnalysisSrfData Structure
The ProAnalysisSrfData structure is used to define a datum surface from a
toolkit-based analysis feature. This structure consists of:
typedef struct ProAnalysisSrfData
{
ProEdgedata *edge_data;
ProSurfacedata *pro_surface;
} ProAnalysisSrfData;
The ProSurfacedata* structure contains the surface shape, parameters, and a
populated ProContourdata structure referencing the boundary edges. The
ProEdgedata* member should be a ProArray of edge geometric data whose
ids are referenced by the contour data in the surface data structure.
Function Introduced:
• ProAnalysissrfdataAlloc()
The function ProAnalysissrfdataAlloc() allocates the
ProAnalysisSrfData data structure.
Analysis Attributes
Functions Introduced:
• ProAnalysisAttrSet()
• ProAnalysisAttrIsSet()
These functions allow you to get and set certain attributes on a toolkit-based
analysis. The only attribute defined in the current release is PROANALYSIS_
COMPUTE_OFF. If this is set, the compute and result callbacks will not be called
This chapter describes the Creo Parametric TOOLKIT functions that enable you to
create foreign datum curves.
As the element tree implies, foreign datum curve creation requires that you
provide the feature type, curve type, curve class, reference coordinate system, data
used in the analytical representation of the curve, and curve continuity. Creo
Parametric uses this information, together with an evaluation function, to create an
internal representation of the curve.
Curve Continuity
Curve continuity, in a sense, defines the smoothness of intersections between the
ends of the foreign curve and other geometry in the model. It also defines the
continuity of three-dimensional geometry created from the curve, such as a swept
surface. First-order continuity implies that the first derivatives of two adjoining
curve segments are equal at the point at which the curves join. Second-order
continuity is similarly defined. Depending on the curve continuity you want, the
evaluator function needs to contain first and second derivatives of the
parameterized curve equations.
You specify the curve continuity using the PRO_E_CURVE_CONTINUITY
element in the element tree. The valid values, contained in the enumerated type
ProForeignCrvCont, are as follows:
• PRO_FOREIGN_CURVE_CALC_XYZ
• PRO_FOREIGN_CURVE_CALC_XYZ_1_DER
• PRO_FOREIGN_CURVE_CALC_XYZ_1_AND_2_DER
These values correspond to zeroth-, first-, and second-order continuity,
respectively. If you use the value PRO_FOREIGN_CURVE_CALC_XYZ, Creo
Parametric passes NULL for deriv1 and deriv2 to the evaluation function.
Similarly, if you use the value PRO_FOREIGN_CURVE_CALC_XYZ_1_DER,
Creo Parametric passes NULL for deriv2 to the evaluation function. Therefore,
you should check for NULL values of deriv1 and deriv2 in your evaluation
function before trying to assign derivative values to them.
Creo Parametric calls your evaluation function multiple times for a series of
values of the curve parameter, ranging from 0 to 1. The function outputs the
following information:
• X, Y, and Z coordinates of the curve at the specified parameter value
• Values of the first and second derivatives, as needed for the desired curve
continuity
These values are then used by Creo Parametric to construct the curve.
Applications created using the different Creo Parametric API products are
interoperable. These products use Creo Parametric as the medium of interactions,
eliminating the task of writing native -platform specific interactions between
different programming languages.
2053
ProArgument and Argument Management
Use the data structure ProArgument to pass application data to and from tasks
in other applications. The declaration for this structure is:
typedef struct pro_argument
{
ProName label;
ProValueData value;
} ProArgument;
The ProValueData structure supports the following argument types:
• Integer
• Double
• String (char*)
• String (wchar_t*)
• Boolean
• ProSelection
• ProMatrix
Do not use the value type PRO_VALUE_TYPE_POINTER (provided with this
structure in order to support feature element tree values) when passing arguments
between applications.
Functions Introduced:
• ProArgumentByLabelGet()
• ProValuedataStringSet()
• ProValuedataWstringSet()
• ProValuedataTransformGet()
• ProValuedataTransformSet()
• ProArgumentProarrayFree()
Use the function ProArgumentByLabelGet() to locate an argument within a
ProArray of ProArgument structures passed between applications.
Use the function ProValuedataStringSet() to allocate and copy memory
into the ProValuedata structure for a char* argument. Using this function
ensures that ProArgumentProarrayFree() releases all memory in an
arguments array.
Use the function ProValuedataWstringSet() to allocate and copy memory
into the ProValuedata structure for a wchar_t* argument. Use this function
to ensure that ProArgumentProarrayFree() releases all memory in an
arguments array.
Note
All the input arguments are of the widestring data type.
Note
All the output arguments are of the widestring data type.
2063
Technical Summary of Changes for Creo
8.0.0.0
The critical and miscellaneous technical changes in Creo Parametric 8.0.0.0 and
Creo Parametric TOOLKIT are explained in this section. It also lists the new and
superseded functions for this release.
New Functions
This section describes new functions for Creo Parametric TOOLKIT for Creo
Parametric 8.0.0.0.
Annotations
New Function Description
ProNoteURLExtraInfoGet() Retrieves the information of whether
opening the URL for a specified note
appends the extra information
"?<model name>+<note id>".
ProNoteURLExtraInfoSet() Sets whether opening the URL for a
specified note should append the extra
information "?<model
name>+<note id>".
Cabling
New Function Description
ProConnectorRefModelNameGet() Retrieves the reference model name of
the specified cable connector.
Data Exchange
New Function Description
ProIntfExportProfileLoad() Loads the specified profile for export.
Drawing
New Function Description
ProDrawingDraftViewsCollect() Collects all draft views in the specified
drawing.
ProDrawingViewIsDraft() Determines whether the specified view
is a draft view.
ProDrawingDraftViewCreate() Creates a draft view in the specified
drawing sheet.
ProDrawingDimAttachpointsViewGet() Retrieves the attachments and sense of
the specified drawing dimension. This
function fetches and interprets the
attachment in the context of the view in
which the dimension is placed.
Features
New Function Description
ProFeatureReferenceEditRefsGet() Returns an array of the original
references of a feature that are used to
perform the edit reference operation.
Graphics
New Function Description
ProTextFontRetrieve() Loads a font with the specified name
that can be used to display the text.
ProMatrixMakeOrthonormal() Converts a non-orthonormal matrix to
an orthonormal matrix with the
specified scaling factor.
Models
New Function Description
ProMdlIsEmbeddedName() Checks if the specified model name or
full path that includes the model name
is an embedded model name.
ProMdlVisibleGet() Returns the handle to the generic or
visible model for the specified model.
Relations
New Function Description
ProRelationEvalWithUnitsRefResolve Evaluates the expression that is
() specified on the right side of a relation
line and returns the value in the form of
ProParamvalue structure.
Surface Properties
New Function Description
ProSurfaceAppearanceDefaultPropsGet Gets the default appearance properties
() of the specified type of surface.
Symbol Instance
New Function Description
ProDtlsyminstReferencesAdd() Adds semantic references to a specified
symbol.
ProDtlsyminstReferencesGet() Returns a ProArray of additional
semantic references for a symbol.
ProDtlsyminstReferenceDelete() Deletes the additional semantic
references.
Superseded Functions
This section describes the superseded functions for Creo Parametric TOOLKIT
for Creo Parametric 8.0.0.0.
Relations
Superseded Function New Function
ProRelationEvalWithUnits() ProRelationEvalWithUnitsRefResolve
()
New Functions
This section describes new functions for Creo Parametric TOOLKIT for Creo
Parametric 8.0.1.0.
Annotations: Features
New Function Description
ProAnnotationSecuritymarkingSet() Sets the security marking option for
notes and symbols.
ProAnnotationSecuritymarkingGet() Retrieves the security marking option
for notes and symbols.
Drawings
New Function Description
ProDtlentitydataIsPeriodic() Checks if the draft identity is marked as
periodic.
ProDtlentitydataPeriodicSet() Marks the draft entity to be periodic.
Features
New Function Description
ProFeatureMdltreeDisplaynameGet() Returns the name of the nodes in the
model tree.
New Functions
This section describes new functions for Creo Parametric TOOLKIT for Creo
Parametric 8.0.2.0.
Assembly
New Function Description
ProExpldStateExplodeLinesGet() Returns an array of explode lines for
the specified exploded state.
Cross-Sections
New Function Description
ProOffsetXsecInfoGet() Returns the parameters for a specified
offset cross section.
This appendix describes how the new Unicode support used internally by Pro/
ENGINEER from Wildfire 4.0 onward affects Creo Parametric TOOLKIT and its
applications.
2077
Introduction to Unicode Encoding
UNICODE is an acronym for "Universal Character Encoded System". It is a
unique character encoding scheme allowing characters from European, Greek,
Arabic, Hebrew, Chinese, Japanese, Korean, Thai, Urdu, Hindi, and other world
languages to be encoded in a single character set. This enables applications to
simultaneously support text in multiple languages in their data files. Unicode
encoding covers most of the letters, punctuation marks, and technical symbols
commonly used in the English language that are not covered by the legacy
encoding.
Unicode defines two mapping methods:
• UCS (Universal Character Set) encoding
• UTF (Unicode Transformation Format) encoding
For more information on Unicode Encoding, visit http://unicode.org.
Pro/ENGINEER Wildfire 4.0 onward, all string data in Pro/ENGINEER
(previously stored in the legacy encoding format) is now stored in the Unicode
encoding. Pro/ENGINEER Wildfire 4.0 uses the UCS-2 encoding on Windows
platforms and UCS-4 encoding in UNIX environments for widestring data. It
reads and writes character data using the mulitbyte UTF-8 encoding on all
platforms. UTF-8 is an 8-bit, variable-length character encoding format that uses
one to four bytes per character.
Some important terminology about string encoding related to Creo Parametric
TOOLKIT that is used throughout this appendix is described as follows:
• “Unicode encoding” refers to the string and widestring encodings used by Pro/
ENGINEER Wildfire 4.0 and later.
• “Legacy encoding” refers to the encoding used by Pro/ENGINEER Wildfire
3.0 and earlier. Depending on the language, this encoding is typically some
version of an EUC encoding.
• “Native encoding” refers to the encoding used by the operating system in the
language in which the system is running. This encoding is the same as legacy
encoding in most cases.
• “Multibyte string” refers to a character array representing a string in the C
language. Because of the limited size of the character (a single byte),
combinations of multiple bytes are used to represent characters outside the
ASCII range.
• “7-bit ASCII” refers to the character range 0x0 through 0x127. This range is
shared between Unicode and non-Unicode encodings used by Creo
Parametric. Thus, any data of this type is unchanged after transcoding.
• “8-bit ASCII” refers to the character range 0x128 through 0x255. In many
European native encodings, this range is used to represent European accented
This appendix describes the tools that are available for updating applications from
older versions to the current release of Creo Parametric TOOLKIT.
Note
The options may vary in future releases.
When you run the script, it saves a copy of the original files. However, PTC
recommends that you back up all the files, before running the script.
The script generates two types of output. The outputs depend on the -m option.
For example, consider a file with the name model.c. It contains the following
code:
void findMdlParam(ProMdl mdl) {
ProMdlnameShortdata *modelList = NULL;
/* should we call ProMdlInit here?? */
error = ProMdlDependenciesList (mdl, &modelList, &noOFModels);
error = ProMdlCopy (mdl); // what to do?
If you specify the -m option, the original file is retained, and the output file with
the name <filename>_markup.c is created. The comments recommending
new symbols are inserted on separate lines in the output file. For the file
model.c, the following output is generated in the file model_markup.c:
void findMdlParam(ProMdl mdl) {
ProMdlnameShortdata *modelList = NULL;
/* should we call ProMdlInit here?? */
/* Deprecated_API_Used: Replace ProMdlInit with ProMdlnameInit */
error = ProMdlDependenciesList (mdl, &modelList, &noOfModels);
/* Deprecated_API_Used: Replace ProMdlDependenciesList
with ProMdlDependenciesMdlnameList */
error = ProMdlCopy (mdl); // what to do? /*who knows? That's a question
/* Deprecated_API_Used: Replace ProMdlCopy with ProMdlnameCopy */
btkString errorStr = "\"ProMdlCopy (mdl)\" - error";
PrintModelDependencies(modelList);
/*
* This is long multiline comment, where I can also note some Pro/TK
* calls like ProCollectionAlloc or ProCollectioninstrAlloc
** Deprecated_API_Used: Replace ProCollectionAlloc with
ProCrvcollectionAlloc, ProSrfcollectionAlloc **
** Deprecated_API_Used: Replace ProCollectioninstrAlloc with AS APPROPRIATE **
* can be found.
*/
return;
}
If you do not specify the -m option, a copy of the original file is saved as
<filename>.c.orig. The comments with recommendations are inserted in
the original file. For example, the original file is saved as model.c.orig. The
following output is generated in the file model.c:
void findMdlParam(ProMdl mdl) {
ProMdlnameShortdata *modelList = NULL;
/* should we call ** PROTK_DEPRECATED ProMdlInit ->
ProMdlnameInit ** ProMdlInit here?? */
error = /* PROTK_DEPRECATED ProMdlDependenciesList ->
Note
The options may vary in future releases.
When you run the script, it saves a copy of the original files. However, PTC
recommends that you back up all the files, before running the script.
The script generates two types of outputs depending on the -m option. The
mark_otkmethod.pl generates output similar to the mark_
deprecated.pl script.
For example, consider a file Xsection.c. It contains the following code:
ProMessageDisplay(msgfil, "USER Pick the start plane");
ProSelectionModelitemGet(sel[0], &surface_modelitem);
ProSurfaceInit(part, surface_modelitem.id, &surface);
ProSurfaceTypeGet(surface, &stype);
if(stype != PRO_SRF_PLANE)
return(0);
If you specify the -m option, the original file is retained, and the output file with
the name <filename>_markup.c is created. The recommended Creo Object
TOOLKIT C++ methods are inserted as comments on separate lines in the output
file. In this example, for the file Xsection.c, the following output is generated
in the file Xsection_markup.c:
ProMessageDisplay(msgfil, "USER Pick the start plane");
/* Replace ProMessageDisplay with pfcSession::UIDisplayMessage /
pfcSession::UIDisplayLocalizedMessage */
ProSelectionModelitemGet(sel[0], &surface_modelitem);
If you do not specify the -m option, a copy of the original file is saved as
<filename>.c.orig. The comments with recommendations are inserted in
the original file. In this example, the original file Xsection.c is saved as
Xsection.c.orig. The following output is generated in the file
Xsection.c:
/* Replace ProMessageDisplay -> pfcSession::UIDisplayMessage /
pfcSession::UIDisplayLocalizedMessage */
ProMessageDisplay(msgfil, "USER Pick the start plane");
User-Defined Features
With the introduction of bodies in Creo Parametric 7.0.0.0, the following occurs:
• When creating a part, you can add body references to some features, such as to
protrusion and cut features.
• When creating an assembly, you cannot add body references.
• UDFs created in an earlier release of Creo Parametricdo not have body
references.
• UDFs created in an assembly in Creo Parametric 7.0.0.0 do not have body
references.
Note
As a result, the functions ProSrfcollectionRegenerate(),
ProElementCollectionSet() , and
ProSelbufferCollectionAdd() return the error PRO_TK_
MULTIBODY_UNSUPPORTED for multibody based models.
This appendix describes how to use the Registry file to have a foreign program
communicate with Creo Parametric.
2099
Registry File Fields
The following table lists the fields in the registry file creotk.dat or
protk.dat.
Field Description
name Assigns a unique name to the Creo Parametric TOOLKIT application.
The name is used to identify the application if there is more than one.
The name can be the product name and does not have to be the same as
the executable name.
This field can take one of three values; spawn, dll or java.
• spawn— If the value is spawn, Creo Parametric starts the foreign
program using interprocess communications.
• dll – If the value is dll, Creo Parametric loads the foreign
program as a DLL.
• java – If the value is java, Creo Parametric starts the application
as a J-Link class. Consult the J-Link User’s Guide for more details.
The text_dir does not need to include the trailing /text; it is added
automatically by Creo Parametric.
The text_dir should be different from the Creo Parametric text tree.
This field has a limit of PRO_PATH_SIZE-1 wide characters
(wchar_t).
rbn_path Specifies the name of the ribbon file along with its path, which must be
loaded when you open Creo Parametric. The location of the ribbon file
is relative to the location of the text directory. The field text_dir
specifies the path for the text directory. For example, if you want to
specify a ribbon file app1_rbn.rbn placed at text_dir/app1/
app1_rbn.rbn, specify rbn_path as app1/app1_rbn.rbn.
If the field is not specified, by default, the ribbon file with its location,
text_dir/toolkitribbonui.rbn is used.
delay_start If you set this to TRUE, Creo Parametric does not invoke the Creo
Parametric TOOLKIT application as it starts up, but enables you to
choose when to start the application. If this field is missing or is set to
FALSE, the Creo Parametric TOOLKIT application starts automatically.
description Acts as a help line for your auxiliary application. If you leave the cursor
on an application in the Start/Stop GUI, Creo Parametric displays the
description text (up to 80 characters). You can use non-ASCII
characters, as in menu files.
Example 1
In this example, Creo Parametric spawns the foreign program, which runs on the
same machine. The communication is via pipes (the default mode when the
foreign program runs on the same machine as Creo Parametric).
File: protk.dat
[Start of file on next line]
name Product1
exec_file /home/protk/$<machine_type>/obj/frnpgm1
Example 2
This example illustrates how to run multiple foreign programs, as specified in the
protk.dat file.
File: protk.dat
[Start of file on next line]
name Product1
startup dll
exec_file /home/protk/$<machine_type>/obj/frnpgm1.dll
text_dir /home/protk
end
name Product2
startup spawn
exec_file /home/protk2/$<machine_type>/obj/frnpgm2
text_dir /home/protk2
end
[End of file on previous line]
2103
Overview
The libraries available in a Creo Parametric TOOLKIT installation have been
classified under:
• Standard Libraries on page 2105
• Alternate Libraries on page 2105
From Creo Parametric 4.0 F000 onward, the libraries listed in the following table
are no longer supported and will not be available with the software. The New
Library Name column provides a list of the equivalent libraries that are now
available. Apart from the compatibility issues explained in the chapter Version
Compatibility: Creo Parametric and Creo Parametric TOOLKIT on page 41,
applications based on Creo Parametric 3.0 and previous releases will continue to
run successfully with Creo Parametric 4.0.
Old Library Name New Library Name
protk_dll.lib protk_dll_NU.lib
protoolkit.lib protoolkit_NU.lib
protk_dllmd.lib protk_dllmd_NU.lib
protkmd.lib protkmd_NU.lib
Alternate Libraries
Creo Parametric TOOLKIT offers alternate libraries that may be useful for
applications compiled with /MD flag and built with msvcrt.lib. These
libraries are similar to the standard Creo Parametric TOOLKIT libraries in
content, but differ in using msvcrt.lib instead of libcmt.lib.
Library Name Purpose
protkmd_NU.lib Spawn mode library
ptasyncmd.lib Asynchronous mode library
protk_dllmd_NU.lib DLL mode library
Note
Although /MD provides compatibility with multi-threaded components, Creo
Parametric TOOLKIT calls must be made within a single thread. Creo
Parametric does not respond to calls made from multiple threads. Extra threads
may be created by applications only to do tasks which do not directly call Creo
Parametric TOOLKIT functions.
This appendix describes the sample applications provided with Creo Parametric
TOOLKIT.
pt_inst_cxx
Location Makefile
<creo_toolkit_loadpoint>/protk_ make_install_cxx
appls/pt_install_cxx
The application pt_inst_cxx is used to check the C++ version of the Creo
Parametric TOOLKIT installation. It verifies the ProMenubar and custom user
interface dialog box functions that use the C++ compiler and classes.
pt_inst_test_md
Location Makefile
<creo_toolkit_loadpoint>/protk_ make_install_md
appls/pt_install_test
pt_userguide
Location Makefile
<creo_toolkit_loadpoint>/protk_ make_userguide
appls/pt_userguide
pt_examples
Location Makefile
<creo_toolkit_loadpoint>/protk_ make_examples
appls/pt_examples
pt_geardesign
Location Makefile
<creo_toolkit_loadpoint>/protk_ make_geardesign
appls/pt_geardesign
pt_async_md
Location Makefile
<creo_toolkit_loadpoint>/protk_ make_async_md
appls/pt_async
pt_basic
Location Makefile
<creo_toolkit_loadpoint>/protk_ make_basic
appls/pt_basic
pt_af_examples
Location Makefile
<creo_toolkit_loadpoint>/protk_ make_af_examples
appls/pt_af_examples
pt_udf_examples
Location Makefile
<creo_toolkit_loadpoint>/protk_ make_udf_examples
appls/pt_udf_examples
pt_mech_examples
Location Makefile
<creo_toolkit_loadpoint>/protk_ make_mech_examples
appls/pt_mech_examples
This chapter describes the licensing requirements for advanced options in Creo
Parametric TOOLKIT.
2113
Advance Licensing Options for Creo
Parametric TOOLKIT
To use some of the functionality in Pro/TOOLKIT you must have advanced
development license options.
For each TOOLKIT function that requires an advanced license, theCreo
Parametric TOOLKIT header file entry includes a note specifying the
development license requirement. This note is also visible in the APIWizard
description page for the function. Advanced licenses are required in the following
situations:
• To run a locked application, Creo Parametric requires the basic Creo
Parametric TOOLKIT development option and any advanced toolkit options
required by specific functions called by the application. If the application
contains calls to such functions, Creo Parametric checks out the corresponding
advanced license option on demand.
• To unlock an application, the unlock utility requires the basic Creo Parametric
TOOLKIT development option and any advanced toolkit options required by
specific functions called by the application. The utility will not hold any of the
advanced options, as it does the basic Creo Parametric TOOLKIT
development option, after unlock is completed.
• Creo Parametric does not require any of the Creo Parametric TOOLKIT
licenses to run a properly unlocked application.
Applications are assigned requirements for advanced options based on whether the
application is coded to use any functions requiring the advanced option. It does
not matter if an application does not use the function requiring licensing during a
particular invocation of the application. The licensing requirements are resolved
the moment the application is started by or connects to Creo Parametric, not at the
first time an advanced function is invoked.
For more information on how to unlock an application, refer to the section
Unlocking a Creo Parametric TOOLKIT Application on page 44.
2115
The Relationship Between Creo
Parametric TOOLKIT and Pro/DEVELOP
Creo Parametric TOOLKIT replaces and contains Pro/DEVELOP, the
customization toolkit until Release 17 of Pro/ENGINEER. Creo Parametric
TOOLKIT uses an Object-Oriented style.
Terminology
In general, the terminology used by Creo Parametric TOOLKIT is close to that of
Pro/DEVELOP. The following table lists the most important terms that differ in
meaning between the two toolkits.
Creo Parametric TOOLKIT Pro/DEVELOP
Object N/A
Model Object
Solid (part or assembly) Model
Surface Face or surface
Component of an assembly Member
Component path Member identifier table (memb_id_tab)
External data Generic application data
Other functions require more care, however. For example, one of the conventions
of Creo Parametric TOOLKIT is that the input arguments come before the output
arguments.
In some areas of functionality, traditional Pro/DEVELOP techniques have been
replaced in Creo Parametric TOOLKIT by techniques that are more general,
flexible, and consistent with the techniques used within Creo Parametric. A good
example is the visit functions, which replace two different Pro/DEVELOP
techniques. For example:
Pro/DEVELOP Function Creo Parametric TOOLKIT Equivalent
prodb_get_feature_ids() ProSolidFeatVisit()
prodb_first_part_face(), prodb_next_ ProSolidBodySurfaceVisit()
part_face()
Registry Files
The Creo Parametric TOOLKIT registry file has the same format as the Pro/
DEVELOP registry file. The search path used by Creo Parametric TOOLKIT to
find the registry file is like that used by Pro/DEVELOP. However, the file name
prodev.dat is now replaced by creotk.dat or protk.dat, and the
The exception to the previous diagram is that the Pro/DEVELOP function pro_
element_info() is not supported for coordinate system datums.
A contour does not have an integer identifier in either Pro/DEVELOP or Creo
Parametric TOOLKIT, but you can convert the Pro/DEVELOP Prohandle to
ProContour and back by casting.
A view does not have an integer identifier in Creo Parametric TOOLKIT, but you
can convert the Pro/DEVELOP Prohandle to ProView by casting.
A vertex is represented in Pro/DEVELOP as an edge (or a curve) and a value for
the parameter tof either 0 or 1. Creo Parametric TOOLKIT uses this technique in
the ProSelection object, but for function inputs and in ProGeomitem it
uses the specific types PRO_EDGE_START and PRO_EDGE_END (and PRO_
CRV_START and PRO_CRV_END for datum curve ends). Because PRO_EDGE_
START and PRO_CRV_START always refer to the end wheret = 0, conversion is
easy.
A feature is represented in Creo Parametric TOOLKIT by ProFeature, which
is a DHandle, and therefore not equivalent to a Pro/DEVELOP Prohandle. The
integer identifier still maps directly, however.
The following diagram applies to converting features.
For some items that have representations in both Creo Parametric TOOLKIT and
Pro/DEVELOP, the data structures are not the same, and no direct conversion is
possible. However, you can always convert by reducing such structures to their
component data items. For example, to convert the Pro/DEVELOP representation
of a parameter, Pro_parameter_info, to the Creo Parametric TOOLKIT
ProParameter object, you can use functions such as
ProParameterInit() and ProParameterValueWithUnitsSet(),
using the fields in the Pro/DEVELOP structure as inputs. (In this case, it would
probably be better to make a complete conversion to the Creo Parametric
TOOLKIT functions, and thus avoid mixing these types in an application.)
A more complex example of this is the Pro/DEVELOP Select3d structure,
whose Creo Parametric TOOLKIT counterpart is ProSelection. The
following table explains the mapping by showing the fields of Select3d
alongside the Creo Parametric TOOLKIT functions that extract the equivalent
information from ProSelection.
Select3d Field Creo Parametric TOOLKIT Read Access
sel_type ProSelectionModelitemGet(), then read
modelitem.type. See the note that follows this table.
selected_id ProSelectionModelitemGet(), then read
modelitem.id.
selected_ptr ProSelectionModelitemGet(), then Pro*Init(),
depending on the type.
select_pnt ProSelectionPoint3dGet().
sel_param ProSelectionUvParamGet().
sel_depth ProSelectionDepthGet().
Note
The values of the Select3d field sel_type do not map directly to values
of ProType, used in ProModelitem. Do not convert these types by direct
assignment. See the next table for the mapping.
This table also makes clear what data from Pro/DEVELOP you need to build a
ProSelection object in Creo Parametric TOOLKIT, using the functions
ProSelectionAlloc(), ProSelectionSet(),
ProSelectionUvParamSet(), and ProSelectionVerify().
There was an anomaly in selecting datum points in Pro/DEVELOP that has been
corrected in Creo Parametric TOOLKIT. The selected_id is the identifier of
the feature, and the datum point identifier is given by the field sel_elem_id.
However, this does not carry over into Creo Parametric TOOLKIT—the
ProModelitem identifier is the identifier of the datum point. (To get the
feature, use the function ProGeomitemFeatureGet().)
The following table shows how the values of the sel_type field in Select3d
(and the corresponding pro_select() option strings) map to values of
ProType used in Creo Parametric TOOLKIT for ProModelitem and
ProGeomitem objects used in Creo Parametric TOOLKIT as object handles that
inherit from ProModelitem, such as ProGeomitem, ProDimension,
ProGtol, ProDtlnote, and so forth.
pro_select() option Select3d sel_type ProType
point SEL_3D_PNT PRO_POINT
axis SEL_3D_AXIS PRO_AXIS
datum SEL_3D_SRF PRO_SURFACE
csys SEL_3D_CSYS PRO_CSYS
feature SEL_3D_FEAT PRO_FEATURE
edge SEL_3D_EDG PRO_EDGE
edge_end SEL_3D_VERT PRO_EDGE_START or PRO_
EDGE_END
curve SEL_3D_CURVE PRO_CURVE
prodev_get_proe_status() ProEngineerStatusGet()
User-Supplied Main
prodev_main() ProToolkitMain()
Menus
Adding a Menu Button
promenu_create() ProMenuFileRegister()
promenu_expand() ProMenuAuxfileRegister()
promenu_on_button() ProMenubuttonActionSet()
promenu_load_action() ProMenubuttonGenactionSet()
New Menus
promenu_action() ProMenuProcess()
promenu_exit_up() ProMenuDelete()
promenu_make() ProMenuCreate()
promenu_no_exit() ProMenuHold()
promenu_exit_action_up() ProMenuDeleteWithStatus()
promenu_make_compound() ProCompoundmenuCreate()
Preempting Creo Parametric Commands
promenu_load_pre_func() ProMenubuttonPreactionSet()
promenu_load_post_func() ProMenubuttonPostactionSet()
Manipulating Menus
promenu_set_item_location() ProMenubuttonLocationSet()
promenu_set_item_visible() PropMenubuttonVisibilitySet()
promenu_remove_item() ProMenubuttonDelete()
Data Menus
ProMdlDisplay()
pro_show_select() ProSelectionHighlight()
ProSelectionDisplay()
ProSelectionUnhighlight()
Graphics Colors and Line Styles
progr_text_color() ProTextColorSet()
progr_color() ProGraphicsColorSet()
progr_get_color_map() ProColormapGet()
progr_set_color_map() ProColormapSet()
progr_set_line_style() ProLinestyleSet()
progr_get_line_style_def() ProLinestyleDataGet()
Displaying Graphics
progr_move_3d() ProGraphicsPenPosition()
progr_draw_3d() ProGraphicsLineDraw()
progr_put_polyline() ProGraphicsPolylineDraw()
progr_put_multi_polylines() ProGraphicsMultiPolylinesDraw()
progr_put_arc() ProGraphicsArcDraw()
progr_put_circle() ProGraphicsCircleDraw()
progr_draw_polygon_2d() ProGraphicsPolygonDraw()
Displaying Text
progr_put_text() ProGraphicsTextDisplay()
pro_get_text_attributes() ProCurrentTextAttributesGet()
pro_set_text_attributes() ProCurrentTextAttributesSet()
progr_get_default_font_id() ProTextfontDefaultIdGet()
progr_get_font_id() ProTextfontIdGet()
progr_get_font_name() ProTextFontNameGet()
Getting Mouse Input
promenu_get_pick() ProMousePickGet()
pro_sample_xy() ProMouseTrack()
progr_set_draw_mode() ProGraphicsModeSet()
pro_getbox() ProMouseBoxInput()
Display Lists
pro_create_2d_disp_list() ProDisplist2dCreate()
pro_display_2d_disp_list() ProDisplist2dDisplay()
pro_delete_2d_disp_list() ProDisplist2dDelete()
pro_create_3d_disp_list() ProDisplist3dCreate()
pro_display_3d_disp_list() ProDisplist3dDisplay()
ProMdlOriginGet()
ProMdlExtensionGet()
ProMdlDirectoryPathGet()
prodb_get_object_ptr() ProMdlInit()
prodb_first_name_in_list() ProSessionMdlList()
prodb_next_name_in_list() ProSessionMdlList()
prodb_was_object_modified() ProMdlModificationVerify()
pro_solid_id_from_ptr() ProSolidToPostfixId()
pro_solid_ptr_from_id() ProPostfixIdToSolid()
File Management Operations
prodb_create_object() ProSolidMdlnameCreate()
prodb_create_obj() ProSolidMdlnameCreate()
prodb_retrieve_object() ProMdlnameRetrieve()
prodb_save_object() ProMdlSave()
prodb_rename_object() ProMdlnameRename()
prodb_copy_object() ProMdlnameCopy()
prodb_erase_object() ProMdlErase()
prodb_backup_object() ProMdlnameBackup()
Simplified Representations
prodb_get_simplfd_rep_info() ProSimprepActiveGet()
prodb_get_simplfd_rep_list() ProSolidSimprepVisit()
prodb_retrieve_simplfd_rep() ProAssemblySimprepRetrieve()
Selecting Objects
pro_select() ProSelect()
pro_get_selection() ProSelect()
ProParameterDesignationVerify()
Dimensions
prodim_display_dimension ProAnnotationDisplay()
prodim_get_dim_text ProDimensionTextWstringsGet()
prodb_dim_is_visible ProDimensionIsAccessibleInModel()
prodim_get_dimension ProDimensionSymbolGet()
ProDimensionValueGet()
ProDimensionToleranceGet()
ProDimensionTypeGet()
ProDimensionIsFractional()
ProDimensionDecimalsGet()
ProDimensionDenominatorGet()
ProDimensionIsReldriven()
ProDimensionIsRegenednegative().
Features
Listing Features
prodb_get_feature_ids() ProSolidFeatVisit()
prodb_get_feat_parent_child() ProFeatureParentsGet()
prodb_get_feat_type() ProFeatureTypeGet()
user_menu_dbms_save_pre() ProMdlSavePreAction()
user_menu_dbms_save_post() ProMdlSavePostAction()
user_menu_dbms_copy_pre() ProMdlCopyPreAction()
user_menu_dbms_copy_post() ProMdlCopyPostAction()
user_menu_dbms_rename_pre() ProMdlRenamePreAction()
user_menu_dbms_rename_post() ProMdlRenamePostAction()
user_menu_dbms_erase_pre() ProMdlErasePreAction()
user_menu_dbms_erase_post() ProMdlErasePostAction()
user_menu_dbms_purge_pre() ProMdlPurgePreAction()
user_menu_dbms_purge_post() ProMdlPurgePostAction()
user_menu_dbms_delete_pre() ProMdlDeletePreAction()
user_menu_dbms_delete_post() ProMdlDeletePostAction()
user_menu_dbms_create_pre() ProMdlCreatePreAction()
user_menu_dbms_create_post() ProMdlCreatePostAction()
user_menu_dbms_retrieve_pre() ProMdlRetrievePreAction()
user_menu_dbms_retrieve_ ProMdlRetrievePostAction()
post()
user_dbms_save_post_all() ProMdlSavePostAllAction()
user_dbms_copy_post_all() ProMdlCopyPostAllAction()
user_dbms_erase_post_all() ProMdlErasePostAllAction()
user_dbms_delete_post_all() ProMdlDeletePostAllAction()
user_dbms_retrieve_post_all() ProMdlRetrievePostAllAction()
Failure Notify
user_dbms_failure_function() ProMdlDbmsFailureAction()
Change Notify
user_change_window_post() ProWindowChangePostAction()
user_change_directory() ProDirectoryChangePostAction()
Graphics Notify
user_graphics_object_output_ ProMdlDisplayPreAction()
pre()
user_graphics_object_output_ ProMdlDisplayPostAction()
post()
Manufacturing Notify
user_mfg_oper_cl_file_post() ProMfgoperClPostAction()
user_mfg_feat_cl_file_post() ProNcseqClPostAction()
Manufacturing Operations
Manufacturing Components
promfg_get_tool_ids() ProMfgAssemGet()
prodb_get_comp_role()
procbl_get_cable_id()
procbl_get_harness_ ProHarnessLocationsCollect()
locations()
procbl_get_wire_harnesses() ProCableHarnessesGet()
procbl_get_wire_length() ProCableLengthGet()
procbl_get_cable_id() ProCableByNameGet()
procbl_get_cable_name() ProCableNameGet()
procbl_get_cable_subtype() ProCableTypeGet()
procbl_create_cable() ProCableCreate()
procbl_create_bundle() ProBundleCreate()
procbl_get_cable_id()
procbl_get_location_type() ProCablelocationTypeGet()
procbl_get_location_pnt() ProCablelocationPointGet()
procbl_routing_start() ProCableRoutingStart()
procbl_route_thru_location() ProCableThruLocationRoute()
procbl_routing_end() ProCableRoutingEnd()
UDF Function
prodb_first_udf() ProSolidGroupVisit() or
ProSolidGroupsCollect()
prodb_next_udf() ProSolidGroupVisit() or
ProSolidGroupsCollect()
prodb_get_group() ProFeatureGroupGet()
plusProGroupFeatureVisit() or
ProGroupFeaturesCollect()
plusProGroupIsTabledriven()
prodb_get_udf_name() ProUdfNameGet()
prodb_first_dim_udf() ProUdfDimensionVisit() or
ProUdfDimensionsCollect()
prodb_next_dim_udf() ProUdfDimensionVisit() or
ProUdfDimensionsCollect()
prodb_get_udf_dim_name() ProUdfDimensionNameGet()
prodb_place_udf() Replaced
prodb_create_group() ProUdfCreate()
prodb_get_udf_instance_name() ProUdfNameGet()
Cross Sections
prodb_create_parallel_xsec() ProXsecParallelCreate()
prodb_delete_xsec() ProXsecDelete()
prodb_display_xsec() ProXsecDisplay()
prodb_first_xsec() ProSolidXsecVisit()
prodb_mass_prop_xsec() ProXsecMassPropertyCompute()
prodb_next_xsec() ProSolidXsecVisit()
ProSelectionWithOptionsDistanceEval()
pro_compute_clearance() ProFitClearanceCompute()
pro_compute_interference() ProFitInterferenceCompute()
pro_compute_global_ ProFitGlobalinterferenceCompute()
interference()
pro_compute_volume() ProFitInterferencevolumeCompute()
pro_display_interf_volume() ProFitInterferencevolumeDisplay()
pro_interference_volume_ ProInterferenceDataFree()
release()
Customized Plot Driver
prointerface_create() ProPlotdriverInterfaceCreate()
prointerface_load_function()
prointerface_object_set() ProPlotdriverInterfaceobjectsSet()
prointerface_2d() ProPlotdriverExecute()
user_intf_text() ProPlotdriverTextPlot()
ProPlotdriverTextfunctionSet()
user_intf_circle() ProPlotdriverCirclePlot()
ProPlotdriverCirclefunctionSet()
user_intf_arc() ProPlotdriverArcPlot()
ProPlotdriverArcfunctionSet()
user_intf_line() ProPlotdriverLinePlot()
ProPlotdriverLinefunctionSet()
user_intf_polyline() ProPlotdriverPolylinePlot()
ProPlotdriverPolylinefunctionSet()
user_intf_filled_poly() ProPlotdriverPolygonPlot()
ProPlotdriverPolygonfunctionSet()
The following Pro/Develop FEM functions have been replaced with equivalent
Creo Parametric TOOLKIT functions in the mentioned header files:
Pro/DEVELOP Function Equivalent Creo Parametric TOOLKIT
Function
profem_get_con_case_names() ProMechLoadset.h
ProMechConstrset.h
profem_get_constraints() ProMechLoad.h
ProMechConstraint.h
This appendix illustrates the relationships between faces, contours, and edges.
Geometry Terms
Consider the following definitions:
• surface—An ideal geometric representation, that is, an infinite plane.
• face—A trimmed surface. A face has one or more contours.
• contour—A closed loop on a face. A contour consists of multiple edges. A
contour can belong to one face only.
• edge—The boundary of a trimmed surface.
An edge of a solid is the intersection of two surfaces. The edge belongs to
those two surfaces, hence to two contours. An edge of a datum surface can be
Example 1
Example 2
This part was extruded from a rectangular cross section. The feature on the top
was added later as an extruded protrusion in the shape of a semicircle.
• Face A has 1 contour and 6 edges.
• Face B has 2 contours and 8 edges.
• Face C has 1 contour and 4 edges.
Example 4
This part was extruded from a cross section identical to Face A. In the Sketcher,
the top boundary was sketched with two lines and an arc. The sketch was then
extruded to form the base part, as shown.
Example 5
This part was extruded from a rectangular cross section. The slot and hole features
were added later.
• Face A has 1 contour and 8 edges.
• Face B has 3 contours and 10 edges.
2147
Domain of Evaluation
Surfaces and edges can be extended from their original domain as the user
continues to add features to the model. For example, the user can add a feature
such as a draft surface or local push, which requires the original surface to be
extended outside its original domain.
When this occurs, you will find that the uv parameters of the surface have been
extended. The ProSurfacedata data structure reflects the extension, and
returns the updated values for the u and v extents.
Because the evaluator functions use the analytical surface (or curve) definition,
they work for any parameter values. Thus, any surface (or curve) can be extended
as needed. In addition, if you pass in parameters outside the current uv domain,
the evaluator functions still return values for the parameters as requested.
If you are using the evaluators supplied by Creo Parametric TOOLKIT, you do
not have to do anything. For surfaces, the evaluator functions work over this
extended range of parameters. Your evaluator function for foreign datum surfaces
is also expected to allow for extrapolation.
Edges are always parameterized between 0.0 and 1.0. When surfaces are
extended, new edges are created that have parameters in the range 0.0 to 1.0.
If you develop your own evaluator functions, you must be aware that the domain
of a surface can be extended, as with foreign datum surfaces.
Surfaces
Plane
Plane
Cylinder
Cylinder
The generating curve of a cone is a line at an angle alpha to the axis of revolution
that intersects the axis at the origin. The v parameter is the height of the point
along the axis, and the radial distance of the point is v * tan(alpha).
Data Format:
e1[3] Unit vector, in the u direction
e2[3] Unit vector, in the v direction
e3[3] Normal to the plane
origin[3] Origin of the cone
alpha Angle between the axis of the cone
and the generating line
Parameterization:
(x, y, z) = v * tan(alpha) * [cos(u) * e1 +
sin(u) * e2] + v * e3 + origin
Torus
Torus
The generating curve of a torus is an arc of radius R2 with its center at a distance
R1 from the origin. The starting point of the generating arc is located at a distance
R1 + R2 from the origin, in the direction of the first vector of the local coordinate
system. The radial distance of a point on the torus is R1 + R2 * cos(v), and the
height of the point along the axis of revolution is R2 * sin(v) .
Data Format:
e1[3] Unit vector, in the u direction
e2[3] Unit vector, in the v direction
Tabulated Cylinder
Tabulated Cylinder
Coons Patch
Coons Patch
A Coons patch is used to blend surfaces together. For example, you would use a
Coons patch at a corner where three fillets (each of a different radius) meet.
Data Format:
le_curve u = 0 boundary
ri_curve u = 1 boundary
dn_curve v = 0 boundary
up_curve v = 1 boundary
point_matrix[2][2] Corner points
uvder_matrix[2][2] Corner mixed derivatives
Spline Surface
Spline Surface
The parametric spline surface is a nonuniform bicubic spline surface that passes
through a grid with tangent vectors given at each point. The grid is curvilinear in
uv space. Use this for bicubic blending between corner points.
Data Format:
u_par_arr[] Point parameters, in the u
NURBS Surface
The NURBS (nonuniform rational B-spline) surface is defined by basis functions
(in u and v), expandable arrays of knots, weights, and control points.
NURBS Surface
Data Format:
deg[2] Degree of the basis
functions (in u and v)
u_par_arr[] Array of knots on the
parameter line u
v_par_arr[] Array of knots on the
parameter line v
wghts[] Array of weights for
rational NURBS, otherwise
NULL
c_point_arr[][3] Array of control points
Definition:
Data Format:
e1[3] x' vector of the local coordinate system
e2[3] y' vector of the local coordinate system
e3[3] z' vector of the local coordinate system,
which corresponds to the axis of revolution
of the surface
origin[3] Origin of the local coordinate system
splsrf Spline surface data structure
The spline surface data structure contains the following fields:
u_par_arr[] Point parameters, in the
u direction, of size Nu
v_par_arr[] Point parameters, in the
v direction, of size Nv
Foreign Surface
The foreign surface consists of two perpendicular unit vectors (e1 and e2), the
normal to the plane(e3), the origin of the plane and the foreign ID returned by
the function user_init_surf().
Data Format:
e1[3] Unit vector, in the u direction
e2[3] Unit vector, in the v direction
e3[3] Normal to the plane
origin[3] Origin of the plane
foreign_id Foreign ID returned by user_init_surf()
Parameterization is established by the Foreign Surface callback function user_
eval_surf().
Arc
The arc entity is defined by a plane in which the arc lies. The arc is centered at the
origin, and is parameterized by the angle of rotation from the first plane unit
vector in the direction of the second plane vector. The start and end angle
parameters of the arc and the radius are also given. The direction of the arc is
counterclockwise if the start angle is less than the end angle, otherwise it is
clockwise.
Data Format:
vector1[3] First vector that defines the
plane of the arc
vector2[3] Second vector that defines the
plane of the arc
origin[3] Origin that defines the plane
of the arc
start_angle Angular parameter of the starting
point
end_angle Angular parameter of the ending
point
radius Radius of the arc.
Parameterization:
t' (the unnormalized parameter) is
(1 - t) * start_angle + t * end_angle
(x, y, z) = radius * [cos(t') * vector1 +
sin(t') * vector2] + origin
Line
Data Format:
end1[3] Starting point of the line
end2[3] Ending point of the line
NURBS
The NURBS (nonuniform rational B-spline) curve is defined by expandable arrays
of knots, weights, and control points.
Data Format:
degree Degree of the basis function
params[] Array of knots
weights[] Array of weights for rational
NURBS, otherwise NULL.
c_pnts[][3] Array of control points
Definition:
Spline
The spline curve entity is a nonuniform cubic spline, defined by a series of three-
dimensional points, tangent vectors at each point, and an array of unnormalized
spline parameters at each point.
Ellipse
Ellipses in 3D geometry is split into two identical half-ellipses. The ellipse is
defined by its major and minor axis radius values. Similar to arcs, elliptic
segments are defined by a plane in which the ellipse lies, centered at the origin,
and parameterized by the angle of rotation. The direction of the ellipse is
counterclockwise if the start angle is less than the end angle, otherwise it is
clockwise.
Data Format:
center - Center point of the ellipse
major_axis_unit_vect - Direction for the X-axis of the ellipse
norm_axis_unit_vect - Direction for the Y-axis
major_len - The “radius” in the X-direction
minor_leng – The “radius” in the Y-direction
start_ang – The ellipse start angle
end_ang – The end angle for the ellipse
The y-axis can be found as a vector product of norm_axis_unit_vect on the
major_axis_unit_vect. In actual examples, the major_len can be less
than the minor_len.
Parameterization:
t' (the unnormalized parameter) is
Debugging Techniques
Depending on the type and implementation for your application, you can use one
of the following debugging techniques:
• If your application is a DLL that creates user interface and notification
callbacks to be used by the interactive user, refer to the following section on
Debugging an Interactive DLL.
• If your application is a DLL that runs in batch mode (from user_
initialize()), refer to Debugging an Interactive DLL on page 2165.
• If your application is a spawn or asynchronous application, refer to Debugging
a Multiprocess Application on page 2167.
Glossary 2169
Term Definition
model and used to drive dimensional relations. Parameters consist of a name,
type, and a value that can be an integer, double, or string. Parameters are
accessible through the Creo Parametric user interface, as opposed to attributes
that are private to Creo Parametric TOOLKIT .
parent An item that has other items dependent upon it for their existence. For
example, the base feature has all other features dependent upon it. If a parent
is deleted, all dependent (children) items are deleted.
pipeline A set of interconnecting pipes and fitments consisting of an extension which
terminates at open ends, non-open ends, or junctions (branches).
pipeline branch Pipes grouped into extensions such that the extension which continues across
the branch has a continuous direction of flow.
pipeline extension A non-branching sequence of pipeline items.
pipeline feature A feature which names the pipeline to show its grouping but contains no
geometry.
pipeline fitting A component that connects two pipe segments, for example, a corner or a
valve.
pipeline junction An assembly component or a datum point that represents a part which joins
three or more pipe segments.
pipeline member A extension terminator, series, or junction.
pipeline network A data structure which contains references to pipeline objects and are
structured to show their connectivity and sequence in relation to the flow.
pipeline object A segment, a fitting, or a stubin.
pipeline segment A section of pipe, either straight or arced.
pipeline series A non-branching sequence of pipeline objects.
pipeline stubin A datum point which joints three or more series.
pipeline terminator The open or non-open ends of the pipeline.
scene graph A tree structure which consists of nodes. This term used in reference to the
graphics data.
set mode In this mode, any graphics draw command sets the appropriate pixels to the
color being drawn.
submenu A menu that acts as an extension to the menu above it. A submenu has no title
and is active at the same time as the menu above it. Selecting from the menu
above it does not close the submenu.
surface A continuous two-dimensional subset of three-dimensional space.
synchronous mode The normal mode of operation that makes it appear that Creo Parametric
TOOLKIT is part of the Creo Parametric process.
tessellation The process of subdividing an edge into multiple smaller edges.
transformation A change from one coordinate system to another. A transformation between
two coordinate systems is represented by a 4x4 matrix.
triangle strip A strip of triangles that are connected to each other. The term is used in
reference to the graphics data.
user attributes The attributes added by a user to add description to the object beyond the
geometric definition. For example, stock number, price, and cost per unit are
all user attributes.
vector A straight line segment that has both magnitude and direction.
version stamp Provides a way of keeping track of changes in a Creo Parametric model to
which your Creo Parametric TOOLKIT application may need to respond.
view In Part mode, a view is the orientation of the object. In Drawing mode, a view
Glossary 2171
Index
Index 2173
full, 282-283 creating, 1056
non-interactive, 283 remove, 1056
Attach definition, 2168
features, 1112 Multibody, 2092
Attach Geometry solid body, 127-128, 162
features, 1082 Body Reference
Attachment body, 162
points and leaders, 1290 Bushing Load
Attributes features, 1116
text, 492 Button
user placing, 315
definition, 2168 Buttons
Auto Round Feature, 916 accessibility, 333
Automatic dimensioning, 995 adding, 323
Automatic filling position, 495
body, 162 setting, 333
Automatic interchange, 1145
Auxiliary tools
C
parameters, 1444
Axes Cabling
datums cable geometry, 1827
visiting, 177 cable identifiers, 1824
geometry of, 191 cable types, 1824
connectivity, 1826
harness clearance, 1827
B routing locations, 1826
Backup routing procedure, 1828
model, 78 Callbacks
Base window external Analysis, 2040
identifier, 476 external analysis feature, 2040
Batch animation, 538 for external objects, 2033
code example, 540 Child
Batch mode definition, 2168
example, 52 Circles
Batch sessions, 52 code example, 491
Bind Classes
evaluation functions, 2051 external objects, 2022
Bodies notification, 2011
creating, 1056 Classification of messages
Body critical, 288
body, 127-128, 162 error, 288
copy info, 288
Index 2175
Conventional milling cross sections, 247
required parameters, 1455 datum planes
Conversion code example, 779
OHandles to DHandles, 57 display lists, 493
paths, 2120 drawing views, 1243
techniques, 2117 external object classes, 2022
Convert external object entities, 2025
ProExt to ProModelitem, 2023 external object references, 2032
toolkit applications, 2116 external objects, 2022
Convert annotation to latest version, code example, 2034
558 family table instances, 232
Coons patch, 2154 features, 764
Coordinate System Transformations, file paths, 263
225 fixtures, 1451
Coordinate systems, 223 layers, 84
datum, 225 local groups, 145
visiting, 177 manufacturing features, 1451
definition, 2168 manufacturing objects, 1444
drawing, 224 manufacturing operations, 1454
drawing view, 224 material, 119
in assemblies, 224 material removal volumes, 1458
screen, 223 menus, 325
section, 225 NC sequences, 1455
solid, 223 operations
window, 224 elements, 1454
Copy patterns, 985
model, 78 element tree, 964
Copying process steps, 1786
sections, 990 relation sets, 205
Cosmetic properties, 495 section models, 988
Cosmetic Thread simplified representations, 1192
features, 1120 solid body
Create element tree, 1056
2-D sections, 988 solid objects, 93
code example, 1003 submenus, 331
animation movies, 539 sweeps, 1042
animation objects, 537 Task Libraries, 2055
batch animation tool tables, 1452
example, 540 Toolkit DLL
body, 127-128 Task Libraries, 2055
compound menus, 329 tools, 1444
conventional milling sequence, 1459 elements, 1444
Index 2177
Mass definition, 2168
Properties, 1923 evaluating, 185
Mass Items, 1920 foreign datum, 2049
Material Assignment, 1924 Customized plot driver, 745
Material Orientations, 1925 Cut out, 1145
Matrix Functions, 1894 Cylinders, 2150
Mesh Control, 1950 spline surfaces, 2158
Shell Pairs, 1938 tabulated, 2153
Shell Properties, 1931
Shells, 1929
D
Spring Items, 1915
Spring Property Items, 1917 Data
Vector Functions, 1895 external object, 2024
Welds, 1963 material, 119
Y-directions, 1861 types, 2120
Creo Simulate Features, 1967 Data menus, 332
Creo Simulate Items Data types
Accessing, 1856 Pro/DEVELOP versus Creo
Selection, 1855 Parametric TOOLKIT, 2120
Creo Simulate Objects Database
Validation, 1967 search, 1461
creotk.dat file, 33 Database items
Cross section components conversion paths, 2120
line patterns, 254 Datum
Cross sections axes
creating and modifying, 247 visiting, 177
deleting, 247 coordinate systems
geometry of, 242 visiting, 177
listing, 242 curves
mass properties of, 254 geometry, 193
visiting, 247 parametric equations, 188
Current visiting, 179
directory, 263 planes
drawing sheet, 1232 creating, 779
ProMaterialCurrentGet(), 119 geometry, 191
ProMaterialCurrentSet(), 119 visiting, 178
window, 479 points
Curves geometry, 193
data structures, 2160 visiting, 181
datum surfaces
parametric equations, 188 geometry, 193
visiting, 179 visiting, 178
Datum axis
Index 2179
external reference data gathering Directories
functions, 1154 changing, 263
external reference functions, 1151 Display
external references, 1149 display lists, 493
Overview, 1147 files, 263
part interdependencies, 1149 graphics, 490
product structure, 1148 highlighting, 511
skeleton model functions, 1150 messages, 285
skeleton models, 1148 objects, 486
Designate solid objects, 95
parameters, 218 text, 491
Designating Display data
command, 312 allocating, 2025
commands, 310 color, 2028
Designating commands, 310 for external objects, 2025
Detail items, 1255 line styles, 2028
attachment points, 1290 properties, 2027
leaders, 1290 scale, 2028
Detail Tree, 553 Display lists, 493
DHandles definition, 2168
description, 57 Display modes, 565
Diameter Displayed entities
code example, 189 visiting, 90
Dimension Distance
clean up, 579 gathering by, 1197
entity location, 585 minimum, 186
references, 577 DLL mode
text, 583 registry file for, 38
tolerances, 579 Documentation
Dimension-driven patterns, 968 see APIWizard, 23
Dimensions, 566 Domain of evaluation, 2148
adding to a 2-D section, 998 Draft
designating, 565 entities, 1255
driven definition, 2168
accessing, 590 group
extracting location, 584 definition, 2168
feature, 143 groups, 1255
modifying, 571 Draft Feature
reference creation, 892, 899
accessing, 590 inquiring, 893, 899
section, 998 Draw
visiting, 566 graphics, 490
Index 2181
of faces, edges, and curves, 185 creating a tool from a solid model,
of geometry, 184 1448
of relations, 205 creating an external object, 2034
Example creating an extruded feature, 1024
creating a datum axis, 832 creating an operation, 1455
creating a datum coordinate system, creating drawing views, 1243
843 defining a new menu that closes
creating a datum plane, 808 itself, 326
creating a field datum point, 819 defining a new menu that the user
creating a sketched datum point, 818 must close, 327
creating an offset csys datum point, designating a command, 315
820 display objects, 502
creating general datum point, 824 displaying a solid, 95
offset coordinate system datum, displaying lines and circles, 491
2043 displaying messages, 290
EXample drawing a rubber-band line, 495
weld callback notification, 1850 extracting the diameter of an arc
Examples edge, 189
3D shaded data for rendering, 502 finding the handle to a model, 72
adding help text, 323 finding the position of a component,
adding items to a layer, 89 1138
adding surfaces to an element, 1457 finding the surface penetrated by a
asking for confirmation on Quit hole, 176
Window, 331 getting the angle of a conical
batch mode, 52 surface, 191
calculating the mass properties of a identifying workcell features of a
cross section, 254 NC model, 1443
computing the outline of a solid, interference checking for assemblies
106, 118 and parts, 198
creating a 2-axis lathe workcell, labeling a feature with a string
1454 parameter, 218
creating a batch animation, 540 listing the holes in a model, 62
creating a conventional milling listing the members of an assembly,
sequences, 1459 1137
creating a datum plane, 779 listing views, 1240
creating a menu that selects a value, loading and displaying a solid, 95
329 menu file, 323
creating a parameter tree, 1449 modifying colors, 488
creating a parameter-driven tool, renaming a selected surface, 83
1448 retrieving keyboard input, 290
creating a section, 1003 saving views, 486
creating a sweep, 1051
Index 2183
F 3 axis trajectory step, 1490
3D transformation set, 1074
Face milling
attach, 1112
required parameters, 1455
Attach
Faces
access, 883
definition, 2168
create, 882
evaluating, 185
redefine, 883
traversal, 2143
attach geometry, 1082
Family tables
Auto Round, 916
editing, 231
bushing load, 1116
instances
chamfer, 916
creating, 232
access, 924
erasing, 232
create, 923
generic, 232
feature element tree, 916
locks, 232
redefine, 923
operations, 232
converting from Pro/DEVELOP to
retrieving, 232
items Creo Parametric TOOLKIT, 2120
from model items, 234 corner chamfer, 929
from parameters, 234 access, 930
operations on, 234 create, 930
feature element tree, 929
objects, 231
redefine, 930
showing, 231
cosmetic thread, 1120
utilities, 231
creating, 764
visiting, 231
assembly components by, 1166
writing to a file, 234
code example, 779
Feature
datums, 779
extruded
steps, 765
creating, 1024
datum coordinate system, 838
Feature element tree
datum plane, 805
datum axis, 830
datum point, 816
datum coordinate system, 838
deleting, 138, 1138
datum plane, 805
dimensions, 143
datum point, 816
draft
field datum point, 818
access, 893, 899
general datum point, 820
create, 892, 899
merge, 862
offset csys datum point, 819 feature element tree, 887
sketched datum point, 817 introduction, 887
Feature Element Tree for the Sheet redefine, 893, 899
metal Flat Wall Feature in Creo ECAD Area, 1126
feature element tree, 1126
Parametric, 1318
ProEcadArea.h, 1126
Features
Index 2185
access, 872 Flexible modeling
create, 872 tangency propagation, 1099
feature element tree, 871 Fluid
redefine, 872 material properties, 119
trim, 865 Flushing
access, 870 display command to window, 482
create, 869 Fonts, 492
feature element tree, 865 Foreign datum curves, 2049
redefine, 870 continuity, 2051
tweak surface replacement, 884 evaluation function for
types, 132 binding, 2051
user-defined, 146 evaluation functions for, 2049
visiting, 132 Foreign programs
workcell running, 2101
identifying, 1443 multiple, 2101
wrap, 864 Free
FEM external object data, 2030
exporting an FEA mesh, 1988 external object references, 2032
overview of functionality, 1988 text style structure, 601
Files version stamp, 83
connector parameters, 1819 Full asynchronous mode, 282
displaying, 263 Functions
editing, 263 action, 62
include, 47 comparing toolkits, 2118
management error statuses, 27
operations, 78 filter, 62
material, 125 list of equivalent, 2128
maximum length, 321 prototyping, 26
menu, 321 using expandable arrays, 59
message, 286 visit, 62
naming restrictions, 286
opening, 263
G
parsing, 263
trail, 263 Gather
writing a family table to, 234 by distance, 1197
Fillet surfaces, 2155 by model name, 1196
Filter functions by parameters, 1197
for visits, 62 by rule, 1196
Finishing step by simplified representation, 1198
features, 1480 by size, 1197
Fixtures by zone, 1197
creating, 1451 General process steps, 1788
Index 2187
code example, 62 Creo Parametric TOOLKIT, 27
See Creo Parametric TOOLKIT
Installing, 27
I
Installation
Identifiers See Creo Parametric TOOLKIT
cable, 1824 Installing, 27
external object, 2023 Installing, sample applications, 2107
postfix, 117 Instances
recycling, 2023 identifying symbol groups, 1287
Identifying Integer
symbol groups free array, 268
definition, 1287 Interactive selection, 507
instance, 1287 Interchange domain, 1145
Identity matrix Interface
used with external objects, 2026 tools, 745
Import Interference, 198
2D Models, 708 Internal buffer
3D Models, 709 writing a message to, 289
Parameter Files, 706 intersect
Include files, 47 boolean body operations, 1062
Incomplete features Intersect
description, 132 body, 127
Information window Inverse evaluation, 186
definition, 2168 ISO/DIN Tolerance, use, 582
display function, 263
Initialize
assembly component paths, 1133 J
family tables, 231 JT format
process step features, 1785 exporting LODs, 691
single animation, 538
tool, 1444
K
Input
default values, 290 Keyboard
keyboard, 290 input, 342
mouse, 495 default values, 290
Inquiry getting, 290
features, 132 macros
Inseparable Assemblies execution rules, 340
embedded components, 1140
extract components, 1140 L
Insert mode, 138
Install Launch
Index 2189
NC sequences, 1455 Menus
objects buttons
creating, 1444 accessibility, 333
operations adding, 323
creating, 1454 locations, 331
parameters, 1448 setting, 333
roles, 1442 compound
storage solids creating, 329
identifying, 1442 creating
tools exit actions, 325
creating, 1444 for selecting a single value, 328
types, 1443 preempting existing commands,
visiting, 1443 330
workcells data menus, 332
creating, 1452 definition, 2168
Mass properties, 115 exit actions, 325
definition, 2168 files
example, 254 definition, 2168
of cross sections, 254 names and contents, 321
Materials purpose, 321
data sample, 323
accessing, 119 submenus, 331
files, 125 syntax, 322
properties, 118 toolkit, 2120
removal volumes main
creating, 1458 definition, 2168
Matrix manipulating, 331
definition, 2168 accessibility of buttons, 333
pan and zoom, 483 data menus, 332
window, 483 setting buttons, 333
Maximum length new
of files, 321 creating, 325
Measurement, 195 defining, 326
Memory using, 327
Management pushing and popping, 334
Task Library Functions, 2055 run-time, 334
maximum allocated by submenus, 331
ProArrayAlloc, 59 definition, 2168
Menu merge
buttons, 302 boolean body operations, 1062
pushbutton Merge, 1145
adding, 303 body, 127
Index 2191
N ProSelection
defined, 504
Names
selecting, 504
simplified representations, 1192
Offset Geometry
Naming conventions, 25
features, 1094
Native Encoding
OHandles
definition, 2078
converting to DHandles, 57
NC sequences
description, 56
creating, 1455
ProView, 1236
No Geometry
Opaque pointers, 56
states of bodies, 128
Operations
Notebook, 89
creating, 1454
Notes, 597
example, 1455
detail items, 1255
Options
Properties, 598
configuration file
text styles, 601
getting and setting, 262
visiting, 601
Notify Orientation
classes, 2011 model, 483
definition, 2168 Outlines
NURBS, 198 code example, 106, 118
of solids, 106
representation, 2161
Overlay views
surface, 2157
definition, 2168
Owners
O external object, 2022
Object window, 481
ProDtlitem, 1255
Object handle P
ProDtlentity, 1255
Pan and zoom matrix, 483
Object handles
Parameters
ProDtlentity, 1255
accessing, 212
ProDtlgroup, 1255
code example, 218
ProDtlnote, 1255
connector, 1818
ProDtlsymdef, 1255
conventional milling
ProDtlsyminst, 1255
required, 1455
Object, ProDimension, 566
creating a parameter tree, 1449
Objects
definition, 2168
definition, 2168
displaying, 486 external objects, 2023
external, 2021 for auxiliary tools, 1444
handles, 56 for contouring tools, 1444
for face milling, 1455
naming conventions, 25
Index 2193
PRO_E_CURVE_CONTINUITY used in a code example, 540
element, 2051 ProAnimmovieCreate() function
PRO_FEAT_ASSEM_CUT, 1131 used in a code example, 540
PRO_FEAT_COMPONENT, 1131 ProAnimmovieFrameAdd() function
pro_get_selection() function used in a code example, 540
guidelines, 2120 ProAnimobjectCreate() function
pro_select() function used in a code example, 540
guidelines, 2120 ProAppData data type
options, 2120 declaration, 62
pro_set_and_get_selection() function ProArgument
guidelines, 2120 Argument Management, 2054
pro_show_select() function description, 2054
guidelines, 2120 ProArrayAlloc
Pro/DEVELOP maximum allocated memory, 59
conversion paths, 2120 ProArrayAlloc() function
converting from, 2116 used with material data, 119
converting to Creo Parametric ProAsmcomp object
TOOLKIT, 2116 description, 1131
enumerated types, 2120 ProAsmcomppath structure
functions declaration, 1131
compared to Creo Parametric ProAsmcomppathTrfGet() function
TOOLKIT, 2118 assembly components, 1137
list of equivalent functions, 2128 ProAsmcomppathTrfSet() function,
relationship with Creo Parametric 1137
TOOLKIT, 2116 ProAsmcompTypeGet() function
Pro/MESH used with manufacturing
functionality, 1988 components, 1442
ProAnalysisAttrIsSet() function ProAssembly object
defined, 2045 description, 1131
ProAnalysisAttrSet() function ProAssemblyDynPosGet() function,
defined, 2045 1137
ProAnalysisInfoGet function ProAssemblyDynPosSet() function,
defined, 2043 1137
ProAnalysisInfoSet function ProAxis object
defined, 2043 declaration, 56
ProAnalysisNameGet function ProAxisInit() function, 177
defined, 2046 ProBatchAnimationStart() function
ProAnalysisTypeRegister function used in a code example, 540
defined, 2040 ProBodyCopy
ProAnimframeCreate() function description, 1056
used in a code example, 540 ProBodyOpts
ProAnimframeObjAdd() function description, 1056
Index 2195
ProExtobjDispprops object ProForeignCurveEvalFunction()
description, 2027 typedef
ProFaminstance object description, 2049
description, 231 ProGeomitem
ProFaminstanceValueGet() function declaration, 57
used in a code example, 234 description, 80
ProFamtable object hierarchy, 171
description, 231 list of types, 171
ProFamtableCheck() function ProGeomitemdata structure
used in a code example, 234 declaration, 187
ProFamtableInit() function ProGeomitemFeatureGet() function
used in a code example, 234 used with selection, 2120
ProFamtableInstanceVisit() function ProGeomitemIsInactive() function
used in a code example, 234 used with axis datums, 177
ProFamtableItem object used with coordinate system datums,
description, 231 177
ProFamtableItemVisit() function used with datum curves, 179
used in a code example, 234 used with datum planes, 178
ProFeature object used with datum points, 181
description, 132 used with quilts, 178
ProFeatureCreate() function ProGraphicsCircleDraw() function
calling, 779 used in a code example, 491
used to assemble components, 1166 ProGraphicsColorSet() function
ProFeatureCreateOptions enum used in a code example, 491
description, 779 ProGraphicsLineDraw() function
ProFeatureElemtreeExtract() function used in a code example, 491
with NC sequences, 1455 ProGraphicsModeSet() function, 489
ProFeatureGeomitemVisit() function used in a code example, 495
to create an operation, 1454 ProGraphicsPenPosition() function
to create NC sequences, 1455 used in a code example, 491
used with axis datums, 177 ProGraphicsPolygonDraw() function,
used with composite datum curves, 490
180 ProGtolDelete function
used with coordinate system datums, description, 630
177 ProGtolElbowlengthGet() function
used with datum curves, 179 description, 630
used with datum planes, 178 ProGtolLineEnvelopeGet() function
used with datum points, 181 description, 630
ProFeatureStatusGet() function ProGtolPrefixGet() function
possible status values, 132 description, 633
ProFeatureTypeGet() function ProGtolPrefixSet() function
used with assemblies, 1133 description, 633
Index 2197
ProMousePickGet() function ProProcstep structure
used in a code example, 491 declaration, 1784
ProMouseTrack() function ProQuiltSurfaceVisit() function
used in a code example, 495 for geometry, 192
ProOutputFileMdlnameWrite() ProRelset object
function description, 205
for cable parameters, 1821 ProRemoveBody
for cabling, 665, 1818 description, 1056
used with cabling, 1818 ProRuleEval() function
ProParameter object description, 1196
description, 211 ProSecdimDelete() function, 998
ProParameter structure ProSecdimDiamClear
declaration, 211 function definition, 998
ProParameterSelect() function ProSecdimDiamInquire
used with family table items, 212, function definition, 998
234 ProSecdimDiamSet
ProParamfrom enum function definition, 998
declaration, 211 ProSecerrorCount() function
ProParamowner structure used in a code example, 1001
declaration, 211 ProSecerrorFree() function
ProParamvalue structure used in a code example, 1001
declaration, 211 ProSecerrorMsgGet() function
ProParamvalueType structure used in a code example, 1001
declaration, 211 ProSection2DAlloc() function
ProParamvalueValue structure used in a code example, 989
declaration, 211 ProSectionEntityAdd() function
ProPattern object used in a code example, 995
description, 964 ProSectionEntityDelete() function, 995
ProPatternClass object ProSectionNameGet() function, 989
description, 964 ProSectionNameSet() function
Properties used in a code example, 989
Loads and Constraints, 1866 ProSelbox object
material, 118 description, 2029
of external object display, 2027 ProSelect() function
ProSolidBodyMassPropertyGet(), arguments, 507
115 guidelines, 2120
surface, 496 ProSelection, 504
text style, 601 compared to Select3d, 2120
ProPoint object object, 504
declaration, 56 ProSelectionAsmcomppathGet()
ProPoint3d typedef function, 504
declaration, 225 ProSelectionHighlight() function
Index 2199
ProValueDataType enum R
declaration, 770
Rays, 194
ProVector typedef
Read access
declaration, 225
to weld features, 800, 1849
Providing
Read status, 132
icon, 311
reading geometric tolerance, 619
ProView
Recycle
drawing views and models, 1236
object identifiers, 2023
ProViewMatrixGet() function
Redefine
fundamental, 484
features, 138
ProViewMatrixSet() function
Reference-driven patterns, 968
used in a code example, 486
References
ProViewReset() function, 483
external
ProViewRotate() function, 483
defined, 1149
ProViewStore() function
external object, 2031
used in a code example, 486
Refresh
ProWExtobjdata object window, 478
description, 2024 Regenerate
ProWExtobjRef object 2-D sections, 992
description, 2032 assembly components, 1160
ProWindowCurrentSet() function
relation sets, 205
displaying graphics, 490
solid objects, 96
ProWindowRefresh() function
Register
and display lists, 493
applications, 38
used in a code example, 488
external object classes, 2022
ProWindowRepaint() function
Registry files, 33
to see an external object, 2025
examples, 2101
ProWstringToString() function
fields of, 2100
ensuring portability, 66
functions, 262
Pushbutton
toolkit, 2119
adding to menus, 303
Relations, 205
Pushing and popping menus, 334
Remove
animation frames from a movie, 539
Q animation objects from frames, 537
body, 127
Query
external object data, 2030
features, 132
external object references, 2032
Quick drawing instructions, 672
family table items, 234
Quilts
highlighting, 511
geometry, 192
windows, 480
visiting, 178
Rename
models, 78
Index 2201
compared to ProSelection, 2120 create, 1006
mapping sel_type, 2120 create with 2D sections, 1007
Selection, 504 creating features with 3D sections,
boxes 1009
size of, 2029 element tree, 1005
data overview, 1005
for external objects, 2029 reference entities and use edge, 1009
explode states, 1142 reusing existing sketches, 1011
family table instances, 232 Slant angle
feature, 132 text, 492
interactive, 507 Slots, 236
MechanicaItems, 1855 Solids
Session accuracy, 107
simplified representations, 1186 contents of, 93
Set mode coordinate system, 223
definition, 2168 creating, 93
setting geometric tolerance, 623 displaying, 95
Sheet metal geometry
flat wall feature visiting, 175
feature element tree, 1318 mass properties, 115
planar wall feature orientation, 483
introduction, 1317 outline, 106
Sheets ProSolidBodyDensityGet(), 115
drawing, 1232 ProSolidBodyMassPropertyGet(),
Simplified representations 115
adding items, 1195 regenerating, 96
creating, 1192 transforming coordinates, 226-227
deleting, 1192 units, 108
items, 1195 accessing individual units, 111
extracting information from, 1192 accessing systems of units, 110
modifying, 1194 conversion of models to a new
retrieving unit system, 114
geometry, 1189 creating a new system of units,
rules, 1196 111
session, 1186 creation of a new unit, 114
zones, 1197 modifying systems of units, 110
Single animation, 538 modifying units, 113
Single-valued element, 765 retrieving systems of units, 109
Size Solve
gathering by, 1197 sections, 992
Skeleton Model Functions, 1150 Sources
Sketched features light, 499
Index 2203
Memory Management, 2055 table
Tessellation, 181 creating, 1452
definition, 2168 turning
surface, 496 parameters for, 1444
Text types, 1443
attributes, 492 visiting, 1443
displaying, 491 Torus, 2151
fonts, 492 Trail files, 263
message files, 286 Transformations
message window coordinates of an assembly member,
identifier, 476 228
note, 598 coordinates of sketched entities, 229
style properties, 601 definition, 2168
styles drawing view to screen coordinates,
of notes, 601 227
validating, 493 external object, 2026
The Feature Element Tree for Fill screen to drawing coordinates, 227
feature in Creo Parametric, 859 screen to window coordinates, 227
The Feature Element Tree for Mirror solid to screen coordinates, 226
feature in Creo Parametric, 854 in a drawing, 227
The Feature Element Tree for Move to coordinate system datum
feature in Creo Parametric, 857 coordinates, 228
The Feature Element Tree for Solidify Traversal
feature in Creo Parametric, 873 assembly, 1133
The Feature Element Tree for Thicken geometry, 2142
feature in Creo Parametric, 871 manufacturing components, 1442
The Feature Element Tree for Trim part, 172
feature in Creo Parametric, 865 Triangle strip
Toolkit DLL definition, 2168
Create, 2055 Turning tools
Functions, 2056 parameters, 1444
Task Libraries, 2055 Type of slot
TOOLKIT DLL Functions chapter, 236
Launch, 2056 stream, 236
Tools
auxiliary, 1444
U
contouring, 1444
creating, 1444 UDFs, 146
holemaking uiCmdPriority enum
parameters, 1444 declaration, 303
milling Unicode Ecoding
parameters for, 1444 acronym, 2078
Index 2205
geometry objects, 172 accessory, 479
layers, 84 activating, 482
manufacturing tools, 1443 closing, 480
notes, 601 creating, 480
process step features, 1785 current, 479
quilts, 178 definition, 2168
relation sets, 205 deleting, 480
simplified representations, 1192 flushing display commands, 482
solid geometry, 175 getting the owner, 481
windows, 481 identifiers, 476
Visiting information
cross sections, 247 definition, 2168
displayed entities, 90 manipulating, 477
matrix, 483
orientation, 483
W
pan and zoom matrix, 483
Warnings, 2034 repainting, 478
wchar_t, 65 visiting, 481
Weld Workcells
drawing symbols, 1850 creating, 1452
notification callbacks, 1850 example, 1454
symbol notification types, 1850 features
PRO_DRAWING_WELD_ code example, 1443
GROUPIDS_GET, 1850 Workspace handles
PRO_DRAWING_WELD_ description, 58
SYMPATH_GET, 1850 Write
PRO_DRAWING_WELD_ a message to the Message Window,
SYMTEXT_GET, 1850 285
Weld features family table to a file, 234
read access to, 800, 1849 message to an internal buffer, 289
WHandles
description, 58
Wide strings, 65 Z
checking your declaration, 66 Zones, 1197
definition, 2168
functions, 267
manipulating, 66
Width factor
text, 492
Window coordinate system, 224
Window matrix, 483
Windows