乐筑天下

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

[综合讨论] 可以执行这些命令吗

[复制链接]

10

主题

41

帖子

33

银币

初来乍到

Rank: 1

铜币
48
发表于 2022-7-6 23:19:38 | 显示全部楼层 |阅读模式
我想把这个写进剧本里。我需要选择该块的所有实例,并更改其图层和线型。
 
我不会用lisp,因为我不懂编程。
001943e55s3dhrircqrpor.jpg
001948dxuivzu2m22isir9.jpg
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 23:27:27 | 显示全部楼层
您是否尝试搜索lisp例程?
回复

使用道具 举报

10

主题

41

帖子

33

银币

初来乍到

Rank: 1

铜币
48
发表于 2022-7-6 23:34:26 | 显示全部楼层
这是我的问题:如何将其放入脚本中。
回复

使用道具 举报

10

主题

41

帖子

33

银币

初来乍到

Rank: 1

铜币
48
发表于 2022-7-6 23:42:44 | 显示全部楼层
我不一定知道如何修改lisp例程使其工作。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 23:47:09 | 显示全部楼层
也许有人已经编写了一个lisp例程,可以做你想做的事情。尝试搜索。
回复

使用道具 举报

10

主题

41

帖子

33

银币

初来乍到

Rank: 1

铜币
48
发表于 2022-7-6 23:51:12 | 显示全部楼层
我做到了。有。我找到的那个选择了一个块并改变了它的颜色。但由于我不是程序员,我不知道如何修改lisp。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 23:57:19 | 显示全部楼层
为什么不能直接使用BEDIT命令?在块编辑器中打开有问题的块。通过“特性”选项板更改其图层和线型。关闭块编辑器时,系统会询问您是否要保存更改。这样做。当弹出回图形时,块的所有实例都将被更改。
回复

使用道具 举报

10

主题

41

帖子

33

银币

初来乍到

Rank: 1

铜币
48
发表于 2022-7-7 00:05:36 | 显示全部楼层
我有大约80张同样错误的画。
回复

使用道具 举报

10

主题

41

帖子

33

银币

初来乍到

Rank: 1

铜币
48
发表于 2022-7-7 00:13:19 | 显示全部楼层
我找到了这个线程,但选择某个名称的所有块的lisp不起作用,我不知道如何编码。
 
http://www.cadtutor.net/forum/showthread.php?21217-过滤命令/第2页
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-7 00:18:17 | 显示全部楼层
试试这个,它没有错误检查,因为它做得很快,阅读评论,了解它在做什么。我做了测试,它不会改变各种布局上的内容,因为你没有提到。它可以与一个脚本一起使用,一次完成所有80个dwg,我不想让你混淆如何也做到这一点。一个提示是,打开浏览器,将lisp保存到dwg上,只需拖放到dwg上,它就会立即启动,只需保存几个步骤。
 
  1. (defun c:reset-blk ( / ss newlay newlt bname)
  2. (vl-load-com)
  3. (setq obj (vlax-ename->vla-object (car (entsel "\nPick Block")))) ;pick an object and make it a Vl object
  4. (setq newlt (getstring "\nEnter linetype name Bylayer")) ; enter linetype name
  5. (setq newlay (getstring "\nEnter layer name"))   ; enter new layer name
  6. (setq bname (vla-get-name obj))                  ; get the blocks name
  7. (setq ss (ssget "x"  (list (cons 0 "INSERT") (cons 2 bname))))   ; make a collection of the block
  8. (repeat (setq x (sslength ss))                                   ; loop through the collection and change stuff
  9. (setq blk (vlax-ename->vla-object (ssname ss (setq x (- x 1))))) ; get a block
  10. ; (vla-put-color blk 0)                            ; change its color 0 is Bylayer           
  11. (vla-put-linetype blk newlt)                     ; change linetype note BYLAYER            
  12. (vla-put-layer blk newlay)                       ; change its layer   
  13. )
  14. )
  15. (c:reset-blk)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 05:04 , Processed in 0.688340 second(s), 75 queries .

© 2020-2025 乐筑天下

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