坐标系的结合
对于一个物体,常常要根据不同目的设定多个坐标系。在图5.23所示的积木中,除代表积木位置和姿势的block坐标系之外,还设定了指定抓取位置的block-grasp坐标系和表示积木上面的
block-top坐标系。由于这三个坐标系间的相对关系不变,所以在block被移动时,其它两个坐标系的值,为了保持已决定了的相
对关系不发生矛盾,也必须更新。这种坐标系的结合关系可用AFFIX语句,说明如下:
AFFIXblock-topTOblockRIGIDLY;AFFIXblock-graspTOblockRIGIDLY;
根据这两个AFFIX语句,blockblock-grasp,block-top被作为相互结合的三个坐标系来处理,通常,为维持其相互之间的相对关系而被自动管理。即若block被移动,则与其结伴的block-grasp·和block-top也移动。或block-grasp移动的话,则block,block-top也移动。当手抓住积木时,存在同样的结合关系。因此,若事先说明
AFFIXblock-graspTOhandRIGIDLY;
:则关于手和积木的三个坐标系将作为一体而被管理。而且,若·hand被移动的话,则block的值也随之更新,或者若写了移动biock的语句,则为了达到被指定的block的移动,可求出必要的hand的移动,这样,若坐标系的结合关系的管理可以自动无矛盾进行,象
MOVEblockTOfinal;
这样,就可以把作业着眼于对象物的动作来描述,程序可以写成更自然、更易理解的形式。两个物体被组合成一体时,也有必要进行结合关系的说明。对结合关系来说,可考虑两种类型,这就是RIGID结合与NONRIGID结合。
AFFIXoneTOanotherRIGIDLY;
表示one和another由螺栓等被牢牢固定时的结合。这时若移动one,则another也动,若移动another,one也动。
AFFIXcupTOsaucerNONRIGIDLY;
它是把杯子放到盘子上时的结合,若移动saucer,cup也动,但移动cup时,saucer不动。
要想用AFFIX语句来结合两个坐标系的值。并且事先被定义时,则
AFFIXblock-graspTOblockRIGIDLY;
就只说明这样的结合关系,这时两者的相对位置被自动计算。在block-grasp未被定义时,归纳其定义和AFFIX语句,可作如下描述。这里预先约定NILROT是表示不进行回转的语句。
AFFIXblock-graspTOblockAT
TRANS(NILROT,VECT(width/2,depth/2,height/2))RIGIDLY:
为了解除结合关系,采用UNFIX语句,在hand离开block-gIasp的情况中,用
UNFIXblock-graspFROMhand;
语句说明。在这个UNFIX语句之后,hand和block的结合关系被解除,这时,即使移动hand,但block的值却不变。
随便看看
- 2024-11-11涡轮的匹配
- 2024-09-19控制阀的分类-液压传动基础知识
- 2025-01-15支腿操作GT55OE
- 2024-09-13前后、左右的称呼-挖掘机驾驶装置篇
- 2024-09-13启动器-挖掘机驾驶操作篇