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:
Your reference number
The failing Parasolid function or problem area
Priority (see below)
Source of fault report (e.g. customer report or internal testing)
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.
Your report should contain as much information as is necessary to reproduce
the fault. The minimum amount of information is:
Parasolid version and build number
Text description of the failure. If the failure is not obvious then a
clear description of what the problem appears to be and why it is a problem
for you is preferred.
Parasolid node identifiers for every entity referred to in the fault, and the
body in which they are contained.
All parameters (in as much precision as possible) and tokens passed to the
function with the parameters clearly labelled. Tokens and errors should be
referred to by their symbolic name, e.g. PK_boolean_subtract_c rather than
their integer value.
Values of any global parameters (such as local checking or non-manifold topology)
set to non-default values when the function is called and which may affect
the behaviour of the function.
Parasolid Transmit files, transmitted immediately before the call to the
Parasolid function in question. These transmit files will preferably in
neutral binary format (text files are acceptable but machine-dependent binary
transmit files are not).
Optional information that is useful to us:
Your application name and version
A piece of LISP which reproduces the problem
A part file from your system (useful for verifying that the fix works in
your product and sometimes helpful for our investigation).
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.
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.
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.
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.
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.
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.
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
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