CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2024 开发者帮助

坐标系变换

2024-5-31 18:00| 发布者: admin| 查看: 173| 评论: 0|原作者: admin|来自: AutoCAD

坐标系变换

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

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

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

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

WCS系列

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

UCS系统

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

弹性云服务器

实体坐标系。返回的点值在此坐标系中表示,相对于图元本身。这些点在根据实体的预期用途转换为 WCS、当前 UCS 或当前 DCS 之前是无用的。相反,在通过 或 将点写入数据库之前,必须将点转换为 ECS。acdbEntGet()acdbEntMod()acdbEntMake()

DCS系统

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

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

PSDCS公司

纸空间 DCS。此坐标系只能转换为当前活动模型空间视口的 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)。但是,如果按以下示例所示进行调用,则结果为 (-2.0,1.0,3.0)。acedTrans()acedTrans()

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

路过

雷人

握手

鲜花

鸡蛋

最新评论

群   号:715888130

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

GMT+8, 2025-5-13 08:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部