乐筑天下

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

[编程交流] LISP设置当前层

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 06:51:02 | 显示全部楼层 |阅读模式
我想知道是否有人能帮我解决这个问题。
 
例如,我有3层,层“0”、层“1”和层“2”
 
我想创建一个简单的命令来更改我正在工作的当前层。例如,如果我只键入“2”,则我的当前层会自动设置为层“2”。
 
由于我总是只在3或4层上工作,这将使它们之间的更改非常容易。。。
 
我不希望一个命令自动识别层的名称,我会为4个不同的层发出4个命令。
 
有什么建议吗?
谢谢
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:01:36 | 显示全部楼层
  1. (defun _SetCLayer (layerName)
  2. (if (tblsearch "layer" layerName)
  3.    (setvar 'clayer layerName)
  4.    (prompt
  5.      (strcat "\n** Layer "" layerName "" not found ** ")
  6.    )
  7. )
  8. (princ)
  9. )
  10. (defun c:0 () (_SetCLayer "0"))
  11. (defun c:1 () (_SetCLayer "1"))
  12. (defun c:2 () (_SetCLayer "2"))
  13. (defun c:3 () (_SetCLayer "3"))
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2022-7-6 07:07:02 | 显示全部楼层
但是,如果您确实在使用AutoCAD LT 2012,lisp代码可能无法工作。
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:16:37 | 显示全部楼层
嗨,黑匣子!
谢谢你的快速回复。。。
我觉得你的代码正是我需要的,但我对autocad代码完全陌生,所以我想知道你是否可以告诉我4个示例中的1个,我必须如何准确地将其放入我的用户界面中。。。
我尝试了一些方法,但似乎没有一种方法能够识别该命令(我在第0层中进行了尝试)
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 07:20:02 | 显示全部楼层
正如Dave指出的,如果您使用LT,lisp代码将不会在其中运行。你必须求助于使用宏。
 
layer命令的命令行版本(-layer)有一个名为Set的选项。这就是你可以做到的。
 
该宏将层1设置为当前。
 
^C层;设置1.
 
宏可以指定给按钮。
 
如果您的个人资料不正确,请更改它?谢谢
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:27:16 | 显示全部楼层
谢谢你的评论,
从命令行安装宏后,是否可以运行宏,或者只能在指定按钮时运行宏?
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 07:34:22 | 显示全部楼层
我会将其分配给一个按钮,并将其放置在自定义工具栏上。
 
您想过只使用“使对象的层成为当前”按钮吗?
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 07:42:31 | 显示全部楼层
如果你确实使用LT,听起来你需要一个可编程的鼠标和/或键盘。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:48:05 | 显示全部楼层
对不起,德梅斯,我很少检查别人在用什么,当他们特别要求帮助LISP,我应该有。
 
正如DBroada和ReMark所表明的那样,您只能在LT中使用宏/脚本,因此对于这种情况,我将遵循这里的ReMarks建议:
 
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 07:52:31 | 显示全部楼层
这里有一个工具栏,但你需要自己制作一个名为0lay等的图标
 
075108bst2bkyz2c22s3yc.jpg
 
  1. ***MENUGROUP=layers
  2. ***TOOLBARS
  3. **Layers
  4. ID_ALAN    [_Toolbar("Layers", _LEFT, _Show, 0,0, 1)]
  5. 0 lay[_Button("0lay","0lay.BMP","0lay.BMP")]^c^c^c(layer s "0")
  6. 1 lay[_Button("1lay","1lay.BMP","1lay.BMP")]^c^c^c(layer s "1")
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 14:59 , Processed in 1.675093 second(s), 74 queries .

© 2020-2025 乐筑天下

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