找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 823|回复: 13

[编程申请]:请编写一个文字在空格处断开

[复制链接]
发表于 2006-3-23 22:30:29 | 显示全部楼层 |阅读模式

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

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

×
请编写一个文字在空格处断开的lsp
例如
卧室  卫生间  餐厅  
当用lsp时使卧室是一个整体, 卫生间是一个, 餐厅是一个。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-3-24 10:05:42 | 显示全部楼层
直接断开恐怕不行,不过你可以首先通过空格将不是空格的每组字符附给别的变量,然后再在相应位置创建这些字符,同时删除原先的字符即可
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2006-3-24 11:17:13 | 显示全部楼层
其实我这里有两个文字断开的程序,一个是选择所有文字炸开后,每个文字都是独立的。
第二个是选择所有文字,然后在断开的地方点一下就会分开成两部分。
现在想要一个选择所有的文字,然后在空格处断开。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-24 14:30:33 | 显示全部楼层
晓东工具箱中的“消除空格”是搂主要的效果吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-24 20:36:08 | 显示全部楼层
2 楼的思路不错。 不过想要十分精确地把分开的字符串定位,似乎LISP有一定难度。等待高人指点,先行谢过。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-24 22:58:05 | 显示全部楼层
最初由 doubao 发布
[B]2 楼的思路不错。 不过想要十分精确地把分开的字符串定位,似乎LISP有一定难度。等待高人指点,先行谢过。 [/B]


lisp完全做得到。要能精确定位,就要先求字串字符的位置。提供参考:


  1. (DEFUN txt_strd(en / A D DB DB1 DB2 EN1 EN2 IN N P P0 TB TXT TXT0 TXT00 TXT01 TXTEN X1 X2)
  2.   ;;求字串中各个字符末点,返回坐标和字表,((p1 t1)(p2 t2)....);
  3.   (setq txt(dxf 1 en)tb(cy_str2strb txt)
  4.         n(length tb)txt0""
  5.         p0(dxf 10 en) a(dxf 50 en)
  6.         in 0 db'() en2'()
  7.         txten(cy_assoc_list en '(7 40 41 51 71 72 73))
  8.         en1(append (list (cons 1 "0")'(50 . 0)) txten)
  9.         db1(textbox en1)
  10.         x1(car (cadr db1)))
  11.   (repeat n
  12.     (setq txt0(strcat txt0 (setq txt00(nth in tb)))in(1+ in)
  13.           txt01(strcat txt0 "0")
  14.           en2(append (list (cons 1 txt01)'(50 . 0)) txten)
  15.           db2(textbox en2) x2(car (cadr db2))
  16.           d(- x2 x1)  p(polar p0 a d)
  17.           db(append db (list (list p txt00))))
  18.   )db
  19. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-25 11:34:32 | 显示全部楼层
txt01(strcat txt0 "0")

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

使用道具 举报

发表于 2006-3-25 11:56:17 | 显示全部楼层
试了一下,txt01(strcat txt0 "0")这句有可能应该会影响坐标位置,关键要看字体了,不同字体会有不同结果。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-25 17:30:04 | 显示全部楼层
试试
  1. [FONT=courier new];;;kgdk(空格断开)
  2. (defun c:kgdk (/ ss i s1 tx len pt1 pt3 dx j site tx1 pt2)
  3.   (CMDLA0)
  4.   (setq        ss (ssget '((0 . "TEXT")))
  5.         i  -1
  6.   )
  7.   (setvar "osmode" 0)
  8.   (while (setq s1 (ssname ss (setq i (1+ i))))
  9.     (setq tx  (xyp-get-dxf 1 s1)
  10.           len (strlen tx)
  11.           pt1 (xyp-get-minmaxpoint s1 1)
  12.           pt3 (xyp-get-minmaxpoint s1 3)
  13.           dx  (/ (distance pt1 pt3) len 1.0)
  14.           j   0
  15.     )
  16.     (while (setq site (vl-string-search " " tx))
  17.       (while (= (vl-string-search " " tx) 0)
  18.         (setq tx   (substr tx 2)
  19.               j           (1+ j)
  20.               site (vl-string-search " " tx)
  21.         )
  22.       )
  23.       (if site
  24.         (setq tx1 (substr tx 1 site)
  25.               tx  (substr tx (+ site 1))
  26.         )
  27.         (setq tx1 tx)
  28.       )
  29.       (setq pt2 (polar pt1 0 (* j dx)))
  30.       (command "copy" s1 "" pt1 pt2)
  31.       (sub_upd (entlast) 1 tx1)
  32.       (setq j (+ j (strlen tx1)))
  33.     )
  34.     (entdel s1)
  35.   )
  36.   (CMDLA1)
  37. )
  38. (pxyp"kgdk  (空格断开)")
  39. (princ)[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-25 20:22:37 | 显示全部楼层
Public Sub TextExplodeBySpace()

Dim obj As AcadEntity, pnt
Dim str As String

ThisDrawing.Utility.GetEntity obj, pnt
inspt = obj.InsertionPoint
polarPnt = ThisDrawing.Utility.PolarPoint(inspt, obj.Rotation + Atn(1) * 2, obj.Height)
str = Replace(obj.TextString, " ", "\H1X \H1X")
str = "{\W" & obj.ScaleFactor & "X;" & str & "}"
Set oMtext = ThisDrawing.ModelSpace.AddMText(polarPnt, 0, str)
oMtext.Height = obj.Height
oMtext.Rotation = obj.Rotation
oMtext.StyleName = obj.StyleName
obj.Delete
ThisDrawing.SendCommand "Explode" & vbCr & "l" & vbCr & vbCr
End Sub

以前“陌生人”的文字水平分解的程序,改动了一下
支持有宽度比例的Text(以前的程序不行:))
原理很简单,就是把Text字符改为有格式的Mtext,再炸开,你可以自己把代码移植到Lisp
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-25 22:28:53 | 显示全部楼层
忘了和大家说了
我用的是天正二和r14
前一段时间用了天正六和2002
后来的觉的做方案还是二好一些
xyp1964  你有个程序是图纸写字,我在2002中也用了
在天正里也有的只要在存放文字的文件里写出来房间名称就可以了。
例如我把住宅中的房间名称写在一起,调出来就是所以的房间名称,现在需要的就是我上面介绍的程序。你门的程序在2002可以的,但是在r14中就不可以了,还得麻烦你们。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2006-3-25 23:46:44 | 显示全部楼层
最初由 xyp1964 发布
[B]不支持R14,不会!呵呵…… [/B]


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 05:34 , Processed in 0.208650 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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