乐筑天下

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

[编程交流] 用于过滤特定blo的Lisp

[复制链接]

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-5 20:02:56 | 显示全部楼层 |阅读模式
我正在寻找可以执行以下操作的lisp文件:
 
在发出命令“fildel”后,它应该扫描图形中具有特定名称的块,即“标题栏”。当它这样做了,它应该提示“图纸包含x块称为“标题栏”-做什么:或
 
输入+将删除所有标题栏。
S+enter将提示用户选择要进行交叉的图形部分。
 
我花了几个小时的时间处理
 
http://www.cadtutor.net/forum/showthread.php?t=34972
 
但是,如果没有diesle字符串中的额外命令,例如^C^C^fildel,我就无法做到这一点;标题栏;????
 
不管怎样,我想我搞不懂,所以请帮帮我。(不仅仅是通过提供代码,还包括如何做到这一点。)
 
还访问了:
 
http://afralisp.net/lispa/lisp19.htm
 
让我头痛:-)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:07:46 | 显示全部楼层
试试这个伴侣:
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:fildel [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] bdef blk ss tmp uss[b][color=RED])[/color][/b]
  2. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  3. [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] *fil:del* [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] *fil:del* [b][color=#ff00ff]"All"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  4. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] bdef [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"INSNAME"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  5. [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b]
  6.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  7.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] blk
  8.        [b][color=RED]([/color][/b][b][color=BLUE]getstring[/color][/b] t
  9.          [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\nSpecify Block Name <"[/color][/b] bdef [b][color=#ff00ff]">: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  10.      [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#ff00ff]""[/color][/b] blk[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] blk bdef[b][color=RED])[/color][/b] [b][color=BLUE]nil[/color][/b][b][color=RED])[/color][/b]
  11.            [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]snvalid[/color][/b] blk[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  12.             [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n** Invalid Block Name **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  13.            [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]tblsearch[/color][/b] [b][color=#ff00ff]"BLOCK"[/color][/b] blk[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  14.             [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n** Block Not Found in Drawing **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  15.            [b][color=RED]([/color][/b][b][color=BLUE]t[/color][/b] [b][color=BLUE]nil[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [i][color=#990099]; Exit Loop[/color][/i]
  16. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=#ff00ff]"_X"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#ff00ff]"INSERT"[/color][/b][b][color=RED])[/color][/b]
  17.                                 [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]2[/color][/b] blk[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  18.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  19.      [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\nDrawing Contains "[/color][/b]
  20.                     [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]sslength[/color][/b] ss[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]" Blocks with Name: "[/color][/b] blk[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  21.      [b][color=RED]([/color][/b][b][color=BLUE]initget[/color][/b] [b][color=#ff00ff]"All Selection"[/color][/b][b][color=RED])[/color][/b]
  22.      [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tmp
  23.                 [b][color=RED]([/color][/b][b][color=BLUE]getkword[/color][/b]
  24.                   [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\nDelete [A]ll or [s]election? <"[/color][/b] *fil:del* [b][color=#ff00ff]"> : "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  25.          [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] *fil:del* tmp[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  26.      [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] *fil:del* [b][color=#ff00ff]"Selection"[/color][/b][b][color=RED])[/color][/b]
  27.             [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] uss[b][color=RED])[/color][/b]
  28.               [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] uss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#ff00ff]"INSERT"[/color][/b][b][color=RED])[/color][/b]
  29.                                      [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]2[/color][/b] blk[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  30.             [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss uss[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  31.      [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]entdel[/color][/b]
  32.        [b][color=RED]([/color][/b][b][color=BLUE]vl-remove-if[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]listp[/color][/b]
  33.          [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]cadr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssnamex[/color][/b] ss[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  34. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-5 20:09:32 | 显示全部楼层
对象管理组织
 
这就像“很棒”,我的意思是很棒,你知道,完美。
 
李你似乎总是知道所有的解决方案,虽然我知道你正在做lisp大约10个月左右。
 
非常感谢你的例行公事。它工作得很好,我会使用它。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:14:39 | 显示全部楼层
 
很高兴你喜欢
 
谢谢Marco
回复

使用道具 举报

3

主题

10

帖子

7

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 20:18:07 | 显示全部楼层
你好
 
上述例程不会删除多个布局中的块。
它只删除当前活动布局中的块。
 
如果你能更新以上程序,这将是很大的帮助。
 
谢谢
阿什语
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-5 20:20:20 | 显示全部楼层
对我来说也是这样,但嘿,我想不可能全部拥有。
对不起,伙计,我不能这么做。
也许李有办法。。。
回复

使用道具 举报

3

主题

10

帖子

7

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 20:25:08 | 显示全部楼层
 
 
 
你好
 
上面的例程确实很棒,但它不会删除多个布局中的块。
它只删除当前活动布局中的块。
 
如果你能更新以上程序,这将是很大的帮助。
 
谢谢
阿什语
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 20:26:17 | 显示全部楼层
替换以下代码并删除所有代码:
旧的
  1.      (mapcar 'entdel
  2.        (vl-remove-if 'listp
  3.          (mapcar 'cadr (ssnamex ss))))))

 
 
 

  1. (mapcar    'vla-delete
  2.    (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
  3. )
回复

使用道具 举报

2

主题

60

帖子

65

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 20:31:23 | 显示全部楼层
 
你好
 
使用速度更快
  1. (vla-erase (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
而不是拟议的5个回路
 
@+
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 20:32:06 | 显示全部楼层
很高兴认识帕特里克。。。谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 00:41 , Processed in 0.570989 second(s), 72 queries .

© 2020-2025 乐筑天下

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