然后使用AutoDesk的ScriptPro或Cadig的AutoScript在选定的DWG上运行SCR文件。
通过ODBX执行此操作要困难得多,但可能会更快地通过DWG。我不确定layerstate函数是否在ODBX中工作,我假设不是。。。所以
要通过ODBX执行同样的操作,您需要通过ActiveX导入状态。由于需要通过以下方式获得LayerStateManager对象,因此(在本例中)比普通ActiveX更复杂:
在您的案例18中,VER#是您正在使用的ACad的主要版本。您可以通过以下方式获得:
然后需要将LS对象与文档对象的数据库相关联。doc obj是通过ODBX获得的。之后,您最终可以使用ls obj的导入和还原方法。 好的,我已经创建了SCR文件,并试图拖放,我得到了这个错误,有什么想法吗?
Command: (if (layerstate-import "I:\DRAWINGS\090-0056
LFMP\Common\ME_Layer_State.las")
(_> (layerstate-restore "ME_Layer_State" nil)
(_> )
nil
Command: _QSAVE
You are trying to save AEC objects to a previous version file format. This is
not permitted.
These objects can be viewed in a previous version if Proxy Graphics are enabled,
but AEC commands will be disabled.
Users of 2004, 2005 and 2006 versions should install an updated Object Enabler
(available from www.autodesk.com/enablers) before opening these drawings.
Previous versions will display error messages. 哦,对不起。。。我没有注意到。在lisp中,必须将\加倍。因此,您需要:
(if (layerstate-import "I:\\DRAWINGS\\090-0056 LFMP\\Common\\ME_Layer_State.las")
....
关于AEC警告,这是因为您的设置要保存到早期版本的DWG文件。检查选项对话框-->打开并保存选项卡-->文件另存为:。。。我想你已经把它设置为AutoCAD 2004了 我找不到AutoDesk的64x版本的ScriptPro或Cadig的AutoScript,有什么想法吗?我也会尝试新代码
谢谢你迄今为止的帮助 我想我们真的很接近了,明白了吗?
12
这个项目的保存任务是到2007年,所以我们自动保存下来。我们不能早于2007年,因为它会干扰AEC对象。
这似乎是个问题。在SCR文件中,路径是否拆分为两行?这不应该。零表明它没有表现出应有的表现。
您可以在ACad命令行中键入/粘贴以下内容吗?
13
我想我看到ScriptPro终于升级到64位了。但不需要AutoScript,因为它在ACad中运行——它只是一组LSP文件和DotNet实用程序。 我得到“零”你认为可能是090-0056 LFMP意味着空间吗?
未将其更改为090-0056_LFMP,然后输入
(findfile“I:\\DRAWINGS\\090-0056\u LFMP\\Common\\ME\u Layer\u State.las”)
而且还是零,所以不是空间。
我试着运行命令
14 不,这听起来好像路径有点不正确。尝试在命令提示下使用此选项:
浏览文件并单击“打开”。然后它应该向您显示“正确”的路径。 修复路径并创建新的Layerstate。现在我明白了
16
什么是T?
为什么它要重新启动另一行临时票据?
当前代码
17 SCR文件现在正在100%工作!谢谢大家的帮助
页:
1
[2]