乐筑天下

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

修改外部参照图像的路径

[复制链接]

50

主题

114

帖子

2

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
314
发表于 2018-10-19 14:48:04 | 显示全部楼层 |阅读模式
大家好,
我想修改图像外部引用的路径。我可以这样做,但如果我尝试设置错误的路径,就会收到错误消息。
有没有办法做到这一点
我能够为PDF外部引用设置一个错误路径,因此我认为我可以为图像设置同样的路径
  1.                             if (dictDB.Contains(pdfkey))
  2.                             {
  3.                                 DBDictionary pdfDic = (DBDictionary)tr.GetObject(dictDB.GetAt(pdfkey), OpenMode.ForRead);
  4.                                 foreach (DBDictionaryEntry dbe in pdfDic)
  5.                                 {
  6.                                     if (String.IsNullOrEmpty(dbe.m_key)) continue;
  7.                                     UnderlayDefinition underlayDefinition = (UnderlayDefinition)tr.GetObject(dbe.Value, OpenMode.ForWrite);
  8.                                     cOldFile = underlayDefinition.SourceFileName;
  9.                                     if (aListXrefModif.Contains(cOldFile))
  10.                                     {
  11.                                         underlayDefinition.SourceFileName = aListXrefModif[cOldFile].ToString();
  12.                                         nElementModif = nElementModif + 1;
  13.                                     }
  14.                                 }
  15.                             }
  16.                             if (dictDB.Contains(imgkey))
  17.                             {
  18.                                 DBDictionary imgDic = (DBDictionary)tr.GetObject(dictDB.GetAt(imgkey), OpenMode.ForRead);
  19.                                 foreach (DBDictionaryEntry dbe in imgDic)
  20.                                 {
  21.                                     if (String.IsNullOrEmpty(dbe.m_key)) continue;
  22.                                     RasterImageDef underlayDefinition = (RasterImageDef)tr.GetObject(dbe.Value, OpenMode.ForWrite);
  23.                                     cOldFile = underlayDefinition.SourceFileName;
  24.                                     if (aListXrefModif.Contains(cOldFile))
  25.                                     {
  26.                                         try
  27.                                         {
  28.                                             underlayDefinition.SourceFileName = aListXrefModif[cOldFile].ToString();
  29.                                             nElementModif = nElementModif + 1;
  30.                                         }
  31.                                         catch {  }
  32.                                     }
  33.                                 }
  34.                             }

谢谢!

yd22hwnp40d.png

yd22hwnp40d.png

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

50

主题

114

帖子

2

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
314
发表于 2018-10-20 18:21:51 | 显示全部楼层
不确定为什么要放一个坏路径,但是如果你查看ObjectArx文档并查看SourceFileName属性包装的方法,我想它说它会尝试验证文件。
我不确定它是否在内部表示它将调用AcDbRasterImageDef::search chForActivePath()或建议调用它。
回复

使用道具 举报

50

主题

114

帖子

2

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
314
发表于 2018-10-22 10:40:41 | 显示全部楼层
嗨,杰夫,谢谢你的回答,很有意义
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-22 10:14 , Processed in 0.261941 second(s), 61 queries .

© 2020-2024 乐筑天下

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