乐筑天下

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

[编程交流] Lisp文件请求

[复制链接]

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:07:46 | 显示全部楼层 |阅读模式
嘿,伙计们,我想知道是否有人可以给我写一个快速的lisp文件来加快我的工作量。
 
我需要它做以下事情。
 
1、将图纸中的所有块分解,直到没有更多块为止。(我已经有了这个Lisp程序)
2.选择图形中的所有内容,并将所有对象放置在“bylayer”(颜色、线型等)上
3.选择图层0上的所有对象,并放置在新图层(图层0)上
 
我有大约200个图纸,我需要这样做,所以将是非常大的所有人都可以帮助
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:20:53 | 显示全部楼层
三个人的Lisp程序?
 
你提到你有一个项目1的例行程序。
Setbylayer将负责项目2。
这就剩下第3项了。
 
  1. (defun c:DoAll  (/ ln ss i e)
  2.      (setq ln "YourLayer")
  3.      (setq ss (ssget "_X" '((8 . "0"))))
  4.      (repeat (setq i (sslength ss))
  5.            (entmod (subst (cons 8 ln)
  6.                           (assoc 8
  7.                                  (setq e (entget (ssname ss
  8.             (setq i (1- i))))))
  9.                           e))
  10.            )(princ)
  11.      )
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:21:24 | 显示全部楼层
谢谢你这么做
 
我能不能把这三者结合起来做成一个长Lisp程序?这是我用来分解积木的
  1. (defun c:exall(/ bSet)
  2. (setvar "qaflags" 1)
  3. (while(setq bSet(ssget "_X" '((0 . "INSERT"))))
  4.    (command "_.explode" bSet "")
  5.    ); end while
  6. (repeat 3(command "-purge" "all" "" "n"))
  7. (setvar "qaflags" 0)
  8. (princ)
  9. ); end of c:exall
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:29:56 | 显示全部楼层
 
我想这是可以做到的。这是否仅限于模型空间?或者它是否包括布局选项卡上的对象?
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:38:08 | 显示全部楼层
只是模型空间
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:42:15 | 显示全部楼层
最后一个问题:
外部参照?
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:53:50 | 显示全部楼层
图形中根本没有外部参照。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:56:16 | 显示全部楼层
可以
 
拼凑在一起的一堆代码
 
  1. (defun c:DoAll  (/ ln aDoc blknme bSetss i e)
  2.      (vl-load-com)
  3.      (setq ln "YourLayer")
  4.      (setq aDoc (vla-get-activedocument (vlax-get-acad-object)))
  5.      (while
  6.            (setq a (tblnext "BLOCK" (null a)))
  7.                 (setq blknme (vla-item
  8.                                    (vla-get-blocks aDoc)
  9.                                    (cdr (assoc 2 a))))
  10.                 (vla-put-Explodable blknme :vlax-true)
  11.                 (vlax-for
  12.                        itm
  13.                           blknme
  14.                       (vla-put-color itm acByLayer)
  15.                       (vla-put-linetype itm "ByLayer")
  16.                       (vla-put-lineweight itm -1)))
  17.      (while
  18.            (setq bSet (ssget "_X" '((0 . "INSERT") (410 . "MODEL"))))
  19.                 (command "_.explode" bSet)
  20.                 )
  21.      (if (setq ss (ssget "_X" '((8 . "0"))))
  22.            (repeat (setq i (sslength ss))
  23.                  (entmod (subst (cons 8 ln)
  24.                                 (assoc 8
  25.                                        (setq e    (entget
  26.                                                         (ssname
  27.                                                               ss
  28.                                                               (setq i    (1- i))))))
  29.                                 e))
  30.                  )
  31.            )
  32.      (repeat 4
  33.            (vla-purgeall aDoc)
  34.            )
  35.      (princ)
  36.      )

 
编辑:修改为考虑不可变形块图元
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:03:13 | 显示全部楼层
 
非常感谢。
但它似乎被卡住了
 
命令:_。爆炸
选择对象:
命令:_。爆炸
选择对象:
命令:_。爆炸
选择对象:
命令:_。爆炸
 
它一直重复,直到我取消,有什么想法吗?
 
谢谢你帮我。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:10:39 | 显示全部楼层
 
不是错误,这是在while循环内找到嵌套块(ssget)的结果。[复制自您的c::exall例程]
 
命令:cmdecho
输入CMDECHO的新值:0
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 09:02 , Processed in 0.458041 second(s), 72 queries .

© 2020-2025 乐筑天下

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