XD::GEOM:M-TRANS
;; ------------------------------------------------------------------------
;;; 函数名称 / Function Name: XD::GEOM:M-TRANS
;;;
;;; 【功能说明 / Description】
;;; 对点列表 LST 中的每个点应用坐标变换 TRANS,返回变换后的点列表。
;;; 变换由参数 A 和 B 指定,调用 AutoCAD 的 TRANS 函数实现。
;;;
;;; 【参数说明 / Parameters】
;;; lst - (list) 点坐标列表,每个元素为点坐标列表 (x y z)
;;; a - (int) 变换的源坐标系代码
;;; b - (int) 变换的目标坐标系代码
;;;
;;; 【返回值 / Return Value】
;;; (list) 变换后的点坐标列表,顺序与输入相同
;;;
;;; 【依赖函数 / Dependencies】
;;; - length : 获取列表长度
;;; - nth : 获取列表中指定位置元素
;;; - cons : 构造列表
;;; - reverse: 反转列表
;;; - trans: AutoCAD 内置坐标变换函数
;;;
;;; 【备注 / Notes】
;;; - 该函数实现了对点集的批量坐标变换,常用于几何处理和坐标系转换。
;;; - 返回的列表顺序与输入保持一致。
;;;
(defun XD::GEOM:M-TRANS (lst a b / lst2 c n)
(setq n 0)
(setq lst2 nil) ;; 初始化结果列表,避免未定义变量错误
(repeat (length lst)
(setq c (nth n lst))
(setq c (trans c a b))
(setq lst2 (cons c lst2))
(setq n (+ n 1))
)
(reverse lst2)
)
本帖最后由 HLCAD 于 2025-5-13 08:37 编辑
版主,是否可以简化为:
(mapcar (function (lambda(x) (trans x a b))) Lst)
页:
[1]