Proctor 发表于 2022-7-6 09:12:39

Can';t保存dwg“文档

您好:我有一个应用程序,我正在创建的w/autocad。net api,运行它时,我使用以下脚本打开图形:
 

Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.Open(myFile.ToString(), False)
Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument(DocumentLockMode.Write, Nothing, Nothing, True)
'if the drawing is saved so that paperspace was showing, this code makes sure that model space is the default setting for the user to see.
Autodesk.AutoCAD.ApplicationServices.Application.SetSystemVariable("TileMode", 1)

 
但是,如果我尝试执行文件->另存为,则会显示以下消息:
 
文档“Document name.dwg”正在执行命令。按enter键取消或重试。
 
我尝试按enter键和cancel键,但仍无法保存绘图。
 
我做错了什么?
 
谢谢
监考人员

LCE 发表于 2022-7-6 09:25:59

监考人员
这是完整的代码吗?如果这是唯一的代码,那么保存应该没有问题。

ASMI 发表于 2022-7-6 09:40:34

保存前检查CMDACTIVE系统变量。I等于0无活动命令,否则:
1-普通命令激活
2-普通命令和透明命令处于活动状态
4-脚本处于活动状态
8-对话框处于活动状态
16-DDE激活
32-AutoLISP处于活动状态(仅对ObjectARX定义的命令可见)
64-ObjectARX命令处于活动状态

borgunit 发表于 2022-7-6 09:52:40

我们以前也遇到过这种情况,但不是在代码中。这可能会有所帮助。
 
http://usa.autodesk.com/adsk/servlet/ps/item?siteID=123112&id=2884967&linkID=9240617

Proctor 发表于 2022-7-6 10:01:23

您好:思考并查看大家所说的内容,我决定在代码中找到出现问题的确切位置。。。我在我的CreateBlock子程序中找到了它。代码有许多启动事务。。处理事务。。。所以我决定用using语句重做并清理它。。。
 
但是现在,当我运行它时。。。它经历了一路轰炸;然而,我不认为这一块正在被创建。。。因为在我的程序继续运行后不久,我收到另一条错误消息,表明该对象没有创建。
 
你能看一下我上面的代码,告诉我我可能遗漏了什么吗?
 
 
再次感谢你的所有想法,并帮助我解决这个问题。
监考人员
 
 
必须连接。。因为它太长了:
使用语句创建block\u。txt文件

Proctor 发表于 2022-7-6 10:02:45

你好:我只是想让你知道我终于成功了。记得我告诉过你,问题最终出现在创建块过程中的某个地方。。。因此,为一个事务更改了几个启动和提交事务:
 
将docLock用作DocumentLock=ed.Document。LockDocument()
使用trans作为事务=ed.Document。TransactionManager。StartTransaction()
之后,我的代码很好地完成了这个过程。。。但是在我的AddLayer程序中出错了。。。只是多米诺骨牌效应。我收到一个错误,说明文档未锁定。。。因此,也可以为Using语句更改那些start和commit事务。。。。
之后,一切都安排妥当了。我认为这一切都源于糟糕的代码,不知道从哪里开始和处理,然后重新启动另一个事务。。。这就是为什么我喜欢使用状态。。。打扫得很干净,什么都照顾好了。
无论如何,我只是想让你们知道,再次感谢你们的时间和投入。
监考人员

varse11 发表于 2022-7-6 10:22:05

尝试检查可能打开的其他dwg文件,并查看该图形中是否有激活的命令。我刚刚发现我有同样的问题,其中一个最小化的图形有一个选择等待我提供复制和粘贴命令。值得一试。
页: [1]
查看完整版本: Can';t保存dwg“文档