找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1441|回复: 6

[求助] [求助]:判断一个标注样式是否存在的IF语句怎样写?

[复制链接]
发表于 2007-12-28 09:31:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如题,怎样用LISP判断一个指定的标注样式是否存在?
这个IF语句怎样写?

我的整个LISP脚本是这样的:
前提:CAD图形样板文件中已有一个名称为“1”,全局标注比例为1的标注样式。
流程如下:
输入命令
输入一个实数GP
判断,如果有以这个实数为名的标注样式,则将它置为当前。
如果没有以这个实数命名的标注样式,则新建这个标注样式,并置为当前。

我写好了新建标注样式的部分:


(defun c:aw (/ gp)
   (setq gp (getreal "\n请输入要建立的标注样式比例:"))
   (command "dimstyle" "r" 1)                                             ;先将标注样式设置为“1”样式
   (setvar "dimscale" gp)                                                    ;将全局标注比例设置为输入的实数
   (setvar "dimtofl" 1)                                                          ;dimtofl变量值为1
   (command "dimstyle" "s" (rtos gp 2 1))                           ;新建以这个实数为名称的标注样式
   (setvar "dimtofl" 0)                                                          ;dimtofl变量值为0,去掉一半箭头
   (command "dimstyle" "s" (strcat (rtos gp 2 1) "$3"))        ;新建直径子标注样式
   (command "dimstyle" "s" (strcat (rtos gp 2 1) "$4"))        ;新建半径子标注样式
   (command "dimstyle" "r" (rtos gp 2 1))                            ;再次将新建的“实数”标注样式置为当前
(princ))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 10246个

财富等级: 富甲天下

发表于 2007-12-28 22:16:22 | 显示全部楼层
(defun dstyle (dimstylename) (if (tblsearch "DIMSTYLE" dimstylename) T nil))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-29 14:11:11 | 显示全部楼层
对不起,我不会用啊,那个dimstylename怎样获得所有的标注样式名啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10246个

财富等级: 富甲天下

发表于 2007-12-29 18:02:55 | 显示全部楼层
最初由 b1i7n 发布
[B]对不起,我不会用啊,那个dimstylename怎样获得所有的标注样式名啊? [/B]


问的是if语句怎么写,所以写了个函数。dimstylename就是标注样式名,只要将标注样式名以字串形式代到函数中就能得到指定样式是否存在。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-30 10:50:59 | 显示全部楼层
已解决

(defun c:aw (/ gp)
  (setq gp (getstring "\n请输入要建立的标注样式比例:"))
  (if (tblobjname "DIMSTYLE" gp)
    (command "dimstyle" "r" gp)
    (progn
      (command "dimstyle" "r" 1)(setvar "dimscale" (atof gp))(setvar "dimtofl" 1)
      (command "dimstyle" "s" gp)(setvar "dimtofl" 0)
      (command "dimstyle" "s" (strcat gp "$3"))
      (command "dimstyle" "s" (strcat gp "$4"))
      (command "dimstyle" "r" gp)
    )
  )
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10246个

财富等级: 富甲天下

发表于 2007-12-30 11:23:44 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 221个

财富等级: 日进斗金

发表于 2015-6-10 16:04:17 | 显示全部楼层
谢谢分享{:soso_e179:}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 12:18 , Processed in 0.202968 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表