csdn520 发表于 2011-6-24 15:46:33

新写的代码? 不知道哪里有错。请大侠指教!

(setq en_line (entsel "选取要对齐直线"))
(setq en_line_data (entget (car en_line)))   ;取得en_line的全属性列表
(setq pt1 (cdr (assoc 10 en_line_data)))   ;取得en_line的起点坐标
(setq pt2 (cdr (assoc 11 en_line_data)))   ;取得en_line的终点坐标
(setq line_angle (angle pt1 pt2))            ;计算两点的弧度
(setq en_text (entsel "选取文字"))
(setq en_text_data (entget (car en_text)))   ;取得en_text的全属性列表
(setq text_angle (assoc 51 en_text)          ;取得en_text角度列表
(setq new_angle (cons 51 line_angle))      ;产生新的角度列表
(setq en_text (subst new_angle txet_angleen_text))   ;新旧替换
(entmod en_text)                              ;更新对象

zhynt 发表于 2011-6-24 15:56:54

(setq text_angle (assoc 51 en_text)
这行缺闭括号

csdn520 发表于 2011-6-24 16:00:43

多谢!

csdn520 发表于 2011-6-24 16:02:08

括号有了但是还是有错误!
错误: 关联列表错误: (<图元名: 7efabf10> (-43271.1 -100061.0 0.0))

Andyhon 发表于 2011-6-24 16:56:33

Try
(setq en_line (entsel "选取要对齐直线"))
(setq en_line_data (entget (car en_line)))   ;取得en_line的全属性列表
(setq pt1 (cdr (assoc 10 en_line_data)))   ;取得en_line的起点坐标
(setq pt2 (cdr (assoc 11 en_line_data)))   ;取得en_line的终点坐标
(setq line_angle (angle pt1 pt2))            ;计算两点的弧度

(setq en_text (entsel "选取文字"))
(setq en_text_data (entget (car en_text)))   ;取得en_text的全属性列表
(setq text_angle (assoc 50 en_text_data ))   ;取得en_text角度列表
(setq new_angle (cons 50 line_angle))      ;产生新的角度列表
(setq en_text (subst new_angle text_angleen_text_data))   ;新旧替换
(entmod en_text)

zhynt 发表于 2011-6-24 16:56:52

(setq text_angle (assoc 51 en_text))
ent_text应该是en_text_data

x_s_s_1 发表于 2011-6-24 17:00:06

(setq en_line (entsel "选取要对齐直线"))
(setq en_line_data (entget (car en_line)))   ;取得en_line的全属性列表
(setq pt1 (cdr (assoc 10 en_line_data)))   ;取得en_line的起点坐标
(setq pt2 (cdr (assoc 11 en_line_data)))   ;取得en_line的终点坐标
(setq line_angle (angle pt1 pt2))            ;计算两点的弧度
(setq en_text (entsel "选取文字"))
(setq en_text_data (entget (car en_text)))   ;取得en_text的全属性列表
(setq text_angle (assoc 50 en_text_data))          ;取得en_text角度列表
(setq new_angle (cons 50 line_angle))      ;产生新的角度列表
(setq en_text_data (subst new_angle text_angleen_text_data))   ;新旧替换
(entmod en_text_data)                              ;更新对象

csdn520 发表于 2011-6-24 17:08:27

csdn520 发表于 2011-6-24 17:24:53

这些都改好了但是发现程序还是不能用纠结中!

zhynt 发表于 2011-6-24 17:40:53

完整的程序:
(defun c:ttt ()
(setq        en_line             (entsel "选取要对齐直线")
        en_line_data (entget (car en_line)) ;取得en_line的全属性列表
        pt1             (cdr (assoc 10 en_line_data));取得en_line的起点坐标
        pt2             (cdr (assoc 11 en_line_data));取得en_line的终点坐标
        line_angle   (angle pt1 pt2)        ;计算两点的弧度
        en_text             (entsel "选取文字")
        en_text_data (entget (car en_text)) ;取得en_text的全属性列表
        text_angle   (assoc 50 en_text_data) ;取得en_text角度列表
        new_angle    (cons 50 line_angle) ;产生新的角度列表
        en_text_data (subst new_angle text_angle en_text_data);新旧替换
        )                                       
(entmod en_text_data)
)
是可以用的
页: [1] 2
查看完整版本: 新写的代码? 不知道哪里有错。请大侠指教!