SLW210 发表于 2022-7-5 20:25:01

将单词转换为单个文本

我正在寻找一个LISP转换文本(主要是dtext)与几个字,每个字自己的文本。我以为曾经有这样的Lisp程序,但我的搜索结果却是空的。
 
在附图中,我有顶部文本(白色),我需要的是它在个别文本中,作为较低的文本(红色)。

ReMark 发表于 2022-7-5 20:34:00

有格式或特殊字符吗?
 
所有文本是左对齐还是变化?
 
可能会引起一些兴趣。。。。http://www.theswamp.org/index.php?topic=37370.0

ReMark 发表于 2022-7-5 20:39:18

这里有几个可能的解决方案。。。。。http://forums.autodesk.com/t5/AutoCAD-2000-2000i-2002-Archive/Any-way-to-explode-single-line-text-into-individual-words/td-p/118061
 
或者破碎怎么样。在这里找到lsp?http://forums.cadalyst.com/showthread.php?t=4054

SLW210 发表于 2022-7-5 20:45:00

谢谢,备注。。。。正如所料,李的S2W。lsp现在很管用,而且它们都应该像示例图中那样保持正确,如果我发现一些不正确,我可以很容易地纠正。
 
另外两个,切掉。lsp只是悬挂和破碎。lsp将每个单词都设为0(至少在AutoCAD 2011上是这样)。

Lee Mac 发表于 2022-7-5 20:45:17

 
很高兴听到SLW
 
这是此处代码的更新版本,以下内容应适用于所有文本对正(对齐/中间/适合除外):
 
[颜色=绿色]------------------=={句到词}==----------------;;;;;;将选定的文本对象转换为单独的文本;;;;对象,保留的所有属性;;;;原始对象;;;;-----------------------------------------------------------------;;;;作者:Lee Mac,版权所有©2012-www.Lee-Mac。通用域名格式;;;;-----------------------------------------------------------------;;(defunc:s2w(/\u splitwords \u textwidth ang dxf ent enx fun inc lst pnt sel spc tot wid)(defun\u splitwords(str/pos(setqpos(vl string position32 str))(cons=蓝色]substrstr 1 pos))((u splitwords(substrstr(+pos 2))(list(cons1 str))(defun\u textwidth(enx)(lambda(lst)(-(caadrlst)(caarlst))(颜色]enx)))(if(setqsel(ssget'((0“TEXT”)((setqinc(sslengthsel))(setqent(ssnamesel(Q公司(1-inc])enx(entgetent)tot 0.0 lstnil)(foreach项(\u拆分字(cdr1 enx))(setqdxf(entget(entmakex(项(assoc1 enx)enx)))wid(\u textwidth dxf)tot(+tot wid)lst(cons(consdxf wid)lst))(if(

SLW210 发表于 2022-7-5 20:54:04

非常好,先生。

Lee Mac 发表于 2022-7-5 20:59:05

不客气

SLW210 发表于 2022-7-5 21:02:34

我有一些旧图纸做之前,我的就业与列标题的几个字在一个文本和不同的间距,以对齐列。不用说,这看起来很糟糕,我必须修复它们。
 
今天下午我不得不做其他的事情,但明天我会大量使用它。我今天重画了一幅画,你的Lisp程序效果很好。
 
希望明天它能得到很好的锻炼。

Lee Mac 发表于 2022-7-5 21:07:15

很高兴听到SLW,我总是想知道我写的一个程序正在被很好地使用,通过删除一些更繁琐的起草工作,提高了它的操作员的士气

fervour 发表于 2022-7-5 21:14:37

我在多行文字中有一个句子,所有的单词都用制表符分隔。要做什么修改,使其只打断单词之间的制表符,而不是规则的空格。
 
非常感谢。
页: [1] 2
查看完整版本: 将单词转换为单个文本