乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 50|回复: 3

修改文字内容后不能保存???

[复制链接]

10

主题

36

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
76
发表于 2011-12-3 00:14:00 | 显示全部楼层 |阅读模式
//替换文字
        public static void RePlaceText(string fileName)
        {
            try
            {
                Database dbDwgFile = new Database(false, true);
                dbDwgFile.ReadDwgFile(fileName, System.IO.FileShare.ReadWrite, true, null);
                using (Transaction OldTrans = dbDwgFile.TransactionManager.StartTransaction())
                {
                    BlockTable bt = OldTrans.GetObject(dbDwgFile.BlockTableId, OpenMode.ForNotify) as BlockTable;
                    BlockTableRecord btr = OldTrans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForNotify) as BlockTableRecord;
                    foreach (ObjectId id in btr)
                    {
                        if (id.IsErased)
                        {
                            continue;
                        }
                        Entity ent = OldTrans.GetObject(id, OpenMode.ForWrite) as Entity;
                        if (ent.GetType().Name == "DBText")
                        {
                            DBText text1 = ent as DBText;
                            if (text1.TextString.Contains("被替换"))
                            {
                                    text1.TextString = text1.TextString.Replace("被替换", "正在试验");
                            }
                        }
                        else if (ent.GetType().Name == "MText")
                        {
                            MText text1 = ent as MText;
                            if (text1.Contents.Contains("被替换"))
                            {
                                                              text1.Contents = text1.Contents.Replace("被替换", "正在试验");
                            }
                        }
                    }
                    OldTrans.Commit();
                }
              // dbDwgFile.Save();如果不注释掉, 这句会出错,请大家帮忙看下应该怎么写?
            }
            catch
            {
                System.Windows.Forms.MessageBox.Show("替换错误", "提示");
            }
            finally
            {
            }
        }
回复

使用道具 举报

32

主题

651

帖子

8

银币

中流砥柱

Rank: 25

铜币
779
发表于 2011-12-3 02:03:00 | 显示全部楼层
public void SaveAs(string fileName, Autodesk.AutoCAD.DatabaseServices.DwgVersion version)
    Autodesk.AutoCAD.DatabaseServices.Database 的成员
-------------------------
使用这个试试
回复

使用道具 举报

10

主题

36

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
76
发表于 2011-12-3 10:26:00 | 显示全部楼层
dbDwgFile.SaveAs(fileName, DwgVersion.Current) 用这句可以了,感谢sieben ,昨晚研究这个问题到2点都没有搞出来,睡觉也不踏实,早晨起来第一件事就是看贴,现在灰常开心。
回复

使用道具 举报

10

主题

36

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
76
发表于 2011-12-3 10:26:00 | 显示全部楼层
不过能否解释一下为什么.save()会报错吗??
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-15 21:08 , Processed in 0.396823 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表