hm_linefilleting

Find the new parameterization of 2D parameterized points in other to have a fillet with a particular radius on the given points.

Syntax

hm_linefilleting u_coords v_coords id_joints fillet_radius id_points

Type

HyperWorks Tcl Query

Description

This command returns the new parameterization of 2D points (u_coords, v_coords). The parameterization is given by the joint list ”id_joints”,( look into hm_lineparameterization for the joints definitions) .The new parameterization will contain arcs, with radius “fillet_radius”, on to the points with id “id_points”.

The return value will contain the new parameterization:
parameterization
N, u_list, v_list , id_joint_list, error_code.
  1. N: number of the new 2D points.
  2. u_list: u coordinates of the new 2D points.
  3. v_list: v coordinates of the new 2D points.
  4. id_joint_list: id of the 2D points (joints) that identify the new parameterization.
  5. error code:
    • 1 : works fine
    • -1 : few points available.
    • -2 : possible under cut.
    • -3 : no arc with the given radius.
    • -4 : possible under cut due to de-fillet.

Example

To get the new parameterization (parameterization) of 2D points (u_coords,v_coords) given the fillet radius (fillet_radius) and the point of application (id_points), it is necessary to define the list of u points coordinates and the list of v points coordinates and to define the joints list id.

set u_coords [list  0.000000   10.378596   10.756999   14.177352   17.237590   30.395608   37.458259   43.931124   49.025821  97.1530504825  75.748947   92.918543   109.903560   127.884944  139.506781146  163.908138   180.403318  181.166188357  204.867479   210.392677   211.051515   211.343926   211.670544   216.586022   221.146301]
set v_coords [ list -0.000000   -18.845814   -39.105208   -55.782483   -59.928431   -67.171536   -68.832775   -70.246115   -72.601062  -45.2114789392  -85.778399   -93.731987   -97.225670   -96.526943  -64.9996973641  -92.430057   -82.680979  -49.3774196602  -62.251118   -46.902765   -16.083103   -6.730220   -3.228096   0.444887   4.299803]
set id_joints [list 0 2 3 4 5 7 8 9 10 11 13 14 16 17 18 19 22 24]
set fillet_radius 10.000
set id_points [list 9 14 17]
set parameterization [hm_linefilleting $u_coords $v_coords $id_joints $fillet_radius $id_points]
The “parameterization” is:
27 
0 1.02122135162E+001 1.07569990158E+001 1.41773519516E+001 1.72375907898E+001 3.03956089020E+001 4.39311256409E+001 4.90258216858E+001 6.73738708496E+001 7.90940322876E+001 8.11644592285E+001 7.57489471436E+001 9.29185409546E+001 1.10232032776E+002 1.27884941101E+002 1.30136596680E+002 1.36852966309E+002 1.46170837402E+002 1.64143356323E+002 1.80403320313E+002 1.80791213989E+002 1.85560852051E+002 1.95561584473E+002 2.04867477417E+002 2.10392669678E+002 2.11670547485E+002 2.21146301270E+002 
0 -1.82229537964E+001 -3.91052093506E+001 -5.57824821472E+001 -5.99284324646E+001 -6.71715393066E+001 -7.02461166382E+001 -7.26010589600E+001 -6.21580810547E+001 -6.34930191040E+001 -7.55157165527E+001 -8.57783966064E+001 -9.37319869995E+001 -9.72526702881E+001 -9.65269393921E+001 -9.04187393188E+001 -8.42395553589E+001 -8.64103469849E+001 -9.24056701660E+001 -8.26809768677E+001 -6.57473602295E+001 -5.74516487122E+001 -5.71889610291E+001 -6.22511177063E+001 -4.69027633667E+001 -3.22809600830E+000 4.29980278015E+000 
0 2 3 4 5 6 7 8 10 11 12 14 15 17 19 20 22 23 24 25 26 
1

Errors

If the parameterization isn’t found the last element of the return list is a negative value, like described in the section above.
set parameterization [hm_linefilleting $u_coords $v_coords $id_joints $fillet_radius $id_points]
set error_code [lindex $parameterization end]
if {$error_code <0} {
#Handle error here //I can't find the new parameterization.
}