咨询热线:0731-88808590
切换到宽版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10397|回复: 1

[讨论]坐标系统

[复制链接]
发表于 2008-11-19 15:22:00 | 显示全部楼层 |阅读模式
以下是引用uesoft在2007-9-19 14:09:34的发言:
现在仿照PDMS,我们的坐标系统也想做成相对的,每个层次节点里保存的都是相对于父节点的坐标

比如World(0,0,0)x,y,z轴不改变,Site ( 50, 0, 0 ) x,y,z轴不改变,zone(80, 0, 0 )x,y,z轴不改变.

那么site的绝对坐标是( 50, 0, 0 ),zone的绝对坐标是( 130, 0, 0 )

这样

我们设置一个层次节点坐标时:

需要指出这个坐标值和这个坐标值是参考什么来的,比如我们给出值(30, 0, 0 ),如果我们在给出参考Site,那么我们实际传入的绝对坐标应该是( 80, 0, 0 ),如果我们给出的参考是zone,那么我们实际传入的绝对坐标是( 210, 0 ,0 ).

我们得到一个层次节点的坐标:

我们需要传入一个参考,比如我们要得到zone的坐标,如果传入参考是site,那么得到的坐标值就是(80。0。0),如果传入的参考是World那么得到的坐标值就是(130,0,0)了。


现在我们这样两个麻烦的地方(当然按照规范去做也是能是实现的)

1、如果我们的节点还没加到层次结构里去,那么设置或得到坐标就有问题,因为不在层次就没有相对概念,这是得值就会出错。

2、如果我们中有个对象不是层次节点,但它属于层次结构,比如如果zone里有个属性对象Position,Position里有坐标信息,这时候Position里的坐标信息也要有相对概念,但它没有GetParent函数,也就得不到相对节点,所以也会有问题

3、如果我们拷贝一个层次节点到另外一个层次下,这时候该如果处理它的坐标信息。(也就CopyData函数该如何实现)


个人想法:

1、层次节点,当节点还没有加到层次中时,这时候保存的是绝对坐标,或者说是相对World的坐标,如果已经加到层次中,那么这时候保存相对坐标。当层次节点加到层次中去时,要把它的绝对坐标转化成相对坐标。

2、当要拷贝一个层次节点时,拷贝出来的对象保存的要是绝对坐标

3、如果一个对象是层次结构中的,但不是层次节点,这时候,这个对象要从UeNodeObject派生,并且要重新实现GetParent接口。


大家有什么想法或意见,多多发表啊!谢谢了!

回复

使用道具 举报

 楼主| 发表于 2008-11-19 15:26:00 | 显示全部楼层
以下是引用uesoft在2007-9-20 9:10:55的发言:
以下是引用yyp2007在2007-9-19 14:11:46的发言:

我觉得如果我们的PDMS做做成想对坐标以后自动布管的算法会遇到这么几个问题:

1,如果我在分支头和分之尾在不同的层次取得,那么我的得到的位置为相对位置,这个时候我要取的他的上层节点并且把它转化为绝对坐标,而且我传出来的所有位置都是相对坐标,这样我又要转化一次。

2,我在定位一个管件的时候是用相对坐标还是绝对坐标。

3,如果以后要考虑碰撞的时候,所有的管件的位置又要转化为绝对坐标。

我觉得这样会很烦琐,所以我个人觉得可以保存绝对坐标,而提供可以得到相对坐标的机制!

以下是引用uesoft在2007-9-20 9:12:44的发言:
以下是引用客人(192.168.*.*)在2007-9-19 14:49:21的发言:

假设对象 A> B> C(A先于B,B先于C)
在世界坐标系中,可以设置A的绝对坐标,可以设置B和C的相对坐标或绝对坐标
一般保存绝对坐标比较好,因为相对坐标转绝对坐标难,而绝对转相对坐标容易,
在一个封闭的系统中,用相对坐标比较好,坐标系间关系的确定还是应该根据实际情况来考虑,
目的是既方便理解,又方便计算

以下是引用uesoft在2007-9-20 9:13:45的发言:
以下是引用客人(192.168.*.*)在2007-9-19 15:09:39的发言:

做相对坐标,目前主要两个考虑,一个是当要该边原点,比如改变site的坐标,它的所有子节点坐标都不需要改变,第二个,如果PDMS保存的是相对坐标,我们用绝对坐标,导出来的数据就用不了。

相对坐标是指节点内部存储机制,对外面来说是隐蔽的,你可以向对象要绝对坐标(当然也可以要相对坐标),区分主要只是节点里面存的是相对还是绝对坐标

以下是引用uesoft在2007-9-20 9:14:31的发言:
以下是引用客人(192.168.*.*)在2007-9-19 16:12:56的发言:

1.PDMS中的中用户设置坐标时,可以设置输入的坐标相对哪一个节点的,如果不设默认的是WORL

2.PDMS中查看坐标的时候可以查看相对于任一节点的坐标如: Q POS WRT/Z1如果不写 WRT/Z1默认是父节点的坐标

3.PDMS中偏移拷贝,如Tee1相对于Zone1是(0,0,1000)把三能拷贝到Zone2下,偏移量是0,0,0 生成的Tee2的相对坐标是(0,0,1000)。

所以认为PDMS中设置的接口应该是相对坐标加上相对节点,不过这样就有限制了,设置一个对象的坐标先把对象加到层次结构中,再设置坐标。

以下是引用uesoft在2007-9-20 9:15:13的发言:
以下是引用客人(192.168.*.*)在2007-9-19 16:13:31的发言:

保存相对坐标,是做以下两个方面考虑,一个如果改变原点,比如改变Site的坐标,其子节点坐标都不用改变,第二个是PDMS保存相对坐标,如果我们用绝对坐标,那么导出的数据可能就用不了

我们的相对或绝对坐标是节点内部的存储结构,对外隐蔽,所以对外面来说应该是一样的,只是提供了更多的设置或得到坐标的种类。

以下是引用uesoft在2007-9-20 9:15:47的发言:
相对坐标可能方便复制。工厂设计中有很多排列一样的设备,向阵列一样。比如很多局部管系布置常常是相同的。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们

长沙优易软件开发有限公司(中文简称:优易软件,英文简称:UESOFT)是三维管道CAD/CAE一体化设计软件开发商,也是新一代三维工厂设计管理系统的开创者。公司开发的自主知识产权的管道应力分析软件AutoPSA居于中国大陆市场前2名。UESOFT于2000年10月23日经湖南省长沙市工商行政管理局核准登记设立。

联系我们

  • 地址: 中国湖南省长沙市高新区桐梓坡西路保利麓谷林语中心i区1栋718-725
  • 电话: 0731-88808590
  • Email: uesoft@163.com
© 2001-2021  Powered by Discuz! X3.4 永益科技
快速回复 返回顶部 返回列表