CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2022 开发者帮助

反式 (AutoLISP)

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

反式 (AutoLISP)

将点(或位移)从一个坐标系转换为另一个坐标系

支持的平台:Windows 和 Mac OS

签名

(trans pt from to [disp])

类型:列表

可解释为 3D 点或 3D 位移(向量)的三个实数列表。

类型:Integer、List 或 Ename(实体名称)

整数代码、图元名称或 3D 拉伸向量,用于标识表示 pt 的坐标系。整数代码可以是下列代码之一:

0 -- 世界 (WCS)

1 -- 用户(当前 UCS)

2 -- 如果与代码 0 或 1 一起使用,则表示当前视口的显示坐标系 (DCS)。当与代码 3 一起使用时,它指示当前模型空间视口的 DCS。

3 -- 纸张空间 DCS(用于代码 2)

类型:Integer、List 或 Ename(实体名称)

用于标识返回点坐标系的整数代码、图元名称或 3D 拉伸向量。有关有效整数代码的列表,请参阅 from 参数。

disp

类型:列表

如果存在且不存在,则此参数指定将 pt 视为 3D 位移而不是点。nil

返回值

类型:列表

请求标系中的 3D 点(或位移)。

言论

如果对 fromto 参数使用实体名称,则必须以 、 、 、 和 函数返回的格式传递该实体名称。此格式允许您将点平移到特定对象的对象坐标系 (OCS) 或从对象坐标系 (OCS) 平移。(对于某些对象,OCS 等效于 WCS;对于这些对象,OCS 和 WCS 之间的转换是空操作。3D 拉伸向量(三个实数的列表)是另一种与对象的 OCS 相互转换的方法。但是,这不适用于 OCS 等效于 WCS 的对象。entnextentlastentselnentselssname

该函数还可以转换 2D 点。它通过将 Z 坐标设置为适当的值来实现此目的。使用的 Z 分量取决于指定的坐标系以及该值是转换为点还是位移。如果要将该值转换为位移,则 Z 值始终为 0.0;如果要将该值转换为点,则确定填充的 Z 值,如下表所示:trans

转换后的 2D 点 Z

填充的 Z

WCS系列

0.0

UCS系统

当前高程

法 团

0.0

DCS系统

投影到当前施工平面(UCS XY 平面 + 当前高程)

PSDCS公司

投影到当前施工平面(UCS XY 平面 + 当前高程)

例子

在以下示例中,UCS 绕 WCS Z 轴逆时针旋转 90 度:

(trans '(1.0 2.0 3.0) 0 1)
(2.0 -1.0 3.0)

(trans '(1.0 2.0 3.0) 1 0)
(-2.0 1.0 3.0)

例如,若要从一段文本的插入点绘制一条线(不使用 Osnap),请将文本对象的插入点从文本对象的 OCS 转换为 UCS。

(trans text-insert-point text-ename 1)

然后,可以将结果传递给“起始点”提示符。

相反,必须先将点(或位移)值转换为其目标 OCS,然后才能将其馈送到 。例如,如果要按 UCS 相对偏移 (1,2,3) 移动圆(不使用 AutoCAD MOVE 命令),则需要将 UCS 的位移转换为圆的 OCS:entmod

(trans '(1 2 3) 1 circle-ename)

然后,将生成的位移添加到圆的中心点。

例如,如果用户输入了一个点,并且想要找出它看起来更接近线的哪一端,则可以将用户的点从 UCS 转换为 DCS。

(trans user-point 1 2)

然后,将每个线路的端点从 OCS 转换为 DCS。

(trans endpoint line-ename 2)

从那里,您可以计算用户点与线的每个端点之间的距离(忽略 Z 坐标),以确定哪一端看起来更近。


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-12-15 11:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部