取dwg 文字信息
<DIV><FONT size=2>我这程序读有些图框里特定文字内容时,可以读出tagstring,但tagstring上的文字内容总读为空(textstring),帮忙看看,提取的属性对吗(vb6.0,用object库2004)</FONT></DIV><DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>Dim acadapp As AcadApplication<BR>Dim acaddoc As AcadDocument<BR>'初始化CAD<BR>On Error Resume Next<BR>Set acadapp = GetObject(, "autocad.application.16")<BR>If Err Then<BR> Err.Clear<BR> Set acadapp = CreateObject("autocad.application.16")<BR> If Err Then<BR> MsgBox Err.Description<BR> Exit Sub<BR> End If<BR>End If<BR>cd1.DefaultExt = ".dwg"<BR>cd1.Filter = "dwg dwg(*.dwg)"<BR>cd1.ShowOpen<BR>Dim getfilepath As String<BR>getfilepath = Trim(cd1.FileName)<BR>acadapp.Documents.Open (getfilepath)<BR>Set acaddoc = acadapp.ActiveDocument<BR>acadapp.Visible = False<BR>Dim s As String<BR>Dim i, j, k As Integer<BR>Dim blk As AcadBlock<BR>i = acaddoc.Blocks.Count</FONT></DIV>
<DIV> </DIV>
<DIV><FONT size=2>For k = 1 To i<BR> s = acaddoc.Blocks.Item(k - 1).Name<BR> s = UCase(Trim(s))<BR> MsgBox (s)<BR> If s = "TBZ00" Then<BR> Set blk = acaddoc.Blocks.Item(k - 1)<BR> Exit For<BR> Else<BR> s = ""<BR> End If<BR>Next<BR>MsgBox (s)<BR>s = ""<BR>Dim tag, prompt, value As String<BR> For i = 0 To blk.Count - 1<BR> Dim obj As AcadObject<BR> Set obj = blk.Item(i)<BR> s = obj.ObjectName<BR> If s = "AcDbAttributeDefinition" Then<BR> Dim attrObj As AcadAttribute<BR> Set attrObj = obj<BR> tag = ""<BR> tag = attrObj.TagString<BR> If UCase(tag) = "STAGE" Then<BR> prompt = attrObj.PromptString<BR> value = attrObj.TextString<BR> MsgBox (value)<BR> MsgBox "Tag: " & tag & vbCr & "Value: " & value & vbCr & "Value: " & value & vbCr<BR> Exit For<BR> End If<BR> <BR> End If<BR> Next</FONT></DIV>
<DIV> </DIV><FONT size=2>
<DIV><BR> rtb1.Text = ""</DIV>
<DIV> </DIV>
<DIV> rtb1.Text = value<BR> <BR> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>acaddoc.Close<BR>'acadapp.Quit</FONT></DIV> 你应该处理BlockRef对象而不是Block对象 挺好的 2搂说得对!
页:
[1]