(已解决)VB读CAD中的文字
本帖最后由 作者 于 2010-5-9 14:23:35 编辑 <br /><br /> <p>大家好,我刚刚到这里,以前用VB做EXCEL和WORD方面的应用,没有接触过CAD编程。</p><p>请给我一个VB调用CAD的例子,希望有如下的完整内容:</p><p>1、打开一个CAD文件(如:C:\TEST.DWG)</p><p>2、用DEBUG.PRINT列出文件中的所有单行文字与多行文字的内容。</p><p>3、关闭CAD文件</p><p>希望能用VB写,不要用CAD中自带的VBA。</p><p>谢谢!</p> 我想知道你想得到文本块还是纯文本。 <p>谢谢回复。</p><p>我不需要读文本块的内容,想得到的就是所有文本的内容,如果文本读出来还包含格式信息都不要紧的,不需要您额外写代码整理成纯文本内容,只要读出来的数据含有文本的内容都可以的。</p><p>希望能得到大家的帮助。</p> 本帖最后由 作者 于 2010-5-7 21:16:48 编辑 <br /><br /> <p>一个同事让我帮他写一个程序,把一个工程中的所有图纸的电缆统计到电子表格中,</p><p>所以我临时注册提问题的,请斑竹把这个帖子收回,问题已经解决了。</p><p></p> 请教是怎么实现的呢? <p>我没有做过CAD方面的编程,为了帮助同事,首先要解决的问题是能工程图纸中的文本读出来这个问题,所以就注册了一些CAD论坛发帖子问(有的CAD论坛现在都不让注册)。同时自己也在网上搜索和看一些编程资料。参考了一个VBA,自己写了一段代码,但不理想,第二天在《博学论坛》<a href="http://www.boxuesky.com">http://www.boxuesky.com</a>有热心网友“wuyunpeng888”(CAD二次开发板块的斑竹)答复了我的这个问题,得到下面这段代码,经过试验,很正常。</p><p>在这里,感谢关心本帖的网友。我把它贴出来大家共享,希望大家在技术上别太保守,只有互相交流技术才能更好的突破。</p><p>Option Explicit<br/>Public cadApp As AcadApplication, cadDoc As AcadDocument<br/>Dim ent As AcadEntity<br/>Private Sub Command1_Click()<br/>On Error Resume Next<br/>'连接CAD<br/>Set cadApp = GetObject(, "autocad.Application")<br/>If Err.Number <> 0 Then<br/> Err.Clear<br/> Set cadApp = CreateObject("autocad.Application")<br/>End If<br/>cadApp.Visible = True<br/>'打开DWG文件<br/>Set cadDoc = cadApp.Documents.Open("C:\TEST.DWG")</p><p>' 安全创建选择集<br/>Dim SSet As AcadSelectionSet<br/>Dim fType(0) As Integer, fData(0) As Variant ' 选择集过滤器<br/>Set SSet = cadDoc.SelectionSets.Add("Example")<br/>If Err.Number <> 0 Then<br/> Err.Clear<br/> Set SSet = cadDoc.SelectionSets.Item("Example")<br/> SSet.Clear<br/>End If<br/>fType(0) = 0: fData(0) = "*text"<br/>'选择文字并输出<br/>SSet.Select acSelectionSetAll, , , fType, fData<br/>If SSet.Count > 0 Then<br/> For Each ent In SSet<br/> Debug.Print ent.TextString<br/> Next<br/>End If<br/>SSet.Delete<br/>'关闭文件<br/>cadDoc.Close False<br/>Set SSet = Nothing<br/>Set ent = Nothing<br/>Set cadDoc = Nothing<br/>Set cadApp = Nothing<br/>End Sub</p> 学习了。谢谢!! 非常感谢,无私奉献,共同进步 不错,学习一下。
页:
[1]