CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

坐标系变换

2023-1-1 00:57| 发布者: admin| 查看: 1994| 评论: 0|来自: AutoCAD

该函数将点或位移从一个坐标系转换为另一个坐标系。它需要一个点参数,可以解释为三维点或三维位移矢量。这由一个称为的参数控制,该参数必须是非零 ifis 被视为位移向量;否则,被视为一个点。转换后的点或向量在按引用调用结果参数中返回,该参数的类型与 AS 类似。acedTrans()ptdispptptptads_point

指定两个坐标系的参数,和 都是结果缓冲区。参数指定表示的坐标系,参数指定结果的坐标系。这两个参数都可以通过以下任一方式指定坐标系:fromtofrompttofromto

  • 一个整数代码 (),用于指定 WCS、当前 UCS 或当前 DCS(当前视区或图纸空间)。restype == RTSHORT
  • 由其中一个实体名称或选择集函数返回的实体名称 ()。指定指定实体的弹性云服务器。对于平面实体,弹性云服务器可能与 WCS 不同。如果弹性云服务器没有差异,则云服务器与WCS之间的转换属于身份操作。restype == RTENAME
  • 三维拉伸向量 (),这是指定实体 ECS 的另一种方法。拉伸矢量始终以世界坐标表示;拉伸向量 (0,0,1) 指定 WCS 本身。restype == RT3DPOINT

以下是可通过参数指定的 AutoCAD 坐标系的说明。fromto

世界广播公司

世界坐标系。“参考”坐标系。所有其他坐标系都是相对于 WCS 定义的,WCS 永远不会更改。相对于 WCS 测量的值在更改其他坐标系时是稳定的。

UCS

用户坐标系。“工作”坐标系。传递给 AutoCAD 命令的所有点(包括从 AutoLISP 例程和外部函数返回的点)都是当前 UCS 中的点(除非用户在命令提示符下在它们前面加上 *)。如果希望应用程序将 WCS、ECS 或 DCS 中的坐标发送到 AutoCAD 命令,必须先通过调用将其转换为 UCS。acedTrans()

弹性云服务器

实体坐标系。返回的点值在此坐标系中相对于实体本身表示。这些点在根据实体的预期用途转换为 WCS、当前 UCS 或当前 DCS 之前是无用的。反之,积分必须先转换为弹性云服务器,然后才能通过ofor写入数据库。acdbEntGet()acdbEntMod()acdbEntMake()

DCS

显示坐标系。对象在显示之前变换到的坐标系。DCS 的原点是存储在 AutoCAD 目标系统变量中的点,其Z轴是查看方向。换句话说,视口始终是其 DCS 的平面视图。这些坐标可用于确定某些内容对 AutoCAD 用户显示的位置。

当整数码为 2 和 3 时,按任一顺序,2 表示当前模型空间视口的 DCS,3 表示图纸空间的 DCS (PSDCS)。当 2 代码与 3 以外的整数代码(或指定坐标系的其他方法)一起使用时,假定它表示当前空间(图纸空间或模型空间)的 DCS,并假定另一个参数表示当前空间中的坐标系。fromto

私营部门发展中心

图纸空间DCS。此坐标系只能变换到当前活动模型空间视口的 DCS 或从中变换。这本质上是一个 2D 转换,其中XY坐标始终缩放,如果参数为 0,则偏移。Z坐标已缩放,但从不平移;它可用于查找两个坐标系之间的比例因子。PSDCS(整数代码 2)只能转换为当前模型空间视口:如果参数等于 3,则参数必须等于 2,反之亦然。dispfromto

以下示例将 WCS 中的点转换为当前 UCS。

ads_point pt, result; 
struct resbuf fromrb, torb; 
pt[X] = 1.0; 
pt[Y] = 2.0; 
pt[Z] = 3.0; 
fromrb.restype = RTSHORT; 
fromrb.resval.rint = 0; // WCS  
torb.restype = RTSHORT; 
torb.resval.rint = 1; // UCS  
// disp == 0 indicates that pt is a point:  
acedTrans(pt, &fromrb, &torb, FALSE, result);

如果当前 UCS 绕世界Z轴逆时针旋转 90 度,则调用会将结果设置为点 (2.0,-1.0,3.0)。但是,如以下示例所示调用 ifis,结果为 (-2.0,1.0,3.0)。acedTrans()acedTrans()

acedTrans(pt, &torb, &fromrb, FALSE, result); 

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-27 12:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部