乐筑天下

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

[编程交流] 层状态通过lisp应用?

[复制链接]

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 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的导入和还原方法。
回复

使用道具 举报

4

主题

22

帖子

18

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:08:03 | 显示全部楼层
好的,我已经创建了SCR文件,并试图拖放,我得到了这个错误,有什么想法吗?
 
  1. Command: (if (layerstate-import "I:\DRAWINGS\090-0056
  2. LFMP\Common\ME_Layer_State.las")
  3. (_>   (layerstate-restore "ME_Layer_State" nil)
  4. (_> )
  5. nil
  6. Command: _QSAVE
  7. You are trying to save AEC objects to a previous version file format. This is
  8. not permitted.
  9. These objects can be viewed in a previous version if Proxy Graphics are enabled,
  10. but AEC commands will be disabled.
  11. Users of 2004, 2005 and 2006 versions should install an updated Object Enabler
  12. (available from [url="http://www.autodesk.com/enablers"]www.autodesk.com/enablers[/url]) before opening these drawings.
  13. Previous versions will display error messages.
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 00:09:51 | 显示全部楼层
哦,对不起。。。我没有注意到。在lisp中,必须将\加倍。因此,您需要:
  1. (if (layerstate-import "I:\\DRAWINGS\\090-0056 LFMP\\Common\\ME_Layer_State.las")
  2. ....

 
关于AEC警告,这是因为您的设置要保存到早期版本的DWG文件。检查选项对话框-->打开并保存选项卡-->文件另存为:。。。我想你已经把它设置为AutoCAD 2004了
回复

使用道具 举报

4

主题

22

帖子

18

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:13:19 | 显示全部楼层
我找不到AutoDesk的64x版本的ScriptPro或Cadig的AutoScript,有什么想法吗?我也会尝试新代码
谢谢你迄今为止的帮助
回复

使用道具 举报

4

主题

22

帖子

18

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:15:03 | 显示全部楼层
我想我们真的很接近了,明白了吗?
 
  1. 12

 
这个项目的保存任务是到2007年,所以我们自动保存下来。我们不能早于2007年,因为它会干扰AEC对象。
 
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 00:19:52 | 显示全部楼层
这似乎是个问题。在SCR文件中,路径是否拆分为两行?这不应该。零表明它没有表现出应有的表现。 
您可以在ACad命令行中键入/粘贴以下内容吗?
  1. 13

 
我想我看到ScriptPro终于升级到64位了。但不需要AutoScript,因为它在ACad中运行——它只是一组LSP文件和DotNet实用程序。
回复

使用道具 举报

4

主题

22

帖子

18

银币

初来乍到

Rank: 1

铜币
20
发表于 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”)
而且还是零,所以不是空间。
 
我试着运行命令
  1. 14
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 00:24:34 | 显示全部楼层
不,这听起来好像路径有点不正确。尝试在命令提示下使用此选项:
浏览文件并单击“打开”。然后它应该向您显示“正确”的路径。
回复

使用道具 举报

4

主题

22

帖子

18

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:30:15 | 显示全部楼层
修复路径并创建新的Layerstate。现在我明白了
  1. 16

 
什么是T?
 
为什么它要重新启动另一行临时票据?
 
当前代码
  1. 17
回复

使用道具 举报

4

主题

22

帖子

18

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:32:17 | 显示全部楼层
SCR文件现在正在100%工作!谢谢大家的帮助
 
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 01:12 , Processed in 0.487529 second(s), 81 queries .

© 2020-2025 乐筑天下

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