乐筑天下

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

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

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:36:37 | 显示全部楼层
很好的建议,帕特里克,谢谢
回复

使用道具 举报

3

主题

10

帖子

7

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 20:39:36 | 显示全部楼层
谢谢Ronjon和Patrick,
 
现在这一切都很好。
只需在函数末尾添加2个括号)。
 
谢谢你的努力。
回复

使用道具 举报

5

主题

19

帖子

14

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 20:41:52 | 显示全部楼层
可以在末尾添加计数结果吗-
“删除了名为“blockname”的XX块”?
回复

使用道具 举报

2

主题

60

帖子

65

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 20:46:57 | 显示全部楼层
 
你好
 
+
回复

使用道具 举报

5

主题

19

帖子

14

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 20:48:04 | 显示全部楼层
 
嗨,帕特里克,
 
我在前面加了这个(princ)),给出了以下内容。错误
 
命令:delblk
指定块名:rev。
图纸包含81个块,名称为:rev。
删除所有或选举?:
; 错误:自动化错误。调用接口的方法附加项
IAcadSelectionSet失败
 
请给出建议。
回复

使用道具 举报

2

主题

60

帖子

65

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 20:52:39 | 显示全部楼层
你可以把你的Lisp程序放在网上。
 
@+
回复

使用道具 举报

5

主题

19

帖子

14

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 20:56:33 | 显示全部楼层
 
  1. (defun c: DELBLK (/ bdef blk ss tmp uss)
  2. (vl-load-com)
  3. (or *fil:del* (setq *fil:del* "All"))
  4. (setq bdef (getvar "INSNAME"))
  5. (while
  6.    (progn
  7.      (setq blk
  8.        (getstring t
  9.          (strcat "\nSpecify Block Name <" bdef ">: ")))
  10.      (cond ((eq "" blk) (setq blk bdef) nil)
  11.            ((not (snvalid blk))
  12.             (princ "\n** Invalid Block Name **"))
  13.            ((not (tblsearch "BLOCK" blk))
  14.             (princ "\n** Block Not Found in Drawing **"))
  15.            (t nil)))) ; Exit Loop
  16. (if (setq ss (ssget "_X" (list (cons 0 "INSERT")
  17.                                 (cons 2 blk))))
  18.    (progn
  19.      (princ (strcat "\nDrawing Contains "
  20.                     (rtos (sslength ss) 2 0) " Blocks with Name: " blk))
  21.      (initget "All Selection")
  22.      (or (not (setq tmp
  23.                 (getkword
  24.                   (strcat "\nDelete [A]ll or [s]election? <" *fil:del* "> : "))))
  25.          (setq *fil:del* tmp))
  26.      (cond ((eq *fil:del* "Selection")
  27.             (while (not uss)
  28.               (setq uss (ssget (list (cons 0 "INSERT")
  29.                                      (cons 2 blk)))))
  30.             (setq ss uss)))
  31. (mapcar    'vla-delete
  32.    (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
  33. )
  34.     ))
  35. (vla-get-count (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
  36. (princ))
回复

使用道具 举报

2

主题

60

帖子

65

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 20:59:32 | 显示全部楼层
  1. 6
回复

使用道具 举报

5

主题

19

帖子

14

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 21:02:07 | 显示全部楼层
谢谢Patrick,
 
这是可行的,但还是有一些错误,
 
命令:DELBLK
 
指定块名:REV。
 
图纸包含34个块,名称为:REV。
删除所有或选举?:
 
删除34个对象。;错误:自动化错误。实体名称无效
回复

使用道具 举报

2

主题

60

帖子

65

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 21:05:11 | 显示全部楼层
我试过了,成功了
 
@+
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 01:05 , Processed in 0.782806 second(s), 70 queries .

© 2020-2025 乐筑天下

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