QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
一DWG格式图纸,内有众多的多行文字,如果用复制.粘贴的办法是可以提取多行文字内的文字,但太慢了,不知有没什么办法. G) ^. I: _+ Q/ `! g5 \- n  B

$ N6 j! g2 J! J6 w" \1 w1 O2 e[ 本帖最后由 wsj249201 于 2008-7-19 08:34 编辑 ]
发表于 2008-7-18 13:28:24 | 显示全部楼层 来自: 中国四川成都
要看你往什么地方提,提来干嘛,OK?
发表于 2008-7-18 13:40:52 | 显示全部楼层 来自: 中国浙江台州
文字单独设图层$ p! i6 q: c  o! V7 ^) f
屏蔽其他图层就可以快速提取所有文字了
 楼主| 发表于 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 `( H) h! Z" F: ]来进行提取
 楼主| 发表于 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例程:
/ q- Z4 z: d/ N: m& \2 |0 E
3 A' S/ D' h: j/ L* g, q; b-----------------------------------------------------------
' e6 O3 i; A4 H$ ~Sub TQ()" k) z5 D- [9 f5 R3 v' A) C* \
    On Error Resume Next
3 d# j3 ]/ N& Q( W; Q0 D    Dim I As Integer
3 n. |- q% n% E$ v% D# d    Dim E As Excel.Application, B As Workbook, S As Worksheet' e" M( w, b6 _0 Y8 O
    Dim SS As AcadSelectionSet, T As Object, FT(3) As Integer, FD(3) As Variant
9 ]4 c  D/ y' b" ], g    '下面定义选择集过滤器列表为多行文字或单行文字) w4 Q/ K2 `3 {  e0 q2 {+ [. [+ z& Y
    FT(0) = -4: FD(0) = "<or"- z- J7 E' d; o6 T
    FT(1) = 0: FD(1) = "mtext"
5 \% {' C( _9 G- o6 Q: B: N4 n; W    FT(2) = 0: FD(2) = "text"  W- z# b) f7 s# T
    FT(3) = -4: FD(3) = "or>"9 a6 d) D3 ?4 Y6 U( f
    '创建选择集
" C4 B! r5 ^% |& ?! O9 R    Set SS = ThisDrawing.SelectionSets.Add("SS")6 Z- r/ e& `4 Z5 m8 Q# n6 U5 e4 Q% K
    '在屏幕上选择多行文字或单行文字对象; t6 g3 H" `& l( R) S# f8 r
    SS.SelectOnScreen FT, FD8 L* h; P: @# Y) @; l5 D8 ?
     '如果选择集不为空则运行以下代码
6 ?/ E+ t- {% L4 c    If SS.Count > 0 Then
5 F. q5 t5 i2 j8 i8 l3 [        '运行EXCEL程序
' r* T, l% S6 H' Y* V        Set E = New Excel.Application! W+ O! L4 o2 ^) M+ B
        '在EXCEL中插入工作薄  H* o; g3 u& Q. Q% E$ e0 j' x7 @7 j
        Set B = E.Workbooks.Add
: P6 o$ ]5 w3 W. q! c        '定义工作表8 e# t% G" I, y! I
        Set S = B.ActiveSheet. o7 Y& Z9 g7 o" }
        '显示EXCEL程序
, p% ^* w6 z8 c, \5 K: _( [        E.Visible = True
% v5 E  G% C1 [         '遍历选择集并处理被选中的单行文字或多行文字对象
* t+ M- z* k; U        For Each T In SS
- i, D- E' E: x% `6 S            I = I + 1, S  S" }" d( F
            '把单行文字或多行文字的内容写入表格2 A. u% u3 ?& E4 E! Y/ j! L' w4 n9 h
            '对于多行文字,如果直接写入则字符串中很可能包含转义符,使用者可根据需要对字符串运算处理后再写入表格" j6 V7 S4 A, n
            S.Cells(I, 1).Value = T.TextString
) U+ z) [* _. a. X% |5 ]  B1 F: \        Next! W- l! y! ^) n% O* W  M' c) b8 `
    End If; F9 R1 y0 }; h+ Z
    SS.Delete '删除用过的选择集! ?) ~: [! y  v# g5 V% U
End Sub0 w9 I. C( F9 i! R# {! m
-----------------------------------------------------------------/ R$ s  ]1 V1 H9 g! b" ~
, z5 D2 ^, ?3 J& V3 P3 ^' b
“Alt+F11”打开VBA编辑器,将以上代码复制粘贴到thisdrawing对象代码窗口,在“工具”菜单下点“引用”,选择EXCEL类库(名称与EXCEL版本有关,如EXCEL2000为“Microsoft Excel 9.0 Object Library”),确定后即可使用。
# l. `. {# Q& ^$ `' W6 [! @9 K6 y
[ 本帖最后由 woaishuijia 于 2008-7-19 02:39 编辑 ]

评分

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

查看全部评分

 楼主| 发表于 2008-7-19 06:51:45 | 显示全部楼层 来自: 中国福建三明
我爱谁家真是高手,很感谢,实现了目标。看来也要学点VBA) J* W. {0 _9 r# p1 y& h# `1 H- K1 [: b
楼上还搞到这么晚,辛苦了(应该今天不用上班了吧),再一次多谢了8 V5 y  r6 V: ?  B
# E/ x  J6 E- R- D& @1 O2 O
[ 本帖最后由 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 )

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