Pro/DEVELOP to Creo Toolkit Function Mapping
This section describes how to update legacy applications using Pro/DEVELOP functions with current Creo TOOLKIT functions.
From Creo Parametric 2.0 onward, the Pro/Develop functions are obsolete. The Pro/Develop header files and related support files will not be shipped with Creo Parametric in future. PTC recommends that you update applications that use Pro/Develop functions to use equivalent Creo TOOLKIT functions or Creo Object TOOLKIT C++ methods.
The Relationship Between Creo Toolkit and Pro/DEVELOP
Creo TOOLKIT replaces and contains Pro/DEVELOP, the customization toolkit until Release 17 of Pro/ENGINEER. Creo TOOLKIT uses an Object-Oriented style.
Creo Toolkit OHandles:
Creo TOOLKIT OHandles are equivalent to the type Prohandle used in Pro/DEVELOP. You can convert the handles between Creo TOOLKIT and Pro/DEVELOP simply by casting to the appropriate type. Creo TOOLKIT provides different OHandles for different object types where Pro/DEVELOP provided only a single generic handle; this provides for better type-checking during compilation. See Converting from Pro/DEVELOP for more details.
Converting from Pro/DEVELOP
You can convert functions from Pro/DEVELOP to Creo TOOLKIT, and also mix the two styles of functions.
Using Pro/DEVELOP Applications with Creo Toolkit
Creo TOOLKIT replaces Pro/DEVELOP and provides most of the functionality that existed in Pro/DEVELOP. Existing Pro/DEVELOP applications will not become obsolete however, for the following reasons:
•  Creo TOOLKIT inherits from Pro/DEVELOP the mechanisms by which the application C code is integrated into Creo Parametric. These mechanisms will continue to be used by Creo TOOLKIT for the indefinite future.
•  The complete library of Pro/DEVELOP functions is installed automatically along with the library of Creo TOOLKIT functions, and will be installed in this way from Release 2000i onwards.
Therefore, Pro/DEVELOP applications built using Release 17 will continue to work with Pro/ENGINEER Release 18 and later, without having to be recompiled and relinked. Using Creo TOOLKIT, you can recompile and relink Pro/DEVELOP applications developed using Release 17 without having to change the source code. These applications will continue to function as before.
However, you should plan to convert your applications to Creo TOOLKIT as soon as possible, even if you do not need to use any of the new functionality provided by Creo TOOLKIT. The conversion is desirable because Creo TOOLKIT provides more consistent and complete functionality, even in areas already well-covered by Pro/DEVELOP. In addition, PTC will give lower priority to requests for enhancements and maintenance to Pro/DEVELOP functions than to requests for equivalent Creo TOOLKIT functions, where they exist.
Thanks to the technology they share, you can use functions from both Creo TOOLKIT and Pro/DEVELOP within a single application. This means that:
•  You can convert a Pro/DEVELOP application to use Creo TOOLKIT functions gradually.
•  Pro/DEVELOP applications can use the new functionality provided by Creo TOOLKIT without the immediate need for a complete conversion.
A final reason for wanting to mix Pro/DEVELOP and Creo TOOLKIT functions is that not all of the Pro/DEVELOP functions have been replaced by equivalent Creo TOOLKIT functions.
Techniques of Conversion and Mixing
Besides a difference in the conventions they use, Pro/DEVELOP and Creo TOOLKIT reference items in the Creo Parametric database in different ways. The following sections describe the technical points to consider when you convert from Pro/DEVELOP to Creo TOOLKIT, or when you mix both types of functions in a single application.
Terminology
In general, the terminology used by Creo 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 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
General Functionality
To find the functions in Creo TOOLKIT that cover a particular area of functionality, scan the section in this user’s guide, or use the Topical option in the Creo TOOLKIT browser. Beware of any difference in terminology from Pro/DEVELOP identified in the previous section.
If you want to find the Creo TOOLKIT equivalent of a particular Pro/DEVELOP function, refer to the table Equivalent Pro/DEVELOP Functions. The table maps each Pro/DEVELOP function to the closest equivalent Creo TOOLKIT function (or functions).
In some functional areas, especially where Pro/DEVELOP provided good coverage, you can use the equivalent Creo TOOLKIT functions in an identical way, although the function names, return values, and sometimes the order of the arguments have been changed to conform to Creo TOOLKIT conventions.
For example, the following Pro/DEVELOP functions are almost exactly equivalent to the Creo TOOLKIT functions listed.
Pro/DEVELOP Function
Creo Toolkit Function
promenu_create()
ProMenuFileRegister()
promenu_expand()
ProMenuAuxfileRegister()
promenu_on_button()
ProMenubuttonActionSet()
Other functions require more care, however. For example, one of the conventions of Creo 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 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 Toolkit Equivalent
prodb_get_feature_ids()
ProSolidFeatVisit()
prodb_first_part_face(), prodb_next_part_face()
ProSolidBodySurfaceVisit()
It is possible to use the Creo TOOLKIT visit functions to create a utility that follows one of the Pro/DEVELOP styles. An example is shown in the section Expandable Arrays.
Some areas of Creo TOOLKIT functionality reveal a more general, and more consistent, view of the contents of the Creo Parametric database than that familiar to users of Pro/DEVELOP, and therefore require a slightly deeper understanding. For example, Creo TOOLKIT does not contain exact equivalents of the following Pro/DEVELOP functions for traversing the components of an assembly:
•  prodb_first_member()
•  prodb_next_member()
Assembly components (called “members” in Pro/DEVELOP) are represented as features in the Creo Parametric database, so these two functions can be replaced by a call to ProSolidFeatVisit(), using ProFeatureTypeGet() to identify the features of type PRO_FEAT_COMPONENT. The feature identifier for an assembly component is identical to the member identifier used in Pro/DEVELOP.
In the same way, the following Pro/DEVELOP functions that find datum planes and datum curves are also replaced by more generic functions in Creo TOOLKIT:
•  prodb_first_datum()
•  prodb_next_datum()
•  prodb_get_datum_curves()
Here, too, the first step is to traverse the features using ProSolidFeatVisit(). You can then traverse all the geometrical items in a feature using ProFeatureGeomitemVisit(). Datum planes are geometry items of type PRO_SURFACE, in features of type PRO_FEAT_DATUM; datum curves are geometry items of type PRO_CURVE, which can occur in features of many types.
This manual always explains the structure of the Creo Parametric database wherever necessary, without assuming any prior knowledge of the Pro/DEVELOP viewpoint. As shown in the previous examples, if you are converting a Pro/DEVELOP application that traverses Creo Parametric geometry, you should pay particular attention to the Core: 3D Geometry section.
You can use Creo TOOLKIT functions to create utilities for the specific cases you need. Many such utilities are provided in the sample code located under the Creo TOOLKIT loadpoint.
Finally, Creo TOOLKIT covers whole new areas of functionality that were not supported at all by Pro/DEVELOP, such as the direct programmatic creation of features, including simple kinds of sketched features, datum planes, and manufacturing features. Some Pro/DEVELOP applications, especially those that create features using user-defined features (UDFs), and which customize Manufacturing, may therefore benefit from a complete redesign to take full advantage of Creo TOOLKIT.
Registry Files
The Creo TOOLKIT registry file has the same format as the Pro/DEVELOP registry file. The search path used by Creo 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 configuration file option prodevdat is now either creotkdat, or protkdat, or toolkit_registry_file. To convert from Pro/DEVELOP to Creo TOOLKIT, simply substitute these names.
For an extended period, the search path for the Pro/DEVELOP registry file will continue to be used by Creo Parametric, in addition to the search path for Creo TOOLKIT. Therefore, you do not need to rename the Pro/DEVELOP registry file or configuration file option immediately.
Menu and Message Files
Although the Pro/DEVELOP functions for accessing menus and messages have been replaced by close equivalents in Creo TOOLKIT, the menu and message files themselves retain exactly the same form and function. No conversion is necessary.
Unlocking Your Application
The Creo TOOLKIT script for unlocking a finished application is named protk_unlock, but is otherwise identical to prodev_unlock.
Application Program Structure
All the Pro/DEVELOP run modes are available in identical form in Creo TOOLKIT, and the structure of a Creo TOOLKIT application is the same as that of a Pro/DEVELOP application. Some of the core functions have been given new Creo TOOLKIT-style names for the sake of consistency, but are otherwise the same. The functions user_initialize() and user_terminate() remain identical in name and purpose.
Handles and Data Types
Although Creo TOOLKIT is more rigorous than Pro/DEVELOP in the way it references objects in the Creo Parametric database, there are some close correspondences that simplify the task of mixing Pro/DEVELOP and Creo TOOLKIT functions.
As a general rule, database items referred to in Pro/DEVELOP by the type Prohandle, and referred to as OHandles (opaque handles) in Creo TOOLKIT, are pointers to the same Creo Parametric data structures. You can directly convert them by casting. The following table lists the most important examples.
Pro/DEVELOP Prohandle for the item type
Can be cast directly to the Creo Toolkit object
Object
ProMdl
Assembly
ProAssembly
Part
ProPart
Model (part or assembly)
ProSolid
Surface
ProSurface
Contour
ProContour
Edge
ProEdge
Curve
ProCurve
Datum quilt
ProQuilt
Point
ProPoint
Axis
ProAxis
Coordinate system
ProCsys
For database items that can be identified in Pro/DEVELOP by an integer identifier, that identifier is the same one generated by Creo TOOLKIT functions such as ProSurfaceIdGet() and ProEdgeIdGet(), and is the same one required as input to functions such as ProSurfaceInit(). It is also the value of the id field when one of these objects is represented as a ProGeomitem.
Converting a Pro/DEVELOP integer identifier to a Creo TOOLKIT OHandle can be done in two ways:
•  Convert to a Prohandle within Pro/DEVELOP using pro_element_info(), then cast the resulting pointer.
•  Use the identifier directly as the input to the appropriate Pro*Init() function.
The following diagrams show the possible conversion paths between Pro/DEVELOP and Creo TOOLKIT for database items.
The first diagram applies to objects of type Surface, Edge, Axis, Csys, Curve, Point, and Quilt. In each case, replace the asterisk (*) with the appropriate name.
Pro/DEVELOP Database Item Conversion Path
Image
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 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 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 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 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.
Feature Conversion
Image
The following objects are DHandles, which are identical in form to ProModelitem and were identified only by an integer identifier in Pro/DEVELOP. They also inherit from ProModelitem, which means that, for example, ProSelectionModelitemGet() can be used to unpack them from a ProSelection object after calling ProSelect(). In each case, the id field in the object handle corresponds to the integer id used to identify these objects in Pro/DEVELOP.
•  ProDimension
•  ProGtol
•  ProDtlnote
•  ProDtlentity
•  ProDtlsyminst
•  ProDtlsymdef
•  ProDtlgroup
•  ProDgmitem
•  ProNote
Note
The objects ProDtlnote and ProNote refer to detail (drawing) notes, and notes respectively. They share the same value of the type field - PRO_NOTE - but they are distinguished by the type of their owning model.
The following diagram applies to Creo TOOLKIT objects ProSolid, ProPart, and ProAssembly when you map to Pro/DEVELOP parts and assemblies. For objects of type ProMdl that are not parts or assemblies, the integer identifiers are not applicable, but the rest of the diagram is correct.
Pro/DEVELOP Part and Assembly Mapping
Image
Many explicit data types from Pro/DEVELOP have been carried across into Creo TOOLKIT directly, and, although they generally have been given new names, they are directly compatible. In fact, the remaining Pro/DEVELOP include files now reference the new definitions in the Creo TOOLKIT include files.
Enumerated types have also been given new names for their values, and in some cases where Pro/DEVELOP used #defined values of an integer, Creo TOOLKIT provides an enum. However, the integer mapping of the values is retained in every case. Some examples of Pro/DEVELOP data types now defined in Creo TOOLKIT are shown in the following table.
Pro/DEVELOP
Creo Toolkit
Ptc_surf
ProSurfacedata
Ptc_curve
ProCurvedata
Pro_linestyle
ProLinestyle
pro_mode
ProMode
Pro_text_attributes
ProTextAttribute
int
ProMousebutton
int
ProDrawMode
int
ProColortype
For some items that have representations in both Creo 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 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 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 TOOLKIT counterpart is ProSelection. The following table explains the mapping by showing the fields of Select3d alongside the Creo TOOLKIT functions that extract the equivalent information from ProSelection.
Select3d Field
Creo 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().
part_ptr
ProSelectionAsmcomppathGet(), and ProAsmcomppathMdlGet().
assembly_ptr
ProSelectionAsmcomppathGet(), then read comppath.owner.
memb_num
ProSelectionAsmcomppathGet(), then read comppath.table_num.
memb_id_tab
ProSelectionAsmcomppathGet(), then read comppath.comp_id_tab.
view_ptr
ProSelectionViewGet().
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 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 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 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 TOOLKIT for ProModelitem and ProGeomitem objects used in Creo 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
curve_end
SEL_CURVE_END
PRO_CRV_START or PRO_CRV_END
sldedge
SEL_3D_EDGE
PRO_EDGE
qltedge
SEL_3D_EDGE
PRO_EDGE
surface
SEL_3D_SRF
PRO_SURFACE
sldface
SEL_3D_SRF
PRO_SURFACE
qltface
SEL_3D_SRF
PRO_SURFACE
dtmqlt
SEL_3D_SRF_LIST
PRO_QUILT
part
SEL_3D_PART
PRO_PART
prt_or_asm
SEL_3D_PART
PRO_PART or PRO_ASSEMBLY
dimension
DTL_DIM
PRO_DIMENSION
ref_dim
DTL_REFDIM
PRO_REF_DIMENSION
gtol
DTL_GTOL
PRO_GTOL
dtl_symbol
DTL_SYMBOL
PRO_SYMBOL_INSTANCE
dwg_table
SEL_DWG_TABLE
PRO_DRAW_TABL
any_note
DTL_USER_NOTE
PRO_NOTE
note_3d
SEL_3D_NOTE
PRO_NOTE
dgm_obj
SEL_DGM_REF_OBJ
PRO_DIAGRAM_OBJECT
dgm_non_cable_wire
DTL_WIRE
PRO_DIAGRAM_WIRE
draft_ent
DTL_DRAFT_ENT
PRO_DRAFT_ENTITY
ext_obj
SEL_3D_EXT_OBJ
PRO_EXTOBJ
table_cell
SEL_TABLE_CELL
PRO_DRAW_TABLE_CELL
To minimize the need to convert between Select3d and ProSelection, follow these guidelines:
•  If you need a Select3d as an input to a Pro/DEVELOP function, and the element referred to is to be selected interactively, use one of the Pro/DEVELOP select functions listed below instead of ProSelect() until you can convert the whole application.
  pro_select()
  pro_get_selection()
  pro_set_and_get_selection()
•  If you need to use a Pro/DEVELOP function whose output is, or contains, a Select3d, try to process the output using Pro/DEVELOP functions instead of converting to a ProSelection object where possible. For example, use pro_show_select() instead of ProSelectionHighlight().
To help you maintain such mixtures, the online browser retains the description of the Pro/DEVELOP selection functions and Select3d that are, strictly speaking, superseded by Creo TOOLKIT.
However, PTC recommends that you retain your documentation for Pro/DEVELOP to use with Creo TOOLKIT.
Equivalent Pro/DEVELOP Functions
The following table lists the functions that have equivalents in Creo TOOLKIT. If the Pro/DEVELOP function is not included in this list, the function retains the Pro/DEVELOP style in Creo TOOLKIT. For ease of use, the Pro/DEVELOP functions are presented by functional group.
Pro/DEVELOP Function
Equivalent Creo Toolkit Function
Core Functions
Synchronous Mode
pro_term()
ProEngineerEnd()
Asynchronous Mode
prodev_start_proengineer()
ProEngineerStart()
prodev_set_interrupt_func()
Not supported in Creo TOOLKIT.It can be safely removed from applications which call it. For information on how to structure a full asynchronous mode application to accept Creo Parametric events, refer to the section Core: Asynchronous Mode.
prodev_handle_interrupt()
ProEventProcess()
prodev_set_proe_term_func()
ProTermFuncSet()
user_proe_term_func()
ProTerminationAction()
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
promenu_set_mode()
ProMenuModeSet()
promenu_set_data_mode()
ProMenuDatamodeSet()
Setting Menu Buttons
promenu_set_item()
ProMenubuttonHighlight()
promenu_reset_item()
ProMenubuttonUnhighlight()
Controlling Accessibility of Menu Buttons
promenu_make_item_accessible()
ProMenubuttonActivate()
promenu_make_item_
inaccessible()
ProMenubuttonDeactivate()
Pushing and Popping Menus
promenu_is_up()
ProMenuVisibilityGet()
promenu_push()
ProMenuPush()
promenu_pop()
ProMenuPop()
Run-Time Menus
pro_select_strings()
ProMenuStringsSelect()
Entering Creo Parametric Commands
proload_cmd_sequence()
ProMacroLoad()
promenu_push_command()
ProMenuCommandPush()
Message Window
Writing a Message
promsg_print()
ProMessageDisplay()
promsg_clear()
ProMessageClear()
Writing a Message to an Internal Buffer
promsg_sprint()
ProMessageToBuffer()
Getting Keyboard Input
promsg_getint()
ProMessageIntegerRead()
promsg_getdouble()
ProMessageDoubleRead()
promsg_getstring()
ProMessageStringRead()
promsg_getpasswd()
ProMessagePasswordRead()
Graphics and Object Display
Manipulating Windows
pro_clear_window()
ProWindowClear()
pro_view_repaint()
ProWindowRepaint()
pro_refresh_window()
ProWindowRefresh()
pro_get_current_window()
ProWindowCurrentGet()
pro_set_current_window()
ProWindowCurrentSet()
pro_open_object_window()
ProObjectwindowMdlnameCreate()
pro_close_object_window()
ProWindowDelete()
Model Orientation
pro_get_cur_window_matrix()
ProWindowCurrentMatrixGet()
pro_get_view_matrix()
ProViewMatrixGet()
pro_set_view_matrix()
ProViewMatrixSet()
pro_reset_view()
ProViewReset()
pro_rotate_view()
ProViewRotate()
pro_store_view()
ProViewStore()
pro_retrieve_view()
ProViewRetrieve()
pro_get_view_names()
ProViewNamesGet()
Displaying Creo Parametric Objects
progr_display_object()
ProSolidDisplay()(for parts and assemblies)
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()
pro_delete_3d_disp_list()
ProDisplist3dDelete()
Layers
prolayer_get_names()
ProMdlLayerNamesGet()
prolayer_add_item()
ProLayerItemAdd()
prolayer_remove_item()
ProLayerItemRemove()
prolayer_display()
ProLayerDisplaystatusSet()
prolayer_get_display()
ProLayerDisplaystatusGet()
prolayer_create_layer()
ProLayerCreate()
prolayer_delete_layer()
ProLayerDelete()
prolayer_get_items()
ProLayerItemsGet()
Database Support
Session Objects
pro_get_current_object()
ProMdlCurrentGet()
pro_get_current_mode()
ProModeCurrentGet()
prodb_find_declared_objects()
ProMdlDeclaredDataList()
prodb_find_nobject_depend()
ProMdlDependenciesDataList()
prodb_get_object_info()
ProMdlNameGet()
ProMdlMdlnameGet()
ProMdlOriginGet()
ProMdlExtensionGet()
ProMdlDirectoryPathGet()
prodb_get_object_ptr()
ProMdlInit()
ProMdlnameInit()
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()
ProAssemblySimprepMdlnameRetrieve()
Selecting Objects
pro_select()
ProSelect()
pro_get_selection()
ProSelect()
pro_set_and_get_selection()
ProSelect()
Tracing a Ray Through a Model
pro_ray_x_model()
ProSolidRayIntersectionCompute()
Element Information
pro_element_info()
PRO_IDENTIFY:Pro*IdGet(), Pro*Init()PRO_BELONG_TO: ProGeomitemFeatureGet()
Regenerating Models
pro_regenerate()
ProSolidRegenerate()
pro_regenerate_object()
ProSolidRegenerate()
Part Accuracy
prodb_get_model_accuracy()
ProSolidAccuracyGet()
prodb_set_model_accuracy()
ProSolidAccuracySet()
Mass Properties
prodb_mass_prop()
ProSolidMassPropertyGet()
Utilities
pro_str_to_wstr()
ProStringToWstring()
pro_wstr_to_str()
ProWstringToString()
pro_wchar_t_check()
ProWcharSizeVerify()
pro_show_file()
ProInfoWindowDisplay()
pro_show_info_window()
ProInfoWindowDisplay()
prodb_edit_file()
ProFileEdit()
Session Tools
pro_get_prodevdat_info()
ProToolkitApplExecPathGet()
pro_getenvironment()
ProConfigoptionGet()
pro_change_dir()
ProDirectoryChange()
pro_get_current_directory()
ProDirectoryCurrentGet()
pro_is_option_ordered()
ProOptionOrderedVerify()
   
pro_set_config()
ProConfigoptSet()
progr_invalidate_display_
list()
ProDisplistInvalidate()
Exporting and Importing Files
pro_export_file_from_pro()
ProOutputFileMdlnameWrite()
pro_export_plot_file()
ProPlotfileWrite()
pro_read_file_to_pro()
ProInputFileRead()
pro_export_fea_mesh()
ProFemmeshExport()
Material Names
prodb_get_material_props()
ProPartMaterialdataGet()
prodb_get_material_name()
ProPartMaterialNameGet()
prodb_set_material_name()
ProPartMaterialSet()
Storing Generic Data
proappdata_register_class()
ProExtdataClassRegister()
proappdata_create_data()
ProExtdataSlotCreate()
proappdata_write_data()
ProExtdataSlotWrite()
proappdata_read_data()
ProExtdataSlotRead()
proappdata_delete_data()
ProExtdataSlotDelete()
proappdata_list_classes()
ProExtdataClassNamesList()
proappdata_list_data_in_
class()
ProExtdataSlotIdsList()
Geometry
Traversing the Geometry of a Part
prodb_first_part_face()
ProSolidBodySurfaceVisit()
prodb_next_part_face()
ProSolidBodySurfaceVisit()
prodb_get_solid_surfaces()
ProSolidBodySurfaceVisit()
prodb_first_face_contour()
ProSurfaceContourVisit()
prodb_next_face_contour()
ProSolidBodySurfaceVisit()
prodb_first_cntr_edge()
ProContourEdgeVisit()
prodb_next_cntr_edge()
ProContourEdgeVisit()
prodb_get_datum_curves()
ProSolidFeatVisit(), ProFeatureGeomitemVisit()
prodb_get_datum_surfaces()
ProSolidQuiltVisit(), ProQuiltSurfaceVisit()
prodb_edge_data()
ProEdgeNeighborsGet()
prodb_edge_direction()
ProEdgeDirGet()
prodb_contour_traversal()
ProContourTraversalGet()
prodb_containing_contour()
ProContainingContourFind()
prodb_vertex_data()
ProEdgeVertexdataGet()
prodb_get_solid_volumes()
ProSldsurfaceVolumesFind()
Evaluating Geometry
prodb_edge_tessellation()
ProEdgeTessellationGet()
pro_eval_xyz_edge()
ProEdgeXyzdataEval()
pro_eval_xyz_entity()
ProCurveXyzdataEval()
pro_eval_uv_edge()
ProEdgeUvdataEval()
pro_eval_xyz_face()
ProSurfaceXyzdataEval()
pro_get_edge_param()
ProEdgeParamEval()
pro_get_entity_param()
ProCurveParamEval()
pro_get_face_params()
ProSurfaceParamEval()
prodb_uv_in_face_domain()
ProSurfaceUvpntVerify()
pro_point_on_geom()
ProGeometryAtPointFind()
prodb_get_edge_uv_points()
ProEdgeTesselationGet()
prodb_get_surface_
tessellation()
ProSurfaceTessellationGet()
Geometry Equations
prodb_get_curve_type()
ProCurveTypeGet()
pro_get_curve_type_geom()
ProCurvedataGet()
prodb_get_edge_type()
ProEdgeTypeGet()
prodb_get_edge_curve()
ProEdgedataGet()
prodb_rls_edge_curve()
ProGeomitemdataFree()
prodb_get_face_type()
ProSurfaceTypeGet()
prodb_get_surface()
ProSurfacedataGet()
prodb_rls_surface()
ProGeomitemdataFree()
prodb_surface_to_nurbs()
ProSurfaceToNURBS()
prodb_edge_to_nurbs()
ProEdgeToNURBS()
prodb_entity_to_nurbs()
ProCurveToNURBS()
Measurement
pro_edge_length()
ProEdgeLengthEval()
pro_face_area()
ProSurfaceAreaEval()
prodb_measure()
ProSurfaceDiameterEval(),
ProGeomitemAngleEval(),
ProGeomitemDistanceEval()
pro_face_extremes()
ProSurfaceExtremesEval()
prodb_get_envelope()
ProSolidOutlineGet()
prodb_compute_outline()
ProSolidOutlineCompute()
Parameters and Dimensions
Parameters
prodb_get_parameters()
ProParameterVisit() and ProParameterValueWithUnitsGet()
prodb_set_parameters()
ProParameterValueWithUnitsSet()
prodb_add_parameters()
ProParameterWithUnitsCreate()
prodb_delete_parameters()
ProParameterDelete()
prodb_reset_parameters()
ProParameterValueReset()
prodb_designate_param()
ProParameterDesignationAdd()
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()
Names of Features and Other Elements
prodb_get_element_name()
ProModelitemNameGet()
prodb_set_element_name()
ProModelitemNameSet()
Feature Geometry
prodb_get_feature_surfaces()
ProFeatureGeomitemVisit()
prodb_get_surface_feature()
ProGeomitemFeatureGet()
Manipulating Features
prodb_suppress_feature()
ProFeatureSuppress()
prodb_resume_feature()
ProFeatureResume()ProSolidFeatstatusSet()
prodb_delete_feature()
ProFeatureDelete()
Datum Planes
prodb_first_datum()
ProSolidFeatVisit()
prodb_next_datum()
ProSolidFeatVisit()
Datum Points
prodb_get_feature_dtm_points()
ProSolidFeatVisit()
prodb_eval_xyz_dtm_point()
ProPointCoordGet()
Axes
prodb_get_first_axis()
ProSolidAxisVisit()
prodb_get_next_axis()
ProSolidAxisVisit()
Coordinate Systems
prodb_find_csys()
ProSolidCsysVisit(),
prodb_unpack_csys()
ProCsysdataGet()
Surface Quilts
prodb_get_surface_quilt()
ProSurfaceQuiltGet()
Surface Quilts
prodb_get_surface_quilt()
ProSurfaceQuiltGet()
Assemblies
Finding Assembly Members
prodb_first_member()
ProSolidFeatVisit()
prodb_next_member()
ProSolidFeatVisit()
prodb_member_to_object()
ProAsmcompMdlGet()
prodb_obj_from_assem_rel()
ProPostfixIdToSolid()
Location of Assembly Members
prodb_member_transform()
ProAsmcomppathTrfGet()
pro_vectors_to_transf()
ProMatrixInit()
prodb_get_asm_transform()
ProAsmcomppathTrfGet()
prodb_set_member_transform()
ProAsmcomppathTrfSet()
Assembling and Deleting Members
prodb_assemble_by_transform()
ProFeatureCreate()
prodb_assemble_component()
ProFeatureCreate()
prodb_explode_assembly()
ProAssemblyExplode()
prodb_get_asm_constraints()
ProFeatureElemtreeCreate()
prodb_is_asm_exploded()
ProAssemblyIsExploded()
Notify
Basic Notify Functions
prodev_notify()
ProNotificationSet()
pro_on_regenerate_end()
ProNotificationSet()
Notify for File Management Operations
user_menu_dbms_save_pre()
ProModelSavePreAction()
user_menu_dbms_save_post()
ProModelSavePostAction()
user_menu_dbms_copy_pre()
ProModelCopyPreAction()
user_menu_dbms_copy_post()
ProModelCopyPostAction()
user_menu_dbms_rename_pre()
ProModelRenamePreAction()
user_menu_dbms_rename_post()
ProModelRenamePostAction()
user_menu_dbms_erase_pre()
ProMdlErasePreAction()
user_menu_dbms_erase_post()
ProModelErasePostAction()
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()
ProModelRetrievePreAction()
user_menu_dbms_retrieve_post()
ProModelRetrievePostAction()
user_dbms_save_post_all()
ProModelSavePostAllAction()
user_dbms_copy_post_all()
ProModelCopyPostAllAction()
user_dbms_erase_post_all()
ProModelErasePostAllAction()
user_dbms_delete_post_all()
ProMdlDeletePostAllAction()
user_dbms_retrieve_post_all()
ProModelRetrievePostAllAction()
Failure Notify
user_dbms_failure_function()
ProModelDbmsFailureAction()
Change Notify
user_change_window_post()
ProWindowChangePostAction()
user_change_directory()
ProDirectoryChangePostAction()
Graphics Notify
user_graphics_object_output_
pre()
ProMdlDisplayPreAction()
user_graphics_object_output_
post()
ProMdlDisplayPostAction()
Manufacturing Notify
user_mfg_oper_cl_file_post()
ProMfgoperClPostAction()
user_mfg_feat_cl_file_post()
ProNcseqClPostAction()
Manufacturing Operations
Manufacturing Components
promfg_get_tool_ids()
prodb_get_comp_role()
ProMfgAssemGet()
Manufacturing Parameters
promfg_get_tool_ids()
ProMfgToolVisit()
promfg_get_tool_parameters()
ProToolParamGet()
promfg_set_tool_parameters()
ProToolElemParamAdd()
promfg_get_nc_type()
ProNcseqTypeGet()
Cabling Operations
procbl_create_cables_from
_logical()
ProCablesFromLogicalCreate()
procbl_get_cables_from
_logical()
ProCablesFromLogicalGet()
procbl_get_connectors_from
_logical()
ProConnectorsFromLogicalGet()
procbl_get_assy_spools()
ProAssemblySpoolsCollect()
procbl_create_spool()
ProSpoolCreate()
procbl_get_spool_params()
ProSpoolParametersCollect()
procbl_get_spool_param()
ProSpoolParameterGet()
procbl_get_assy_connectors()
ProAssemblyConnectorsGet()
procbl_designate_connector()
ProConnectorDesignate()
procbl_undesignate_connector()
ProConnectorUndesignate()
procbl_get_connector_entry_ports()
ProConnectorEntryPortsGet()
procbl_set_spool_params()
ProSpoolParametersSet()
procbl_delete_spool_param()
ProSpoolParameterDelete()
procbl_get_spools_from_
logical()
ProSpoolsFromLogicalGet()
procbl_get_spools_from_
logical()
ProSpoolsFromLogicalGet()
procbl_get_connector()
ProConnectorParamGet()
procbl_delete_connector_
param()
ProConnectorParamDelete()
procbl_get_connector_params()
ProConnectorParamsCollect()
procbl_set_connector_params()
ProConnectorParamsSet()
procbl_get_assy_harnesses()
ProAssemblyHarnessesCollect()
procbl_create_harness()
ProHarnessCreate()
procbl_get_harness_cables()
procbl_get_cable_id()
ProHarnessCablesCollect()
procbl_get_harness_locations()
ProHarnessLocationsCollect()
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_bundle_cables()
ProBundleCablesCollect()
procbl_get_cable_logical_
ends()
ProCableLogicalEndsGet()
procbl_get_cable_geom()
ProCableIsComplete()
procbl_set_cable_params()
ProCableParametersSet()
procbl_delete_cable_param()
ProCableParameterDelete()
procbl_get_cable_param()
ProCableParameterGet()
procbl_get_cable_params()
ProCableParametersCollect()
procbl_cable_clearance()
ProCableClearanceCompute()
procbl_get_cable_geom()
ProCableSegmentsGet()
procbl_get_cable_geom()
ProCablesegmentPointsGet()
procbl_get_cable_geom()
ProCablesegmentIsInBundle()
procbl_get_cable_geom()
ProCablesegmentIsNew()
procbl_get_cable_locations()
ProCableLocationsCollect()
procbl_get_location_cables()
procbl_get_cable_id()
ProCablelocationCablesGet()
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()
prodb_regen_xsec()
ProXsecRegenerate()
prodb_xsec_component()
ProXsecGeometryCollect()
prodb_xsec_name()
ProSolidXsecVisit()
Table-Driven Patterns
proptntbl_add_inst_to_table()
Use the Table Pattern feature element tree documented in the header file ProPattern.h.
proptntbl_delete_table()
proptntbl_get_active_table()
proptntbl_get_all_tbl_names()
proptntbl_get_inst_dim_value()
proptntbl_get_inst_indices()
proptntbl_get_lead_pat_dims()
proptntbl_remove_instance()
proptntbl_rename_table()
proptntbl_set_active_table()
proptntbl_set_dimval_driven()
proptntbl_set_inst_dim_value()
Merge and Cutout
prodb_merge_members()
Use the Merge feature element tree documented in the header file ProMerge.h.
Automatic Interchange
prodb_auto_interchange
ProAssemblyAutointerchange()
Drawing
pro_get_drawing_text_height()
ProDrawingSetupOptionGet()
pro_set_drawing_text_height()
ProDrawingSetupOptionSet()
prodrw_dim_view_id()
ProDrawingDimensionViewGet()
prodrw_get_view_sheet()
ProDrawingViewSheetGet()
Notebook
prodb_declare_layout()
ProLayoutDeclare()
prodb_undeclare_layout()
ProLayoutUndeclare()
prodb_regenerate_layout()
ProLayoutRegenerate()
Relations
prodb_import_relations()
ProInputFileRead()
prodb_export_relations()
ProOutputFileMdlnameWrite()
Surface Properties
prodb_get_surface_props
ProSurfaceSideAppearancepropsGet() or
prodb_set_surface_props
ProSurfaceSideAppearancepropsSet() or or ProSurfaceSideTextureplacementpropsSet()
prodb_unset_surface_props
ProSurfaceSideAppearancepropsSet() or ProSurfaceSideTexturepropsSet() or ProSurfaceSideTextureplacementpropsSet()
Data structure pro_surf_props
Data structure ProSurfaceAppearanceProps, ProSurfaceTextureProps, and ProSurfaceTexturePlacementProps
pro_get_light_sources
ProLightSourcesGet()
pro_set_light_sources
ProLightSourcesSet()
Data structure Pro_light
ProLightInfo
prodb_surface_tessellation
ProSurfaceTessellationGet()
Interference
pro_dist_manifolds()
ProSelectionWithOptionsDistanceEval()
pro_compute_clearance()
ProFitClearanceCompute()
pro_compute_interference()
ProFitInterferenceCompute()
pro_compute_global_
interference()
ProFitGlobalinterferenceCompute()
pro_compute_volume()
ProFitInterferencevolumeCompute()
pro_display_interf_volume()
ProFitInterferencevolumeDisplay()
pro_interference_volume_
release()
ProInterferenceDataFree()
Customized Plot Driver
prointerface_create()
prointerface_load_function()
ProPlotdriverInterfaceCreate()
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 TOOLKIT functions in the mentioned header files:
Pro/DEVELOP Function
Equivalent Creo Toolkit Function
profem_get_con_case_names()
ProMechLoadset.h
ProMechConstrset.h
profem_get_constraints()
ProMechLoad.h
ProMechConstraint.h
profem_get_mesh_controls()
ProMechMeshControl.h
profem_get_bar_elements()
ProMechBeam.h
ProMechBeamOrient.h
ProMechBeamRelease.h
ProMechBeamSection.h
ProMechSpring.h
ProMechSpringProps.h
ProMechGap.h
ProMechWeld.h
profem_get_contacts()
ProMechContact.h
profem_get_mass_elements()
ProMechMass.h
ProMechMassProps.h
profem_get_shell_pairs()
ProMechShellPair.h
pro_export_fea_mesh()
ProFemMesh.h with the function ProFemmeshExport()