################################################################################
<functions>

"get_uv_units"
function  : Get units for parameters 'u' and 'v' of curves and surfaces.
parameter : integer 'entity_type', see function decode_ps_type()
result    : group of strings
            { <unit_u>, <unit_v> } ,    unit_u, unit_v = "mm" or "deg"   
example   : units = get_uv_units (4002)    Result: { "deg", "mm" }

"get_dummy_object"
function  : Get an object, which is only a dummy.
            This object will be recognized as dummy by Bea_object.is_dummy_object.
parameter : -
result    : Bea_object
example   : dummy = get_dummy_object()

"get_xy_plane"
function  : Get the global xy_plane in the currently active model.
parameter : -
result    : Bea_object of type 'ske_plane_o'
example   : xy = get_xy_plane()

"decode_ps_type"
function  : Convert entity types (int) into string.
parameter : integer
result    : string
            ---------------------------------------------
            type     |  string
            ---------------------------------------------
            points   |  
            2501     |  point               
                     |
            curves   |
            3001     |  line                
            3002     |  circle              
            3003     |  ellipse             
            3004     |  intersection        
            3005     |  parametric          
            3006     |  spline              
            3007     |  foreign             
            3008     |  constant parameter  
            3009     |  trimmed             
                     |
            surfaces |
            4001     |  plane               
            4002     |  cylinder            
            4003     |  cone                
            4004     |  sphere              
            4005     |  torus               
            4006     |  parametric          
            4007     |  blending            
            4008     |  offset              
            4009     |  swept               
            4010     |  swung               
            4011     |  foreign             
            ---------------------------------------------

example   : name = decode_ps_type (2501)     Result: "point"

"geo_of_part"
function  : Give a group with edges of user "single_part"
parameter : user of type "single_part"
result    : group with edges like { <line>, <circle>, <ellips>, ... }
            line  : {"line"  , <id>, <start>, <end>}
            circle: {"circle", <id>, <start>, <end>, <center>, <radius>}
            ellips: {"ellips", <id>, <start>, <end>, <center>, <maj-axis>,
                      <min-axis>, <maj-radius>, <min-radius> }

"number_of_edges"
function  : Get number of edges of a feature udo.
parameter : feature udo (single_part, assembly, primitive_form_feature)
result    : integer
example   : `Object has ` [number_of_edges(sweep_1)] `edges.` nl
            Result: Object has 105 edges.

"number_of_faces"
function  : Get number of faces of a feature udo.
parameter : feature udo (single_part, assembly, primitive_form_feature)
result    : integer
example   : `Object has ` [number_of_faces(sweep_1)] `edges.` nl
            Result: Object has 105 faces.

"number_of_tags"
function  : Get number of entities of a feature udo.
parameter : feature udo (single_part, assembly, primitive_form_feature)
result    : integer
example   : `Object has ` [number_of_tags(sweep_1)] `edges.` nl
            Result: Object has 105 entities.

"number_of_bodies"
function  : Get number of bodies of a feature udo.
parameter : feature udo (assembly)
result    : integer
example   : `Object has ` [number_of_bodies(assembly_1)] `edges.` nl
            Result: Object has 105 bodies.

"popup_massprops"
function  : Show mass properties of a feature udo in a popup.
parameter : feature udo (single_part, assembly, primitive_form_feature)
result    : -
example   : popup_massprops ("sphere_3")

"all_sketchplanes_active"
function  : Check if temporarily all sketchplanes were set active.
parameter : -
result    : -
example   : all_active = all_sketchplanes_active()

"set_all_sketchplanes_active"
function  : Temporarily set all sketchplanes active. Afterwards
            always call reset_all_sketchplanes_active().
parameter : -
result    : -
example   : set_sketchplanes_active()
            // ... do something, e.g. select objects
            reset_sketchplanes_active()

"reset_all_sketchplanes_active"
function  : Restore normal behaviour (after set_all_sketchplanes_active).
parameter : -
result    : -
example   : see function set_all_sketchplanes_active()


################################################################################
<type attributes>

"Bea_object"
.  "tag"
               "integer"
               "Get the entity tag. Only valid for feature udos"
               "(single_part, assembly, primitive_form_feature)"
.  "is_assembly"
               "boolean"
               "Check if the object is an assembly."
.  "is_body"
               "boolean"
               "Check if the object is a body."
.  "is_dummy_object"
               "boolean"
               "Check if the object is a dummy object."
.  "is_solid_body"
               "boolean"
               "Check if the object is a solid body."
.  "is_sheet_body"
               "boolean"
               "Check if the object is a sheet body."
.  "is_feature_udo"
               "boolean"
               "Check if the object is a feature udo, i.e. one of"
               "single_part, assembly, primitive_form_feature."
.  "is_single_part"
               "boolean"
               "Check if the object is a single_part feature udo."
.  "is_sub_feature"
               "boolean"
               "Check if the object is the untransformed base_feature."
               "of a feature_udo."
.  "is_instance"
               "boolean"
               "Check if the object is an instance inside an assembly."
.  "is_body_instance"
               "boolean"
               "Check if the object is an instance of a body inside"
               "an assembly."
.  "is_assembly_instance"
               "boolean"
               "Check if the object is an instance of an assembly inside"
               "an assembly."
.  "mass"
               "real"
               "Get the mass of an object (gram)."
               "Only valid for feature udos"
               "(single_part, assembly, primitive_form_feature)"
.  "material"
               "string"
               "Get the material of an object."
               "Only valid for feature udos"
               "(single_part, primitive_form_feature)"
.  "box"
               "group of reals"
               "Enquire box containing the object."
               "Return group contains following members:
               "el_1, el_2, el_3    minimal x, y, z"
               "el_4, el_5, el_6    maximal x, y, z"
               "Feature udos: absolute 3D coordinates"
               "2D objects  : coordinates in sketchplane"

.  "center_of_gravity"
               "group of reals"
               "Get the center of gravity of an object."
               "Only valid for feature udos"
               "(single_part, assembly, primitive_form_feature)"
               "Returned group contains absolute 3D coordinates."
.  "massprops"
               "group"
               "Get the mass properties of an object."
               "Only valid for feature udos"
               "(single_part, assembly, primitive_form_feature)"
               "Returns group contains following entries:"
               "el_1       : Material"
               "el_2       : Density"
               "el_3       : Periph"
               "el_4       : Amount (volume)"
               "el_5       : Mass"
               "el_6,7,8   : Cofg"
               "el_9,10,11"
               "  12,13,14"
               "  15,16,17 : Tensor of inertia"

"D3prt_update_rec"
.  "data"
               "group"
               "Parasolid update properties"

################################################################################
<type input>

"part_info"
 { <material>, <face color>, <edge color>, <representation>, <suppressed> }

 <material>           string        e.g. "St33"
 <face color>         group         {<r>,<g>,<b>}
 <edge color>         group         {<r>,<g>,<b>}
 <representation>     integer       (0-4)
                                     0 = pale
                                     1 = pure
                                     2 = glossy
                                     3 = strong glossy
                                     4 = transparent
 <suppressed>         boolean       true = invisible

 <r>                  integer       (0-255) red
 <g>                  integer       (0-255) green
 <b>                  integer       (0-255) blue

"update_rec"
 { <boolean: allways use color and name from parasolid attribute> }

################################################################################
<hide actions>
"cr_cg_line_pg_curve"
"cr_cg_line_from_pg_surface"
"cr_cg_plane_pg_surface"
"cr_cg_point_pg_vertex"
"unrestricted_depth"
"restricted_depth_cr"
"fu_boolold"
"fu_sweold"
"fu_offold"
"fu_fill"
"loc_class4_2d_point"
"loc_class6_2curve"
"ske_plane_pl_li_pt"
"input_3d"
"part_extrusion"
"part_concept"
"cr_vector6"
"part_free_implicit"
