乐筑天下

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

[编程交流] 尝试修改mu的LISP

[复制链接]

2

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 17:33:49 | 显示全部楼层 |阅读模式
大家好:
 
我有一些LISP,可以将单个选定实体移动到图形中的不同层。这些对象都在块内。
 
我现在需要扩展功能,以便可以选择多个对象
并将其移动到指定层。
 
我已尝试修改所附的示例文件;选择过程是可行的,但我不断得到“糟糕的参数类型:consp”
我附上了Lisp程序;我做错了什么?需要移动的有问题的对象都是直线、其他几何体等。我已经尝试阅读了有关此操作的选择标准,但这是我无法理解的。
到_层。lsp
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:51:45 | 显示全部楼层
  1. (defun c:tolayer  (/ doc ss sn)
  2. (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  3. (vla-endundomark doc)
  4. (vla-startundomark doc)
  5. (cond
  6.    ((not (tblsearch "LAYER" "HILMOT-ARROWS"))
  7.     (princ (strcat "\nLayer < HILMOT-ARROWS > is not found !")))
  8.    ((and (princ "\nSelect object to move to layer < HILMOT-ARROWS >")
  9.          (setq ss (ssget "_:L" '((0 . "~VIEWPORT"))))
  10.          )
  11.     (while (setq sn (ssname ss 0))
  12.       (entmod (append (entget sn) '((8 . "HILMOT-ARROWS"))))
  13.       (ssdel sn ss))
  14.     )
  15.    )
  16. (vla-endundomark doc)
  17. (princ)
  18. ) (vl-load-com)
回复

使用道具 举报

2

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 18:00:33 | 显示全部楼层
Tharwat,感谢您的贡献,但我认为您的代码正在将整个块移动到指定的层。我需要能够在块内移动多个选定的单个项目,而不是整个块本身。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:06:04 | 显示全部楼层
我只是修改了一下你的附加代码。
你可以按常规移动到块内拾取的对象层吗?这就是你想要的吗?
回复

使用道具 举报

2

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 18:21:17 | 显示全部楼层
我在寻找我选择的人。。。当我说选择时,我的意思是用普通的“拖动窗口”方法进行选择。我尽量避免挑选每一个单独的物体,其中一些是不到一英寸长的线,这有点令人不安,试图分别挑选20-30条真正的小线。我必须定期修改50-150个唯一(当然)块定义。我正在尽可能地节省时间,而不是每次都必须打开/关闭块编辑器,这正是我想要的。
 
我已经涵盖了“全部移动”选项。
回复

使用道具 举报

4

主题

305

帖子

225

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
97
发表于 2022-7-5 18:33:19 | 显示全部楼层
 
 
不幸的是,SSGET函数无法在块内进行多次选择,除非您处于refedit环境中。我知道的唯一方法是使用(nentsel),这只是一个单一的选择。如果这里的其他人知道另一种方法-很好,但我不认为你的要求与VL是可能的。
 
 
作为一种替代方法:是否可以在这些块中搜索公共图层或线型(或任何其他公共特性)?如果是这种情况,您可以使用lisp在块定义中搜索并进行更改。
回复

使用道具 举报

2

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 18:42:19 | 显示全部楼层
是的,这就是我害怕的,没有真正的解决办法。。。。我目前正在开发LISP,它可以自动化几乎所有的东西,但我在考虑万一“一切”都不是最终可以实现的解决方案。谢谢你的回复!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-19 05:06 , Processed in 1.886556 second(s), 66 queries .

© 2020-2025 乐筑天下

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