更改多个文件中的光栅图像路径
大家好,我需要移动数千个dwg文件。我在VB6中编写了一个例程,该例程遍历目录结构,查找每个文件,并使用objectdbx更改外部参照路径以匹配新位置我需要对光栅图像的路径做同样的处理。使用objectdbx,我可以定位dictionary对象#039;ACAD_IMAGE_DICT';。我可以遍历dictionary对象并获得图像的名称、对象ID和句柄,但无法确定如何访问该对象;s属性。我可以访问的对象是acdbRasterImageDef对象
这是一个一次性交易,我只需要使用这个例程一次来移动文件。我喜欢objectdbx接口的速度,但愿意使用任何编程方法来完成这项工作
I';m从xp迁移到Win7,从acad 2006迁移到acad 2012,具有vb6和VS2010,因此可以使用上述任何语言或版本。我的lisp有点生疏,懂一点C++,我';我正在学习.net,但VB(a)是我最熟悉的。
好的……我编写了另一个例程,它使用常规的Acad VB界面(而不是objectdbx),在图形中循环,查找任何图像对象并更改其路径。It#039;它比使用objectdbx慢(大约需要3到4倍的时间),但可以工作
唯一的问题是其中一个图形弹出一个对话框,提示用户单击“确定”按钮,程序停止等待回复。对话是';检测到更新版本的AEC对象';。跳过所有询问缺少线型ect的典型对话框,但这一个除外。这个程序需要几个小时才能运行,我计划在无人值守的情况下运行一晚
通过编程清除此类对话框? 好的……现在我';我有种感觉;我在自言自语
有趣的事我';我注意到正在测试这个应用程序。当我返回并打开图形时,外部参照和图像的所有路径都会更改,但会弹出一个小气泡,表示需要重新加载外部参照。当我进入外部参照管理器时,所有路径都是正确的,acad已在其新位置找到所有外部参照,但他们仍说需要重新加载。我重新加载它们,保存图形,关闭并重新打开,它说它们需要重新加载。它不是';直到I';我打开了以前的外部参照图形并保存了它,它停止提示我重新加载它们。一个小烦恼,但仍然…
有人知道为什么吗
评论?
首先,欢迎来到theSwamp
这些外部参照……当你打开它们时,它们有没有给你任何警告
我不';我不知道你是否';我看过这个帖子,但我';我有自己的图像路径问题。。。 我们都有;问题;,配音 
对于AEC消息,一旦您打开;唐#039;不要再给我看这个奇怪的消息了。”;选项并单击“确定”,您应该很乐意使用您的程序,并且应该';我再也看不到这条消息了。 仅在该图形文件中,还是在每个具有较新AEC对象的图形中永远存在? 谢谢你的欢迎。打开外部参照时没有警告,插入后没有更改图像路径类型的解决方案。 大家好,唐;我不知道是否有人会发现这一点,但我35;039;我有个问题。我编写了这个应用程序,对其进行了一段时间的测试,使其运行良好,然后将一个用户的文件移动到新的服务器并运行该应用程序。它改变了1500多个图形上所有外部参照和图像文件的路径,一切正常。对下一个用户文件、同一服务器、同一共享、同一版本执行了相同的操作。这一次,我打开autocad,新路径正确插入,看起来不错,但外部参照和图像文件都显示为';未找到'
如果您浏览文件,则会插入相同的精确路径,并且可以正常工作。尝试了几次整个事情,每种方式的重新加载和一切我能想到的,但问题仍然存在。 愚蠢的问题,我知道…但为什么不只是使用参考经理 ; 好吧,我犯了一个愚蠢的错误。在路径中间插入两个反斜杠,而不是一个。之前有一位同事看过,但他没有#039;我也没抓住。但无论如何,一切都很好,处理了5000多个图形,改变了所有外部参照和图像中的所有路径。最大的诀窍是捕捉所有各种错误、corupt绘图、更新版本、锁定层等。感谢沼泽地里所有伸出援手的人
你知道,我看了参考资料管理器(acad2006版)后发现';我不知道如何一次绘制多张图。也许我错过了它的工作原理,我需要画很多画。
页:
[1]
2