Flick Function Descriptions   

<<< Kernel Interface Typedefs Chapters Special Kernel Interface Routines >>>

Contents

[back to top]


D.1 Introduction

This appendix describes all the FLICK functions currently available in KID. The names of all FLICK functions, both support functions and KI functions, are reserved words and should not be overwritten.

[back to top]

D.1.1 Documentation conventions

[back to top]


D.2 Support functions

alloc - KI support function to create workspace

 

Syntax:

( alloc int ) => address

Args:

count

Returns:

workspace

Notes:

The count is the number of integers the workspace will store. The workspace returned is initialized to zeros.

allow_ifails - KI support function to control ifail error handling

 

Syntax:

( allow_ifails ( < string > token ... ) expression )

Args:

( KI_name valid_ifail ... ) lisp_programme

Returns:

expression_value

Initially the only valid ifail is zero ( KI_no_errors ), any other ifail returned will generate a lisp error. The set of valid ifails can be extended by including those which are to be allowed in the valid ifail specification either for all KI calls or if a KI function name is given as the first element of the valid ifail list only for the named KI function. Calls to allow_ifails can be nested. Once an ifail has been made valid it cannot subsequently be disallowed.

To allow all ifails the ( pseudo ) token KI_all_ifails is provided.

To indicate all but the specified ifails use a negative sign ( e.g. - KI_not_a_tag ).

 

Note: Any KI call which returns an ifail will return all its other arguments as nulls and zeros.

Examples

( allow_ifails ( KI_missing_geom ) ( IDSOFF 99 ))
--- call IDSOFF but don´t produce an error if the face lacks geometry
( allow_ifails ( STOMOD KI_modeller_not_started ) ( STOMOD ))
--- stop the modeller but don´t complain if it isn´t started
( allow_ifails ( KI_roll_is_off ) ( my_strict_programme ))
--- allow KI_roll_is_off errors, but no others
( allow_ifails ( - KI_corrupt_file ) ( my_liberal_programme ))
--- allow all errors except KI_corrupt_file
( allow_ifails ( KI_all_ifails ) ( my_careless_programme ))
--- don´t complain about anything

For greater flexibility of use the valid ifail specification may be a list of valid ifail specifications, as in the following example:

( allow_ifails ( ( IDSOFF KI_missing_geom KI_not_a_tag )
    ( IDCOEN KI_missing_geom KI_not_a_tag )
    ( setq v1 ( IDSOFF 99 ) )
    ( setq v2 (IDCOEN 100 ) ) )

This function does not evaluate its arguments, which is more convenient for normal use but means that it is difficult to pass arguments to it inside another function. The support function valid_ifails does evaluate its arguments and is intended for use inside user functions rather than directly.

empty - KI support function to turn an array into a lisp list

 

Syntax:

( empty int type address ) => ( values ... )

Args:

count data_type array

Returns:

( data ... )

Example:

( empty 6 tag @12345 )

 

Notes:

This function unpacks arrays and generates lisp lists. The supported types are: logical, char, int, double, string, vector, tag.

If 0 values are requested the returned list is always nil. The inverse function to 'empty' is 'fill'.

enlist - KI support function to turn the lisp lists into KI lists

 

Syntax:

( enlist values <token> ) => tag

Args:

data < type . TYLITG >

Returns:

KI_list

KI calls:

CRLIST, PTTGLI, PTINLI, PTRLLI

Example:

( enlist '( 3.0 4 5.3 ) 'TYLIRL )

( enlist '( 7 8 9 ) ) ( enlist 7 )

 

Notes:

This function turns the given values into a sensible KI list.

The list type is an optional argument which defaults to TYLITG.

The empty list generates the null tag (0). Atomic data is treated as a list of one element.

Tag lists with a single element are not converted (since the KI will accept these as-is).

The inverse function to 'enlist' is 'unlist'.

fill - KI support function to turn lists into arrays

 

Syntax:

( fill data_type '( values ... ) ) => address

Args:

data_type data_list

Returns:

array_address

Example:

( fill vector '( ( 0 0 0 ) ( 0 0 1 ) ) )

 

Notes:

The array created may be passed to the KI, its value is an address.

The possible data types are: logical, char, int, double, string, vector, tag. When given an empty list the function produces a valid pointer to a zero word. This is because the KI will not accept a null pointer (@0) as a valid argument.

The inverse function to 'fill' is 'empty'.

ifails - KI support function to map ifails to ints

 

Syntax:

( ifails int ) => string

( ifails string ) => int

Args:

value

Returns:

corresponding_value

Example:

( ifails 'KI_run_time_error )

( ifails 947 ) ( ifails '( 947 948 ))

 

Notes:

When applied to integers this returns the equivalent symbolic ifail.

When applied to symbols it returns the equivalent integer.

When applied to lists it acts on each element.

When applied to invalid integers it gives the value UNKNOWN_IFAIL. When applied to invalid symbols it gives the value -1, and in this case the KI itself will raise an error.

timing - controls output of timing data for KI function calls

 

Syntax:

( timing <0|1|2|t|nil> ) => int

Args:

( timing <level> )

Returns:

current_level

token - KI support function to map tokens to ints

 

Syntax:

( token int ) => string

( token string ) => int

Args:

value

Returns:

corresponding_value

Example:

( token 'RTLOSX )

( token 15301 ) ( token '( TYTOFA TYGESU ))

 

Notes:

When applied to integers this returns the equivalent symbolic token.

When applied to symbols it returns the equivalent integer.

When applied to lists it acts on each element.

When applied to invalid integers it gives the value UNKNOWN_TOKEN. When applied to invalid symbols it gives the value -1, and in this case the KI itself will raise an error.

unlist - KI support function to turn KI lists into lisp lists

 

Syntax:

( unlist tag <int> <token> )

Args:

list <length . nil> <list_type . TYLITG>

Returns:

( data ...)

KI calls:

GTRLLI, GTTGLI, GTINLI, COLIST, DELENT

Example:

( unlist 77 5 'TYLIRL )

( unlist 88 nil 'TYLIIN ) ( unlist 8 )

 

Notes:

The list length and list type are optional arguments. If the length is supplied as nil the whole list is returned. The default length is nil, the default list type is TYLITG. The null tag (0) returns the nil list regardless. 'unlist' deletes the list after unpacking it using DELENT. The inverse function to 'unlist' is 'enlist'.

valid_ifails - suppress lisp error generation from Parasolid errors

 

Syntax:

( valid_ifails list expression )

Args:

ifail_spec code_to_evaluate

Returns:

result of evaluating expression

 

Notes:

ifail spec='(<KI_function_name><->KI_ifail_name<->KI_ifail_name ...) or '(ifail_spec ifail_spec ...)

The presence of KI_ifail_name in the list suppresses errors from that ifail, unless it is preceded by '-' when all ifails but that ifail will be suppressed. The presence of a KI_function_name at the head of the list causes the rest of the list to be applied to calls to that function only.

The special ifail code KI_all_ifails is provide to suppress or unsuppress all ifails.

This function is primarily intended for use inside other functions. The fact that it evaluates its arguments means that for direct use they must normally be quoted. The function allow_ifails does not evaluate its arguments and is the function which should normally be used directly

[back to top]


D.3 KI Functions

ADPAPE - KI function to add parameter (line) to B-curve or B-surface

 

Syntax

( ADPAPE tag double int ) => ( ifail )

Args

entity parameter uorv

Returns

( ifail )

 

Syntax

( adpape tag double token ) => t

Args

entity parameter uorv

Returns

t

Example

( adpape 20 0.3 'PAPRUP )

 

Note

The geometry must not be attached to any topology.

ADVXED - KI function to add a new vertex to a given edge

 

Syntax

( ADVXED tag vector ) => ( tag tag ifail )

Args

edge point

Returns

( newvrx newedg ifail )

 

Syntax

( advxed tag vector ) => ( tag tag )

Args

edge point

Returns

( newvrx newedg )

 

Example

( advxed (e1 tag) '(2.5 0 5 ))

APPTRA - KI function to apply a transformation

 

Syntax

( APPTRA tag tag ) => ( ifail )

Args

entity transf

Returns

( ifail )

 

Syntax

( apptra tag tag ) => tag

Args

entity transf

Returns

entity

Example

( apptra ( b0 tag ) 425 )

( apptra ( list ( b0 tag ) ( c0 tag )) 425 )

 

Note

Mirroring and scaling transformations cannot be applied to assemblies or instances.

ATGETO - KI function to attach geometry to topology

 

Syntax

( ATGETO int address address int address ) => ( ifail )

Args

ntopol topology senses ngeom geometry

Returns

( ifail )

 

Syntax

( atgeto ( tag ... ) <( logical ... )> ( tag ... ) ) => t

Args

( topology ... ) <( senses ... )> ( geometry ... )

Returns

t

ATTGEO - KI function to attach geometry to topology

 

Syntax

( ATTGEO tag tag logical ) => ( ifail )

Args

topol geom sense

Returns

( ifail )

 

Syntax

( attgeo tag tag logical ) => t

Args

topol geom sense

Returns

t

BLECHK - KI function to check the local validity of unfixed blends

 

Syntax

( BLECHK tag int ) => ( int tag tag tag ifail )

Args

edge level

Returns

( n_invalid code_list bad_edge_list tag_list ifail )

 

Syntax

( blechk ( tag ... ) int ) => ( ( token ... ) ( tag ... ) ( tag ... ) )

Args

'( edge ... ) < level . 1 >

Returns

( ( error edge topol ) ... )

Example

( blechk '( 22 34 45 ) 2 )

( blechk ( list ( e1 tag ) ( e2 tag) ( e3 tag)) 2 )

BLECRB - KI function to define a rolling ball blend or chamfer

 

Syntax

( BLECRB tag int double double int address address ) => ( tag int ifail )

Args

edge type range1 range2 nprops prop_array tag_array

Returns

( affected_edges n_edges ifail )

 

Syntax

( blecrb tag int ( double <double> ) ( ( token value ) ... ))

Args

'( edge ... ) type ( range1 <range2> ) ( property value ) ...

Returns

( affected_edge ... )

Example

( blecrb '( 20 22 24 ) 1 1.75 '( ( BLECCL 42 ) ( BLECPR ) ) )

( blecrb ( list ( e1 tag ) ( e2 tag ) ( e3 tag ) 1 1.75 '(( BLECCL 42 ) ( BLECPR )))

BLECVR - KI function to define a variable radius blend

 

Syntax

( BLECVR tag int address address int address address ) => ( tag int ifail )

Args

edge n_points vector_arr real_arr n_props prop_arr tag_arr

Returns

( affected_edges n_edges ifail )

 

Syntax

( blecvr tag ( vector ... ) ( (double <double>) ... ) ( ( token value ) ... ))

Args

edge '( position ... ) '( ( lradius rradius ) ... ) '( ( property value ) ... )

Returns

( affected_edge ... )

 

If only one radius is supplied at each point for both left and right sides this need not be put into a sublist.

Example

( blecvr '( 20 ) '( ( 0 0 1 ) ( 0 0 5 )) '( 1.75 3.5 )

'( ( BLECTL 0.001 ) ( BLECLI ) ( BLECPR )))

BLEENQ - KI function to enquire blend parameters

 

Syntax

( BLEENQ tag ) => ( tag tag int double double int tag tag ifail )

Args

edge

Returns

( face1 face2 type_code range1 range2 n_props props values ifail )

 

Syntax

( bleenq tag ) => ( tag tag ( int ... ) ( real ... ))

Args

edge

Returns

( face1 face2 type range1 range2 ( property value ... ) ... )

Example

( bleenq 56 )

BLEFIX - KI function to fix blends in a body

 

Syntax

( BLEFIX tag ) => ( int tag tag int tag tag ifail )

Args

body

Returns

( n_blend_faces blend_faces underlying_faces error edge topol ifail )

 

Syntax

( blefix tag ) => ( ( tag ... ) ( tag ... ) )

Args

body

Returns

( error edge topol ( blend_face ( underlying_face ... )) ... )

Example

( blefix ( b0 tag ))

 

Note

If no errors are found then KI_FALSE will be returned.

BLEFXF - KI function to create a blend between specified faces

 

Syntax

( BLEFXF tag tag logical logical int address address ) => ( int tag int tag tag ifail )

Args

left_wall right_wall left_rev right_rev nopts opts opt_data

Returns

( status status_data nblends blends underlying_data ifail )

 

Syntax

( blefxf tag tag logical logical <'(( token tag|double ... ) ... )>) =>

( token ( <tag ...> ) ( tag ( tag ... ) ) <...> )

Args

'( left_face ... ) '( right_face ... ) left_rev right_rev <'(( option data ) ...)>

Returns

( status ( <data ...> ) ( blend ( underlying ... ) ) <...> )

Example

( blefxf 80 75 t t '( FXFTCB 0.5 ))

BLEREM - KI function to remove blend attributes

 

Syntax

( BLEREM tag ) => ( ifail )

Args

edges

Returns

( ifail )

 

Syntax

( blerem ( tag ... )) => t

Args

'( edge ... )

Returns

t

Example

( blerem '( 20 22 24 ))

BLNAFF - KI function to find edges and faces affected by blend

 

Syntax

( BLNAFF tag ) => ( tag int tag int ifail )

Args

edge

Returns

( edge_list length face_list length ifail )

 

Syntax

( blnaff tag ) => (( tag ... ) ( tag ... ))

Args

edge

Returns

(( edge ... ) ( face ... ))

BLNDVX - KI function to blend vertices on sheets and wires

 

Syntax

( BLNDVX tag double ) => ( tag tag ifail )

Args

vertices radius

Returns

( new_edges new_vertices ifail )

 

Syntax

( blndvx tag double ) => ( ( tag ... ) ( tag ... ) )

Args

vertices radius

Returns

( ( new_edge ... ) ( new_vertex ... ) )

Example

( blndvx 19 3.2 )

( blndvx '( 19 21 23 ) 1.4 )

BOPBYS - KI function to do a global or local boolean operation on bodies

 

Syntax

( BOPBYS tag tag int address address) => (tag int ifail)

Args

targets tools n_opts options_arr data_arr

Returns

( bodies n_body ifail )

 

Syntax

( bopbys ( tag ... ) ( tag ... ) ( ( token <tag> ...) ... )) => ( tag ... )

Args

targets tools '( ( option <topol> ... ) ... )

Returns

( body ... )

Example

( bopbys 20 '( 22 24 26 ) '((BOOPSU) (BOOPME )))

( bopbys ( b0 tag ) ( list ( b1 tag ) ( b2 tag ) ( b3 tag )) '((BOOPSU) (BOOPME)))

CCLIST - KI function to concatenate two lists, tail onto head

 

Syntax

( CCLIST tag tag ) => ( ifail )

Args

head tail

Returns

( ifail )

 

Syntax

( cclist tag tag ) => tag

Args

head tail

Returns

head

CHCKEN - KI function to check an entity

 

Syntax

( CHCKEN tag int int address ) => ( tag tag tag int ifail )

Args

entity max_faults n_opts opt_arr

Returns

( list_of_tokens list_of_tags list_of_tags int ifail )

 

Syntax

( chcken tag <int> ( token ... )) => (( token <tag> <vector> ) ... )

Args

entity <n_errors> '( <options> ... )

Returns

(( error <entity> <position> ) ... )

 

Note

If no errors are found then KI_no_errors will be returned.

CLABYS - KI function to detect clashing bodies

 

Syntax

( CLABYS tag tag tag tag logical ) => ( tag tag int ifail )

Args

body transform body transform full

Returns

( face_list face_list n_clashes ifail )

 

Syntax

( clabys tag tag tag tag logical ) => (( tag ... ) ( tag ... ))

Args

body transform body transform full

Returns

(( face ... ) ( face ... ))

Example

( clabys 125 nil 145 nil t )

 

Note

Whereas CLABYS may return two lists of faces or just two faces, clabys always returns two (LISP) lists of faces. If the bodies do not clash the function returns nil.

CLENEN - KI function to find the closest point between two entities/entity lists

 

Syntax

( CLENEN tag tag int address address ) =>

( double tag tag vector vector address address tag int tag int ifail )

Args

entity_list entity_list nopts optlist optdata

Returns

( distance entity_list entity_list point1 point2 params1 params2 prop1 nprop1 prop2 nprop2 ifail )

 

Syntax

( clenen tag tag <( ( token double ... ) ) ... )> ) =>

( double ( tag ... ) ( tag ... ) vector vector ( double double ) ( double double )

( token ... ) ( token ... ) )

Args

'( entity ... ) '( entity ... ) < optlist >

Returns

( distance ( entity sub_topol ) ( entity sub_topol ) point1 point2

( param1 param1 ) ( param2 param2 ) ( token ... ) ( token ... ) )

Example

( clenen 21 79 )

( clenen '( 21 32 ) '( 34 45 ) '( ( CLOPP1 2.0 2.0 ) ) )

 

Note

The parametrization will depend upon the type of sub_topology but, with clenen, it will always be decoded as two doubles. The KI manual should be consulted to determine which parameters are meaningful for given sub_topologies.

CLENEX - KI function to find the closest point between entities

 

Syntax

( CLENEX tag tag int address address ) =>

( int tag tag tag tag tag tag tag tag tag tag tag ifail )

Args

entity1_list entity2_list nopts optlist optdata

Returns

( num_minima min_distances topol1_lists topol2_lists point1_list point2_list parms1_lists parms2_lists prop1_lists nprop1_list prop2_lists nprop2_list ifail )

 

Syntax

( clenex tag tag <( ( token double ... ) ... )> ) =>

( double ... ( ( tag ... ) ... ) ( ( tag ... ) ... ) ( vector ... ) ( vector ... ) ( ( double double ) ... ) ( ( double double ) ... ) ( ( <token> ... ) ... ) ( ( <token> ... ) ... ) )

Args

'( entity ... ) '( entity ... ) < optlist >

Returns

( ( distance ... ) ( ( entity1 sub_topol ) ... ) ( ( entity2 sub_topol ) ... ) ( point1 ... ) ( point2 ... ) ( ( param11 param12 ) ... ) ( ( param21 param22 ) ... ) ( ( <token1> ... ) ... ) ( ( token2 ... ) ... ) )

Example

( clenex 21 79 )

( clenex 21 79 '( CLOPFA ) )

( clenex '( 21 32 ) '( 34 45 ) '( ( CLOPP1 2.0 2.0 ) ) )

 

Note

The parametrization will depend upon the type of sub_topology but, with clenex, it will always be decoded as two doubles. The KI manual should be consulted to determine which parameters are meaningful for given sub_topologies.

CLPTEN - KI function to find the closest point on an entity to a given point

 

Syntax

( CLPTEN vector tag int address address ) =>

( double tag vector address tag int ifail )

Args

point entity_list nopts opt_list opt_data

Returns

( min_dist topol_list soln_pt parms props nprops ifail )

 

Syntax

( clpten vector tag <( ( token ( double ... ) ) ... )> ) =>

( double ( tag ... ) vector ( <double> <double> ) ( <token> ... ) )

Args

point entity_list < optlist >

Returns

( min_dist topol_list soln_pt parms prop_list )

Example

( clpten '( 3 3 8 ) ( b0 tag ) '((CLOPUP 4) (CLOPTL 0.1)))

CLPTEX - KI function to find the closest point(s) on an entity to a given point

 

Syntax

( CLPTEX vector tag int address address ) => ( int tag tag tag tag tag tag ifail )

Args

point entity_list nopts opt_list opt_data

Returns

( num_minima min_distance topol_lists soln_points parms_lists prop_lists nprops_list ifail )

 

Syntax

( clptex vector tag <( ( token ( double ... ) ... )> ) =>

( ( double ... ) ( ( tag ... ) ... ) ( vector ... ) ( ( double double ) ... ) ( ( <token> ... ) ... ) )

Args

point entity_list < optlist >

Returns

( min_distances topol_lists soln_points parms_lists prop_lists )

Example

( clptex '( 3 3 8 ) ( b0 tag ) '((CLOPUP 4) (CLOPTL 0.1)))

CLPTFA - KI function to find the closest point on a face to a given point

 

Syntax

( CLPTFA vector tag int address address ) => ( vector address tag logical ifail )

Args

point face nopts optlist optdata

Returns

( fpoint params topol ortho ifail )

 

Syntax

( clptfa vector tag <( ( token double ... ) ... )> ) =>

( vector ( double double ) tag logical )

Args

point face < optlist >

Returns

( fpoint svec topol ortho )

Example

( clptfa '( 2 2 2 ) ( f0 tag ) )

( clptfa '( 2 2 2 ) ( f0 tag ) '( CLOPPR 2.0 2.0 ) )

COFEAT - KI function to count the entities in a feature

 

Syntax

( COFEAT tag ) => ( int ifail )

Args

feature

Returns

( n_items ifail )

 

Syntax

( cofeat tag ) => int

Args

feature

Returns

n_items

COLIST - KI function to count the items in a list

 

Syntax

( COLIST tag ) => ( int ifail )

Args

list

Returns

( n_items ifail )

 

Syntax

( colist tag ) => int

Args

list

Returns

n_items

COMENT - KI function to comment the journal file

 

Syntax

( COMENT int string ) => ( ifail )

Args

nchars comment

Returns

( ifail )

 

Syntax

( coment string ) => t

Args

comment

Returns

t

Example

( coment "end of test" )

COPYEN - KI function to copy an entity

 

Syntax

( COPYEN tag ) => ( tag ifail )

Args

entity

Returns

( new_entity ifail )

 

Syntax

( copyen tag ) => tag

Args

entity

Returns

new_entity

CRATDF - KI function to create a new attribute type definition

 

Syntax

( CRATDF int string int address address ) => ( tag ifail )

Args

namlen name nopts opt_array opt_data

Returns

( att_type ifail )

 

Syntax

( cratdf string token '( token ... ) <'( token ... )> ) => tag

Args

name class owners <fields>

Returns

att_type

Example

(cratdf 'Mass 'RQAC02 '(TYTOAS TYTOIN TYTOBY))

CRBSPC - KI function to create a B-curve from B-spline data

 

Syntax

( CRBSPC int int int address address int address ) => ( tag ifail )

Args

dim order ncontrol controls knots nprops properties

Returns

( B-curve ifail )

 

Syntax

( crbspc int int '( real ... ) '( real ... ) '( token )) => tag

Args

dim order '( control... ) '( knot ... ) '( property )

Returns

B-curve

Example

( crbspc 3 4 '((0 0 0) (0 0 1) (0 1 2)) '( 0 1 1.5 3 ) '(PAPRPE))

 

Note

The list of control points is flattened before use, so any embedded list or vector bracketing may be used.

CRBSPS - KI function to create a B-surface from B-spline data

 

Syntax

( CRBSPS int int int int int address address address int address ) => ( tag ifail )

Args

dim uord vord ncol nrow controls uknots vknots nprops props

Returns

( B-surface ifail )

 

Syntax

( crbsps int int int int int '(( double ... ) ... ) '( double ... ) '( double ... )

'( token ... )) => tag

Args

dim uord vord ncol nrow '( control ...)'( uknot ... ) '( vknot ...) '( property ... )

Returns

B-surface

Example

( crbsps 3 3 3 6 6 '(( 0 0 0 ) ( 0 0 1 ) ...... ) '( 0 0.2 0.5 0.8 1 1.2 1.5 1.8 2 ) '( 0 0.2 0.5 0.8 1 1.2 1.5 1.8 2 ) nil )

 

Note

The controls points are flattened before use and so any embedding of brackets may be used.

CRBXSO - KI function to create a box solid (cuboid)

 

Syntax

( CRBXSO vector vector double double double ) => ( tag ifail )

Args

centre axis width length height

Returns

( body ifail )

 

Syntax

( crbxso vector vector double double double ) => tag

Args

centre axis width length height

Returns

body

Example

( crbxso '( 0 0 0 ) '( 0 0 1) 5 5 5 )

CRBYGE - KI function to create a body from geometry

 

Syntax

( CRBYGE tag int address address ) => ( tag ifail )

Args

geometry nopts opt_list opt_data

Returns

( wire_or_sheet ifail )

 

Syntax

( crbyge tag <'( ( token double double ) <...> )> ) => tag

Args

geometry <'( ( option start end ) <( option start end )> ) )>

Returns

wire_or_sheet

Example

( crbyge 17 )

( crbyge 17 '( CBOPUR 0.0 0.1 ) )

( crbyge 17 '( ( CBOPUR 0.0 1.0 ) ( CBOPVR 0.0 3.0 ) ) )

CRCAPO - KI function to create a Cartesian point

 

Syntax

( CRCAPO double double double ) => ( tag ifail )

Args

x y z

Returns

( point ifail )

 

Syntax

( crcapo vector ) => tag

Args

coords

Returns

point

CRCICU - KI function to create a circular curve

 

Syntax

( CRCICU vector vector double ) => ( tag ifail )

Args

centre axis radius

Returns

( circle ifail )

 

Syntax

( crcicu vector vector double ) => tag

Args

centre axis radius

Returns

circle

Example

( crcicu '( 0 0 0 ) '( 0 1 0 ) 0.5 )

CRCMPC - KI function to join B-curves into a single curve

 

Syntax

( CRCMPC int address ) => ( tag ifail )

Args

ncurves curve_array

Returns

( B-curve ifail )

 

Syntax

( crcmpc '( tag ... )) => tag

Args

'( B-curve ... )

Returns

B-curve

CRCOSO - KI function to create a conical solid

 

Syntax

( CRCOSO vector vector double double double ) => ( tag ifail )

Args

centre axis base_rad top_rad height

Returns

( cone ifail )

 

Syntax

( crcoso vector vector double double double ) => tag

Args

centre axis base_rad top_rad height

Returns

cone

CRCOSU - KI routine to create a conical surface

 

Syntax

( CRCOSU vector vector double double ) => (tag ifail)

Args

position axis_direction radius_at_position half-angle

Returns

( cone ifail )

 

Syntax

( crcosu vector vector double double ) => tag

Args

position axis_direction radius_at_position half-angle

Returns

cone

CRCPCU - KI function to create a constant parameter line curve on a surface

 

Syntax

( CRCPCU tag int double ) => ( tag ifail )

Args

surface u_or_v param

Returns

( curve ifail )

 

Syntax

( crcpcu tag token param ) => tag

Args

surface u_or_v param

Returns

curve

Example

( crcpcu 17 'PAPRUP 0.1 )

CRCUPC - KI function to create a B-curve from a general curve

 

Syntax

( CRCUPC tag address ) => ( tag int ifail )

Args

curve bounds_array

Returns

( B-curve nseg ifail )

 

Syntax

( crcupc tag vector vector ) => ( tag int )

Args

curve start end

Returns

( B-curve nseg )

CRCYSO - KI function to create cylindrical solid

 

Syntax

( CRCYSO vector vector double double ) => ( tag ifail )

Args

centre axis radius height

Returns

( body ifail )

 

Syntax

( crcyso vector vector double double ) => tag

Args

centre axis radius height

Returns

body

CRCYSU - KI function to create cylindrical surface

 

Syntax

( CRCYSU vector vector double ) => ( tag ifail )

Args

position axis radius

Returns

( surface ifail )

 

Syntax

( crcysu vector vector double ) => tag

Args

position axis radius

Returns

surface

CREASS - KI function to create assembly

 

Syntax

( CREASS int ) => ( tag ifail )

Args

type

Returns

( assembly ifail )

 

Syntax

( creass ) => tag

Args

-none-

Returns

assembly

 

Note

There is only one type of assembly and this is defaulted in creass.

CREATT - KI routine to create an attribute

 

Syntax

( CREATT tag tag int address int address int address int string ) => ( ifail )

Args

owners att_type nint int_array nreal real_array nstring int_array nchars string

Returns

( ifail )

 

Syntax

( creatt '( tag ... ) tag '( int ... ) '( double ... ) '( string ... ) ) => t

Args

owners att_type int_list double_list string_list

Returns

t

Example

( creatt 17 133 nil '( 1.0 ) '( density ) )

( creatt '( 17 23 ) 133 '( 1 1 1 ) nil nil )

CREFEA - KI function to create a feature

 

Syntax

( CREFEA int tag ) => ( tag ifail )

Args

type owner

Returns

( feature ifail )

 

Syntax

( crefea token tag ) => tag

Args

type owner

Returns

feature

CREINS - KI function to create an instance of a part within an assembly

 

Syntax

( CREINS tag tag tag int ) => ( tag ifail )

Args

assembly part transform type

Returns

( instance ifail )

 

Syntax

( creins tag tag <tag> ) => tag

Args

assembly part <transform>

Returns

instance

Example

( creins 99 7 )

 

Note

If a transform is not supplied it defaults to the null tag (0) which is interpreted as the identity transform. Also note that there is only one type of instance (TYINPS) and this is always used by creins.

CRELCU - KI function to create an elliptic curve

 

Syntax

( CRELCU vector vector double vector double ) => ( tag ifail )

Args

centre axis major_radius major_axis minor_radius

Returns

( ellipse ifail )

 

Syntax

( crelcu vector vector double vector double ) => tag

Args

centre axis major_radius major_axis minor_radius

Returns

ellipse

CREQSC - KI function to create an equal scaling transformation

 

Syntax

( CREQSC double vector ) => ( tag ifail )

Args

scale centre

Returns

( transform ifail )

 

Syntax

( creqsc double vector ) => tag

Args

scale centre

Returns

transform

CREREF - KI function to create a reflection transform

 

Syntax

( CREREF vector vector ) => ( tag ifail )

Args

position normal

Returns

( transform ifail )

 

Syntax

( creref vector vector ) => tag

Args

position normal

Returns

transform

CREROT - KI function to create a rotation transformation

 

Syntax

( CREROT vector vector double ) => ( tag ifail )

Args

position axis angle

Returns

( transform ifail )

 

Syntax

( crerot vector vector double ) => tag

Args

position axis angle

Returns

transform

CRETFM - KI function to create a general transformation from a given matrix

 

Syntax

( CRETFM address ) => ( tag ifail )

Args

coefficient_array

Returns

( transform ifail )

 

Syntax

( cretfm '( double ... )) => tag

Args

'( transform_coefficients ... )

Returns

transform

 

Note

16 coefficients must be supplied to define the transform.

CRETRA - KI function to create a translation transformation

 

Syntax

( CRETRA vector double ) => ( tag ifail )

Args

direction distance

Returns

( transformation ifail )

 

Syntax

( cretra vector double ) => tag

Args

direction distance

Returns

transform

Example

( cretra '( 0 0 0 ) 2 )

CREXSU - KI function to create an extruded surface

 

Syntax

( CREXSU tag vector logical ) => ( tag ifail )

Args

curve path simplify

Returns

( surface ifail )

 

Syntax

( crexsu tag vector <logical> ) => tag

Args

curve path <simplify . nil>

Returns

surface

CRFASU - KI function to create a surface to fit and attach to face

 

Syntax

( CRFASU tag ) => ( int tag int ifail )

Args

face

Returns

( sf_type surface body_state ifail )

 

Syntax

( crfasu tag ) => ( token tag token )

Args

face

Returns

( sf_type surface body_state )

CRFGCU - KI function to create a foreign geometry curve

 

Syntax

( CRFGCU int string int int address int address ) => ( tag ifail )

Args

keylen key nspace nints ivals nreals rvals

Returns

( curve ifail )

 

Syntax

( crfgcu string <int> <'( int ... )> <'( double ... )> => tag

Args

key <nspace> <'( ival ... )> <'( rval ... )>

Returns

curve

Example

( crfgcu "SDL/helix" )

( crfgcu "SDL/sine" 1 () '( 1.0 2.0 ) )

CRFGSU - KI function to create a foreign geometry surface

 

Syntax

( CRFGSU int string int int address int address ) => ( tag ifail )

Args

keylen key nspace nints ivals nreals rvals

Returns

( surface ifail )

 

Syntax

( crfgsu string <int> <'( int ... )> <'( double ... )> => tag

Args

key <nspace> <'( ival ... )> <'( rval ... )>

Returns

surface

Example

( crfgsu "SDL/franke" )

( crfgsu "SDL/corrugated" 1 '( 1.0 2.0 3.0 ) )

CRINCU - KI function to create intersection curves

 

Syntax

( CRINCU tag tag address ) => ( tag int ifail )

Args

surface surface box_array

Returns

( curve_list n_curves ifail )

 

Syntax

( crincu tag tag <((double...)... )> ) => ( tag ... )

Args

surface surface <box.((-500 -500 -500) (500 500 500))>

Returns

( curve ...)

Example

( crincu 17 18 )

( crincu 17 18 '(( -10 -10 -10 ) ( 10 10 10 )))

( crincu 17 18 '(( -10 10 ) ( -10 10 ) (-10 10 )))

 

Note

The KI box is an array of doubles with all low coords first. The lisp box can be given as two extreme vectors or as 3 intervals. The box argument is optional in crincu. The default is for the whole of the standard size box.

CRKNPA - KI function to create a knitting pattern from a list of bodies

 

Syntax

( CRKNPA tag ) => ( tag tag int tag int tag int ifail )

Args

bodies

Returns

( edges1 edges2 nedges negated n_negated over n_over ifail )

 

Syntax

( crknpa '( tag ... ) ) => ( ( <tag> ... ) ( <tag> ... ) ( <tag> ... ) ( <tag> ... ) )

Args

'( body ... )

Returns

( ( <edge> ... ) ( <edge> ... ) ( <body> ... ) ( <body> ... ) )

Example

( crknpa '(17 91) )

 

Note

The bodies passed to the function must be either solid or sheet bodies. Any leftover bodies have no edges in the pattern.

CRLFPS - KI function to create a B-surface by lofting

 

Syntax

( CRLFPS int address int address address 0 => ( tag ifail )

Args

ncurves curve_array nprops prop_array tag_array

Returns

( B-surface ifail )

 

Syntax

( crlfps '( tag ... ) '( token <real> ... ) ... ) => tag

Args

'( curve ... ) '( prop <data> ) ...

Returns

B-surface

Example

( crlfps '( 18 95 43 50 ) '( PAPRPE ) '( PAPRIS 1 ))

 

Note

crlfps has a variable number of arguments consisting of several lists, each containing a token and (where appropriate) associated real data.

CRLICU - KI function to create a linear curve

 

Syntax

( CRLICU vector vector ) => (tag ifail)

Args

position direction

Returns

( line ifail )

 

Syntax

( crlicu vector vector ) => tag

Args

position direction

Returns

line

 

Note

Creates a line through the given point in the given direction.

CRLIST - KI function to create an (empty) list entity

 

Syntax

( CRLIST int ) => ( tag ifail )

Args

type

Returns

( list ifail )

 

Syntax

( crlist token ) => tag

Args

type

Returns

list

Example

( crlist 'TYLITG )

 

Note

The support function enlist performs convenient conversion between KI lists and lisp lists.

CRMINO - KI function to create a minimum object

 

Syntax

( CRMINO ) => ( tag ifail )

Args

- none -

Returns

( body ifail )

 

Syntax

( crmino ) => tag

Args

- none -

Returns

body

CROFSU - KI function to create an offset surface

 

Syntax

( CROFSU tag double ) => ( tag ifail )

Args

underlying_surface distance

Returns

( surface ifail )

 

Syntax

( crofsu tag double ) => tag

Args

underlying_surface distance

Returns

surface

Example

( crofsu 84 12.0 )

CRPLSU - KI function to create a planar surface

 

Syntax

( CRPLSU vector vector ) => ( tag ifail )

Args

position normal

Returns

( surface ifail )

 

Syntax

( crplsu vector vector ) => tag

Args

position normal

Returns

surface

CRPRSO - KI function to create a prismatic solid

 

Syntax

( CRPRSO vector vector double int double ) => ( tag ifail )

Args

centre axis radius nsides height

Returns

( body ifail )

 

Syntax

( crprso vector vector double int double ) => tag

Args

centre axis radius nsides height

Returns

body

CRPWPC - KI function to create a B-curve from piecewise data

 

Syntax

( CRPWPC int int int address int ) => ( tag ifail )

Args

dim ord nseg coeff_array basis

Returns

( B-curve ifail )

 

Syntax

( crpwpc int int int '( vector ... ) token ) => tag

Args

dim ord nseg '( point .. ) basis

Returns

B-curve

CRPWPS - KI function to create a B-surface from piecewise data

 

Syntax

( CRPWPS int int int int int address int ) => ( tag ifail )

Args

dim uord vord ncol nrow coeff_array basis

Returns

( B-surface ifail )

 

Syntax

( crpwps int int int int int '( vector ... ) token ) => tag

Args

dim uord vord ncol nrow '( point ... ) basis

Returns

B-surface

CRRVSU - KI function to create a surface of revolution

 

Syntax

( CRRVSU tag vector vector int address address) => (tag ifail)

Args

curve point axis n_opts options real_lists

Returns

( surface ifail )

 

Syntax

( crrvsu tag vector vector '( ( token <real> <real> ) ... )) => tag

Args

curve point axis '( ( option data ... ) ... )

Returns

surface

CRSEPS - KI function to sweep a B-curve into a B-surface

 

Syntax

( CRSEPS tag vector ) => ( tag ifail )

Args

B-curve translation

Returns

( B-surface ifail )

 

Syntax

( crseps tag vector ) => tag

Args

B-curve translation

Returns

B-surface

CRSHFA - KI function to create a sheet body from a face

 

Syntax

( CRSHFA tag ) => ( tag ifail )

Args

face

Returns

( body ifail )

 

Syntax

( crshfa tag ) => tag

Args

face

Returns

body

CRSIPS - KI function to swing a B-curve into a B-surface

 

Syntax

( CRSIPS tag vector vector double ) => ( tag ifail )

Args

B-curve point axis angle

Returns

( B-surface ifail )

 

Syntax

( crsips tag vector vector double ) => tag

Args

B-curve point axis angle

Returns

B-surface

CRSOFA - KI function to create solid from faces

 

Syntax

( CRSOFA tag int ) => ( tag int tag ifail )

Args

face_list action

Returns

( body_list nbodies state_list ifail )

 

Syntax

( crsofa '( tag ... ) token ) => (( tag token ) ... )

Args

'( face ... ) action

Returns

(( body state ) ... )

 

Note

A face or a list of faces may be supplied to crsofa.

CRSPCU - KI function to create SP-curve(s) from B-spline data defined in surface parameter space

 

Syntax

( CRSPCU tag int int int address address logical logical ) => ( int tag ifail )

Args

surf dim order nctrl ctrls knots periodic split

Returns

( n_curves SP-curve ifail )

 

Syntax

( crspcu tag int int '( ( double ... ) ... ) '( double ... ) logical logical ) => ( tag ... )

Args

surf dim order '( ctrl_pt ... ) '( knot ... ) <periodic . f> <split . f>

Returns

( SP-curve ... )

Example

( crspcu 17 3 3 '(( 0.1 0.2 1 ) ... ) '( 1 2 2 2.5 3.5 4 ) t nil )

CRSPPC - KI function to create a B-curve by splining

 

Syntax

( CRSPPC int address int address address ) => ( tag ifail )

Args

npts points nprops prop_array real_list_array

Returns

( B-curve ifail )

 

Syntax

( crsppc '( vector ... ) '( token <real ... > ) '( token ....) etc. ) => tag

Args

points '( token <associated reals> ) ...

Returns

B-curve

Example

( crsppc '((0 0 0) (0 0 1)) '( PAPRCU ) '( PAPRKT 0.55 0.75 ))

 

Note

crsppc has an extendable argument list; as many tokens (together with any associated reals) as required may be supplied.

CRSPPS - KI function to create a B-surface by splining

 

Syntax

( CRSPPS int int address int address address ) => ( tag ifail )

Args

ncol nrow pts nprops prop_array real_list_array

Returns

( B-surface ifail )

 

Syntax

( crspps int int '( vector ... ) '( token <real> ... ) ...) => tag

Args

ncol nrow points token_&_reals ...

Returns

B-surface

Example

( crspps 2 2 '((0 0 0) (10 0 0) ( 0 10 0 ) (10 10 0 )) '( PAPRCU )

'( PAPRBL 0.4 0.5 0.6 ))))

 

Note

crspps takes an indefinite number of arguments. The user may supply any number of tokens with associated reals.

CRSPSO - KI function to create a spherical solid

 

Syntax

( CRSPSO vector double ) => ( tag ifail )

Args

centre radius

Returns

( body ifail )

 

Syntax

( crspso vector double ) => tag

Args

centre radius

Returns

body

CRSPSU - KI function to create a spherical surface

 

Syntax

( CRSPSU vector double ) => ( tag ifail )

Args

centre radius

Returns

( surface ifail )

 

Syntax

( crspsu vector double ) => tag

Args

centre radius

Returns

surface

CRSPTC - KI function to approximate a trimmed curve by SP-curves

 

Syntax

( CRSPTC tag tag double logical logical ) => ( int tag ifail )

Args

surface tr-curve tolerance degenerate sense

Returns

( n_curves sp_curves ifail )

 

Syntax

( crsptc tag tag double logical logical ) => ( tag ... )

Args

surface tr_curve tolerance degenerate sense

Returns

( sp_curve ... )

CRTOBY - KI function to create the topology of a body

 

Syntax

( CRTOBY int tag tag tag ) => ( tag int int ifail )

Args

body_type topol_types entity_ids children

Returns

( new_topol state_code fault_id ifail )

 

Syntax

( crtoby token '( token ... ) '( int ... ) '(( <int> ... ) ... )) => ( ( tag ... ) token int )

Args

body_type '( topol_type ... ) '( id ... ) '( ( <child> ... ) )

Returns

( ( new_topol ... ) state_code fault_id )

Example

(crtoby 'BYTYSO '(TYTOBY TYTOSH TYTOFA) '(1 2 3) '((2) (3) nil))

CRTOSO - KI function to create a toroidal solid

 

Syntax

( CRTOSO vector vector double double ) => ( tag ifail )

Args

centre axis majrad minrad

Returns

( body ifail )

 

Syntax

( crtoso vector vector double double ) => tag

Args

centre axis majrad minrad

Returns

body

CRTOSU - KI function to create a toroidal surface

 

Syntax

( CRTOSU vector vector double double ) => ( tag ifail )

Args

centre axis majrad minrad

Returns

( surface ifail )

 

Syntax

( crtosu vector vector double double ) => tag

Args

centre axis majrad minrad

Returns

surface

CRTRCU - KI function to create a trimmed curve

 

Syntax

( CRTRCU tag double double) => (tag ifail)

Args

curve start_parm end_parm

Returns

( trimmed_curve ifail )

 

Syntax

( crtrcu tag double double ) => tag

Args

curve start_parm end_parm

Returns

trimmed_curve

CRTSFA - KI function to create a sheet body from a surface and trimmed SP-curve data

 

Syntax

( CRTSFA tag logical tag double double int address ) => ( tag tag int ifail )

Args

surface sense curves edge_tol face_tol n_opts options

Returns

( body face state ifail )

 

Syntax

( crtsfa tag logical '((tag ...) (tag ...)) double double ( token ... )) => ( tag tag token )

Args

surface sense list_of_lists_of_trimmed_curves edge_tol face_tol '( option ... )

Returns

body face state

DEFCON - KI function to make a connection between two entities

 

Syntax

( DEFCON tag tag ) => ( ifail )

Args

parent child

Returns

( ifail )

 

Syntax

( defcon tag tag ) => t

Args

parent child

Returns

t

DEHOSH - KI function to delete a list of holes from a sheet

 

Syntax

( DEHOSH tag tag ) => ( ifail )

Args

sheet list_of_loops

Returns

( ifail )

 

Syntax

( dehosh tag '( tag tag ) ) => t

Args

sheet '( loop ...)

Returns

t

Example

( dehosh 18 29 )

( dehosh 18 '( 29 85 121 ) )

DELCON - KI function to break a connection between two entities

 

Syntax

( DELCON tag tag ) => ( ifail )

Args

parent child

Returns

( ifail )

 

Syntax

( delcon tag tag ) => t

Args

parent child

Returns

t

DELENT - KI function to delete an entity

 

Syntax

( DELENT tag ) => ( ifail )

Args

entity

Returns

( ifail )

 

Syntax

( delent tag ) => t

Args

entity

Returns

t

 

Note

delent does not raise an error if the tag is 0, neither does it attempt any action.

DELFAS - KI function to delete faces from a body

 

Syntax

( DELFAS tag int address ) => ( tag int tag ifail )

Args

face_list nactions actions

Returns

( body_list nbodies state_list ifail )

 

Syntax

( delfas '( tag ... ) <'( token ) . SLLOCP> ) => (( tag token ) ... )

Args

'( face ... ) <'( action )>

Returns

(( body state ) ... )

Example

( delfas 19 )

( delfas 19 'SLLOGR )

( delfas 19 '( SLLOGR SLLOLI ) )

DELIST - KI function to delete a list

 

Syntax

( DELIST tag ) => ( ifail )

Args

list

Returns

( ifail )

 

Syntax

( delist tag ) => t

Args

list

Returns

t

DELIVL - KI function to delete items from a list

 

Syntax

( DELIVL tag int int ) => ( ifail )

Args

list start nitems

Returns

( ifail )

 

Syntax

( delivl list int int ) => t

Args

list start nitems

Returns

t

DELSEN - KI function to delete a single geometric entity

 

Syntax

( DELSEN tag ) => ( ifail )

Args

geometry

Returns

( ifail )

 

Syntax

( delsen tag ) => t

Args

geometry

Returns

t

Example

( delsen 26 )

DETGEO - KI function to detach geometry from topology

 

Syntax

( DETGEO tag ) => ( ifail )

Args

topol

Returns

( ifail )

 

Syntax

( detgeo tag ) => t

Args

topol

Returns

t

DLENFE - KI function to delete an entity from a feature

 

Syntax

( DLENFE tag tag ) => ( ifail )

Args

feature entity

Returns

( ifail )

 

Syntax

( dlenfe tag tag ) => t

Args

feature entity

Returns

t

DLORPH - KI function to delete orphans

 

Syntax

( DLORPH int ) => ( ifail )

Args

type

Returns

( ifail )

 

Syntax

( dlorph <token> ) => t

Args

<type>

Returns

t

Example

( dlorph 'TYENGE )

( dlorph 'TYADLI )

( dlorph )

 

Note

If the type token is not given, dlorph will delete orphans of both types.

ENBXEN - KI function to enquire box containing specified entity

 

Syntax

( ENBXEN tag ) => ( address ifail )

Args

entity

Returns

( box_array ifail )

 

Syntax

( enbxen tag ) => ( vector vector )

Args

entity

Returns

( lower_box_corner upper_box_corner )

ENBYTY - KI function to enquire body type

 

Syntax

( ENBYTY tag ) => ( int ifail )

Args

body

Returns

( type ifail )

 

Syntax

( enbyty tag ) => token

Args

body

Returns

type

ENCONT - KI function to enquire containment of point

 

Syntax:

( ENCONT tag tag ) => ( int ifail )

Args:

point entity

Returns:

( enclosure ifail )

 

Syntax:

( encont vector tag ) => token

Args:

point entity

Returns:

enclosure

Example:

( encont 7 8 )

( encont '( 0 0 0 ) 7 )

 

Note:

In fact encont accepts either a tag or a vector for its first argument (calling CRCAPO if required).

ENCUPA - KI routine to enquire curve parametrisation

 

Syntax:

( ENCUPA tag ) => ( address address tag int ifail )

Args:

curve

Returns:

( range_array bounds_array props nprops ifail )

 

Syntax:

( encupa tag ) => ( ( real token ) ( real token ) ( token ... ) )

Args:

curve

Returns:

( ( bound type ) ( bound type ) ( property ... ) )

Example:

( encupa ( t0 tag ) ) => ( ( -10000.0 PAPRIF ) ( 10000.0 PAPRIF ) ( PAPRCN PAPRLI ) )

ENDFAT - KI routine to enquire the attribute type definition of an attribute

 

Syntax:

( ENDFAT tag ) => ( tag ifail )

Args:

attribute

Returns:

( att_type ifail )

 

Syntax:

( endfat tag ) => tag

Args:

attribute

Returns:

att_type

ENDFNM - KI routine to enquire an attribute type definition from its name

 

Syntax:

( ENDFNM int string ) => ( tag ifail )

Args:

namlen name

Returns:

( att_type ifail )

 

Syntax:

( endfnm string ) => tag

Args:

name

Returns:

att_type

ENDIPE - KI function to enquire discontinuities on a B-curve or B-surface

 

Syntax:

( ENDIPE tag int ) => ( int tag tag ifail )

Args:

geometry type_disc

Returns:

( ndisc u_or_v params ifail )

 

Syntax:

( endipe tag token ) => ( int ( <token> ... ) ( <double> ... ) )

Args:

geometry type_disc

Returns:

( ( <u_or_v> ... ) ( <param> ... ) )

Example:

( endipe 20 'PADIG1 )

ENEDTY - KI function to enquire edge type

 

Syntax:

( ENEDTY tag ) => ( int ifail )

Args:

edge

Returns:

( type ifail )

 

Syntax:

( enedty tag ) => token

Args:

edge

Returns:

type

ENENTY - KI function to enquire entity type

 

Syntax:

( ENENTY tag int ) => ( address int ifail )

Args:

entity length

Returns:

( type_array ntypes ifail )

 

Syntax:

( enenty tag ) => ( token ... )

Args:

entity

Returns:

( type ... )

ENEQGE - KI function to enquire whether two geometries are equivalent

 

Syntax:

( ENEQGE tag tag ) => ( logical ifail )

Args:

geom1 geom2

Returns:

( equivalent ifail )

 

Syntax:

( eneqge tag tag ) => logical

Args:

geom1 geom2

Returns:

equivalent

ENEXEN - KI function to enquire extreme point of entity

 

Syntax:

( ENEXEN tag vector vector vector ) => ( vector tag ifail )

Args:

entity dir1 dir2 dir3

Returns:

( position entity ifail )

 

Syntax:

( enexen tag vector <vector . (1 0 0)> <vector . (0 1 0)> ) => ( vector tag )

Args:

entity dir1 <dir2> <dir3>

Returns:

( position entity )

 

Note:

Defaults are provided as a convenience for the last two directions as these values are usually not of interest.

ENFAPR - KI function to enquire if a face is a parametrically rectangular

 

Syntax:

( ENFAPR tag ) => ( int address address ifail )

Args:

face

Returns:

( rectangular u_bound_arr v_bound_arr ifail )

 

Syntax:

( enfapr tag ) => ( logical ( double double ) ( double double ))

Args:

face

Returns:

( rectangular ( u-low u-high ) ( v-low v-high ))

ENLOTY - KI function to enquire loop type

 

Syntax:

( ENLOTY tag ) => ( int ifail )

Args:

loop

Returns:

( type ifail )

 

Syntax:

( enloty tag ) => token

Args:

loop

Returns:

type

ENPAPC - KI function to find parameter of point on curve

 

Syntax:

( ENPAPC tag vector ) => ( double ifail )

Args:

curve position

Returns:

( parameter ifail )

 

Syntax:

( enpapc tag vector ) => double

Args:

curve position

Returns:

parameter

ENPAPS - KI function to find parameters of point on surface

 

Syntax:

( ENPAPS tag vector ) => ( double double ifail )

Args:

surface position

Returns:

( u v ifail )

 

Syntax:

( enpaps tag vector ) => ( double double )

Args:

surface position

Returns:

( u v )

ENPBEN - KI function to calculate the parametric box of a given entity

 

Syntax:

( ENPBEN tag ) => ( address address ifail )

Args:

entity

Returns:

( ulimits vlimits ifail )

 

Syntax:

( enpben tag ) => ( ( double double ) ( double double ) )

Args:

entity

Returns:

( lower_box_corner upper_box_corner )

ENPIFA - KI function to enquire if points in face

 

Syntax:

( ENPIFA tag int address int address int address address ) =>

( address address ifail )

Args:

face n_parms parms n_pvecs pvecs n_opts opt_array opt_data

Returns:

( enclosure topology ifail )

 

Syntax:

( enpifa tag '( <double ... > ) '( ,vector ... > ) '( <( token tag ... )> ) ) => ( ( token tag ) ... )

Args:

face '( <parm ... > ) '( <pvec ... > ) '( <( option loop ...)> )

Returns:

( ( enclosure topology ) ... )

Example:

( enpifa 79 '( (-3 3 -12 0 -4 5 5 5 ) nil '( ( PFOPLO 78 494 ) ) )

( enpifa 79 ' ( (-3 3) (-5 5) nil nil )

( enpifa 79 nil '( 0 0 0 ) nil nil )

( enpifa 79 nil '( ( 0 0 0 ) ) nil nil )

 

Note:

The lists of parameters and pvecs are flattened so any internal bracketing may be used.

ENPOGC - KI function to enquire point on general curve

 

Syntax:

( ENPOGC tag vector ) => ( vector vector vector double ifail )

Args:

curve position

Returns:

( tangent normal binormal curvature ifail )

 

Syntax:

( enpogc tag vector ) => ( vector vector vector double )

Args:

curve position

Returns:

( tangent normal binormal curvature )

ENPOGS - KI function to enquire point on general surface

 

Syntax:

( ENPOGS tag vector ) => ( vector vector vector double double ifail )

Args:

surface position

Returns:

( normal pdir1 pdir2 pcurvature1 pcurvature2 ifail )

 

Syntax:

( enpogs tag vector ) => ( vector vector vector double double )

Args:

surface position

Returns:

( normal pdir1 pdir2 pcurvature1 pcurvature2 )

ENPOPC - KI function to evaluate point from curve parameter

 

Syntax:

( ENPOPC tag double int ) => ( address ifail )

Args:

curve parameter nderivs

Returns:

( derivative_array ifail )

 

Syntax:

( enpopc tag double <int> ) => ( vector ... )

Args:

curve parameter <nderivs . 0>

Returns:

( point ... )

 

Note:

The number of derivatives to enpopc is optional, and defaults to 0.

ENPOPS - KI function to evaluate a point from surface parameters

 

Syntax:

( ENPOPS tag double double int int logical ) => ( vector ifail )

Args:

surface u v nu_derivs nv_derivs nreq

Returns:

( <normal> ifail )

 

Syntax:

( enpops tag double double <int> <int> ) => ( vector ... )

Args:

surface u v <nu_derivs . 0> <nv_derivs . 0> <nreq . t>

Returns:

( ( point ... ) <normal> )

 

Note:

The numbers of u and v derivatives in enpops default to 0. The default request for a normal is t.

The function enpops manages workspace automatically, but ENPOPS requires workspace allocated of sufficient length to store the derivative vectors returned.

ENSHTY - KI function to enquire shell type

 

Syntax:

( ENSHTY tag ) => ( int ifail )

Args:

shell

Returns:

( type ifail )

 

Syntax:

( enshty tag ) => token

Args:

shell

Returns:

type

ENSUPA - KI routine to enquire surface parametrisation

 

Syntax:

( ENSUPA tag ) => ( address address address address tag int tag int ifail )

Args:

surface

Returns:

( urange vrange ubound vbound uprops nuprops vprops nvprops ifail )

 

Syntax:

( ensupa tag ) => ( ( ( real token ) ( real token ) ( token ... ) ) ( ( real token ) ( real token ) ( token ... ) ) )

Args:

surface

Returns:

( ( ( ubound type ) ( ubound type ) ( property ... ) ) ( ( vbound type ) ( vbound type ) ( property ... ) ) )

Example:

( ensupa ( surface tag ) ) => ((( -10000.0 PAPRIF ) ( -10000.0 PAPRIF ) ( PAPRCN PAPRLI )) (( -10000.0 PAPRIF ) ( -10000.0 PAPRIF ) ( PAPRCN PAPRLI )))

ENVETY - KI function to enquire vertex type

 

Syntax:

( ENVETY tag ) => ( int ifail )

Args:

vertex

Returns:

( type ifail )

 

Syntax:

( envety tag ) => token

Args:

vertex

Returns:

type

FIXIDS - KI function to fix identifiers in part

 

Syntax:

( FIXIDS tag ) => ( int tag tag tag ifail )

Args:

part

Returns:

( nfaults fixed_entities old_ids new_ids ifail )

 

Syntax:

( fixids tag ) => ( ( <tag> ... ) ( <int> ... ) ( <int> ... ) )

Args:

part

Returns:

( ( <fixed_entity> ... ) ( <old_id> ... ) ( <new_id> ... ) )

FNENFE - KI function to find entity in a feature

 

Syntax:

( FNENFE tag tag ) => ( logical ifail )

Args:

feature entity

Returns:

( found ifail )

 

Syntax:

( fnenfe tag tag ) => logical

Args:

feature entity

Returns:

found

GETMND - KI function to recover a faulty model

 

Syntax:

( GETMND int string int address ) => ( tag tag tag tag tag int int ifail )

Args:

key_length key nopts opt_array

Returns:

( part mends faults mended_components faulty_components ifail )

 

Syntax:

( getmnd string ) => ( tag ( token ... ) ( token ... ) ( tag ... ) ( tag ... ) )

Args:

key

Returns:

( part ( mend ... ) ( fault ... ) ( entity ... ) ( entity ... ))

GETMOD - KI function to receive an archived model

 

Syntax:

( GETMOD int string ) => ( tag ifail )

Args:

length key

Returns:

( body ifail )

 

Syntax:

( getmod string ) => tag

Args:

key

Returns:

body

Example:

( getmod 'gearwheel )

 

Notes:

Keys with embedded nulls are not supported from lisp.

GETSNP - KI function to restore a snapshot

 

Syntax:

( GETSNP int string int logical ) => ( ifail )

Args:

length filename histfl statfl

Returns:

( ifail )

 

Syntax:

( getsnp string <logical .t > ) => t

Args:

filename <restore_interface_parms>

Returns:

t

 

Notes:

The logical flag controlling the restoration of interface parameters is optional and defaults to true.

GTINLI - KI function to get values from a list of integers

 

Syntax:

( GTINLI tag int int ) => ( int ifail )

Args:

list start nvals

Returns:

( vals ifail )

 

Syntax:

( gtinli tag int int ) => ( int ... )

Args:

list start nvals

Returns:

( value ... )

 

Notes:

Support function unlist provides convenient access to this function.

The gtinli function manages workspace automatically, but GTINLI requires workspace supplied which is sufficiently long to store the integers output.

GTRLLI - KI function to get values from a list of reals

 

Syntax:

( GTRLLI tag int int ) => ( double ifail )

Args:

list start nvals

Returns:

( rvals ifail )

 

Syntax:

( gtrlli tag int int ) => ( double ... )

Args:

list start nvals

Returns:

( value ... )

 

Notes:

Support function unlist provides convenient access to this function.

The gtrlli function manages workspace automatically. The GTRLLI function requires sufficient workspace to store the reals output.

GTTGLI - KI function to get values from a list of tags

 

Syntax:

( GTTGLI tag int int address) => ( ifail )

Args:

list start nvals tag_array

Returns:

( tags ifail )

 

Syntax:

( gttgli tag int int ) => ( tag ... )

Args:

list start nvals

Returns:

( value ... )

Notes:

Support function unlist provides convenient access to this function.

The gttgli function manages workspace automatically, but GTTGLI requires workspace allocated of sufficient length to store the tags output.

HOLLBY - KI function to hollow a solid body

 

Syntax:

( HOLLBY tag double logical tag tag tag double int ) => ( tag tag tag int ifail )

Args:

body offset check pierced_faces thickened_faces offsets tolerance max_faults

Returns:

( old_faces new_faces problem_tags state ifail )

 

Syntax:

( hollby tag double <logical . t> <( tag ... ) . NULTAG> <( tag ... ) . NUL TAG> <( double ... ). NULTAG> <double . 1E-6><int .07) ) =>

( ( tag ... ) ( tag ... ) ( tag ... ) token )

Args:

body offset <check> <pierced_faces> <thickened_faces> <offsets> <tolerance> <max_faults>

Returns:

( ( old_face ... ) ( new_face ... ) ( problem_tag ... ) state )

Example:

( hollby 19 .1 ) ( hollby 10 .1 t '(79) '(74 69) '(.2 .3) )

IDATEN - KI function to enquire the attribute of a given type attached to an entity

 

Syntax:

( IDATEN tag tag ) => ( tag ifail )

Args:

entity att_type

Returns:

( attribute ifail )

 

Syntax:

( idaten tag tag ) => tag

Args:

entity att_type

Returns:

attribute

IDATLS - KI function to enquire the attributes of a given type attached to an entity

 

Syntax:

( IDATLS tag tag ) => ( tag ifail )

Args:

entity att_type

Returns:

( attribute_list ifail )

 

Syntax:

( idatls tag tag ) => ( <tag> ... )

Args:

entity att_type

Returns:

( <attribute> ... )

IDATPA - KI function to identify all attributes of a given type in a part

 

Syntax:

( IDATPA tag tag ) => ( tag ifail )

Args:

part att_type

Returns:

( att_list ifail )

 

Syntax:

( idatpa tag tag ) => ( tag ... )

Args:

part att_type

Returns:

( attribute ... )

IDCCEN - KI function to identify common connected entities

 

Syntax:

( IDCCEN tag tag int ) => ( tag int ifail )

Args:

entity1 entity2 connection_type

Returns:

( entities n_entity ifail )

 

Syntax:

( idccen tag tag token ) => ( tag ... )

Args:

entity1 entity2 connection_type

Returns:

( common_entity ... )

IDCOEN - KI function to identify connected entities

 

Syntax:

( IDCOEN tag int ) => ( tag int ifail )

Args:

entity type

Returns:

( list nitems ifail )

 

Syntax:

( idcoen tag token ) => ( tag ... )

Args:

entity type

Returns:

( entity ... )

Example:

( idcoen 7 'TYTOFA )

IDCOFE - KI function to identify curve of edge

 

Syntax:

( IDCOFE tag ) => ( tag ifail )

Args:

edge

Returns:

( curve ifail )

 

Syntax:

( idcofe tag ) => tag

Args:

edge

Returns:

curve

IDENID - KI function to identify entity by identifier

 

Syntax:

( IDENID tag int int ) => ( tag ifail )

Args:

part identifier type

Returns:

( entity ifail )

 

Syntax:

( idenid tag int token ) => tag

Args:

part identifier type

Returns:

entity

Example:

( idenid 7 33 'TYTOFA )

IDFSEN - KI function to identify facesets of one or two bodies

 

Syntax:

( IDFSEN tag tag tag tag tag tag int address tag ) => ( tag tag tag tag tag tag ifail)

Args:

target tool targed tooled targvx toolvx nopts opt_array topol

Returns:

( targsu toolsu targbo toolbo targrj toolrj ifail )

 

Syntax:

( idfsen tag tag '( tag ... ) '( tag ... ) '( tag ... ) '( tag ... ) '(( token < tag ... > =>

( ( ( tag ... ) ... ) ( ( tag ... ) ... ) ( tag ... ) ( tag ... ) ( ( tag ... ) ... ) ( ( tag ...) ... ) ) )...))

Args:

target tool '( edge ... ) '( edge ... ) '( vertex ... ) '( vertex ... ) '( option ... ) < '( topology ... ) >

Returns:

( ( ( face ... ) ... ) ( ( face ... ) ... ) ( edge ... ) ( edge ... ) ( ( face ... ) ... ) ( ( face ... ) ... ) )

Example:

( idfsen (b0 tag) (b1 tag) (e0 tag) nil nil (list 'IDOPSU (list 'IDOPFS (f1 tag))))

 

Notes:

A faceset is a collection of connected faces.

IDKYPA - KI function to identify keyed parts

 

Syntax:

( IDKYPA int string ) => ( tag tag int ifail )

Args:

length key

Returns:

( part_list state_list nparts ifail )

 

Syntax:

( idkypa string ) => (( tag token ) ... )

Args:

key

Returns:

(( part state ) ... )

 

Notes

Keys with embedded nulls are not supported via lisp.

IDLSID - KI function to identify entities by identifier

 

Syntax:

( IDLSID tag tag int ) => ( tag int ifail )

Args:

part identifier_list type

Returns:

( entities n_entity ifail )

 

Syntax:

( idlsid tag '( int ... ) token ) => ( tag ... )

Args:

part '( identifier ... ) type

Returns:

( entity ... )

Example:

( idlsid 7 '( 33 35 37 65 ) 'TYTOFA )

IDNCEN - KI function to identify number of connected entities

 

Syntax:

( IDNCEN tag int ) => ( int ifail )

Args:

entity type

Returns:

( ifail )

 

Syntax:

( idncen tag token ) => int

Args:

entity type

Returns:

n_connected

IDPOFV - KI function to identify point of vertex

 

Syntax:

( IDPOFV tag ) => ( tag ifail )

Args:

vertex

Returns:

( point ifail )

 

Syntax:

( idpofv tag ) => tag

Args:

vertex

Returns:

point

IDSCEN - KI function to identify single connected entity

 

Syntax:

( IDSCEN tag int ) => ( tag ifail )

Args:

entity type

Returns:

( connected_entity ifail )

 

Syntax:

( idscen tag token ) => tag

Args:

entity type

Returns:

connected_entity

IDSCLS - KI function to identify single connected entities of a list of entities

 

Syntax:

( IDSCLS tag int ) => ( tag int ifail )

Args:

entities type

Returns:

( connected_entities n_entity ifail )

 

Syntax:

( idscls '( tag ... ) token )

Args:

'( entity ... ) type

Returns:

( entity ... )

IDSOFF - KI function to identify surface of face

 

Syntax:

( IDSOFF tag ) => ( tag logical ifail )

Args:

face

Returns:

( surface reversed ifail )

 

Syntax:

( idsoff tag ) => ( tag logical )

Args:

face

Returns:

( surface reversed )

IMPRNT - KI function to imprint bodies or lists of faces

 

Syntax:

( IMPRNT tag tag int address ) => ( tag tag int tag tag int ifail )

Args:

target tool nopts opt_array

Returns:

( targed tooled nedges targvx toolvx nverts ifail )

 

Syntax:

( imprnt tag tag < '( token ... ) > ) => ( ( tag ... ) ( tag ... ) ( tag ... ) ( tag ... ) )

Args:

target tool < '( option ... ) >

Returns:

( ( edge ... ) ( edge ... ) ( vertex ... ) ( vertex ... ) )

Example:

(imprint 17 77)

INCUCU - KI function to intersect two curves

 

Syntax:

( INCUCU tag address tag address tag address ) =>

( tag tag tag tag int ifail )

Args:

curve bounds curve bounds surface box_array

Returns:

( intpts iparms1 iparms2 incods nintpt ifail )

 

Syntax:

( incucu tag vector vector tag vector vector <surface> <((double...)... )> ) =>

( ( token vector cvec cvec ) ... )

Args:

curve start end curve start end <surface> <box.((-500 -500 -500) (500 500 500))>

Returns:

( ( intcod point iparm1 iparm2 ) ... )

Example:

( incucu 7 '(0 0 0) '(5 0 0) 34 '(4 0 0) '(1 2 3) )

 

Notes:

The KI box is an array of doubles with all low coords first. The lisp box can be given as two extreme vectors or as 3 intervals. The box argument is optional in incucu. The default is for the whole of the standard size box.

INCUFA - KI function to intersect curve and face

 

Syntax:

( INCUFA tag address tag ) => ( tag tag tag tag tag int ifail )

Args:

curve bounds face

Returns:

( intpts cuparm suparm intcodes topol nintpt ifail )

 

Syntax:

( incufa tag vector vector tag ) =>

( ( token vector ( double ) ( double double ) tag ) ... )

Args:

curve start end face

Returns:

( ( token point ( cuparm ) ( suparm suparm ) topol ) ... )

Example:

( incufa 80 '( 4 0 0 ) '( 4 0 0 ) 23 )

INCUSU - KI function to intersect a curve and a surface

 

Syntax:

( INCUSU tag address tag address) => ( tag tag tag tag int ifail )

Args:

curve bounds surface box_array

Returns:

( intpts cuparm suparm incods nintpt ifail )

 

Syntax:

( incusu tag vector vector tag <( ( double ...)... )> ) =>

( ( token vector ( double ) ( double double ) ) ... )

Args:

curve start end surface <box.((-500 -500 -500) (500 500 500))>

Returns:

( ( token point ( cuparm ) ( suparm suparm ) ) ... )

Example:

( incusu 7 '(0 0 0) '(5 0 0) 34 )

Notes:

The KI box is an array of doubles with all low coords first. The lisp box can be given as two extreme vectors or as 3 intervals. The box argument is optional in incusu. The default is for the whole of the standard size box.

INFAFA - KI function to intersect two faces

 

Syntax:

( INFAFA tag tag int address address) => (int tag int tag tag ifail))

Args:

face1 face2 n_opts options opt_data

Returns:

( n_points points n_curves curves types ifail )

 

Syntax:

( infafa tag tag '( ( token <real> ... ) ...) => ( ( vector ... ) ( ( tag token ) ... )))

Args:

face1 face2 '( ( option <real> ... ) ... )

Returns:

( ( point ... ) ( ( curve type ) ... ))

INSUFA - KI function to intersect a surface with a face

 

Syntax:

( INSUFA tag tag int address address) => (int tag int tag tag ifail))

Args:

surface face n_opts options opt_data

Returns:

( n_points points n_curves curves types ifail )

 

Syntax:

( insufa tag tag '( ( token <real> ... ) ...) => ( ( vector ... ) ( ( tag token ) ... )))

Args:

surface face '( ( option <real> ... ) ... )

Returns:

( ( point ... ) ( ( curve type ) ... ))

INSUSU - KI function to intersect two surfaces

 

Syntax:

( INSUSU tag tag int address address) => (int tag int tag tag ifail)

Args:

surf1 surf2 n_opts options real_data

Returns:

( n_points points n_curves curves types ifail )

 

Syntax:

( insusu tag tag '( ( token <real> ...) ... ) => ( ( vector ... ) ( ( tag type ) ... )

Args:

surf1 surf2 '( ( options <points> ... ) ... )

Returns:

( ( point ... ) ( ( curve int_type ) ... )

INTBYS - KI function to intersect bodies

 

Syntax:

( INTBYS tag tag ) => ( tag int ifail )

Args:

body tool_list

Returns:

( assembly nbodies ifail )

 

Syntax:

( intbys tag '( tag ... )) => ( tag int )

Args:

target '( tool ... )

Returns:

( assembly nbodies )

KABORT - KI function to abort an interrupted Kernel operation

 

Syntax:

( KABORT int ) => ( ifail )

Args:

reason

Returns:

( ifail )

 

Syntax:

( kabort <token> ) => t

Args:

<reason>

Returns:

t

Example:

( kabort 'SLABRE )

KNITEN - KI function to "knit together" bodies by fusing coincident edges

 

Syntax:

( KNITEN int tag tag tag logical ) => ( int tag int ifail )

Args:

body_type target edge_list1 edge_list2 sort_shells

Returns:

( state failed_edges nfailed ifail )

 

Syntax:

( kniten token tag '( tag ... ) '( tag ... )<logical.nil> ) => ( token ( <tag> ... ) )

Args:

body_type target ( edge ... ) ( edge ... )<sort_shells>

Returns:

( state ( <edge> ... ) )

LEVASS - KI function to level assemblies

 

Syntax:

( LEVASS tag ) => ( tag ifail )

Args:

assembly

Returns:

( new_assembly ifail )

 

Syntax:

( levass tag ) => tag

Args:

assembly

Returns:

new_assembly

MASSPR - KI function to compute mass and related property calculations

 

Syntax:

( MASSPR tag int address double ) => ( tag tag tag tag tag ifail )

Args:

entity_list nopts opt_array accuracy

Returns:

( real_list real_list real_list real_list real_list ifail )

 

Syntax:

( masspr '( tag ... ) '( token ...) double ) => (( real...) ( real... ) ( real ... ) ( real ... ) ( real... ))

Args:

'( entity ... ) '( options ... ) accuracy

Returns:

(( periph ...) ( amount ...) ( mass... ) ( cog ...) ( inertia ..))

Example:

( masspr 7 '( MAOPCG MAOPEM ) 0.95 )

MENDEN - KI function to mend a model

 

Syntax:

( MENDEN tag logical ) =>

( tag tag tag tag tag tag tag int int int int int int ifail )

Args:

body replace_all

Returns:

( fixed_edges fixed_vertices faulty_edges faulty_vertices edge_faults vertex_faults old_geom nfixed nfixvx nftyed nftyvx nold ifail )

 

Syntax:

( menden tag <logical . nil> ) => ( ( <tag> ... ) ( <tag> ... ) ( <tag> ... ) ( <tag> ... ) ( <token> ... ) ( <token> ... ) ( <tag> ... ) token )

Args:

body <replace_all>

Returns:

( ( <fixed_edge> ... ) ( <fixed_vertex> ... ) ( <faulty_edge> ... ) ( <faulty_vertex> ... ) ( <edge_fault> ... ) ( <vertex_fault> ... ) ( <old_geom> ... ) body_state )

Example:

( menden 17 )

MERGEN - KI function to remove redundant topology from an entity

 

Syntax:

( MERGEN tag ) => ( ifail )

Args:

entity

Returns:

( ifail )

 

Syntax:

( mergen tag ) => token

Args:

entity

Returns:

ifail_token

 

Notes:

Unlike most lower-case functions, mergen returns the ifail explicitly. This is most likely to be KI_no_errors or KI_non_mergeable

NEGENT - KI function to negate (reverse) an entity

 

Syntax:

( NEGENT tag ) => ( ifail )

Args:

entity

Returns:

( ifail )

 

Syntax:

( negent tag ) => tag

Args:

entity

Returns:

entity

OFFABY - KI function to offset the faces of a solid or sheet body

 

Syntax:

( OFFABY tag double logical tag tag tag double int ) => ( tag int ifail )

Args:

body offset check pierced_faces thickened_faces offsets tolerance max_faults

Returns:

( problem_tags state ifail )

 

Syntax:

( offaby tag double <tokens . t> <( tag ... ) . NULTAG> <( tag ... ) . NUL TAG> <( double ... ) . NULTAG> ) <double . 1E-6><int .07>=> ( ( tag ... ) token )

Args:

body offset <check> <pierced_faces> <thickened_faces> <offsets> <tolerance> <max_faults>

Returns:

( ( problem_tag ... ) state )

Example:

( offaby 19 .1 )

( offaby 19 .1 t '(79) '(74 69) '(.2 .3) )

OUATDF - KI function to output an attribute type definition

 

Syntax:

( OUATDF tag int ) => ( address int tag tag ifail )

Args:

att_type bufsiz

Returns:

( name namlen opt_list data_list ifail )

 

Syntax:

( ouatdf tag ) => ( string ( token ... ) ... )

Args:

att_type

Returns:

( name ( option data ... ) ... )

Example:

( ouatdf 133 ) => ( Colour ( ATOPCL RQAC01 ) ( ATOPOW TYTOFA )

( ATOPFL RQAPCS ))

 

ouatdf is restricted to a buffer size of eighty characters.

OUBBCO - KI function to output bulletin board controls

 

Syntax:

( OUBBCO ) => ( tag tag int tag int ifail )

Args:

- none -

Returns:

( entity_types events nentities options nopts ifail )

 

Syntax:

( oubbco ) = (( < ( token ( token ... )) ... > ) ( token < ... > ))

Args:

- none -

Returns:

( ( < ( entity_type ( event ... )) ... > ) ( option < ... > ))

Example:

( oubbco ) => ( BBOPOF )

( oubbco ) => ((( TYTOFA ( BBEVCR BBEVDE BBEVCH )) ( TYADAD ( BBEVCR ))) ( BBOPON ))

OUBBEV - KI function to output full bulletin board information

 

Syntax:

( OUBBEV logical ) => ( int tag tag int tag tag tag ifail )

Args:

empty_board

Returns:

( nevents events nperev nents ents enttyp usflds ifail )

 

Syntax:

( oubbev logical ) => ((token (tag token <( int ... )>) ... ) ... )

Args:

empty_board

Returns:

(( event ( entity type <usflds> ) ) ... )

OUBLSS - KI function to output blend surface definition

 

Syntax:

( OUBLSS tag ) => ( int tag tag tag tag tag tag int tag tag tag int logical ifail )

Args:

surface

Returns:

( type sf1 sf2 sf3 iparm12 iparm23 iparm31 nipars rpars12 rpars23 rpars31 nrpars sense ifail )

 

Syntax:

( oublss tag ) => ( token tag tag tag (int...) (int...) (int...) (double...) (double...) (double...) logical)

Args:

surface

Returns:

( type sf1 sf2 sf2 (iparm12...) (iparm23...)(iparm31...)(rparm12...) (rparm23...)(rparm31...) sense )

OUBSCU - KI function to output a curve in B-spline form

 

Syntax:

( OUBSCU tag double int address ) => ( tag int int int tag tag int ifail )

Args:

curve tolerance option_count option_arr

Returns:

( ctrls dim order n_cntrl knot_vector props n_props ifail )

 

Syntax:

( oubscu tag double ( token ... )) =>

( ( double ... ) ... ) int int int ( double ... ) ( token ... ))

Args:

curve tolerance '( <option> ... )

Returns:

control_points dimension order knot_vector ( property ... )

OUBSED - KI function to output the curve of an edge in B-spline form

 

Syntax:

( OUBSED tag double int address ) => ( tag int int int tag tag int ifail )

Args:

edge tolerance nopt opt_array

Returns:

( points dim order ncontrol knots properties nprops )

 

Syntax:

( oubsed tag double '( token ... )) =>

((( double ... ) ... ) int ( double ... ) ( token ... ))

Args:

edge tolerance '( option ... )

Returns:

(( point ...) dim order ( knot ... ) ( property ... ))

 

Notes:

The list of data points returned may be of dimension 3 or 4 and are packed in lists of rows.

OUBSFA - KI function to output the surface of a face in B-spline form

 

Syntax:

( OUBSFA tag double int address ) => ( tag int int int int int tag tag tag int ifail )

Args:

face tol nopts option_array

Returns:

( points dim uorder vorder ncol nrow uknots vknots props nprops ifail )

 

Syntax:

( oubsfa tag double '( token ... )) =>

(((( double ... )...)...) int int int int int ( double ... ) ( double... ) ( token ... ))

Args:

face tolerance '( option ... )

Returns:

((( point ... )... ) dim uorder vorder ncol nrow ( uknot ... ) ( vknot ... ) ( property ... ))

Example:

( oubsfa 19 0.5 '( SROPCU SROPNR ))

 

Notes:

The list of data points returned may be of dimension 3 or 4 and are packed in lists of rows.

OUBSPC - KI function to output a B-curve in B-spline form

 

Syntax:

( OUBSPC tag ) => ( tag int int int tag tag int ifail )

Args:

B-curve

Returns:

( controls dim order ncontrol knots properties nprops ifail )

 

Syntax:

( oubspc tag ) => (( double ... )... ) int int ( double ... ) ( token ... ))

Args:

B-curve

Returns:

(( point .... )... ) dim order ( knot ... ) ( property ... ))

OUBSPS - KI function to output a B-surface in B-spline form

 

Syntax:

( OUBSPS tag ) => ( tag int int int int int tag tag tag int logical ifail )

Args:

B-surface

Returns:

( controls dim uord vord ncol nrow uknots vknots properties nprops sense ifail )

 

Syntax:

( oubsps tag ) =>

((( double ... )... ) int int int int int ( double...) ( double ... ) ( token ... ) logical )

Args:

B-surface

Returns:

(( points ... ) dim uord vord ncol nrow ( uknot...) ( vknot... ) ( property ...) sense )

OUBSSU - KI function to output a region of a surface in B-spline form

 

Syntax:

( OUBSSU tag address address double int address ) =>

( tag int int int int int tag tag tag int ifail)

Args:

surface urange_arr vrange_arr tolerance n_options option_arr

Returns:

( controls dimension uorder vorder ncol nrow uknots vknots nprops proper ties ifail )

 

Syntax:

( oubssu tag ( double double ) ( double double ) double ( token ...)) =>

( ( double ... ) int int int int int ( double ... ) ( double ... ) ( token ... ))

Args:

surface u_range v_range tolerance '( option ... )

Returns:

( controls dimension uorder vorder ncol nrow uknots vknots properties )

OUCOCU - KI function to output coordinates on curve

 

Syntax:

( OUCOCU tag vector vector double double double ) => ( tag int ifail )

Args:

curve start end ctol atol stol

Returns:

( vec_list npos ifail )

 

Syntax:

( oucocu tag vector vector double double double ) => ( vector ... )

Args:

curve start end ctol atol stol

Returns:

( coord ... )

OUCPCU - KI function to output a constant parameter line curve

 

Syntax:

( OUCPCU tag ) => ( tag int double int ifail )

Args:

curve

Returns:

( surface u_or_v param sense ifail )

 

Syntax:

( oucpcu tag ) => ( tag token double logical )

Args:

curve

Returns:

( surface u_or_v param sense )

Example:

( oucpcu 17 )

OUEXSU - KI function to output an extruded surface

 

Syntax:

( OUEXSU tag ) => ( tag vector int ifail )

Args:

surface

Returns:

( curve path sense ifail )

 

Syntax:

( ouexsu tag ) => ( tag vector logical )

Args:

surface

Returns:

( curve path sense )

OUFEAT - KI function to output items in feature

 

Syntax:

( OUFEAT tag ) => ( int tag int ifail )

Args:

feature

Returns:

( type list nitems ifail )

 

Syntax:

( oufeat tag ) => ( token ( tag .... ))

Args:

feature

Returns:

( type ( entity ... ))

OUFGCU - KI function to output a foreign geometry curve

 

Syntax:

( OUFGCU tag int ) => ( address int tag tag int tag ifail )

Args:

curve nchars

Returns:

( key keylen ivals rvals sense transform ifail )

 

Syntax:

( oufgcu tag int ) => ( tag ( <int> ... ) ( <double> ... ) logical tag )

Args:

curve nchars

Returns:

( key ( <ival> ... ) ( <rval> ... ) sense transform )

Example:

( oufgcu 84 3 )

OUFGSU - KI function to output a foreign geometry surface

 

Syntax:

( OUFGSU tag int ) => ( address int tag tag int tag ifail )

Args:

surface nchars

Returns:

( key keylen ivals rvals sense transform ifail )

 

Syntax:

( oufgsu tag int ) => ( tag ( <int> ... ) ( <double> ... ) logical tag )

Args:

surface nchars

Returns:

( key ( <ival> ... ) ( <rval> ... ) sense transform )

Example:

( oufgsu 84 3 )

OUFINF - KI function to output information about the specified file

 

Syntax:

( OUFINF int string int int int ) => ( int double string ifail )

Args:

length name guise format selection

Returns:

( ival rval sval nstring ifail )

 

Syntax:

( oufinf string token token ) => int

Args:

name guise format

Returns:

version_file_created

Example:

( oufinf "cube" 'FFCXMT 'FFTEXT )

OUGEEF - KI function to output geometry of edge or fin

 

Syntax:

( OUGEEF tag logical ) => ( tag int vector double vector double int ifail )

Args:

edge_or_fin parms

Returns:

( curve curve_type start start_t end end_t sense ifail )

 

Syntax:

( ougeef tag ( logical . t ) ) => ( tag token vector double vector double logical )

Args:

edge_or_fin parms

Returns:

( curve curve_type start start_t end end_t sense )

Example:

( ougeef 24 )

( ougeef 24 nil )

OUGESU - KI function to output generated surface

 

Syntax:

( OUGESU tag ) => ( tag int tag int tag tag tag tag int tag tag int logical ifail )

Args:

surface

Returns:

( types ntypes codes ncodes ints reals geoms singc nsingc singp unused nsingp sense ifail )

 

Syntax:

( ougesu tag ) =>

(( token... ) ( token...) ( int...) (double...) ( tag... ) ( vector...) logical )

Args:

surface

Returns:

(( type... ) ( code... ) ( int ... ) ( double... ) ( geometry... ) ( sing_curve... ) (sing_point...) sense )

OUIDEN - KI function to output identifier of entity

 

Syntax:

( OUIDEN tag ) => ( int ifail )

Args:

entity

Returns:

( identifier ifail )

 

Syntax:

( ouiden tag ) => int

Args:

entity

Returns:

identifier

OUIDLS - KI function to output identifiers of a list of entities

 

Syntax:

( OUIDLS tag ) => ( tag int ifail )

Args:

list

Returns:

( id_list nitems ifail )

 

Syntax:

( ouidls '( tag ...)) => ( int ... )

Args:

'( entity ... )

Returns:

( int ... )

OUINTP - KI function to output interface parameters

 

Syntax:

( OUINTP int ) => ( int double ifail )

Args:

option

Returns:

( ival rval ifail )

 

Syntax:

( ouintp <token> ) => ( int string ) or (( int string ) ... )

Args:

<option>

Returns:

( ival description )

Example:

( ouintp 'SLIPLC )

( ouintp )

 

Notes:

The return value is given as a list containing the integer value (as returned directly by the KI), and the string describing its meaning. Any programming applications should use the actual integer parameter; the string message is only meant as mnemonic aid.

The parameter is optional, if it is omitted a list of all current option settings will be returned, each element of the list formed as described above.

OULERR - KI function to enquire on the most recent KI-error

 

Syntax:

( OULERR int ) => ( int string int ifail )

Args:

option

Returns:

( ival sval length ifail )

 

Syntax:

( oulerr <token> ) => ( string string ( string ) string ) or ( int string )

Args:

<option>

Returns:

( ifail_mnemonic KI_routine ( bad_arg ) error_message ) or ( ival sval )

Example:

( oulerr 'SLEREX )

( oulerr )

 

Notes:

The parameter is optional. If it is omitted a list of strings is created to return a generic message containing information from several options combined. If it is supplied the ival and sval for that option are returned.

OUMODP - KI function to output modeling parameter

 

Syntax:

( OUMODP int ) => ( int double ifail )

Args:

option

Returns:

( ival rval ifail )

 

Syntax:

( oumodp token ) => double

Args:

option

Returns:

resolution

OUOFSU - KI function to output an offset surface

 

Syntax:

( OUOFSU tag ) => ( tag double int ifail )

Args:

surface

Returns:

( underlying_surface distance sense ifail )

 

Syntax:

( ouofsu tag ) => ( tag double logical )

Args:

surface

Returns:

( underlying_surface distance sense )

Example:

( ouofsu 20 )

OUPART - KI function to output key and state of a part

 

Syntax:

( OUPART tag int ) => ( int address int ifail )

Args:

part buffer_length

Returns:

( length char_array state ifail )

 

Syntax:

( oupart tag ) => ( string token )

Args:

part

Returns:

( key state )

 

Notes:

The key may be the empty string ("") for anonymous parts.

OUPWPC - KI function to output B-curve in piecewise form

 

Syntax:

( OUPWPC tag token ) => ( tag int int int ifail )

Args:

paracurve basis

Returns:

( coeffs dim order nsegments ifail )

 

Syntax:

( oupwpc tag token ) => (( double... )...) int int int )

Args:

paracurve basis

Returns:

(( points ... ) dim order nsegments )

OUPWPS - KI function to output B-surface in piecewise form

 

Syntax:

( OUPWPS tag token ) => ( tag int int int int int logical ifail )

Args:

parasurface basis

Returns:

( coeffs dim uord vord ncol nrow sense ifail )

 

Syntax:

( oupwps tag token ) => ((( double ...)...) int int int int int logical )

Args:

parasurface basis

Returns:

((( point...)... ) dim uord vord ncol nrow sense )

OURVSU - KI function to output data on a surface of revolution

 

Syntax:

( OURVSU tag ) => ( tag vector vector int int tag ifail )

Args:

surface

Returns:

( curve point axis sense n_sings parameter_range ifail )

 

Syntax:

( ourvsu tag ) => ( tag vector vector logical int ( double double ))

Args:

surface

Returns:

( curve point axis sense n_sings ( t_low t_high ))

OUSPCU - KI function to output an SP-curve in B-spline form

 

Syntax:

( OUSPCU tag ) => ( tag tag int int int tag ifail )

Args:

SP-curve

Returns:

( surface ctrls dim order nctrl knots ifail )

 

Syntax:

( ouspcu tag ) => ( tag int int int ( ( double ... ) ... ) ( double ... ) )

Args:

SP-curve

Returns:

( surface dim order nctrl ( ( ctrl_pt ... ) ... ) ( knot ... ) )

OUSPPC - KI function to output a B-curve as spline points

 

Syntax:

( OUSPPC tag ) => ( tag int tag tag int ifail )

Args:

B-curve

Returns:

( points npts prop_list <real_list>_list nprops ifail )

 

Syntax:

( ousppc tag ) => ( ( vector ...) ( (token <real ...> ) ... ) )

Args:

B-curve

Returns:

( ( point ... ) ( ( code data ... ) ... ) )

OUSPPS - KI function to output a B-surface as spline points

 

Syntax:

( OUSPPS tag) => (tag int int tag tag int int ifail)

Args:

B-surface

Returns:

( points ncol nrow props <data_list>_list nprops sense ifail)

 

Syntax:

( ouspps tag) => ((vector ...) ((token <double ...>) ...) int int logical )

Args:

B-surface

Returns:

(( point...) (( code <data...>) ...) ncol nrow sense )

OUSTAT - KI function to output information about the current state of the kernel

 

Syntax:

( OUSTAT int ) => ( int double ifail )

Args:

option

Returns:

( ival rval ifail )

 

Syntax:

( oustat <token> ) => (int string ) or ((int string) ... )

Args:

<option>

Returns:

( ivalue string )

Example:

( oustat 'SLSTAR )

( oustat )

 

Notes:

Each option is returned in two ways, firstly as the integer directly provided by the KI, and secondly as a string describing its meaning. Only the first should be used by programming applications as the second is only intended as a mnemonic guide.

If the option is omitted, all the possible option requests are returned in a list with each element constructed as described above.

OUTATT - KI function to output an attribute

 

Syntax:

( OUTATT tag int ) => ( tag tag tag tag address ifail )

Args:

attribute bufsiz

Returns:

( owner int_list real_list int_list char_list ifail )

 

Syntax:

( outatt tag ) => ( tag ( int ... ) (double ... ) (string ... ) )

Args:

attribute

Returns:

( entity ( int_fields ) ( double_fields ) ( string_fields ) )

 

Notes:

The total length of the string_fields is restricted to 400 characters.

OUTBUB - KI function to output rudimentary bulletin board information

 

Syntax:

( OUTBUB logical ) => ( tag tag tag tag tag tag tag tag tag ifail )

Args:

empty

Returns:

( new changed deleted new_types changed_types deleted_types new_user changed_user deleted_user ifail )

 

Syntax:

( outbub logical ) => (( tag... ) ( tag... ) ( tag ... ) ( token... ) ( token... ) ( token... ) ((int...)...) ((int...)...) ((int...)))

Args:

empty

Returns:

(( new... ) (changed... ) ( deleted... ) ( new_type..) ( changed_type... ) ( deleted_type... ) ( new_user... ) ( changed_user ...) ( deleted_user... )

OUTCUR - KI function to output curve definition

 

Syntax:

( OUTCUR tag ) => ( int vector vector vector double double ifail )

Args:

curve

Returns:

( type vec1 vec2 vec3 real1 real2 ifail )

 

Syntax:

( outcur tag ) => ( token vector vector <vector> <double> <double> )

Args:

curve

Returns:

( type vec1 vec2 <vec3> <real1> <real2> )

Notes:

Only the appropriate elements are returned with the type token.

OUTLEN - KI function to output the tolerance value associated with an entity

 

Syntax:

( OUTLEN tag ) => ( double ifail )

Args:

entity

Returns:

( tolerance ifail )

 

Syntax:

( outlen tag ) => double

Args:

entity

Returns:

tolerance

Example:

( outlen 20 )

OUTPOI - KI function to output a point

 

Syntax:

( OUTPOI tag ) => ( int vector ifail )

Args:

point

Returns:

( type coords ifail )

 

Syntax:

( outpoi tag ) => vector

Args:

point

Returns:

coords

OUTRAN - KI function to output transformation

 

Syntax:

( OUTRAN tag ) => ( address ifail )

Args:

transform

Returns:

( real_array ifail )

 

Syntax:

( outran tag ) => ((double...) (double...) (double...) (double...))

Args:

transform

Returns:

(( transformation_matrix_coeff ...) ... )

 

Notes:

outran returns 16 real coefficients in a list of 4 x 4.

OUTRCU - KI function to output a trimmed curve

 

Syntax:

( OUTRCU tag) => (tag vector vector double double ifail)

Args:

trimmed_curve

Returns:

( curve start_pos end_pos start_parm end_parm ifail )

 

Syntax:

( outrcu tag ) => (tag vector vector double double )

Args:

trimmed_curve

Returns:

( curve start_pos end_pos start_parm end_parm )

OUTSFA - KI routine to output trimmed surfaces

 

Syntax:

( OUTSFA tag int address address ) => ( tag int tag tag tag ifail )

Args:

faces nopts opt_array data_array

Returns:

( surface no_of_trimming_sets list_list_<list>_trimmed_sp_curves list_list_<list>_geom list_list_<list>_topol ifail )

 

Syntax:

( outsfa tag '( ( token <data> ) ... ) ) =>

( tag int (<( ( ( tag <...> ) <( tag <...> )> < ( tag <...> )>) ... ) ... >) )

Args:

faces '( ( option <data> ) ... )

Returns:

( surface no_of_trimming_sets (<trimming_set> ... ) )

Examples:

spherical face:

(outsfa ( f0 tag ) ) => ( 33 0 nil )

circular face:

(outsfa ( f0 tag ) ) => ( 77 1 ( ( ( ( 99 ) ) ) ) )

(outsfa ( f0 tag ) '( ( SROPBS 0.1 ) ( SROPCU ) ( SROPNG ) ( SROPNT ) ) ) => ( 47 1 ( ( ( ( 99 ) ( 101 ) ( 89 ) ) ) ) )

cylinder face (crossing parameter seam):

(outsfa ( f0 tag ) ) =>

( 823 2 ( ( ( ( 842 845 848 851 ) ) ( ( 830 833 836 839 ) ) ) ) )

 

Notes:

The geom and topol lists are optional and are _missing_ (i.e. not even nil if not requested). So the third element of the output is a list of trimming_sets: i.e. ( trimming_set ... ) where a trimming_set is a list of trimmed_loops, so we have ( ( trimmed_loop ... ) ... ) where each trimmed loop is as follows:

options SROPNG and SROPNT:

  • trimmed_loop: ( ( sp_curve ... ) ( geom ... ) ( topol ... ) )
  • overall: (((( sp_curve ... ) ( geom ...) ( topol ... ) ) ... ) ... )

option SROPNG:

  • trimmed_loop: ( ( sp_curve ... ) ( geom ... ) )
  • overall: (((( sp_curve ... ) ( geom ...) ) ... ) ... )

option SROPNT:

  • trimmed_loop: ( ( sp_curve ... ) ( topol ... ) )
  • overall: (((( sp_curve ... ) ( topol ... ) ) ... ) ... )

neither option SROPNG nor SROPNT:

  • trimmed_loop: ( ( sp_curve ... ) )
  • overall: (((( sp_curve ... ) ) ... ) ... )

OUTSUR - KI function to output surface

 

Syntax:

( OUTSUR tag ) => ( int vector vector double double logical ifail )

Args:

surface

Returns:

( type vec1 vec2 double1 double2 sense ifail )

 

Syntax:

( outsur tag ) => ( token <vector> <vector> <double> <double> logical )

Args:

surface

Returns:

( type <vec1> <vec2> <double1> <double2> sense )

 

Notes:

outsur only returns the relevant surface parameters. The type and sense are always returned.

OUUFEN - KI function to return the user field of an entity

 

Syntax:

( OUUFEN tag ) => ( array ifail )

Args:

entity

Returns:

( workspace_address ifail )

 

Syntax:

( ouufen tag ) => ( int ... )

Args:

entity

Returns:

int_list

PICKEN - KI function to pick entities inside a cylindrical volume

 

Syntax:

( PICKEN tag tag vector vector double int int ) => ( int tag tag tag tag ifail )

Args:

parts transforms point axis radius opt type

Returns:

( nhit items indices distances points ifail )

 

Syntax:

( picken '( tag ... ) '( tag ... ) vector vector double token token ) => ( ( tag int double vector ) ... )

Args:

'( part... ) '( transform... ) point axis radius type <opt . SLPKIR>

Returns:

( ( item owner_index distance point ) ... )

 

Notes:

Either a list of parts or a single part tag may be passed to picken. If no transforms are required they may be supplied as nil.

PIERCE - KI function to remove face from a sheet

 

Syntax:

( PIERCE tag ) => ( ifail )

Args:

face

Returns:

( ifail )

 

Syntax:

( pierce tag ) => t

Args:

face

Returns:

t

PTENFE - KI function to put entities into feature

 

Syntax:

( PTENFE tag tag ) => ( ifail )

Args:

feature entity

Returns:

( ifail )

 

Syntax:

( ptenfe tag '( tag...)) => t

Args:

feature '( entity ... )

Returns:

t

 

Notes:

ptenfe accepts either a single entity or a list of entities, whereas PTENFE will accept only a single entity per call.

PTINLI - KI function to put values into a list of integers

 

Syntax:

( PTINLI tag int int address ) => ( ifail )

Args:

list start nitems integer_array

Returns:

( ifail )

 

Syntax:

( ptinli tag int '( int ... )) => tag

Args:

list start '( value ... )

Returns:

list

 

Notes:

Support function "enlist" provides convenient access to this function. ptinli echoes the original list as a return value.

PTRLLI - KI function to put values into a list of reals

 

Syntax:

( PTRLLI tag int int address ) => ( ifail )

Args:

list start nitems double_array

Returns:

( ifail )

 

Syntax:

( ptrlli tag int '( double ... )) => tag

Args:

list start '( value ... )

Returns:

list

 

Notes:

Support function "enlist" provides convenient access to this function. ptrlli echoes the original list as a return value.

PTTGLI - KI function to put values into a list of tags

 

Syntax:

( PTTGLI tag int int address ) => ( ifail )

Args:

list start ntags tag_array

Returns:

( ifail )

 

Syntax:

( pttgli tag int '( tag ... )) => tag

Args:

list start '( tag... )

Returns:

list

Example:

( pttgli 546 1 ( list (b0 tag ) ( c0 tag ) ) )

 

Notes:

Support function "enlist" provides convenient access to this function. pttgli echoes the original list as a return value.

RAYFIR - KI function to intersect ray with bodies

 

Syntax:

( RAYFIR tag tag int vector vector ) => ( int tag tag tag ifail )

Args:

parts transforms nhits point direction

Returns:

( nhits points faces indices ifail )

 

Syntax:

( rayfir '( tag ... ) '( tag ... ) int vector vector ) => ( vector tag int ) ... )

Args:

parts transforms nhits point direction

Returns:

(( coord face owner_index ) ... )

REDINS - KI function to redirect an instance

 

Syntax:

( REDINS tag tag ) => ( ifail )

Args:

instance part

Returns:

( ifail )

 

Syntax:

( redins tag tag ) => t

Args:

instance part

Returns:

t

REEDSH - KI function to replace the edges of a sheet body

 

Syntax:

( REEDSH tag address address ) => ( ifail )

Args:

sheet u_range v_range

Returns:

( ifail )

 

Syntax:

( reedsh tag '( double double ) '( double double ) ) => t

Args:

sheet '( u_low u_high ) '( v_low v_high )

Returns:

t

Example:

( reedsh 21 '( .1 .2 ) '( 3 4 ) )

(reedsh 21 ( list u_low v_low ) '( 3 4 ) )

RESUSH - KI function to replace the surface of a sheet body

 

Syntax:

( RESUSH tag tag double ) => ( tag int ifail )

Args:

sheet surface tolerance

Returns:

( edges nedges ifail )

 

Syntax:

( resush tag '( tag tag ) )) => <( tag ... )>

Args:

sheet surface tolerance

Returns:

<( edge ... )>

Example:

( resush 19 29 .1 )

RETLEN - KI function to restore Parasolid tolerance to the supplied edge

 

Syntax:

( RETLEN tag ) => ( int ifail )

Args:

edge

Returns:

( status ifail )

 

Syntax:

( retlen tag ) => token

Args:

edge

Returns:

status

Example:

( retlen 76 ) => RTTLOK

RMFASO - KI function to remove faces into new solids

 

Syntax:

( RMFASO tag int int ) => ( tag int tag tag int tag ifail )

Args:

faces actpar actoff

Returns:

( parents nparents parent_states offspring noff offspring_states )

 

Syntax:

( rmfaso '( tag ... ) token token ) => (( tag token ) ... ) (( tag token ) ... ))

Args:

faces actpar actoff

Returns:

((( parent state ) ... ) (( offspring state ) ... ))

ROLBFN - KI function to roll back or forward by n steps between roll-marks

 

Syntax:

( ROLBFN int ) => ( int ifail )

Args:

nsteps

Returns:

( nsteps ifail )

 

Syntax:

( rolbfn int ) => int

Args:

nsteps

Returns:

nsteps

ROLBLM - KI function to roll back changes since last roll-mark

 

Syntax:

( ROLBLM ) => ( ifail )

Args:

-none-

Returns:

( ifail )

 

Syntax:

( rolblm ) => t

Args:

-none-

Returns:

t

ROLSMK - KI function to set a roll-back mark

 

Syntax:

( ROLSMK ) => ( ifail )

Args:

-none-

Returns:

( ifail )

 

Syntax:

( rolsmk ) => t

Args:

-none-

Returns:

t

RRFCET - KI function to generate faceted rendering

 

Syntax:

( RRFCET int address address tag tag ) => ( ifail )

Args:

nopts opt_array opt_data entities transforms

Returns:

( ifail )

 

Syntax:

( rrfcet '(( token <double>... ) ... ) '( tag ...) '( tag ...)) => t

Args:

'(( option <data> ... ) ... ) '( entity ... ) '( transform ... )

Returns:

t

Example:

( rrfcet '(( RROPFS 5 0.6 ) ( RROPCV )) 7 nil )

 

Notes:

Each rrfcet option may be accompanied by real data values. Either a single entity or a list of entities may be faceted. The transform list may be supplied as nil.

RRHIDL - KI function to generate hidden line data

 

Syntax:

( RRHIDL int address address tag tag address ) => ( ifail )

Args:

nopts opts opt_data entities transforms view_matrix

Returns:

( ifail )

 

Syntax:

( rrhidl '(( token <double> ... ) ... ) '( tag... ) '( tag... ) '( double... )) => t

Args:

options entities transforms view_matrix

Returns:

t

Example:

( rrhidl nil 410 nil Vw )

( rrhidl '(( RROPIV ) ( RROPPH 1 ( 0 0 1 )) '( 7 410 ) nil Vw )

 

Notes:

In rrhidl each option is passed in list together with any associated data parameters. A single body or a list of bodies may be passed. The transform list may be left as null. 16 doubles must be supplied to identify the viewing transform.

RRPIXL - KI function to generate shaded picture (pixel) data

 

Syntax:

( RRPIXL int address address tag tag address tag tag ) => ( ifail )

Args:

nopts opts optdata ents transf view_matrix pixel lights

Returns:

( ifail )

 

Syntax:

( rrpixl '(( token <double> ... )...) '( tag ... ) '( tag ... ) '( double ... ) '( double ... ) (( double ... )... )) => t

Args:

'(( option <data> ... )...) '( entity ...) '( transform ... ) '( view_matrix ... ) '( npix_x npix_y pix_size_x pix_size_y org_x org_y ) '(( light_type ( red green blue ) ( x y z )) ... ))

Returns:

t

Example:

( rrpixl '(( RROPDM ) ( RROPSF 0.5 0.5 0 0 1 )) '( 7 40 ) nil Vw '( 50 50 1 1 0 0 ) '(( 3 ( 0.3 0.3 0.3 ) ( 0.0 0.0 0.0 )) ( 1 ( 1 0 0 ) ( 0 0 1 ))))

RRVDEP - KI function to generate view dependent rendering data

 

Syntax:

( RRVDEP int address address tag tag address ) => ( ifail )

Args:

nopts opt_array opt_data entities transforms view

Returns:

( ifail )

 

Syntax:

( rrvdep '((token) ... ) '( tag ...) '( tag ...) '( double ... )) => t

Args:

'(( option ) ... ) '( entity ... ) '( transform ... ) view )

Returns:

t

Example:

( rrvdep '((RROPSI)) 7 nil Vw )

 

Notes:

Some rrvdep options are accompanied by real data. Either a single entity or a list of entities may be rendered. The transform list may be supplied as nil.

RRVIND - KI function to generate view independent rendering data

 

Syntax:

( RRVIND int address address tag tag ) => ( ifail )

Args:

nopts opt_array opt_data entities transforms

Returns:

( ifail )

 

Syntax:

( rrvind '(( token <double>... ) ... ) '( tag ...) '( tag ...)) => t

Args:

'(( option <data> ... ) ... ) '( entity ... ) '( transform ... )

Returns:

t

Example:

( rrvind '(( RROPIE ) ( RROPPA 0.5 0.5 )) 7 nil )

 

Notes:

Some rrvind options are accompanied by real data values. Either a single entity or a list of entities may be rendered. The transform list may be supplied as nil.

SAVMOD - KI function to save model in archive

 

Syntax:

( SAVMOD tag int string ) => ( ifail )

Args:

part length name

Returns:

( ifail )

 

Syntax:

( savmod tag string ) => t

Args:

part name

Returns:

t

SAVSNP - KI function to make a snapshot

 

Syntax:

( SAVSNP int string int ) => ( ifail )

Args:

length name unused

Returns:

( ifail )

 

Syntax:

( savsnp string ) => t

Args:

name

Returns:

t

SCRIBE - KI function to scribe a line on a face, a region or a wire body

 

Syntax:

( SCRIBE tag tag vector vector ) => ( tag int tag int ifail )

Args:

topol curve start end

Returns:

( new_edges nedges new_faces nfaces ifail )

 

Syntax:

( scribe tag tag vector vector ) => (( tag ... ) ( tag ... ))

Args:

topol curve start end

Returns:

(( new_edge ... ) ( new_face... ))

SEBBCO - KI function to set bulletin board controls

 

Syntax:

( SEBBCO int address address int address ) => ( ifail )

Args:

nentities entity_tokens event_tokens nopts option_tokens

Returns:

( ifail )

 

Syntax:

( sebbco '( (( token ... ) token ... ) ... ) '( token ... ))

Args:

'( (( entity_type ... ) event ... ) ... ) '( option .. )

Returns:

t

Example:

(sebbco '( ((TYTOFA TYTOED) (BBEVCR BBEVDE BBEVCH)) (TYTOBY (BBEVCR BBEVDE)) ) '(BBOPON) )

 

(setq saved_setting (oubbco)) (sebbco nil '(BBOPOF))

...

(apply 'sebbco saved_setting)

SECTBY - KI function to section bodies

 

Syntax:

( SECTBY tag tag ) => ( tag tag tag int ifail )

Args:

bodies surface

Returns:

( front_bodies back_bodies new_faces nfaces ifail )

 

Syntax:

( sectby tag tag ) => (( tag ... ) ( tag ... ) ( tag ... ))

Args:

bodies surface

Returns:

(( front_body... ) ( back_body... ) ( new_face ... ))

SEINTP - KI function to set interface parameter

 

Syntax:

( SEINTP int int double ) => ( ifail )

Args:

option ival rval

Returns:

( ifail )

 

Syntax:

( seintp token int ) => t

Args:

option ival

Returns:

t

Example:

( seintp 'SLIPRB 1000000 )

( seintp 'SLIPCH t )

 

Notes:

In the cases where 1 means "on" and 0 means "off", logical values t and nil may be used in place of integers.

SEMODP - KI function to set modeler parameter

 

Syntax:

( SEMODP int int double ) => ( ifail )

Args:

option ival rval

Returns:

( ifail )

 

Syntax:

( semodp token rval ) => t

Args:

option precision

Returns:

t

SESTPA - KI function to set state of part

 

Syntax:

( SESTPA tag int ) => ( ifail )

Args:

part state

Returns:

( ifail )

 

Syntax:

( sestpa tag token ) => t

Args:

part state

Returns:

t

SETLEN - KI function to associate a tolerance value with a face, edge or vertex

 

Syntax:

( SETLEN tag double ) => ( tag int ifail )

Args:

entity tolerance

Returns:

( new_edges n_edge ifail )

 

Syntax:

( setlen tag double ) => ( <tag> ... )

Args:

entity tolerance

Returns:

( <edge> ... )

Example:

( setlen 20 0.001 )

SEUFEN - KI function to set user field of entity

 

Syntax:

( SEUFEN tag address ) => ( ifail )

Args:

entity workspace_address

Returns:

( ifail )

 

Syntax:

( seufen tag '( int ... )) => t

Args:

entity int_list

Returns:

t

SHAREN - KI function to share the underlying geometry of a body

 

Syntax:

( SHAREN tag int address ) => ( int ifail )

Args:

body nopts opt_array

Returns:

( ngeom ifail )

 

Syntax:

( sharen tag '( <( token )> ...) ) => int

Args:

body '( <( option )> ... )

Returns:

( ngeom )

Example:

( sharen 26 nil )

( sharen 26 '( ( SHOPIC ) ) )

SIMPEN - KI function to simplify geometry in a body

 

Syntax:

( SIMPEN tag int ) => ( tag int ifail )

Args:

body level

Returns:

( geometry ngeometry ifail )

 

Syntax:

( simpen tag token ) => ( tag ... )

Args:

body level

Returns:

( new_geometry ... )

SPLTEN - KI function to split topology and geometry of body at any G1 discontinuities

 

Syntax:

( SPLTEN tag ) => ( int tag tag ifail )

Args:

body

Returns:

( n_splt_faces faces_split new_faces ifail )

 

Syntax:

( splten tag ) => (<( tag ( tag ... ) )> ... )

Args:

body

Returns:

(<( old_face ( new_face ... ) ) > ... )

Example:

( splten 26 )

SRCHIL - KI function to search for a value in a list of integers from a starting index

 

Syntax:

( SRCHIL tag int int ) => ( int ifail )

Args:

list value start

Returns:

( index ifail )

 

Syntax:

( srchil tag int <int> ) => int

Args:

list value <start . 1>

Returns:

index

SRCHRL - KI function to search for a value in a list of reals from a starting index

 

Syntax:

( SRCHRL tag double int ) => ( int ifail )

Args:

list value start

Returns:

( index ifail )

 

Syntax:

( srchrl tag double <int> ) => int

Args:

list value <start . 1>

Returns:

index

SRCHTG - KI function to search for a value in a list of tags from a starting index

 

Syntax:

( SRCHTG tag tag int ) => ( int ifail )

Args:

list value start

Returns:

( index ifail )

 

Syntax:

( srchtg tag tag <int> ) => int

Args:

list value <start . 1>

Returns:

index

STAMOD - KI function to start the modeler

 

Syntax:

( STAMOD logical int string int ) => ( tag int ifail )

Args:

kijon nchars journal_filename user_field

Returns:

( world ki_version ifail )

 

Syntax:

( stamod <string> <int> ) => string

Args:

<journal_filename . ""> <user_field . 0>

Returns:

ki_version

Example:

( stamod )

( stamod "my_journal" ) ( stamod 'op 4 )

 

Notes:

The default journalling is off, the default user field length is 0. The ifail KI_modeller_not_stopped is not treated as an error, should it occur this string is returned instead of the version number string.

STOMOD - KI function to stop modeler

 

Syntax:

( STOMOD ) => ( ifail )

Args:

-none-

Returns:

( ifail )

 

Syntax:

( stomod ) => string

Args:

-none-

Returns:

ifail_mnemonic

 

Notes:

The ifail KI_modeller_not_started is not treated as an error. This string is returned instead of KI_no_errors where necessary.

SUBBYS - KI function to subtract bodies

 

Syntax:

( SUBBYS tag tag ) => ( tag int ifail )

Args:

target tool

Returns:

( assembly nbodies ifail )

 

Syntax:

( subbys tag '( tag ... )) => ( tag int )

Args:

target '( tool ... )

Returns:

( assembly nbodies )

Example:

( subbys 7 71 )

( subbys 7 '( 71 145 ))

SWEENT - KI function to sweep entity

 

Syntax:

( SWEENT tag vector ) => ( tag int int ifail )

Args:

entity path

Returns:

( laterals nlaterals state ifail )

 

Syntax:

( sweent '( tag ... ) vector ) => (( tag ... ) token )

Args:

'( entity ... )

Returns:

(( new_lateral ... ) state )

Example:

( sweent '( 6 10 22 ) '( 0 0 1 ))

( sweent 7 '( 5 5 5 ))

 

Notes:

sweent can be applied to a single body, vertex or face, or a list of faces.

SWIENT - KI function to swing entity

 

Syntax:

( SWIENT tag vector vector double ) => ( tag int int ifail )

Args:

entity point direction angle

Returns:

( new_laterals nlaterals state ifail )

 

Syntax:

( swient '( tag ... ) vector vector double ) => (( tag ... ) state )

Args:

'( entity ... ) point direction angle

Returns:

(( new_lateral ... ) state )

Example:

( swient 7 '( 0 0 0 ) '( 0 0 1 ) 1.57 )

( swient '( 19 64 ) '( 0 0 0 ) '( 0 0 1 ) pi_2 )

 

Notes:

swient accepts either a single vertex, face or body or a list of faces.

TAPFAS - KI function to taper faces in a body

 

Syntax:

( TAPFAS tag vector vector double ) => ( tag int int ifail )

Args:

faces point direction angle

Returns:

( tapered_faces nfaces state ifail )

 

Syntax:

( tapfas '( tag ... ) vector vector double ) => (( tag ... ) token )

Args:

'( face ... ) point direction angle

Returns:

(( tapered_face ... ) state )

Example:

( tapfas '( 6 38 100 ) '(0 0 0) '(0 0 1) 0.3 )

THIKEN - KI function to thicken a sheet body into a solid

 

Syntax:

( THIKEN tag double double logical double int ) => ( tag tag tag int ifail )

Args:

sheet front_thickness back_thickness check tolerance max_flts

Returns:

( old_topol new_topol bad_topol state ifail )

 

Syntax:

( thiken tag double double logical double int ) =>

(( tag ... ) ( tag ... ) (<tag> ... ) token )

Args:

sheet front_thickness back_thickness check tolerance max_flts

Returns:

(( old _topol ... ) ( new_topol ...) (<bad_topol> ... ) state )

Example:

( thiken 146 .1 t .0000001 0 )

TRIMSH - KI function to trim a sheet body to supplied curves

 

Syntax:

( TRIMSH tag int address int address address ) => ( ifail )

Args:

sheet n_curves curves n_opts opt_array opt_data

Returns:

( ifail )

 

Syntax:

( trimsh tag ( tag ... ) <( ( token double ... ) ... )> ) => t

Args:

sheet ( curve ... ) <'( ( option data ) ... ) )>

Returns:

t

Example:

( trimsh 21 '( 34 35 36 37 ) '( ( SLTRRE 1.0 1.0 1.0 3.0 3.0 3.0 ) ) )

 

Notes:

(i) At present the only options available are SLTRRE and SLTRKE. These are mutually exclusive and one of them must be supplied.
(ii) The option data may be bracketed to aid readability, i.e. '( ( SLTRRE 1.0 1.0 1.0 3.0 3.0 3.0 ) ) and '( ( SLTRRE ( 1.0 1.0 1.0 ) ( 3.0 3.0 3.0 ) ) ) are equivalent.

TRSHCU - KI function to trim a sheet body with curves

 

Syntax:

( TRSHCU tag int address int address vector ) => ( tag int tag tag ifail )

Args:

sheet ncurves trim_curves nopts opts direction

Returns:

( edges nedges derived_curves original_edges ifail )

 

Syntax:

( trshcu tag '( tag ... ) '(( token ) ... ) vector ) =>

( ( tag ... ) ( tag ... ) ( logical ... ) )

Args:

sheet trim_curves options direction

Returns:

( ( edge ... ) ( derived_curve ... ) ( original_edge ... ) )

Example:

( trshcu 21 '(33) '( TRSHPD ) '(0 0 1))

TWEFAC - KI function to transform geometry of faces

 

Syntax:

( TWEFAC tag tag ) => ( int ifail )

Args:

faces transforms

Returns:

( state ifail )

 

Syntax:

( twefac '( tag ... ) '( tag ... ) ) => token

Args:

faces transforms

Returns:

state

Example:

( twefac 100 150)

( twefac '( 64 100 ) 150 ) ( twefac '( 36 ( 64 100 ) ) '( 150 170 ) )

TWSUFA - KI function to tweak the surface(s) of face(s)

 

Syntax:

( TWSUFA tag tag logical ) => ( int ifail )

Args:

face surface sense

Returns:

( state ifail )

 

Syntax:

( twsufa '( tag ...) '( tag ... ) '( logical ... ) => token

Args:

faces surfaces senses

Returns:

state

Example:

( twsufa 22 35 t )

( twsufa '(22 25) '(35 38) '(t f)

UNIBYS - KI function to unite bodies

 

Syntax:

( UNIBYS tag tag ) => ( tag int ifail )

Args:

target tools

Returns:

( assembly nbodies ifail )

 

Syntax:

( unibys tag '( tag ... )) => ( tag int )

Args:

target '( tool ... )

Example:

( unibys 7 45 )

( unibys 7 '( 130 212 ))

Returns:

(assembly nbodies )

UNLDPA - KI function to unload part

 

Syntax:

( UNLDPA tag ) => ( ifail )

Args:

part

Returns:

( ifail )

 

Syntax:

( unldpa tag ) => t

Args:

( unldpa part )

Returns:

t

 

[back to top]

<<< Kernel Interface Typedefs Chapters Special Kernel Interface Routines >>>