找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1996|回复: 10

[求助] 文字修改对齐点后,文字位置会变,求个代码...

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-8-19 16:15:49 | 显示全部楼层 |阅读模式

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

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

×
文字修改对齐点后,文字位置会变,求个代码,修改文字的各种对齐方式后,文字的位置不变。

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

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-8-19 16:20:48 | 显示全部楼层

点评

谢谢长老,长老平时搜集了很多帖子啊。不过那个帖子好像不是解决我这问题的,我这个是修改对齐点后,文字还保证原来位置,你给的帖子里面哪个代码适合?  详情 回复 发表于 2013-8-19 16:26
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2013-8-19 16:26:50 | 显示全部楼层
ll_j 发表于 2013-8-19 16:20
http://www.xdcad.net/forum/thread-668488-1-1.html

谢谢长老,长老平时搜集了很多帖子啊。不过那个帖子好像不是解决我这问题的,我这个是修改对齐点后,文字还保证原来位置,你给的帖子里面哪个代码适合?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-8-19 16:56:31 | 显示全部楼层
Lisphk 发表于 2013-8-19 16:26
谢谢长老,长老平时搜集了很多帖子啊。不过那个帖子好像不是解决我这问题的,我这个是修改对齐点后,文字 ...

问题的答案就是acet_tjust,在我的回帖里面使用了,还有其他的帖子都可以看一下,去掉空格而位置不动,则有一个关于包围盒或其它方面的算法,算出位置,自然怎么改都能随心了。

点评

谢谢长老,acet_tjust 这个是acet提供的吧?  详情 回复 发表于 2013-8-19 17:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2013-8-19 17:02:42 | 显示全部楼层
ll_j 发表于 2013-8-19 16:56
问题的答案就是acet_tjust,在我的回帖里面使用了,还有其他的帖子都可以看一下,去掉空格而位置不动,则 ...

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-8-19 17:18:14 | 显示全部楼层
Lisphk 发表于 2013-8-19 17:02
谢谢长老,acet_tjust 这个是acet提供的吧?

是的,就这个省事些,否则算起来很费劲的。
函数的用法可以参考ET目录下的tjust.lsp。
(acet_tjust 选择集 对齐方式字符串)

点评

人家就是想让你们这些高手给写个实现的代码嘛。  详情 回复 发表于 2013-8-19 18:42
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-19 18:26:37 | 显示全部楼层
修改-〉对象-〉文字-〉对正
命令: _justifytext
选择对象:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-19 18:42:20 | 显示全部楼层
ll_j 发表于 2013-8-19 17:18
是的,就这个省事些,否则算起来很费劲的。
函数的用法可以参考ET目录下的tjust.lsp。
(acet_tjust 选 ...

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-19 18:45:57 | 显示全部楼层
我给个思路,
1、先算出改变前的盒子
2、改变对齐点(位置会变)
3、算出新盒子
4、把新盒子移动到旧盒子

上面就不会涉及到长老说的复杂的对齐运算了。

点评

我实现一个吧 函数代码见 “函数发布” http://bbs.xdcad.net/thread-670243-1-1.html  详情 回复 发表于 2013-8-20 08:28
随手写系列  详情 回复 发表于 2013-8-20 06:40
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-20 06:40:26 | 显示全部楼层
本帖最后由 Free-Lancer 于 2013-8-20 07:23 编辑
newer 发表于 2013-8-19 18:45
我给个思路,
1、先算出改变前的盒子
2、改变对齐点(位置会变)

随手写系列
  1. (vl-load-com)
  2. (defun c:tt (/ ss)
  3.   (if (setq ss (ssget "x" '((71 . 2))));_反向 ,4 倒置 0 正常
  4.     (progn
  5.       (vl-cmdf "_justifytext" ss "" "MC")
  6.       (foreach x (cdr (reverse (ssnamex ss)));_entmod code 71 也可以
  7. (vla-put-backward
  8.    (vlax-ename->vla-object (cadr x))
  9.    :vlax-false
  10. )
  11.       )
  12.     )
  13.   )
  14.   (princ)
  15. )

高版本这样
  1. (defun c:tt (/ ss)
  2.   (if (setq ss (ssget "x" '((71 . 2)))) ;_反向 ,4 倒置 0 正常
  3.     (progn
  4.       (vl-cmdf "_justifytext" ss "" "MC")
  5.       (foreach x (ssnamex ss) ;_entmod code 71 也可以
  6. (if (= (type (cadr x)) 'ENT)
  7.    (setpropertyvalue (cadr x) "IsMirroredInX" 0) ;_适合2011+
  8. )
  9.       )
  10.     )
  11.   )
  12.   (princ)
  13. )



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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-8-20 08:28:39 | 显示全部楼层
newer 发表于 2013-8-19 18:45
我给个思路,
1、先算出改变前的盒子
2、改变对齐点(位置会变)

我实现一个吧


                               
登录/注册后可看大图


函数代码见 “函数发布”  http://bbs.xdcad.net/thread-670243-1-1.html

  1. (defun XD::Text:AdjustAlignMent (e hmode vmode / box1 box2 mat mat0 p1 p2)
  2.   (setq box1 (XD::Entity:BoxAtEcs e e)
  3.         p1 (car box1)
  4.         mat0 (xdrx_matrix_identity 3)
  5.   )
  6.   (xdrx_text_setHozMode e hmode)
  7.   (if (and
  8.         (/= 3 hmode)
  9.         (/= 5 hmode)
  10.       )
  11.     (xdrx_text_setVerMode e vmode)
  12.   )
  13.   (setq box2 (XD::Entity:BoxAtEcs e e)
  14.         p2 (car box2)
  15.         mat (xdrx_matrix_setTransLation mat0 (mapcar
  16.                                                '-
  17.                                                (trans p1 1 0)
  18.                                                (trans p2 1 0)
  19.                                              )
  20.             )
  21.   )
  22.   (xdrx_entity_transform e mat)
  23.   t
  24. )


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 15:08 , Processed in 0.288816 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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