QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 4547|回复: 11
收起左侧

[已解决] 如何一次性提取多行文字内的所有文字

 关闭 [复制链接]
发表于 2008-7-18 11:52:53 | 显示全部楼层 |阅读模式 来自: 中国福建三明

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
一DWG格式图纸,内有众多的多行文字,如果用复制.粘贴的办法是可以提取多行文字内的文字,但太慢了,不知有没什么办法
( Y, ]: L, w, l  G* j! U
# u3 Z% R& {  D5 j$ h) J% q[ 本帖最后由 wsj249201 于 2008-7-19 08:34 编辑 ]
发表于 2008-7-18 13:28:24 | 显示全部楼层 来自: 中国四川成都
要看你往什么地方提,提来干嘛,OK?
发表于 2008-7-18 13:40:52 | 显示全部楼层 来自: 中国浙江台州
文字单独设图层
- i& k& d' c$ M% }屏蔽其他图层就可以快速提取所有文字了
 楼主| 发表于 2008-7-18 13:49:32 | 显示全部楼层 来自: 中国福建三明
我的目地是EXCEL。但只要能至TXT之类就都好办了,三楼的可否讲如何操作
发表于 2008-7-18 13:50:41 | 显示全部楼层 来自: 中国浙江宁波
“工具”菜单里,选择“数据提取”;可以提取到excel

评分

参与人数 1三维币 +5 收起 理由
woaishuijia + 5 应助

查看全部评分

 楼主| 发表于 2008-7-18 14:00:44 | 显示全部楼层 来自: 中国福建三明
楼上的,那只能提取块里的数据,不能提提取多行文字里的数据
发表于 2008-7-18 14:44:55 | 显示全部楼层 来自: 中国江苏苏州
用特定对象选择,只选择文本
3 D3 V5 [; O+ M7 a# N$ r来进行提取
 楼主| 发表于 2008-7-18 16:48:31 | 显示全部楼层 来自: 中国福建三明
我这是2004版的CAD。没有你们讲的数据提取功能,我把属性提取看成数据提取了
发表于 2008-7-18 18:35:12 | 显示全部楼层 来自: 中国辽宁鞍山
数据提取功能一样适用于多行文字,楼上的可以试试
 楼主| 发表于 2008-7-18 19:01:08 | 显示全部楼层 来自: 中国福建三明
我这是2004版的CAD。找不到你们讲的数据提取功能
发表于 2008-7-19 00:01:06 | 显示全部楼层 来自: 中国

回复 10# 的帖子

可以用二次开发功能编程提取。以下是VBA例程:/ N" W9 T# g6 i9 v$ y

6 v7 C0 d* O( u-----------------------------------------------------------4 W6 H  B# ~4 ]; a+ I! R  s
Sub TQ()
! I8 \* @* v6 y$ ]' g    On Error Resume Next
" A- K$ c0 \8 _2 Y$ N( S    Dim I As Integer
9 Z' p% P* q" H" M) c. M    Dim E As Excel.Application, B As Workbook, S As Worksheet
7 K/ r7 j" J0 s4 }, h& W+ S    Dim SS As AcadSelectionSet, T As Object, FT(3) As Integer, FD(3) As Variant' N0 C8 o8 T9 M, [
    '下面定义选择集过滤器列表为多行文字或单行文字
  v/ X1 O9 K* d0 r& ?% Y8 H    FT(0) = -4: FD(0) = "<or"
! y$ E$ _' |6 S& Z% f4 @) h    FT(1) = 0: FD(1) = "mtext"
/ t* i/ P6 n/ Q4 x9 |8 @7 L    FT(2) = 0: FD(2) = "text"
2 v/ g5 t1 }# h4 L7 }7 d1 d5 c    FT(3) = -4: FD(3) = "or>", ~. f/ Y& [, y: A' W5 G
    '创建选择集) o8 W8 z9 m0 [& g2 D8 _& n
    Set SS = ThisDrawing.SelectionSets.Add("SS")
) w4 f1 ]$ _+ ^    '在屏幕上选择多行文字或单行文字对象
9 A! X7 C* x4 N8 J6 u    SS.SelectOnScreen FT, FD
7 w0 Z" ]$ {. U, ]8 d     '如果选择集不为空则运行以下代码
5 I! L7 d5 e1 o8 h8 D1 S0 J" p: p0 O    If SS.Count > 0 Then
  T: i3 Q4 l# F- B        '运行EXCEL程序6 n  z% A$ P/ d& U8 Q
        Set E = New Excel.Application
4 v5 z+ t) n  X* F* L9 f        '在EXCEL中插入工作薄7 b$ W# _$ q4 ?, G: l: W
        Set B = E.Workbooks.Add2 D4 ~4 V$ b! |. a% O7 o
        '定义工作表7 @6 L4 w& x8 [! [
        Set S = B.ActiveSheet/ T- r0 u4 P; E
        '显示EXCEL程序
0 j: l" u$ v. B' p$ u3 [" [# \        E.Visible = True
! |: \$ I' ~  B5 X         '遍历选择集并处理被选中的单行文字或多行文字对象3 }2 {- E6 g- _  L# S
        For Each T In SS/ S; @0 [4 y! W9 r
            I = I + 1  k9 I* X7 d2 h( k8 E' @  t3 x
            '把单行文字或多行文字的内容写入表格
! _1 O- i3 J* ?( l2 k$ l            '对于多行文字,如果直接写入则字符串中很可能包含转义符,使用者可根据需要对字符串运算处理后再写入表格$ G1 m; d( I  B3 X5 h) Q6 l
            S.Cells(I, 1).Value = T.TextString
/ X, w0 B7 s& v; `( s% a! `        Next* z2 ?: l  s2 z
    End If, ~; Y* W; u8 `, d; X& S# v7 p
    SS.Delete '删除用过的选择集. w8 q. K' b5 N4 x$ R. I/ e# I- n) v
End Sub
$ E* G2 p0 B3 c- A-----------------------------------------------------------------
& x0 Y. g4 ~/ Q; e1 \% p! G# L2 x* ?! X( ^" o
“Alt+F11”打开VBA编辑器,将以上代码复制粘贴到thisdrawing对象代码窗口,在“工具”菜单下点“引用”,选择EXCEL类库(名称与EXCEL版本有关,如EXCEL2000为“Microsoft Excel 9.0 Object Library”),确定后即可使用。
7 @5 G$ m! N) |" I9 f0 s1 M, ^9 l. ?* |2 k: ^3 P' t7 d5 J
[ 本帖最后由 woaishuijia 于 2008-7-19 02:39 编辑 ]

评分

参与人数 1三维币 +15 收起 理由
wsj249201 + 15 应助

查看全部评分

 楼主| 发表于 2008-7-19 06:51:45 | 显示全部楼层 来自: 中国福建三明
我爱谁家真是高手,很感谢,实现了目标。看来也要学点VBA& L5 D2 {* A7 q$ n5 c. L
楼上还搞到这么晚,辛苦了(应该今天不用上班了吧),再一次多谢了
' U- q# N2 x5 K7 d+ `8 E$ \- w
- r  D* p! I# \$ K[ 本帖最后由 fsj 于 2008-7-19 06:53 编辑 ]

评分

参与人数 1三维币 +1 收起 理由
wsj249201 + 1 感谢你对问题的及时查看并回复说明!

查看全部评分

发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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