明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1777|回复: 3

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

[复制链接]
发表于 2003-4-29 12:43 | 显示全部楼层 |阅读模式
用的版言前几天的程序,修改块口的文字,但是改了以后,它无法自己更新,只有用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
发表于 2003-4-29 13:16 | 显示全部楼层

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

在程序的末尾加上一句AcadApp.ActiveDocument.Regen acActiveViewport,手动更新。一般引用这种情况的可能是对嵌套的块进行操作,虽然块中的内部实体更新了,但包含它的块本身没有更新。
 楼主| 发表于 2003-4-29 14:06 | 显示全部楼层

可以了,谢谢版主!

发表于 2003-4-30 18:46 | 显示全部楼层

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

块内实体修改在2002版以上用【在位编辑】即可,不用这么麻烦吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-18 17:45 , Processed in 0.222939 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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