乐筑天下

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

[编程交流] 旧lisp例程获胜';t wo公司

[复制链接]

10

主题

895

帖子

887

银币

初来乍到

Rank: 1

铜币
49
发表于 2022-7-5 18:13:23 | 显示全部楼层 |阅读模式
我已经使用这个例程很多年了(不是我的,是在网上找到的),但是如果块未设置为默认查找,那么它将不适用于具有查找表的动态块。
 
该例程允许您选择一个块并再次插入,无需查找名称、比例等。
 
如果有人可以将其更改为非默认查找设置的动态块上的无故障,我将不胜感激。
 
  1. ; Purpose:  To insert a block by selecting an already inserted block to
  2. ;           determine block name and scale.
  3. (defun c:IE (/ params hdrlst typ)
  4. ;======================================================================================================
  5. ; Initialize memory and important system variables
  6. (setq marker 'mark mark 0)
  7. (setq hdrlst (list
  8.                   (cons "limcheck"  (getvar "limcheck" ))
  9. )            )
  10. (setvar "cmdecho"   0)
  11. (setvar "limcheck" 0)
  12. ;==================================================================================================
  13. ; Select the block to determine the block name
  14. (menucmd "s=x")
  15. (menucmd "s=insert")
  16. (while (null (setq ent (entsel "\nSelect the block to be reinserted: "))))
  17. (setq params (entget (car ent)))
  18. ;==================================================================================================
  19. ; Is the entity selected an inserted block?
  20. (if (= (setq typ (cdr (assoc 0 params))) "INSERT")
  21. ;================================================================================================
  22. ; Yes - Insert the block
  23. (progn
  24.    (command "insert")
  25.    (command (cdr (assoc 2 params))         "x" (cdr (assoc 41 params))
  26.                                 "y" (cdr (assoc 42 params))
  27.                                 "z" (cdr (assoc 41 params))
  28.                                 )
  29. )
  30. ;================================================================================================
  31. ; No - Cancel the command and display error message.
  32. (prompt "\nEntity is not a block.")
  33. )
  34. ;==================================================================================================
  35. ; Clean up the atomlist
  36. (foreach cnt hdrlst (setvar (car cnt) (cdr cnt)))
  37. (princ)
  38. )
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 18:49:00 | 显示全部楼层
听起来你需要找到动态块的真实名称,下面是李·麦克提供的有用例程:http://www.lee-mac.com/effectivename.html
回复

使用道具 举报

10

主题

895

帖子

887

银币

初来乍到

Rank: 1

铜币
49
发表于 2022-7-5 19:27:21 | 显示全部楼层
谢谢你,但我发现ADDSELECTED命令可以解决这个问题,因此不再需要lisp文件。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 19:35 , Processed in 0.974621 second(s), 69 queries .

© 2020-2025 乐筑天下

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