本帖最后由 cq4920 于 2025-4-12 01:20 编辑
 - ;; 获取图元包围盒的最小点坐标
- (setq old_min (cadr (mc:ent-max-min obj)))
先获取原始图元包围盒点坐标
再根据新的图元包围盒点坐标计算偏移量,修改11 单行文字有效,多行文字未测试,
 - ;; 刷新实体数据
- (setq ent (entget obj))
- (setq new_min (cadr (mc:ent-max-min obj))) ; 确保mc:ent-max-min能够正确处理新状态
- ;; 计算平移补偿
- (setq dx (- (car old_min) (car new_min)))
- (setq dy (- (cadr old_min) (cadr new_min)))
- ;; 更新插入点
- (setq pt (cdr (assoc 11 ent))) ; 原始插入点
- (setq new_pt (list (+ (car pt) dx) (+ (cadr pt) dy))) ; 新的插入点
- (entmod (subst (cons 11 new_pt) (assoc 11 ent) ent))
PS 不知道 直接对比新旧图元的 11 的坐标有没有效 |