找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1960|回复: 10

(完成)[编程申请]:竖排汉字。

[复制链接]

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-8-4 22:38:19 | 显示全部楼层 |阅读模式

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

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

×
程序写好了,可以竖(斜)排,请试用。


                               
登录/注册后可看大图



  1. [FONT=courier new]

  2. ;|
  3.    命令:txt_sp
  4.    
  5.    功能:文字竖(斜)排
  6.    
  7.    说明:1、可以多选文字
  8.         2、可以输入Y、X向间距,也可以通过鼠标拾取点定间距,还可以用默认的字高的五分之一作Y间距。
  9.         3、Y向只能输入正值,X向偏移可以正负。

  10.         程序配合XDRX_API build 20630+版本使用,朋友们可以把这个LISP拷贝到“晓东工具箱”的安装的
  11.         LISP目录,自己加入到菜单里面就可以非常方便的使用了。
  12.         关于程序的建议请到“晓东CAD空间-编程申请”论坛
  13.         [url]http://www.xdcad.net/forum留言[/url]         
  14.         
  15. |;
  16. (defun c:txt_sp (/ ss tf e basept txt txt1 thigh dist dist1 box oldorth t_matrix
  17.                    i j
  18.                 )
  19.   (prompt "\n请选取要竖排的文字<退出>:")
  20.   (if (setq ss (ssget '((0 . "text"))))
  21.     (progn
  22.       (xdrx_begin)
  23.       (xdrx_ucson)
  24.       (xdrx_setsstodb ss 0)
  25.       (setq tf t)
  26.       (while (setq e (xdrx_getentdata 0))
  27.         (setq basept (xdrx_getentdxf 10)
  28.               box (xdrx_entity_box e)
  29.               basept (car box)
  30.               thigh (xdrx_getentdxf 40)
  31.               txt (xdrx_getentdxf 1)
  32.               txt (xdrx_string_trimLeft (xdrx_string_trimRight txt))
  33.         )
  34.         (if tf
  35.           (progn
  36.             (setq oldorth (getvar "orthomode"))
  37.             (setvar "orthomode" 1)
  38.             (initget 6)
  39.             (setq dist (getdist basept
  40.                                 "\n请输入竖向Y文字间距<字高五分之一>:"
  41.                        )
  42.             )
  43.             (if (not (setq dist1 (getdist basept "\n请输入横向X偏移距离<0>:")))
  44.               (setq dist1 0.0)
  45.             )
  46.             (setvar "orthomode" oldorth)
  47.             (if (null dist)
  48.               (setq dist (* 6 (/ thigh 5.0)))
  49.               (setq dist (+ dist thigh))
  50.             )
  51.             (setq t_matrix (xdrx_matrix_identity 3)
  52.                   t_matrix (xdrx_matrix_SetTranslation t_matrix
  53.                                                        (list dist1
  54.                                                              (- dist) 0.0
  55.                                                        )
  56.                            )
  57.                   tf nil
  58.             )
  59.           )
  60.         )
  61.         (setq i 1
  62.               j 0
  63.         )
  64.         (while (/= "" (setq txt1 (substr txt i 1)))
  65.           (if (> (ascii txt1) 159)
  66.             (progn
  67.               (setq txt1 (substr txt i 2)
  68.                     i (1+ i)
  69.               )
  70.             )
  71.           )
  72.           (setq i (1+ i))
  73.           (if (= j 0)
  74.             (progn
  75.               (xdrx_modent 1 txt1 10 basept)
  76.               (setq j 1)
  77.             )
  78.             (progn
  79.               (xdrx_entity_TransformedCopy e t_matrix)
  80.               (xdrx_entity_SetPropertiesFrom (entlast) e)
  81.               (setq e (entlast))
  82.               (xdrx_setenttodb e)
  83.               (xdrx_modent 1 txt1)
  84.             )
  85.           )
  86.         )
  87.       )
  88.     )
  89.   )
  90.   (princ)
  91. )
  92. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-8-5 00:16:11 | 显示全部楼层
这个功能相信在规划中最好用!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-8-7 00:51:45 | 显示全部楼层
又增加了个工具,“竖排恢复”,请大家下载附件的LISP,包括了上面的“竖斜排”程序。


  1. [FONT=courier new]
  2. ;|
  3.    命令:txt_ressp
  4.    
  5.    功能:将竖排后的文字恢复成单行文字。
  6.    
  7.    说明:1、文字样式、属性、位置按照最上排的文字。

  8.         程序配合XDRX_API build 20630+版本使用,朋友们可以把这个LISP拷贝到“晓东工具箱”的安装的
  9.         LISP目录,自己加入到菜单里面就可以非常方便的使用了。
  10.         关于程序的建议请到“晓东CAD空间-编程申请”论坛
  11.         [url]http://www.xdcad.net/forum留言[/url]         

  12. |;
  13. (defun c:txt_ressp (/ ss box basept dis ptl tf txt e n)
  14.   (prompt "\n请选取要恢复到横排的文字<退出>:")
  15.   (if (setq ss (ssget '((0 . "text"))))
  16.     (progn
  17.       (xdrx_begin)
  18.       (xdrx_setsstodb ss 0)
  19.       (setq box (xdrx_entity_box ss))
  20.       (while (setq e (xdrx_getentdata 0))
  21.         (setq basept (xdrx_getentdxf 10)
  22.               dis (xdrx_p2ldist basept (nth 3 box) (nth 2 box))
  23.               ptl (cons (list dis e) ptl)
  24.         )
  25.       )
  26.       (setq ptl (apply
  27.                   'xdrx_rlistsort2
  28.                   ptl
  29.                 )
  30.       )
  31.       (setq tf t
  32.             txt ""
  33.       )
  34.       (foreach n ptl
  35.         (xdrx_setenttodb (cadr n))
  36.         (setq txt (strcat txt (xdrx_getentdxf 1)))
  37.         (if tf
  38.           (progn
  39.             (setq e (cadr n)
  40.                   tf nil
  41.             )
  42.           )
  43.           (entdel (cadr n))
  44.         )
  45.       )
  46.       (xdrx_setenttodb e)
  47.       (xdrx_modent 1 txt)
  48.       (xdrx_end)
  49.     )
  50.   )
  51.   (princ)
  52. )
  53. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-8-7 01:47:43 | 显示全部楼层
最初由 eachy 发布
[B]哈哈,可以不用前面的文字连接了。 [/B]


这个工具仅仅考虑了“Y”方向的排序,没有考虑“X”向(同行中的几个文字实体的情况)。所以仅仅叫做“竖排恢复”:)

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

使用道具 举报

发表于 2002-8-7 19:38:33 | 显示全部楼层
呵呵,字处理的小工具浓缩整理一下都可以出专集了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

发表于 2002-8-8 17:42:04 | 显示全部楼层
我觉得e2002的几个字符串工具也很好啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-8-8 17:51:29 | 显示全部楼层
最初由 cad517 发布
[B]我觉得e2002的几个字符串工具也很好啊 [/B]


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

使用道具 举报

发表于 2002-8-9 16:24:16 | 显示全部楼层
最初由 XDSoft 发布
[B]

现在正在给大家写“文字处理”的程序,您有什么新的想法,请发到论坛,出出注意,谢谢! [/B]


:4

这确实是个好消息
我希望这个程序主界面类似于ACAD的Mtext,但功能更强大,更贴近用户使用意愿,例如,当用户框选了一批文字时,右键菜单中出现字处理的各种选项,诸如合并并编辑、统一字形、竖(斜)排文字等等,当选择合并并编辑时,出现主编辑界面,该界面中有各种编辑工具和类似软键盘的功能,另外,如果将表格的制作与排版融入进来那就更棒了,毕竟在所有字处理中,表格中的文字是最难处理的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-8-14 18:41:16 | 显示全部楼层
赞同,但是不要像MTEXT那样,一镜像后会移动到后面:(
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 23:56 , Processed in 0.299056 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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