乐筑天下

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

Autocad 2016与Cadworks 2016

[复制链接]

3

主题

19

帖子

1

银币

初来乍到

Rank: 1

铜币
31
发表于 2016-3-7 14:12:30 | 显示全部楼层 |阅读模式
我有2张图纸,一张带有cadworks对象,另一张只有autocad对象。以下代码适用于这两个图形,如果您没有安装 cadworks但安装了 Cadworks,则在带有 cadworks 对象的图形上弹出错误。任何人都有任何线索(它仍然保存,但消息框很痛苦) _。
公共子测试代码()。
将 sFileName 显示为字符串 = “C:\Autodesk\test\test.dwg”。

使用 db 作为新数据库(False, True)。
分贝,ReadDwgFile(sFileName, IO.FileShare.ReadWrite, false, “”)。
Dim workDb As Database = HostApplicationServices.WorkingDatabase。

如果 HostApplicationServices.WorkingDatabase  db,则。
HostApplicationServices.WorkingDatabase = db。
如果结束。

'-----------------------------------------。
'编写代码以在此处执行某些操作。
'-----------------------------------------。

如果 HostApplicationServices.WorkingDatabase  workDb,则。
HostApplicationServices.WorkingDatabase = workDb。
如果结束。

尝试。
'警告:保存期间出错,。
“我们建议您在绘图上运行 RECOVER,。
分贝,SaveAs(sFileName, DwgVersion.Current)。
Catch e As Autodesk.AutoCAD.Runtime.Exception '(无错误可捕获)。
分贝,关闭输入(真)。
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(e.Message)。
结束试用。

分贝,释放()。
结束使用。

结束子。

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

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

使用道具 举报

3

主题

19

帖子

1

银币

初来乍到

Rank: 1

铜币
31
发表于 2016-3-7 14:42:51 | 显示全部楼层
在设置数据库的过程中,您在做什么?切换数据库时不需要 if 语句。 只需切换它们,因为工作数据库将不是您创建的新数据库。 此外,一旦您将其切换到数据库数据库,您就知道它不是workdb,因此请将其切换回去。HostApplicationServices.WorkingDatabase = db。

'-----------------------------------------------。
'编写代码以在此处执行某些操作。
'-----------------------------------------------。

HostApplicationServices.WorkingDatabase = workDb如果您确定使用 2016,则可以使用 2015 附带的新审核功能,并在保存图形之前调用它, 这有时对我有用, 如果您使用VB.I过去确实遇到过此问题,请确保您引用Autodesk.Autocad.ApplicationServices.DatabaseExtensions并将尝试查看我是否可以找到实际导致它的原因, 我很确定这与我在侧数据库中工作时的某个时候使用错误的数据库有关。
回复

使用道具 举报

3

主题

19

帖子

1

银币

初来乍到

Rank: 1

铜币
31
发表于 2016-3-7 14:57:30 | 显示全部楼层
我还忘了补充一点,您正在两次处置数据库。 一次使用释放语句,再次使用结束使用。
回复

使用道具 举报

3

主题

19

帖子

1

银币

初来乍到

Rank: 1

铜币
31
发表于 2016-3-7 15:00:07 | 显示全部楼层
最后,还有一件事。你有没有试着用FileOpenMode.OpenForReadAndWriteNoShare而不是IO.FileShare.ReadWrite?我似乎记得它给我带来了这个问题,我不得不使用FileOpenMode。
回复

使用道具 举报

3

主题

19

帖子

1

银币

初来乍到

Rank: 1

铜币
31
发表于 2016-3-7 15:38:47 | 显示全部楼层
关于不需要if语句以及double Dispose,您的回答是正确的。我从来没有遇到过IO.FileShare.ReadWrite的问题。但尽管如此,它对db仍然没有帮助。另存为(sFileName,DwgVersion.Current)
回复

使用道具 举报

3

主题

19

帖子

1

银币

初来乍到

Rank: 1

铜币
31
发表于 2016-3-7 16:14:46 | 显示全部楼层
您从未提及是否正在对图形进行任何处理,如果是,您正在做什么
我在AutoCAD 2016中使用CadWorx 2016在一个侧数据库中工作,没有这个问题
我创建和打开侧数据库的代码与您发布的代码相同。
回复

使用道具 举报

3

主题

19

帖子

1

银币

初来乍到

Rank: 1

铜币
31
发表于 2016-3-7 16:25:47 | 显示全部楼层
一些观察结果。
1.当我从cadworx模板创建新图形并向其添加外部参照时,代码中没有出现错误。
2.我可以通过打开我的现有图形进行复制。
3.删除数据库切换调用没有任何效果。
4.打开一个只有一小段管道的图形没有问题
可能是某个特定的cadworx实体导致了该问题。在图形关闭时,cadworx可能正在执行某些操作,这会在使用侧数据库时导致错误。
回复

使用道具 举报

3

主题

19

帖子

1

银币

初来乍到

Rank: 1

铜币
31
发表于 2016-3-7 16:48:24 | 显示全部楼层
你说得对,这毕竟是一个特定的cadworx实体
谢谢你的帮助。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 19:03 , Processed in 0.367303 second(s), 68 queries .

© 2020-2025 乐筑天下

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