Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
ANIM_HARDTRACK(nged)	     BRL-CAD User Commands	  ANIM_HARDTRACK(nged)

       anim_hardtrack -	make an	animation script for the links and/or wheels
       of a tracked vehicle with rigid axles.

       anim_hardtrack [-l num_linkslinkname] [-w wheelname] [options]
		      wheelfile	in.table out.script

       Anim_hardtrack is designed to produce an	animation script for the
       animation of a track and/or the wheels defining a track,	where the
       wheels are rigidly fixed	in place with respect to the vehicle. The main
       difference between anim_hardtrack and anim_track	is that	anim_track
       handles vehicles	with dynamic axles. Both are designed to be used in
       conjunction with	anim_script, to	achieve	the final result.

       in.table	is the file that will be used to animate the vehicle itself.
       By default, it is assumed that it contains a time column, three columns
       of translation information, and three columns specifying	the vehicle's
       yaw, pitch, and roll. If	it is desired that the vehicle be steered
       automatically, then the table should contain only time and position,
       and the -s option should	be used.

       The track's geometry is defined by wheelfile, a table which contains
       one row for each	wheel defining the track. The first three columns of
       the table specify the x,	y, and z coordinates of	the wheel centers. The
       fourth column specifies the radius of each wheel.

       The order in which the wheels are listed	should be the order in which a
       link of the track would move around the wheels when the vehicle is
       moving forward (clockwise, when looking from the	right of the vehicle).
       The wheel centers should	all lie	in a plane perpendicular to the
       vehicle's left-right axis. If this is not the case, anim_hardtrack uses
       the first wheel as the standard and projects all	the other wheels into
       the same	plane as the first wheel. By default, it is assumed that the
       vehicle's left-right axis is the	y-axis.	If the modeled vehicle has
       some other orientation, this must be specified with the -b option.

       By default, it is assumed that all of the link objects are modeled at
       the model origin, with the wheel-contacting surface centered on the
       origin and the ground-contacting	surface	facing up. The sides of	each
       link which connect to other links should	face the positive and negative
       x-axes.	Anim_hardtrack prints the appropriate commands to move the
       links from the origin to	the correct place around the wheels.

       If the links are	modeled	in place around	the wheels to begin with, the
       -p and -i options are needed.

       One or both of the first	two options should always be specified.

       -l num linkname
	   Print animation scripts to animate the links	of the track.
	   Animation commands will be printed for num different	links named
	   linkname.0, linkname.1, up through linkname.(num-1).	A typical
	   example of a	linkname might be "tank/righttrack/links/link."	The
	   full	pathname must be specified, because anim_hardtrack's method is
	   to roll the links around within the vehicle's tree structure	so
	   that	when the whole vehicle "tank" is animated, the complete
	   combination of rolling around and translating is achieved.

       -w wheelname
	   Print animation scripts to rotate each wheel. The wheels are	named
	   wheelname.0,	wheelname.1, and so on,	where wheelname.0 is the first
	   wheel listed	in wheelfile. As with the links, the full pathname for
	   the wheels should be	specified.

       -b # # #
	   Specify the yaw, pitch, and roll of the vehicle's axes with respect
	   to the world	axes. By default, the vehicle is assumed to have a
	   yaw,	pitch, and roll	of 0.

       -d # # #
	   Specify (in world coordinates) the centroid of the vehicle of which
	   the track is	a part.	By default, the	vehicle	is assumed centered at
	   the origin.

       When calling anim_script	to handle the animation	of the vehicle itself,
       the parameters following	the -b and -d options should be	identical to
       those used for anim_hardtrack.

       -r #
	   Specify the common radius of	all wheels. In this case, the fourth
	   column should be omitted from the wheelfile.

	   Automatic steering. In this case, in.table specifies	only the time
	   and position	of the vehicle.	The orientation	is calculated to
	   always face the vehicle in the direction of motion. This should be
	   used	when the -s option is used by anim_script to animate the

	   Specify the integer with which to begin numbering frames. Default
	   is zero.

	   Animate placed links, rather	than links stored at the origin. In
	   order for placed links to be	animated, they must be equally spaced
	   around the wheels defining the track. The track must	be formed of
	   arcs	around the wheels and straight lines between the wheels, and
	   the links must be numbered clockwise	as seen	from the right.	By
	   default, it is assumed that the center of the first link,
	   linkname.0, is at the beginning of the straight track segment
	   between wheel.(n-1) and wheel.0. If this is not the case, the
	   position of the first link must be identified with the -i# option.

	   Specify the initial offset of the first link. If this option	is not
	   used, the initial position of linkname.0 is assumed to be the
	   beginning of	the straight track segment between wheel.(n-1) and
	   wheel.0. If it is used, the argument	specifies the distance
	   clockwise around the	track from the default position	to the actual
	   desired offset. If the links	are modeled at the origin, the user
	   can choose any offset. This can be useful for lining	up the links
	   with	gears of a drive wheel,	for example. If	the -p option is being
	   used	to animate preplaced links, then it is essential that the
	   actual offset of the	first preplaced	link be	specified.

	   Return "arced" for mged instead of "anim" for rt.

	   Use <string>	for the	link command. Defaults to "rarc."

	   Use <string>	for the	wheel command. Defaults	to "lmul."

	   Only	output the circumference of the	track.

       The output is a script containing as many frames	as there are positions
       in in.table. If there are n links and k wheels, each frame contains up
       to n+k anim commands, either:

	   anim	linkname.i matrix lmul
	   [...	matrix ...] ;
	   anim	wheelname.j matrix lmul
	   [...	matrix ...] ;

	   for 0<=i<n and 0<=j<k.

       Suppose you want	to make	an animation of	a tank rolling across flat
       ground. A list of desired positions is created, perhaps by
       interpolating between a few key positions; this information is placed
       in a four-column	animation table, in.table. The model of	the tank is
       stored in model.g as a combination named	"tank."	Its centroid is	at the
       point (0,0,1000)	and it faces the y-axis. An animation script for the
       tank itself is created as follows:

       anim_script -s -d 0 0 1000 -b 90	0 0 /tank < in.table > tank.script

       Suppose that there are two roadwheels and a drivewheel
       (tank/rwheel/wheel.i, 0<=i<3) which define the shape of the right
       track. A	file called rwheelfile is created:

	   1500	  -2000	   30	   30
	   1500	  0	   1000	   35
	   1500	  2000	   30	   30

       This rwheelfile lists the position and radius of	each of	the three

       There are eighty	links which make up the	right track
       (tank/rtrack/link.i, 0<=i<80). The links	of the right track are all
       modeled at the origin with the outer, ground-contacting surface facing
       up and the inner, wheel-contacting surface centered at the origin.

       The appropriate call to anim_hardtrack is now:

	anim_hardtrack -d 0 0 1000 -b 90 0 0 -w	tank/rwheel -l 80
       tank/rtrack/link	rwheelfile < in.table >	rtrack.script

       Suppose that the	left track is similar to the right track, except that
       all the wheels are of radius 30 units, and the links, rather than being
       stored at the origin, are actually placed in position around the	left
       wheels to begin with. The lwheelfile would be:

	   -1500   -2000   30
	   -1500   0	   1000
	   -1500   2000	   30

       and the call would be:

	anim_hardtrack -p -r 30	-d 0 0 1000 -b 90 0 0 -w tank/lwheel -l	80
       tank/ltrack/link	lwheelfile < in.table >	ltrack.script

       Here, it	is assumed that	tank/ltrack/link.0 is initially	at the
       beginning of the	straight track segment between lwheel.2	and lwheel.0,
       that is,	at the point (2000,1500,-1000) in the vehicle's	coordinates.
       If, instead, the	first link is initially	centered halfway between the
       two roadwheels, this must be specified with the -i# option. If the
       link's actual position is 2000 units farther around the track than

	anim_hardtrack -i 2000 -p -r 30	-d 0 0 1000 -b 90 0 0 -w tank/lwheel
       -l 80 tank/ltrack/link lwheelfile < in.table > ltrack.script

       One final step may remain. The above procedure produces a script	with
       rigid naming conventions, in order to make input	simple.	This may mean
       that the	names in the script do not match the names in model.g. An
       editor should then be used at the end to	replace	all instances of the
       conventional name with the real name; for example, in this case it may
       be necessary to replace "rwheel.1" with "r_drivewheel".

       Tank.script, rtrack.script, and ltrack.script can be combined with
       anim_sort to make the complete script.

       Tracks must have	at least two wheels, and they must be listed in
       clockwise order,	or the results are unpredictable.

       anim_script(nged), anim_track(nged)

       Carl J. Nuzman

       This software is	Copyright (c) 1993-2019	by the United States
       Government as represented by U.S. Army Research Laboratory.

       Reports of bugs or problems should be submitted via electronic mail to

BRL-CAD				  11/05/2021		  ANIM_HARDTRACK(nged)


Want to link to this manual page? Use this URL:

home | help