找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2784|回复: 30

[原创]:申请文字旋转180度的朋友请进!

[复制链接]
发表于 2004-7-2 00:09:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
不好意思,你的帖我找不到了,就发到这里吧!

Sub tt()
pi = 3.1415926
Dim ent As AcadText
Dim pnt As Variant
Dim sset As AcadSelectionSet
Dim Ftype(0) As Integer
Dim Fdata(0) As Variant
Ftype(0) = 0
Fdata(0) = "TEXT"
Dim i As Integer
Set sset = ThisDrawing.SelectionSets.Add("ttt")
sset.SelectOnScreen Ftype, Fdata
Dim p1 As Variant
'ThisDrawing.Utility.GetEntity ent, pnt, "choose"
'ent.Alignment = acAlignmentMiddleCenter

For Each ent In sset
ent.Alignment = acAlignmentMiddleCenter
p1 = ent.TextAlignmentPoint
ent.Rotate p1, pi

ent.Update
Next
sset.Delete

End Sub

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-7-2 04:05:06 | 显示全部楼层
程序执行后文字不见了?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-2 11:59:36 | 显示全部楼层
文字不见了?让我再看看!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-2 13:00:02 | 显示全部楼层
用GetBoundingBox找中点,旋转
改变ent.TextAlignmentPoint有Bug,文字不是不见了,而是被压得很瘪
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-2 16:03:50 | 显示全部楼层
同意楼上见解,但用getboundingbox,在ucs下如何处理?还没想到好办法。。。
难道真要转回wcs,处理后再返回ucs?各位有何高招?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-2 21:04:53 | 显示全部楼层
直接用三维旋转,在ucs上的Z轴方向找两个点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-2 22:40:28 | 显示全部楼层
想偷一下懒少写几句居然来个BUG,真是晕,呵呵,按照lzh兄的方法改了,这次应该没问题了,:)

Sub tt()
pi = 3.1415926
Dim ent As AcadText
Dim pnt As Variant
Dim sset As AcadSelectionSet
Dim Ftype(0) As Integer
Dim Fdata(0) As Variant
Dim minpnt As Variant
Dim maxpnt As Variant
Ftype(0) = 0
Fdata(0) = "TEXT"
Dim i As Integer
Set sset = ThisDrawing.SelectionSets.Add("ttt")
sset.SelectOnScreen Ftype, Fdata
Dim p1(0 To 2) As Double
'ThisDrawing.Utility.GetEntity ent, pnt, "choose"
'ent.Alignment = acAlignmentMiddleCenter

For Each ent In sset
ent.Alignment = acAlignmentMiddleCenter
ent.GetBoundingBox minpnt, maxpnt
p1(0) = (minpnt(0) + maxpnt(0)) / 2
p1(1) = (minpnt(1) + maxpnt(1)) / 2
p1(2) = 0
'p1 = ent.TextAlignmentPoint
ent.Rotate p1, pi

ent.Update
Next
sset.Delete

End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-3 09:40:31 | 显示全部楼层
最好把
ent.Alignment = acAlignmentMiddleCenter
去掉
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-3 09:51:29 | 显示全部楼层
编这个还是vba直接(比vlisp而言)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-3 10:03:25 | 显示全部楼层
相对而言,Vlisp“复杂”一点,和VB调用ActiveX倒有点相似,VBA提供了Thisdrawing,就显得“简单”一点
ps:Lisp的括号看的头疼:(
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-3 12:04:10 | 显示全部楼层
最初由 lzh741206 发布
[B]相对而言,Vlisp“复杂”一点,和VB调用ActiveX倒有点相似,VBA提供了Thisdrawing,就显得“简单”一点ps:Lisp的括号看的头疼:( [/B]

不会吧, 从程序码语句行看, 还是VLISP简单呀!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-3 12:08:29 | 显示全部楼层
最初由 lsjjm 发布
[B]
不会吧, 从程序码语句行?.. [/B]


如果没有声明段,那就短多了,我也是给LISP的括号整怕了~~~:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-3 12:12:28 | 显示全部楼层
已插入点旋转
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-3 12:19:38 | 显示全部楼层
最初由 Free-Lancer 发布
[B]已插入点旋转 [/B]


那样位置会变的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-3 12:25:09 | 显示全部楼层
textjust 调整为正中对齐然后旋转
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-20 09:54 , Processed in 0.468249 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表