垂直旋转文本
你好我是一家数据转换公司的生产团队负责人。在这里,我们的任务是旋转垂直于现有直线的文本。。
我承认自己是autocad lisp编程的新手,所以我在Cadtutor中搜索了一个lisp,找到了下面的lisp。
这个lisp完全符合我的要求,只是它将文本与所选行平行对齐。。但实际上我需要垂直于所选行旋转文本。。。
谁能按照我的要求重写这个lisp。
--------------------------------------------------------
;;旋转到选定对象角度的文本
(defun c:TRA()(c:TextRotate2Angle))
(定义c:TextRotate2Angle(/ss lst pt ang obj
get\u pt\u和_角度)
(vl load com)
;;用户选择曲线对象
;;返回拾取点和拾取点处曲线的平均角度
(defun get\u pt\u和_角度(prmpt/ent)p@ptparA parB pt ang)
(if(和(setq ent(entsel prmpt))
(非(vl-catch-all-error-p
(setq pt(vl catch all应用
'vlax曲线getClosestPointTo
(列表(car ent)(cadr ent))
)
)
)
)
)
(程序
(setq ent(car ent)
p@pt(vlax曲线getParamAtPoint ent pt)
段落(最大0.0(-p@pt 0.05))
parB(最小值+p@pt0.05)(vlax曲线getEndParam ent))
ang(角度(vlax曲线getPointAtParam ent parA)
(vlax曲线getPointAtParam ent ParB)
)
)
(列出pt ang)
)
)
)
;;获取文本以对齐对象到对齐角度(&O)
;;文本不会移动,只是旋转到对齐角度
;;对象必须具有曲线数据
(提示“\n选择要对齐的文本对象。”)
(if(and(or)(setq ss(ssget“_+:E:S”'((0。“Text,Mtext”)))
(提示“\n**未选择文本对象。**”)
(或(setq lst(get\u pt\u and\u angle“\n选择要标记的对象上的点”)
(提示“\n**缺少或没有对象的曲线数据。”)
)
(程序
(setq pt(轿厢lst)
;; ang(固定角度(cadr lst))
ang(cadr lst)
obj(vlax ename->vla对象(ssname ss 0))
)
(vla put rotation Obj ang)
)
)
(普林斯)
)
--------------------------------------------------------
页:
[1]