Version Controls   

<<< Session Support Chapters Implementing Version Control In Applications >>>

Contents

[back to top]


116.1 Introduction

As improvements are made to Parasolid, the behaviour of some functions may change in certain conditions. In the vast majority of cases your application should take advantage of these changes in behaviour. However, sometimes your application might need to rely on the old (inferior) behaviour. Typically, this may be the case if you need to ensure that legacy parts are updated consistently. Rarely, it may be because you are unable to make the necessary adjustments to your application immediately. In these cases you need to be able to reproduce the inferior behaviour in newer Parasolid versions. Parasolid supports two separate version control systems to allow you to manage this behaviour in your application code.

 

System

Control

Description

Consolidated system

Session behaviours:

For legacy parts created in newer versions of Parasolid, you should use a consolidated version control mechanism that includes the ability to emulate the behaviour of any specific customer release in V28.1 or later.

All customers integrating version control for the first time should use this system.

Original system

Session and update switches:

For legacy parts created in older versions of Parasolid (including all versions prior to V28.1), Parasolid provides a system of session switches and update switches. Update switches can be used to emulate legacy behaviour for specific APIs, whereas session switches can be used to emulate legacy behaviour across a session.

Session switches are described in Section 116.3, “Reproducing behaviour using the original system”. Chapter 118, “Update Switches”, lists all the update switches that are available in the Parasolid PK interface.

The consolidated system provides a number of benefits over the original system:

 

Note: If your application already implements version control using the original system, we strongly recommend you implement the consolidated system for versioning features created in Parasolid V28.1 and beyond. Features built in V28.0 or earlier must continue to be versioned using the original system.

This chapter describes both version control systems in detail:

Chapter 117, “Implementing Version Control In Applications”, provides implementation advice on how to use the two systems, depending on the needs of your application. This includes specific advice on how to implement version control using both systems.

[back to top]


116.2 Reproducing behaviour from specific releases

This section describes the APIs you need to use to make use of the consolidated system. See Chapter 117, “Implementing Version Control In Applications”, for specific examples on how to implement version control using these APIs.

116.2.1 Session behaviours

In order to manage version control in your application, you need to decide what session behaviour you need to specify. Parasolid lets you choose between three different types of session behaviour, as follows:

 

Behaviour

Description

Latest

Use the latest behaviour for the current version of Parasolid. This is the behaviour that you should use most of the time (i.e. whenever you do not need to emulate older versions of Parasolid).

Value

Use the behaviour from a specific release of Parasolid. This type of behaviour can be used to emulate any release (full or patch) from the point at which you first implemented the consolidated system. Use the unset behaviour if you need to emulate older versions of Parasolid.

Unset

Use this behaviour if you need to emulate Parasolid behaviour from versions released before you implemented the consolidated system. Using this type of behaviour enables the original system, allowing you to emulate old behaviour by setting session switches for the entire Parasolid session, and update switches for individual functions.

Section 116.3, “Reproducing behaviour using the original system”, explains how to use session switches.

Chapter 118, “Update Switches”, describes the update controls available for individual Parasolid functions.

116.2.2 Setting and asking session behaviour

You use the functions PK_SESSION_set_behaviour and PK_SESSION_ask_behaviour to manage which version control behaviour is used in a Parasolid session.

PK_SESSION_set_behaviour sets a specific behaviour for the session. It receives a single argument, behaviour_requested , and returns three arguments, behaviour_set, behaviour_previous , and a status :

 

Argument

Description

behaviour_requested

The version control behaviour that you wish to use in the current Parasolid session.

behaviour_set

The version control behaviour that was set as a result of the call to PK_SESSION_set_behaviour.

In some circumstances, this may not be the same as behaviour_requested . For example, if a feature was created using the 4th patch release of V28.1, but is being rebuilt using an application that only has access to the 3rd patch, then behaviour_set would be the 3rd patch release of V28.1.

behaviour_previous

The version control behaviour that was in use prior to the call to PK_SESSION_set_behaviour.

status

A return status for the operation, as follows:

 

Note: We recommend that you do not change the session behaviour by calling PK_SESSION_set_behaviour from within a callback function.

PK_SESSION_ask_behaviour lets you find out which version control behaviour is currently in use in your Parasolid session. This function returns a single behaviour argument.

In addition, PK_SESSION_ask_latest_behaviour returns the latest allowed behaviour of the modeller, regardless of any behaviour that may have been set via a call to PK_SESSION_set_behaviour in the current Parasolid session.

Every argument for these functions uses a structure of type PK_SESSION_behaviour_t, which contains the following fields:

 

Field

Description

behaviour_type

The type of behaviour for the session. This is one of:

See Section 116.2.1, “Session behaviours”, for more information.

behaviour_value

If behaviour_type is PK_SESSION_behave_as_value_c, then this integer must describe a specific patch release of Parasolid, using the format MMmmpp, where:

  • MM is the major version number
  • mm is the minor version number
  • pp is a patch number assigned by Parasolid, with 00 representing the First Customer Shipment (FCS) release

For example, 280103 specifies a specific patch release of V28.1, and 290000 specifies the FCS release of V29.0.

When used as a received argument in PK_SESSION_set_behaviour, if behaviour_type is any other value, then behaviour_value should be 0.

When used as a returned argument in PK_SESSION_set_behaviour or PK_SESSION_ask_behaviour, if behaviour_type is PK_SESSION_behave_as_latest_c, behaviour_value is set to the non-zero value that represents the Parasolid version you are running.

 

Warning: When creating a new feature, you should record the non-zero behaviour_value returned by PK_SESSION_ask_behaviour and store it with that feature. This value should then be used when rebuilding the feature in future versions. You should always store the behaviour_value returned by PK_SESSION_ask_behaviour rather than trying to programmatically predict or reconstruct this value yourself. See Chapter 117, “Implementing Version Control In Applications”, for more information.

 

Note: Like other session-level controls, behaviour values do not roll with partitioned rollback.

[back to top]


116.3 Reproducing behaviour using the original system

In order to emulate legacy behaviour for features created in applications that do not use the consolidated sytem, you need to use a combination of session switches and update switches:

In addition, after First Customer Shipment (FCS) of a Parasolid version, improvements to behaviour may be added to subsequent patch releases. You can use a session switch to turn on these improvements when creating new models.

Session-level switches are manipulated by the following two functions:

 

Function

Description

PK_SESSION_set_software_option

Set session-level switches to turn off specific improvements to functionality.

PK_SESSION_ask_software_option

Return the current settings for session-level switches.

There are three general types of session-level switches:

The values of session-level switches are stored in the PK_SESSION_software_option_t structure.

116.3.1 Session-level switches that should not be set without advice

Session level switches that only affect a small number of customers are shown below, organised according to the Parasolid version whose behaviour they replicate. To turn a particular switch on, set the value for the corresponding field to 1.

 

Warning: You should contact Parasolid Support for advice or possible work-arounds before using any of these switches. If advised by Parasolid Support to integrate one of these switches, it needs to be used when updating models created using a previous version of Parasolid, but is not required when performing new modelling operations.

 

Field

Restricted behaviour if set to 1

Behaviour used

PK_SESSION_SURF_coincide_c

Swept surface coincidence

V9.0

PK_SESSION_old_isoclines_c

Isocline curve creation

V10.0

PK_SESSION_ENTITY_persist_alt_c

Tag persistence

V12.0

PK_SESSION_old_blend_bounds_c

Smooth intersection curve edge generation along blends (between the blend itself and the adjacent supporting surface).

Note: Many Parasolid functions may need to recompute side blend boundary edges; setting this field does not solely affect blend creation.

V12.1

PK_SESSION_PLANE_exact_coi_c

Merging planes

V12.1

PK_SESSION_FACE_old_uvbox_c

PK_FACE_find_uvbox

V13.0

PK_SESSION_local_ops_pre_v132_c

Local operations

V13.0

PK_SESSION_point_int_pre_v132_c

Calculating point contacts between surfaces

V13.0

PK_SESSION_check_pre_v140_c

Checker ignores degeneracies found on ruled boundaries

V13.2

PK_SESSION_boolean_pre_v141_c

Boolean operations

V14.0

PK_SESSION_check_pre_v141_c

Offset surface checking

V14.0

PK_SESSION_old_helix_c

Helix creation

V14.0

PK_SESSION_SURF_old_min_radii_c

Calculation of minimum radius of curvature on each side of swept and spun surfaces

V14.0

PK_SESSION_check_transmit_c

Checks partitions during transmit and makes PK_PARTITION_transmit return an error if a corruption is found. You should only enable this option if specifically instructed to do so by Parasolid Support.

N/A: added at V14.0

PK_SESSION_old_hir_wire_c

Hidden line rendering

V31.0

PK_SESSION_pre_v150_switch_1_c

Edge merging during local operations

V14.1

PK_SESSION_pre_v150_switch_2_c

Self-intersection checking in B-spline surfaces

V14.1

PK_SESSION_pre_v150_switch_3_c

Some local operations functionality

V14.1

PK_SESSION_region_gt_pre_v150_c

Region behaviour in respect of tag persistence, and attribute and group handling

V14.1

PK_SESSION_pre_v151_switch_1_c

Curve imprinting on faces

V15.0

PK_SESSION_pre_v160_switch_1_c

Miscellaneous functionality

V15.1

PK_SESSION_pre_v161_switch_1_c

Edge blend capping

V16.0

PK_SESSION_pre_v161_switch_2_c

Edge blending

V16.0

PK_SESSION_pre_v161_switch_3_c

Faceting

V16.0

PK_SESSION_pre_v161_switch_4_c

Capping functionality during taper operations

V16.0

PK_SESSION_pre_v161_switch_5_c

Conversion of blend surfaces to B-surfaces

V16.0

PK_SESSION_pre_v161_switch_6_c

Local operations

V16.0

PK_SESSION_pre_v170_switch_1_c

Miscellaneous functionality

V16.1

PK_SESSION_pre_v170_switch_2_c

B-surface creation when blending

V16.1

PK_SESSION_pre_v170_switch_3_c

Edge blending

V16.1

PK_SESSION_pre_v170_switch_4_c

Lofting and blending

V16.1

PK_SESSION_pre_v170_switch_5_c

Minimum distance calculation

V16.1

PK_SESSION_pre_v171_switch_2_c

Local operations

V17.0

PK_SESSION_pre_v180_switch_1_c

Fitting a plane to a set of lines

V17.1

PK_SESSION_pre_v180_switch_2_c

Finding the minimum of a multi-dimensional scalar function

V17.1

PK_SESSION_pre_v180_switch_3_c

Local operations

V17.1

PK_SESSION_pre_v180_switch_4_c

Vertex splitting during local operations

V17.1

PK_SESSION_pre_v181_switch_1_c

Face-face checking.

V18.0

PK_SESSION_pre_v181_switch_2_c

Creation of rational B-surface blends.

V18.0

PK_SESSION_pre_v181_switch_3_c

Local operations

V18.0

PK_SESSION_pre_v181_switch_4_c

Local operations

V18.0

PK_SESSION_pre_v181_switch_5_c

Edge blending

V18.0

PK_SESSION_pre_v181_switch_6_c

Lofting and sweeping

V18.0

PK_SESSION_pre_v181_switch_7_c

Local operations

V18.0

PK_SESSION_pre_v181_switch_8_c

Local operations

V18.0

PK_SESSION_pre_v181_switch_9_c

Local operations

V18.0

PK_SESSION_pre_v191_switch_1_c

Local operations

V19.0

PK_SESSION_pre_v191_switch_2_c

Replacing the surfaces of faces

V19.0

PK_SESSION_pre_v191_switch_3_c

Local operations

V19.0

PK_SESSION_pre_v191_switch_4_c

Curve imprinting

V19.0

PK_SESSION_pre_v191_switch_5_c

Blend vertex identification

V19.0

PK_SESSION_pre_v191_switch_6_c

Self-intersection repair in booleans and sweeping

V19.0

PK_SESSION_pre_v191_switch_7_c

Merging redundant edges and vertices in local operations

V19.0

PK_SESSION_pre_v191_switch_8_c

Identifying blends

V19.0

PK_SESSION_pre_v191_switch_9_c

Blending

V19.0

PK_SESSION_pre_v191_switch_10_c

Attribute processing during blend deletion

V19.0

PK_SESSION_pre_v191_switch_11_c

Local operations

V19.0

PK_SESSION_pre_v191_switch_12_c

Blending

V19.0

PK_SESSION_pre_v191_switch_13_c

Local operations

V19.0

PK_SESSION_pre_v191_switch_14_c

Fill hole

V19.0

PK_SESSION_pre_v191_switch_15_c

Fill hole

V19.0

PK_SESSION_pre_v191_switch_16_c

Delete blends

V19.0

PK_SESSION_pre_v191_switch_17_c

Local operations

V19.0

PK_SESSION_pre_v191_switch_18_c

Tapering

V19.0

PK_SESSION_pre_v191_switch_19_c

Local operations

V19.0

PK_SESSION_pre_v191_switch_20_c

Blending

V19.0

PK_SESSION_pre_v191_switch_21_c

Blending

V19.0

PK_SESSION_pre_v191_switch_22_c

Curve imprinting

V19.0

PK_SESSION_pre_v210_switch_1_c

Local operations

V20.0

PK_SESSION_pre_v210_switch_2_c

Local operations

V20.0

PK_SESSION_pre_v210_switch_3_c

Evaluating the smoothness of vertices

V20.0

PK_SESSION_pre_v210_switch_4_c

Healing wounds

V20.0

PK_SESSION_pre_v210_switch_5_c

Vertex splitting during local operations

V20.0

PK_SESSION_pre_v221_switch_1_c

Sewing

V22.0

PK_SESSION_pre_v221_switch_2_c

B-geometry

V22.0

PK_SESSION_pre_v221_switch_3_c

Curve approximation using B-curves

V22.0

PK_SESSION_pre_v221_switch_4_c

Deleting faces

V22.0

PK_SESSION_pre_v221_switch_5_c

Improvements to blending in tight regions

V22.0

PK_SESSION_pre_v221_switch_6_c

Vertex geometry

V22.0

PK_SESSION_pre_v221_switch_7_c

Locating modified vertices during local operations

V22.0

PK_SESSION_pre_v230_switch_1_c

Loop handling

V22.1

PK_SESSION_pre_v230_switch_2_c

Surface intersections in periodic and offset B-surfaces

V22.1

PK_SESSION_pre_v230_switch_3_c

Point surface closest approach

V22.1

PK_SESSION_pre_v230_switch_4_c

Evaluating loop types

V22.1

PK_SESSION_pre_v230_switch_5_c

Evaluating points on blend bound curves

V22.1

PK_SESSION_pre_v230_switch_6_c

Fitting a plane to a set of lines

V22.1

PK_SESSION_pre_v230_switch_7_c

Evaluating loop types

V22.1

PK_SESSION_pre_v230_switch_8_c

Improvement to wire body functionality

V22.1

PK_SESSION_pre_v230_switch_9_c

Local operations

V22.1

PK_SESSION_pre_v230_switch_10_c

Face transformation

V22.1

PK_SESSION_pre_v230_switch_11_c

Local operations

V22.1

PK_SESSION_pre_v231_switch_1_c

Finding minimum radius of curvature

V23.0

PK_SESSION_pre_v231_switch_2_c

Processing degree 1 B-curves

V23.0

PK_SESSION_pre_v231_switch_3_c

Evaluating on intersection curves

V23.0

PK_SESSION_pre_v231_switch_4_c

Handling of notches in blending

V23.0

PK_SESSION_pre_v231_switch_5_c

Vector curve imprinting

V23.0

PK_SESSION_pre_v231_switch_6_c

SP-curve extension

V23.0

PK_SESSION_pre_v231_switch_7_c

Removing imprinted edges in boolean operations

V23.0

PK_SESSION_pre_v231_switch_8_c

Blending

V23.0

PK_SESSION_pre_v240_switch_1_c

Improvements to the blending algorithm

V23.1

PK_SESSION_pre_v240_switch_2_c

Self-intersecting repair

V23.1

PK_SESSION_pre_v240_switch_3_c

Improving help points

V23.1

PK_SESSION_pre_v240_switch_4_c

Mass property calculations

V23.1

PK_SESSION_pre_v240_switch_5_c

Hidden line rendering

V23.1

PK_SESSION_pre_v240_switch_6_c

Blending

V23.1

PK_SESSION_pre_v240_switch_7_c

Curve imprinting

V23.1

PK_SESSION_pre_v240_switch_8_c

SP-curve boxing

V23.1

PK_SESSION_pre_v241_switch_1_c

Improving the evaluation of SP-curves

V24.0

PK_SESSION_pre_v241_switch_2_c

Detecting coincidence of spun surfaces

V24.0

PK_SESSION_pre_v241_switch_3_c

Healing in local operations

V24.0

PK_SESSION_pre_v241_switch_4_c

Sweeping

V24.0

PK_SESSION_pre_v241_switch_5_c

Offsetting planar wires

V24.0

PK_SESSION_pre_v241_switch_6_c

Offsetting planar wires

V24.0

PK_SESSION_pre_v241_switch_7_c

Sweeping

V24.0

PK_SESSION_pre_v241_switch_8_c

Local operations

V24.0

PK_SESSION_pre_v241_switch_9_c

Curve imprinting

V24.0

PK_SESSION_pre_v241_switch_10_c

Local operations

V24.0

PK_SESSION_pre_v250_switch_1_c

Checking system attribute validity

V24.1

PK_SESSION_pre_v250_switch_2_c

Sweeping

V24.1

PK_SESSION_pre_v250_switch_3_c

Local operations

V24.1

PK_SESSION_pre_v250_switch_4_c

Edge repair in local operations

V24.1

PK_SESSION_pre_v250_switch_5_c

Delete blends

V24.1

PK_SESSION_pre_v250_switch_6_c

Curve and spun outline generation

V24.1

PK_SESSION_pre_v250_switch_7_c

Spun outline

V24.1

PK_SESSION_pre_v250_switch_8_c

Curve and spun outline generation

V24.1

PK_SESSION_pre_v250_switch_9_c

Curve and spun outline generation

V24.1

PK_SESSION_pre_v250_switch_10_c

Locating intersections in boolean operations

V24.1

PK_SESSION_pre_v250_switch_11_c

Imprinting curves down face normals

V24.1

PK_SESSION_pre_v250_switch_12_c

Isoparameter curve detection

V24.1

PK_SESSION_pre_v250_switch_13_c

Local operations

V24.1

PK_SESSION_pre_v250_switch_14_c

SP-curve production in local operations

V24.1

PK_SESSION_pre_v250_switch_15_c

Blend extension

V24.1

PK_SESSION_pre_v250_switch_16_c

Blend extension

V24.1

PK_SESSION_pre_v251_switch_1_c

Imprinting curves down face normals

V25.0

PK_SESSION_pre_v251_switch_2_c

Spun outline generation

V25.0

PK_SESSION_pre_v251_switch_3_c

Curve and spun outline generation

V25.0

PK_SESSION_pre_v251_switch_4_c

Fill hole

V25.0

PK_SESSION_pre_v251_switch_5_c

Isoparameter curve detection

V25.0

PK_SESSION_pre_v251_switch_6_c

Blending

V25.0

PK_SESSION_pre_v251_switch_7_c

Identifying the end point of a cliff between tangent blends

V25.0

PK_SESSION_pre_v251_switch_8_c

Face-face blending

V25.0

PK_SESSION_pre_v251_switch_9_c

Fill hole

V25.0

PK_SESSION_pre_v251_switch_10_c

Edge blending

V25.0

PK_SESSION_pre_v251_switch_11_c

Edge tolerance setting in boolean operations

V25.0

PK_SESSION_pre_v251_switch_14_c

Evaluating curve derivatives for foreign geometry

V25.0

PK_SESSION_pre_v260_switch_1_c

Curve imprinting

V25.1

PK_SESSION_pre_v260_switch_2_c

Preventing the creation of large vertex tolerances in sheet extend operations

V25.1

PK_SESSION_pre_v260_switch_4_c

Edge blending

V25.1

PK_SESSION_pre_v260_switch_5_c

Edge blending

V25.1

PK_SESSION_pre_v260_switch_6_c

Face deletion

V25.1

PK_SESSION_pre_v260_switch_7_c

Blending

V25.1

PK_SESSION_pre_v260_switch_8_c

Determining loop types

V25.1

PK_SESSION_pre_v260_switch_9_c

Boolean operations

V25.1

PK_SESSION_pre_v260_switch_10_c

Blending

V25.1

PK_SESSION_pre_v260_switch_11_c

Extending sheet bodies

V25.1

PK_SESSION_pre_v260_switch_12_c

Evaluating curves

V25.1

PK_SESSION_pre_v260_switch_13_c

Imprinting

V25.1

PK_SESSION_pre_v260_switch_15_c

Self-intersection repair

V25.1

PK_SESSION_pre_v261_switch_1_c

Checking the consistency of bounded curves

V26.0

PK_SESSION_pre_v261_switch_2_c

Ray firing

V26.0

PK_SESSION_pre_v261_switch_3_c

Boolean matching

V26.0

PK_SESSION_pre_v261_switch_4_c

Tolerance setting in intersection operations

V26.0

PK_SESSION_pre_v261_switch_5_c

Face blending

V26.0

PK_SESSION_pre_v261_switch_6_c

Imprinting

V26.0

PK_SESSION_pre_v261_switch_7_c

Face blending

V26.0

PK_SESSION_pre_v261_switch_8_c

Face blending

V26.0

PK_SESSION_pre_v261_switch_9_c

Multi-tool booleans

V26.0

PK_SESSION_pre_v261_switch_10_c

Surface intersections in boolean operations

V26.0

PK_SESSION_pre_v261_switch_11_c

Blending

V26.0

PK_SESSION_pre_v261_switch_12_c

Blending

V26.0

PK_SESSION_pre_v261_switch_13_c

Face blending

V26.0

PK_SESSION_pre_v261_switch_14_c

Edge blending

V26.0

PK_SESSION_pre_v261_switch_15_c

Blending

V26.0

PK_SESSION_pre_v261_switch_16_c

Blending

V26.0

PK_SESSION_pre_v261_switch_17_c

Blending

V26.0

PK_SESSION_pre_v261_switch_18_c

Edge repair in boolean operations

V26.0

PK_SESSION_pre_v261_switch_19_c

Edge repair in boolean operations

V26.0

PK_SESSION_pre_v261_switch_20_c

Blending

V26.0

PK_SESSION_pre_v261_switch_21_c

Blending

V26.0

PK_SESSION_pre_v261_switch_22_c

Blending

V26.0

PK_SESSION_pre_v261_switch_23_c

Blending

V26.0

PK_SESSION_pre_v261_switch_25_c

Blending

V26.0

PK_SESSION_pre_v261_switch_26_c

Tolerance setting in boolean operations

V26.0

PK_SESSION_pre_v261_switch_27_c

Blending

V26.0

PK_SESSION_pre_v261_switch_28_c

Checking face-face intersections after a face deletion

V26.0

PK_SESSION_pre_v261_switch_29_c

Surface intersection

V26.0

PK_SESSION_pre_v261_switch_30_c

Surface intersection

V26.0

PK_SESSION_pre_v270_switch_1_c

Boolean face pair matching

V26.1

PK_SESSION_pre_v270_switch_2_c

Tapering

V26.1

PK_SESSION_pre_v270_switch_3_c

Edge blending

V26.1

PK_SESSION_pre_v270_switch_4_c

Surface-surface intersection

V26.1

PK_SESSION_pre_v270_switch_5_c

Edge blending

V26.1

PK_SESSION_pre_v270_switch_6_c

Creating curves from edges

V26.1

PK_SESSION_pre_v270_switch_7_c

Blending

V26.1

PK_SESSION_pre_v270_switch_8_c

Edge blending

V26.1

PK_SESSION_pre_v270_switch_9_c

Curve imprinting

V26.1

PK_SESSION_pre_v270_switch_10_c

Curve imprinting

V26.1

PK_SESSION_pre_v270_switch_11_c

Curve imprinting

V26.1

PK_SESSION_pre_v270_switch_12_c

Face blending

V26.1

PK_SESSION_pre_v270_switch_13_c

Face blending

V26.1

PK_SESSION_pre_v270_switch_14_c

Edge blending

V26.1

PK_SESSION_pre_v270_switch_15_c

Blending

V26.1

PK_SESSION_pre_v270_switch_16_c

Blending

V26.1

PK_SESSION_pre_v270_switch_17_c

Blending

V26.1

PK_SESSION_pre_v270_switch_18_c

Blending

V26.1

PK_SESSION_pre_v270_switch_19_c

Blending

V26.1

PK_SESSION_pre_v270_switch_22_c

Handling four edge vertices during local operations

V26.1

PK_SESSION_pre_v270_switch_23_c

Boolean operations

V26.1

PK_SESSION_pre_v270_switch_24_c

Checking face-face intersections after a face deletion

V26.1

PK_SESSION_pre_v270_switch_25_c

Checking

V26.1

PK_SESSION_pre_v270_switch_26_c

Face change operations

V26.1

PK_SESSION_pre_v271_switch_1_c

Edge and face blending

V27.0

PK_SESSION_pre_v271_switch_2_c

Boolean operations

V27.0

PK_SESSION_pre_v271_switch_3_c

Blending

V27.0

PK_SESSION_pre_v271_switch_4_c

Edge imprinting

V27.0

PK_SESSION_pre_v271_switch_5_c

Boolean operations

V27.0

PK_SESSION_pre_v271_switch_6_c

Blending

V27.0

PK_SESSION_pre_v271_switch_7_c

Boolean subtraction operations

V27.0

PK_SESSION_pre_v271_switch_8_c

Face imprinting

V27.0

PK_SESSION_pre_v271_switch_9_c

Blending

V27.0

PK_SESSION_pre_v271_switch_10_c

Blending

V27.0

PK_SESSION_pre_v271_switch_12_c

Blending

V27.0

PK_SESSION_pre_v271_switch_13_c

Improvements to mid-surfacing

V27.0

PK_SESSION_pre_v271_switch_14_c

Blending

V27.0

PK_SESSION_pre_v280_switch_1_c

SP curve generation for helical curves

V27.1

PK_SESSION_pre_v280_switch_2_c

Extrude operations

V27.1

PK_SESSION_pre_v280_switch_3_c

Edge blending

V27.1

PK_SESSION_pre_v280_switch_4_c

Blending

V27.1

PK_SESSION_pre_v280_switch_5_c

Edge blending

V27.1

PK_SESSION_pre_v280_switch_6_c

Edge blending

V27.1

PK_SESSION_pre_v280_switch_7_c

Edge blending

V27.1

PK_SESSION_pre_v280_switch_8_c

Blending

V27.1

PK_SESSION_pre_v280_switch_9_c

Blending

V27.1

PK_SESSION_pre_v280_switch_10_c

Blending

V27.1

PK_SESSION_pre_v280_switch_11_c

Blending

V27.1

PK_SESSION_pre_v280_switch_12_c

Blending

V27.1

PK_SESSION_pre_v280_switch_13_c

Blending

V27.1

PK_SESSION_pre_v280_switch_14_c

Projecting curves

V27.1

PK_SESSION_pre_v280_switch_15_c

Fill hole

V27.1

PK_SESSION_pre_v280_switch_16_c

Blending

V27.1

PK_SESSION_pre_v281_switch_1_c

Edge blending

V28.0

PK_SESSION_pre_v281_switch_2_c

Blending

V28.0

PK_SESSION_pre_v281_switch_3_c

Patching

V28.0

PK_SESSION_pre_v281_switch_4_c

Blending

V28.0

PK_SESSION_pre_v281_switch_5_c

Faceting

V28.0

PK_SESSION_pre_v281_switch_6_c

Blending

V28.0

PK_SESSION_pre_v281_switch_7_c

Blending

V28.0

PK_SESSION_pre_v281_switch_8_c

Blending

V28.0

PK_SESSION_pre_v281_switch_9_c

Blending

V28.0

PK_SESSION_pre_v281_switch_10_c

Blending

V28.0

116.3.2 Session-level switches that should be set when rebuilding features created in previous Parasolid versions

Between Parasolid V25.0 and Parasolid V30.1, a session switch value with a name of the form PK_SESSION_pre_v XXX_switch_0_c (where XXX represents a Parasolid version number) is available for every version of Parasolid.

These session switch values are used as version switches that control the behaviour of multiple low-level algorithms, and you need to treat them differently to the session switch values described in Section 116.3.1.

When rebuilding all features where that feature has been built in a prior version of Parasolid, you should set the appropriate session switch values in order to guarantee a successful rebuild. All available switches should be set, up to and including the version switch for the version of Parasolid you are using to perform the rebuild.

For example, if you are rebuilding features created in Parasolid v25.1, and you are using Parasolid v26.1 to perform the rebuild, you must set PK_SESSION_pre_v260_switch_0_c and PK_SESSION_pre_v261_switch_0_c to 1.

116.3.3 Session-level switches that can be set to enable updated behaviour when creating new features

 

Warning: These switches should not be used unless explicitly advised to do so by Parasolid Support.

As of Parasolid V26.1, session switch values with names of the form PK_SESSION_post_v XXX_switch_ n_c (where XXX represents a Parasolid version number, and n represents a switch number) may be available for versions of Parasolid.

These post session switches are added at patch releases after a major Parasolid release (FCS), and allow you to take advantage of improvements in Parasolid behaviour that have been made since FCS, without having to wait for the next major release. They should only be used for creating new models in the Parasolid version number for which they are named, and for subsequent update of those models.

If your application needs to deal with legacy data and you use post session switches, then you must record which models use which post session switches. After upgrading to a newer major version of Parasolid, you must set the same post session switches when you need to update these models, as were used when the model was created.

For example, consider the case where Parasolid V26.0 is integrated into your application code:

 

Warning: In general, for a given Parasolid version X, it is an error to set both PK_SESSION_post_v X_ n_c and PK_SESSION_pre_v X_0_c, for all values of n.

[back to top]


116.4 Debugging version control settings

You can use the functions PK_DEBUG_behaviours_start and PK_DEBUG_behaviours_stop to debug your use of the version control mechanism in your application. See the documentation for these functions in the PK Interface Programming Reference Manual for more information.

[back to top]

<<< Session Support Chapters Implementing Version Control In Applications >>>