china-hz 发表于 2003-4-29 12:43:00

好象没更新,要regen后才可以,能让它自动更新吗?

用的版言前几天的程序,修改块口的文字,但是改了以后,它无法自己更新,只有用regen命令后才会看到更新结果,请问能让它自动更新吗?要怎样来做呢?
    AppActivate AcadApp.Caption
    Dim Obj As AcadEntity
    Dim ObjName As String
    Dim ObjInsPnt As Variant
    Dim ObjTxt As String
    Dim newtxt As String
    Dim PickedPoint As Variant, TransMatrix As Variant, ContextData As Variant
    Dim HasContextData As String
   
    On Error Resume Next
    AcadApp.ActiveDocument.Utility.GetSubEntity Obj, PickedPoint, TransMatrix, ContextData, "选择图块中的文字:"
    If Obj.ObjectName = "AcDbMText" Or Obj.ObjectName = "AcDbText" Then
      ObjName = Obj.ObjectName
      ObjInsPnt = Obj.insertionpoint
      ObjTxt = Obj.TextString
      AppActivate Me.Caption
      Dim prompt As String
      prompt = "当前文字内容为:   " & Trim(ObjTxt) & vbCrLf & "请输入新文字:"
      newtxt = InputBox(prompt, "修改块中文字", Trim(ObjTxt))
      Obj.TextString = newtxt
      Obj.Update
    Else
      AppActivate Me.Caption
      MsgBox "没有选中文字!", vbOKOnly + vbInformation, "提示"
    End If

efan2000 发表于 2003-4-29 13:16:00

那就自己调用Regen方法来更新

在程序的末尾加上一句AcadApp.ActiveDocument.Regen acActiveViewport,手动更新。一般引用这种情况的可能是对嵌套的块进行操作,虽然块中的内部实体更新了,但包含它的块本身没有更新。

china-hz 发表于 2003-4-29 14:06:00

可以了,谢谢版主!

Ea 发表于 2003-4-30 18:46:00

块内实体修改在2002版以上用【在位编辑】即可,不用这么麻烦吧。

块内实体修改在2002版以上用【在位编辑】即可,不用这么麻烦吧。
页: [1]
查看完整版本: 好象没更新,要regen后才可以,能让它自动更新吗?