iCAx开思网

标题: 关于UG二次开发中的坐标系问题(毕业设计,急啊) [打印本页]

作者: abcd8411    时间: 2005-6-13 11:20
标题: 关于UG二次开发中的坐标系问题(毕业设计,急啊)
时间紧迫,希望大虾们不吝赐教,小妹在次先行谢过了
    我使用的是vc++环境进行开发。
    是这样的,有一个实体,比如正方体100*100*100,在我创建它时,一个角点位于坐标系原点。后来我利用命令获取了它的质心坐标为(50,50,50)。想将当前的坐标系原点移动到正方体的质心处即原来的(50,50,50)处。我调用了以下命令:
             tag_t wcs_id;     
        tag_t csys_tag;    //id和tag这两个有何不同?
        double origin[3];   //定义坐标系原点
             UF_CSYS_ask_wcs([$wcs_id)]    //查询当前坐标系标识
               //wcs_id=csys_tag;
                     for(i=0;i<3;i++)
        {
                   origin=center_of_mass;/*将质心坐标(前已正确得出为(50,50,50))赋给坐标原点*/
        }
        UF_CSYS_set_origin(wcs_id,origin);    //设置当前工作坐标系原点为origin
      经过这些操作后,在实体的界面上会出现两个坐标系。一个位于质心的应该是我后来设定的工作坐标系。还有一个坐标系(三种颜色)依然位于原来的角点处。此后我再利用查询质心坐标的命令:
  UF_WEIGHT_estab_part_props (blk_obj, 0.99999,false,units,[$properties,&exceptions)]
  UF_WEIGHT_ask_props(blk_obj,units,[$properties)]
  center_of_mass[0]=properties.center_of_mass[0];
查质心坐标时,它的坐标依然是(50,50,50)
而我想要做的是令质心在我移动后的坐标系中计算。即质心坐标应该为(0,0,0)
  
在ug用户界面下我可以进行同样的操作。在建模模式下,选菜单中的坐标系,然后将坐标原点移动增量定为50,50,50。确定后,那个三色的坐标系就跑到质心去了。
然后我利用菜单里,分析中的质量特性,查询实体的质心坐标,此时就可以变为(0,0,0)了。
  
我不知道究竟怎么回事。肯定是对UG坐标系的操作命令没有恰当使用。那么要怎么办呢?
作者: 深夜摔键盘    时间: 2005-6-13 19:24
光建坐标系不行。还得坐标转换啊,UF_CSYS_map_point
作者: DEEPMOON    时间: 2005-6-13 22:07
坐标系不动,移动所有实体吧!
作者: dasanlang    时间: 2005-6-14 21:03
关于这个坐标问题,好像程序中得到的全是绝对坐标系中的坐标
作者: wflying    时间: 2005-6-14 22:39
我以前也遇到过这个问题,困扰了好久,后来还是通过移动实体来解决的。哪位大侠知道怎么移动坐标系,请指点一下。




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3