乐筑天下

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

[编程交流] 块插入失败

[复制链接]

78

主题

207

帖子

129

银币

后起之秀

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

铜币
395
发表于 2022-7-6 11:30:04 | 显示全部楼层 |阅读模式
我有一个lisp可以插入块。但是,如果块不存在,autocad将打开该命令窗口并显示其搜索的所有路径。
 
在我的lisp中,我只使用命令行插入。看起来是这样的
  1. (vl-cmdf "-insert" WBIns P1 "1" "1" pause)

 
如果块不存在,lisp将执行此操作
 
  1. Command: _TEST
  2. Enter block name. <test> test2
  3. Specify insertion point
  4. Specify rotation:
  5. "B0101.dwg": Can't find file in search path:
  6. C:\Program Files\Autodesk\Acadm 2007\support\
  7. C:\Program Files\Autodesk\Acadm 2007\fonts\
  8. C:\Program Files\Autodesk\Acadm 2007\help\
  9. C:\Program Files\Autodesk\Acadm 2007\express\
  10. C:\Program Files\Autodesk\Acadm 2007\support\color\
  11. C:\Program Files\Autodesk\Acadm 2007\drv\
  12. C:\Program Files\Autodesk\Acadm 2007\
  13. *Invalid*
  14. Unknown command "1".  Press F1 for help.
  15. Unknown command "1".  Press F1 for help.

 
“1”是x/y比例因子。在此之后,Lisp程序仍在暂停。我想要的是,如果块不存在,则取消lisp。我该怎么做?
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 12:08:45 | 显示全部楼层
如果块是外部块(WBLOCK),只需使用findfile函数,如果返回nil,只需退出程序。
如果块是内部块(图形模板中的块),请使用tblsearch函数,如果返回nil,则退出
回复

使用道具 举报

78

主题

207

帖子

129

银币

后起之秀

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

铜币
395
发表于 2022-7-6 12:28:32 | 显示全部楼层
很好很好。哇findfile我不知道它的存在谢谢
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:48:08 | 显示全部楼层
试试这个。。。
 
  1. (and (or (tblsearch "block" BLOCKNAME)
  2.         (findfile BLOCKNAME.DWG))
  3.     (vl-cmdf "_.-insert"....

 
仅当它在图形中找到块定义或在支持路径中找到块文件时,才会插入。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 02:05 , Processed in 0.402608 second(s), 71 queries .

© 2020-2025 乐筑天下

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