CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

trans(AutoLISP)

2023-1-7 16:53| 发布者: admin| 查看: 263| 评论: 0|来自: AutoCAD

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

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

支持的平台:视窗和 Mac OS

签名

(trans pt from to [disp])

类型:列表

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

类型:整数、列表或 Ename(实体名称)

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

0-- 世界 (WCS)

1-- 用户(当前 UCS)

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

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

类型:整数、列表或 Ename(实体名称)

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

迪斯普

类型:列表

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

返回值

类型:列表

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

言论

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

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

转换后的 2D 点Z

填充的Z

盐酸

0.0

UCS

当前海拔

法 团

0.0

DCS

投影到当前构造平面(UCSXY平面 + 当前高程)

私营部门发展中心

投影到当前构造平面(UCSXY平面 + 当前高程)

例子

在以下示例中,UCS 绕 WCSZ轴逆时针旋转 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 )

GMT+8, 2024-5-19 14:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部