Fault Reporting  

Reporting Parasolid faults to Parasolid Technical Support



A separate mail should be sent to the Parasolid Support Group (ps-support@ugs.com) for each problem or set of related problems containing information needed to reproduce the fault. The information that we need is detailed below. The title of the e-mail should contain the following information, at least:

For example: FR3564: PK_BODY_boolean_2 / Customer / Critical. This will allow us to prioritise the problems without having to read the e-mails in detail.

[Back to top of page]

Required information

Your report should contain as much information as is necessary to reproduce the fault. The minimum amount of information is:

Optional information that is useful to us:

The data can be included in the mail or placed on our public FTP site (see below). The location of the files should be noted in the e-mail and the above data placed in a file with a name such as readme.txt.

[Back to top of page]

Placing files on the FTP site

The address of the Parasolid public FTP site is ftp.cbr.ugsolutions.com (134.244.154.194). Customers should place data in the directory /pub/(customer_name)/. Log on using user-name anonymous and your e-mail address as the password.

[Back to top of page]

Fault Priority

Every customer has a different set of priorities for their faults and it will be useful to us if we can agree a mapping between your set of priorities and the priority system used by our fault database. This way you can ensure that the faults that need priority get them.

How to produce the necessary data for fault submission

Node identifiers (Ids) are associated with every entity comprising part of a body, including all topology, geometry attached directly to topology and construction geometry attached to the part. Many entities can be easily identified by providing us with these node IDs. The body containing the entity should also be given. The function PK_ENTITY_ask_identifier can be used to obtain the ID of an entity. If this function returns PK_ENTITY_null then either the entity is a body, assemblyor is a piece of geometry not attached to a part (orphan geometry).

A simple way to save out orphan geometry or trimmed surface data (PK_SURF_trim_data_t) is by using the function PK_DEBUG_transmit.

[Back to top of page]

Response from Parasolid Support

Once your fault has been investigated by a member of the Parasolid Support team they will respond to you, quoting our database reference number (e.g. PR123456) if the issue has been assigned to development. We will also contact you if the fault has been rejected (i.e. Parasolid is behaving as designed or the fault is caused by incorrect usage) or if more information is required to reproduce the fault. If you receive no response within a few days then please re-send the e-mail since it may not have reached us.

[Back to top of page]

Examples

Simple PK_BODY_boolean_2 failure

Take a simple case of a Boolean subtraction of two bodies from another. There is no need to extract any node IDs. All that is needed is for the bodies to be clearly identified and the parameters noted.

Subject: FR1234 : PK_BODY_boolean_2 / Customer / Critical

After this PK_BODY_boolean_2 call is performed the resultant body is
bad, failing to check with PK_BODY_check (using all default options).
I am using v12.0.190.

Target body: target.x_b
Tool bodies: tool1.x_b, tool2.x_b

Options:
	function: PK_boolean_subtract_c
	merge_imprinted: True
	Non-manifold topology enabled (PK_SESSION_set_general_topology)

 

PK_FACE_make_blend example

This example contains entities that are sub-topologies and therefore the node Ids must be given. Note that only those options that differ from the defaults are mentioned though it doesn't matter if other options are also given.

Subject: FR5678 : PK_FACE_make_blend / Internal / Priority 2

The following face blend fails, returning token 
PK_fxf_fault_unknown_c. Why?

Version: 12.0.190
Bodies: body1.x_b, body2.x_b

Parameters:
	Left wall faces (node Ids): 57 (in body1.x_b)
	Right wall faces (node Ids): 76, 57 (in body2.x_b)
	Left Sense: TRUE
	Right Sense: FALSE
Options:
	constraints.tangent_edges =  52, 47 (in body1.x_b)
	propagate = PK_blend_propagate_yes_c
	tolerance = 1.0e-6

 

PK_BODY_sew_bodies

A simple example but it just shows that it is easier, in some cases to transmit all bodies in one file with PK_PART_transmit.

Subject: FR9999 : PK_BODY_sew_bodies / Internal / Priority A

I have placed a file, sheets.x_b on your landing site in the
directory, /pub/my_company/sewing_bug. The sheets won't sew with
any tolerance, I get PK_ERROR_bodies_dont_knit with 1.0e-5 but
anything larger returns PK_ERROR_non_manifold: please take a look.

Version: 12.0.190
Parameters:
	gap_width_bound: 1.0e-5, or 5.0e-5 or 2.5e-4
	options: all defaults

PK_CURVE_make_bcurve

Subject: FR0472 : PK_CURVE_make_bcurve / Customer / HOT!!!

When the customer peforms IGES out on this part it crashes in
Parasolid. I traced the fault to a call to PK_CURVE_make_bcurve.

Version: 12.0.190
File: body.x_t
Range: [ 0.3657327632, 1.3267326732 ]  
     (returned from PK_EDGE_find_interval (edge ID is 632).
Cubic: TRUE
Non-rational: TRUE
tolerance: 1.0e-6

PK_BCURVE_make_matched

In this example the curves are all orphan B-curves that the user has saved using PK_DEBUG_transmit.

Subject: FR1472 : PK_BCURVE_make_matched / Internal / High Priority

PK_BCURVE_make_matched fails with PK_ERROR_bad_curves. Why?

Version: 12.0.190
Data: curves.x_b 

 

[Back to top of page]