摆脱文本格式
我想迭代给定图形的多行文字,并将其导出到Excel。假设在名为MTEXPOBJ的图形中有一个多行文字,其中“sample”写在第一行,“note”写在第二行。这将被解读为“样本注释”。我使用textstring属性:.
.
将MTEXTEXTBJ设置为AcadMText
MsgBox MTEXTEXTBJ。文本字符串
.
.
autocad返回“sample\Pnote”。这对我来说很合适。
问题是此多行文字的文本格式何时更改。例如,如果双击多行文字,并在“文字格式”框中将颜色更改为红色,autocad将返回
{\C1;示例\Pnote}
或者如果我把字体改成verdana
{\fVerdana | b0 | i0 | c0 | p34;sample\fVerdana | b0 | i0 | c178 | p34;\P\fVerdana | b0 | i0 | c0 | p34;注}
如何访问多行文字中的真实内容?并排除与字符串合并的文本格式数据。
非常感谢您的帮助。。 你好
我认为除了遍历文本字符串和单独剥离控制字符之外,没有其他方法了。请看一下ExpressTools大写文字工具lisp,您将看到Autodesk也是这样做的。
文件tcasessup。lsp,这是他们去除格式的部分:
(defun acet-mtext-format-extract ( str / lst raw len pos frmt flst a n j lst2 )
(setq lst (list "{" "}" "\\P" "\\~"
"\\{" "\\}" "\\O" "\\L"
"\\S" "\\A1" "\\A2" "\\A3"
"\\f" "\\C" "\\H" "\\T"
"\\Q" "\\W" "\\p"
);list
raw ""
len (strlen str)
pos 0
);setq
(while (> (strlen str) 0)
(setq lst2 (mapcar '(lambda (x) (acet-str-find x str)) lst)
lst2 (mapcar '(lambda (x) (if x (list x) x)) lst2)
lst2 (apply 'append lst2)
j (apply 'min lst2)
);setq
(if (/= j 0)
(progn
(setqraw (strcat raw
(substr str 1 (- j 1))
)
str (substr str j)
a (acet-mtext-format-bite str) ;; (list format str offset)
frmt (car a)
str (cadr a)
n (+ pos j)
pos (+ pos
j
(caddr a)
(- (strlen frmt) 1)
)
frmt (list frmt n)
flst (cons frmt flst)
);setq
(setq n (+ (length lst) 10));get out of inner loop
);progn
(setq raw (strcat raw str)
str ""
);setq then get out
);if
);while
(list raw (reverse flst))
);defun acet-mtext-format-extract
/Petri网 我通常只是分解多行文字。使用匹配属性到我想要的格式,然后重新组合文本实体。 Hi Petri(mahahaavaaha)
这些代码会去掉文本格式吗?你能告诉我怎么用吗。我对Lisp程序不太熟悉。
我把它们复制到一个空白记事本中,并将其保存为tcasessup。lsp。然后在acad中
工具>AutoLISP>加载应用程序i加载TCASSUP。lsp。然后,我在提示符下写下tcassup,然后按Enter键。但acad返回错误:“未知命令”tcasessup。按F1键获取帮助。”
这是正确的方式吗? 我用了一个叫做stripmtext的。lsp,但我怀疑它基本上做了相同的事情。。。
stripmtext。lsp
我用同样的方法测试了它。autocad给了我一个错误:
“无法加载DCL文件stripmtext。DCL”
文件中说,对于AutoCAD 2000到2004。我的是2007年。
无论如何谢谢你
我正试图找到一个VBA代码 道歉。。。不会让我上传DCL。。。呃,试试这个拉链。。。我在2006年7月8日运行过
stripmtext。拉链
我应该如何运行它?它仍然返回相同的错误。我应该将DCL文件复制到特殊路径吗?或者在acad中手动加载? 有一个更新的版本。
;|
StripMtext 4 BETA
Main function that performs the format removal written by John Uhden
All other supporting code and user interface written by Steve Doman
-------------------------------------------------------------------
Notes for Beta 4A 7/18/2005:
1) New file names are: StripMtext.lsp & StripMtext.dcl
2) Added support for Acad Tables.
3) Fields inside Mtext objects seem to process ok, but need more testing.
4) Currently working on Tab removal.DCL shows Tabs, but it doesn't work yet.
5) The report which prints a count of objects processed is temporarily disabled.
6) Please email bug reports, comments, or annoyances to: sdoman@qwest.net
7) Should I add support for the new fangled ArcLength Dimensions?
|; 将它们都放在支持目录中,然后应用。Autocad中的lsp。。。使用stripmtext运行
页:
[1]
2