QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
4天前
查看: 4564|回复: 11
收起左侧

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

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

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

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

x
一DWG格式图纸,内有众多的多行文字,如果用复制.粘贴的办法是可以提取多行文字内的文字,但太慢了,不知有没什么办法
8 d' S) y  d- B. }5 b& a1 {8 n
& P8 F; \2 N! M* f1 e: a[ 本帖最后由 wsj249201 于 2008-7-19 08:34 编辑 ]
发表于 2008-7-18 13:28:24 | 显示全部楼层 来自: 中国四川成都
要看你往什么地方提,提来干嘛,OK?
发表于 2008-7-18 13:40:52 | 显示全部楼层 来自: 中国浙江台州
文字单独设图层
% K8 A2 T9 I( J* {" 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 | 显示全部楼层 来自: 中国江苏苏州
用特定对象选择,只选择文本
9 p1 S# C/ U8 ?8 |3 X- n来进行提取
 楼主| 发表于 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例程:7 L& M4 b1 U, ~" b4 W4 L( v5 U( R8 g

7 s+ G4 g# P4 H0 ~$ w  W-----------------------------------------------------------
$ h! P4 T5 @9 }3 FSub TQ()
9 r4 ~) _! d7 o7 f" K    On Error Resume Next! M2 y3 ?# {4 ^7 s
    Dim I As Integer
2 A# d7 Y5 i6 d% L& n    Dim E As Excel.Application, B As Workbook, S As Worksheet2 x$ l1 p. }) U! P) k, I* B& ]
    Dim SS As AcadSelectionSet, T As Object, FT(3) As Integer, FD(3) As Variant8 q% |8 _0 K' l9 E3 J# S0 S
    '下面定义选择集过滤器列表为多行文字或单行文字3 y  y0 h0 m# p+ b
    FT(0) = -4: FD(0) = "<or"
9 X* O8 o3 T6 G" H/ d    FT(1) = 0: FD(1) = "mtext"
8 y; c* L" F5 H3 v( m+ W+ Y1 W+ ]    FT(2) = 0: FD(2) = "text"
3 B2 p! g! {; N& q    FT(3) = -4: FD(3) = "or>"4 |6 K2 c; B6 Y+ N- T
    '创建选择集, {3 E  G) ?0 x5 \
    Set SS = ThisDrawing.SelectionSets.Add("SS")6 C8 f# {. T9 w( u9 M* I5 ~
    '在屏幕上选择多行文字或单行文字对象6 S2 f5 E- \( i  V
    SS.SelectOnScreen FT, FD
' _6 I9 r/ n* C5 e     '如果选择集不为空则运行以下代码
/ `; p* k  U7 ^# G    If SS.Count > 0 Then
' L; X5 b, \: i. P' {4 Z        '运行EXCEL程序1 Y" d5 X, V# O
        Set E = New Excel.Application5 s3 A/ M% u0 Z+ |& ~4 V9 B
        '在EXCEL中插入工作薄
8 i& u! q1 g7 U% w1 T        Set B = E.Workbooks.Add; u& ?/ K# }# ^2 S6 _! G& H: h7 z
        '定义工作表9 N& M  R$ }2 L5 d0 q6 o" f
        Set S = B.ActiveSheet$ w. L  ~+ B" Y0 ^3 R
        '显示EXCEL程序# g  s8 Z  Y( U) }' r' D5 @
        E.Visible = True1 q8 t0 a. @8 u/ ]- w3 n/ F
         '遍历选择集并处理被选中的单行文字或多行文字对象( e# U6 _& \" E, v
        For Each T In SS
- J5 g( M* b  n' `  F            I = I + 1& B6 O, V4 c7 r4 G
            '把单行文字或多行文字的内容写入表格
3 Y2 v/ w; X  O* ?, W            '对于多行文字,如果直接写入则字符串中很可能包含转义符,使用者可根据需要对字符串运算处理后再写入表格6 \. |8 }/ I7 z: U
            S.Cells(I, 1).Value = T.TextString
2 z3 K% w( {, ~; y+ @( ]* [$ K        Next9 l3 T, J  p3 `: H+ w, f, x
    End If( e$ T7 G9 C# U: W: y4 d
    SS.Delete '删除用过的选择集
* @0 \$ s- r# X9 _/ GEnd Sub
5 o% l- a6 B- q) E. h( |0 L4 L-----------------------------------------------------------------
' }" u  F# H$ j, {7 U3 P
) ?+ A9 [% D; Y4 m/ a; X5 `“Alt+F11”打开VBA编辑器,将以上代码复制粘贴到thisdrawing对象代码窗口,在“工具”菜单下点“引用”,选择EXCEL类库(名称与EXCEL版本有关,如EXCEL2000为“Microsoft Excel 9.0 Object Library”),确定后即可使用。
7 n. t& Y+ [- q) k# @  m& ?1 J
' R1 z; H1 y+ ~: |, E[ 本帖最后由 woaishuijia 于 2008-7-19 02:39 编辑 ]

评分

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

查看全部评分

 楼主| 发表于 2008-7-19 06:51:45 | 显示全部楼层 来自: 中国福建三明
我爱谁家真是高手,很感谢,实现了目标。看来也要学点VBA* D: Q& B3 x4 u
楼上还搞到这么晚,辛苦了(应该今天不用上班了吧),再一次多谢了
9 R7 ]2 B6 z9 g8 R5 I% Y
, r; f( G( g' l; Y; f8 G6 ?3 j[ 本帖最后由 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 )

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