乐筑天下

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

[编程交流] 检查多重引线样式

[复制链接]

26

主题

81

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 15:43:58 | 显示全部楼层 |阅读模式
  1. (defun c:FilletWeldBottL ()
  2. (InsertBlockExplode) [color="lime"]; I added this line to call the below function [/color]
  3. (setvar "cmleaderstyle" "Fillet Weld Bott L")
  4. (command "_mleader")
  5. )

 
第一个defun在没有第二行的情况下工作得很好。我在模板图形中添加了15种多重引线样式(其中一种称为“角焊缝B-S”),因此,现在每次打开新图形时,我都有所有可用的引线样式。不幸的是,当我打开一个不是用当前模板创建的旧图形时,我没有那些多重引线样式。所以我想我会试着让Lisp来帮我,并想出了下面这个定义。我试图让lisp认识到,如果此图纸中不存在“角焊缝B-S”,则应加载“MW Leader Styles.dwg”
这不会发生。有人能帮忙吗??谢谢
 
  1. (defun InsertBlockExplode ()
  2. (if (= ("mleaderstyle" "Fillet Weld B-S") nil)
  3.    (command "_.insert" "MW Leader Styles" "0,0,0" 1 0))
  4. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:10:58 | 显示全部楼层
考虑使用以下函数来测试是否在激活图形中定义了给定的多重引线样式:
  1. (defun mleaderstyle-p ( mls / dic )
  2.    (and (setq dic (dictsearch (namedobjdict) "acad_mleaderstyle"))
  3.         (dictsearch (cdr (assoc -1 dic)) mls)
  4.    )
  5. )

 
在您的代码中:
  1. (defun InsertBlockExplode ( )
  2.    (if (not (mleaderstyle-p "Fillet Weld B-S"))
  3.        (command "_.-insert" "MW Leader Styles" nil)
  4.    )
  5. )
  6. (defun mleaderstyle-p ( mls / dic )
  7.    (and (setq dic (dictsearch (namedobjdict) "acad_mleaderstyle"))
  8.         (dictsearch (cdr (assoc -1 dic)) mls)
  9.    )
  10. )
回复

使用道具 举报

26

主题

81

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 16:30:26 | 显示全部楼层
谢谢你,李,很有趣,很有帮助
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:01:49 | 显示全部楼层
不客气!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-2 19:57 , Processed in 0.877703 second(s), 60 queries .

© 2020-2025 乐筑天下

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