乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 92|回复: 0

[编程交流] 垂直旋转文本

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:54:46 | 显示全部楼层 |阅读模式
你好
 
我是一家数据转换公司的生产团队负责人。在这里,我们的任务是旋转垂直于现有直线的文本。。
 
我承认自己是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)
)
 
)
(普林斯)
)
--------------------------------------------------------
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-9 20:39 , Processed in 0.334369 second(s), 54 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表