找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1175|回复: 6

[求助] 求一个删除指点字符把文字分成两段,文字的位子不变

[复制链接]
发表于 2014-3-5 18:24:45 | 显示全部楼层 |阅读模式

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

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

×
求一个框选,把文字分成两份,并且放在不同图层!例如

途中的4::17  变成4:和1.7两段文字,并把他们放在不同的图层上!

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

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-3-5 21:37:20 | 显示全部楼层
本帖最后由 st788796 于 2014-3-5 22:01 编辑

更新
  1. (defun c:tt (/ ss  )
  2.   (if (setq ss (ssget '((0 . "text"))))
  3.     (progn
  4.       (mapcar
  5.         '(lambda
  6.            (x / txt sty scl tl tll h ntxt inspt pos _x1 _x2 el nstr)
  7.             (if        (and
  8.                   (setq txt (xdrx_getpropertyvalue x "Textstring"))
  9.                   (setq pos (vl-string-search " " txt))
  10.                 )
  11.               (progn
  12.                 (setq
  13.                   sty        (car (xdrx_getpropertyvalue x "TextStyle"))
  14.                   scl        (xdrx_getpropertyvalue x "WidthFactor")
  15.                   h        (xdrx_getpropertyvalue x "Height")
  16.                   tl        (XD::String:SingleChr txt)
  17.                   inspt        (xdrx_getpropertyvalue x "Position")
  18.                   tll        (mapcar        '(lambda (a)
  19.                                    (XD::String:ActualWidth a sty h scl)
  20.                                  )
  21.                                 tl
  22.                         )
  23.                   ntxt        (ssname (xdrx_entity_copy x) 0)
  24.                   nstr        (substr txt (+ 2 pos))
  25.                   el        (entget x)
  26.                   _x1        (caar (textbox el))
  27.                   _x2        (caar (textbox (list (cons 1 nstr)
  28.                                              (assoc 7 el)
  29.                                              (assoc 40 el)
  30.                                              (assoc 41 el)
  31.                                        )
  32.                               )
  33.                         )
  34.                 )

  35.                 (xdrx_setpropertyvalue x "Textstring" (substr txt 1 pos))
  36.                 (xdrx_setpropertyvalue x "Layer" "111")
  37.                 (xdrx_setpropertyvalue
  38.                   ntxt
  39.                   "Position"
  40.                   (list        (+ (- (car inspt) _x2 _x1)
  41.                            (apply '+ (XD::List:N-M tll 1 (+ 2 pos)))
  42.                         )
  43.                         (cadr inspt)
  44.                         0.
  45.                   )
  46.                 )
  47.                 (xdrx_setpropertyvalue
  48.                   ntxt
  49.                   "Textstring"
  50.                   nstr
  51.                 )
  52.                 (xdrx_setpropertyvalue ntxt "Layer" "222")
  53.               )
  54.             )
  55.          )
  56.         (xdrx_pickset->ents ss)
  57.       )
  58.     )
  59.   )
  60.   (princ)
  61. )

点评

我测试了一下你的程序,,一不能框选文字,,批量分开,,二,,还有点选一个后两个文字间分的很开!  详情 回复 发表于 2014-3-5 22:56
加载了晓东的那个arx,和vlx后我的打开保存关闭都用不了了,!所以我一直没有用!  详情 回复 发表于 2014-3-5 22:46
你这得用晓东的那个函数库呀,!我的装那个,老师有问题,,求普通的lisp可以吗?  详情 回复 发表于 2014-3-5 22:35
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-5 22:35:30 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2014-3-5 22:46:44 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2014-3-5 22:56:01 | 显示全部楼层

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-3-6 08:08:35 | 显示全部楼层
本帖最后由 st788796 于 2014-3-6 08:14 编辑

一个思路,适用只有一个连续空格文字
  1. (defun c:tt (/ ss )
  2.   (if (setq ss (ssget '((0 . "text"))))
  3.     (progn
  4.       (mapcar
  5.         '(lambda
  6.            (x / el an str strl oldbox newbox _x pos)
  7.             (setq el  (entget x)
  8.                   str (cdr (assoc 1 el))
  9.             )
  10.             (if        (vl-string-search " " str)
  11.               (progn
  12.                 (setq an     (cdr (assoc 50 el))
  13.                       strl   (XD::String:RegExps "[^ ]+" str "")
  14.                       oldbox (textbox
  15.                                (setq nel (subst '(50 . 0) (assoc 50 el) el))
  16.                              )
  17.                       nel    (subst (cons 1 (cadr strl)) (assoc 1 nel) nel)
  18.                       newbox (textbox nel)
  19.                       _x     (-        (caadr oldbox)
  20.                                 (caadr newbox)
  21.                              )
  22.                       el     (subst (cons 1 (car strl)) (assoc 1 el) el)
  23.                       el     (subst '(8 . "111") (assoc 8 el) el)
  24.                       pos    (polar (cdr (assoc 10 el)) an _x)
  25.                       nel    (subst '(8 . "222") (assoc 8 nel) nel)
  26.                       nel    (subst (cons 10 pos) (assoc 10 nel) nel)
  27.                       nel    (subst (cons 50 an) (assoc 50 nel) nel)
  28.                 )
  29.                 (entmake nel)
  30.                 (entmod el)
  31.               )
  32.             )
  33.          )
  34.         (xdrx_pickset->ents ss)
  35.       )
  36.     )
  37.   )
  38.   (princ)
  39. )

点评

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

使用道具 举报

 楼主| 发表于 2014-3-6 23:07:48 | 显示全部楼层
st788796 发表于 2014-3-6 08:08
一个思路,适用只有一个连续空格文字

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 01:40 , Processed in 0.252885 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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