本帖最后由 yrgui 于 2010-12-28 10:19 编辑
LISP程序实现:批量文本对齐于框格 具体要求: 1、获得选择集中的文本对象(单行、多行、属性文字)。 2、依次对选择集中的文本对象进行如下处理 a)获得文本中心点tcp以及tcp所在框格的中心点bcp、左边中点blp。(用两次getboundingbox即可) b)更改文本对齐属性(一定要更改)并移动文本。
i.文本若以空格开头,改文本的对齐属性为左中对齐,并将文本以其左中对齐点tlp为基移动到blp。
ii.否则,更改文本的对齐属性为中间对齐,并将文本以tcp为基移动到bcp。 昨天得到zml84和redcat写的代码感觉很好。
Zml84见二楼: 功能如其介绍“点取对象,使其居中”,简单强大。
redcat见三楼: 原理上差不多,但redcat这个更像一个实用程序,对选择集的处理设计的很好。实现了批量文本居中于框格,但也有一些问题:居中于框格的文本如果再编辑,它就不居中中了,得重新运用该命令操作一遍,解决办法是先将文本对象的对齐方式改为居中对齐;在框格中的文本对齐还有一种需求是左中边对齐,这功能也没实现,考虑到左中边对齐和居中对齐的同时批量处理和左中边对齐时的可读性,对左中边对齐文本加前导空格处理(加空格不需要在代码里实现)。
|