irneb 发表于 2022-7-6 00:02:35

如果愿意,可以生成命令,但lisp本身不需要调用任何命令。我给出的示例只是打印到命令行,以显示它们是否成功-实际上并不需要。我建议将其保存到SCR文件:
然后使用AutoDesk的ScriptPro或Cadig的AutoScript在选定的DWG上运行SCR文件。
 
通过ODBX执行此操作要困难得多,但可能会更快地通过DWG。我不确定layerstate函数是否在ODBX中工作,我假设不是。。。所以
 
要通过ODBX执行同样的操作,您需要通过ActiveX导入状态。由于需要通过以下方式获得LayerStateManager对象,因此(在本例中)比普通ActiveX更复杂:
在您的案例18中,VER#是您正在使用的ACad的主要版本。您可以通过以下方式获得:
然后需要将LS对象与文档对象的数据库相关联。doc obj是通过ODBX获得的。之后,您最终可以使用ls obj的导入和还原方法。

jtk07 发表于 2022-7-6 00:08:03

好的,我已经创建了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.

irneb 发表于 2022-7-6 00:09:51

哦,对不起。。。我没有注意到。在lisp中,必须将\加倍。因此,您需要:
(if (layerstate-import "I:\\DRAWINGS\\090-0056 LFMP\\Common\\ME_Layer_State.las")
....
 
关于AEC警告,这是因为您的设置要保存到早期版本的DWG文件。检查选项对话框-->打开并保存选项卡-->文件另存为:。。。我想你已经把它设置为AutoCAD 2004了

jtk07 发表于 2022-7-6 00:13:19

我找不到AutoDesk的64x版本的ScriptPro或Cadig的AutoScript,有什么想法吗?我也会尝试新代码
谢谢你迄今为止的帮助

jtk07 发表于 2022-7-6 00:15:03

我想我们真的很接近了,明白了吗?
 
12
 
这个项目的保存任务是到2007年,所以我们自动保存下来。我们不能早于2007年,因为它会干扰AEC对象。
 

irneb 发表于 2022-7-6 00:19:52

这似乎是个问题。在SCR文件中,路径是否拆分为两行?这不应该。零表明它没有表现出应有的表现。 
您可以在ACad命令行中键入/粘贴以下内容吗?
13
 
我想我看到ScriptPro终于升级到64位了。但不需要AutoScript,因为它在ACad中运行——它只是一组LSP文件和DotNet实用程序。

jtk07 发表于 2022-7-6 00:21:38

我得到“零”你认为可能是090-0056 LFMP意味着空间吗?
 
未将其更改为090-0056_LFMP,然后输入
(findfile“I:\\DRAWINGS\\090-0056\u LFMP\\Common\\ME\u Layer\u State.las”)
而且还是零,所以不是空间。
 
我试着运行命令
14

irneb 发表于 2022-7-6 00:24:34

不,这听起来好像路径有点不正确。尝试在命令提示下使用此选项:
浏览文件并单击“打开”。然后它应该向您显示“正确”的路径。

jtk07 发表于 2022-7-6 00:30:15

修复路径并创建新的Layerstate。现在我明白了
16
 
什么是T?
 
为什么它要重新启动另一行临时票据?
 
当前代码
17

jtk07 发表于 2022-7-6 00:32:17

SCR文件现在正在100%工作!谢谢大家的帮助
 
 
页: 1 [2]
查看完整版本: 层状态通过lisp应用?