明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5132|回复: 17

请高手指点这个程序:匹配(修改)标注样式

  [复制链接]
发表于 2009-8-5 14:54:00 | 显示全部楼层 |阅读模式
;;;匹配(修改)标注样式
(defun C:SBB (/ al a2 b1 b2 d1 d2 d3 n index)
(setq a2 (getreal"\n请选取要修改到的尺寸样式(1:GBDIM1   ,2:R    ,3:X    ,4:GBDIM )"))
(if (Or (> i 4) (< i 0) ) (setq i 1)) 
(princ "\n请选取尺寸来修改:")
(setq al (SSGET '((0 . "dimension"))))
(setq n (SSLENGTH al))
(setq INDEX 0)
(setq 1 "GBDIM1");指定标注形式
(setq 2 "R")
(setq 3 "X")
(setq 4 "GBDIM")
(setq b2 (entget (car a2)))
(setq d2 (assoc 3 b2))
(repeat n
(setq b1 (entget (ssname al index)))
(setq d1 (assoc 3 b1))
(setq d3 (subst d2 d1 b1))
(entmod d3)
(setq index (+ index 1)))
(graphscr)
(princ))
发表于 2009-8-5 19:38:00 | 显示全部楼层
1、(setq a2 (getreal"\n请选取……中应使用getint函数;
2、(if (Or (> i 4) (< i 0) ) (setq i 1))这句有何作用?
3、数字不能当变量名;
 楼主| 发表于 2009-8-7 11:54:00 | 显示全部楼层

呵呵,学习了.事实上我对LISP不懂!问题还是没解决啊!

那么阁下以为如何达到我这个目的呢:

我有标注样式A、B、C。

输入命令后,当我点选或框选某些尺寸标注时(假定标注样式为B),再输入C即其标注样式变为标注样式C。

不输入或直接回车所选对象的标注样式都变为标注样式A

能否帮忙LISP程序实现啊?

 

发表于 2009-8-7 20:47:00 | 显示全部楼层
游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0
 楼主| 发表于 2009-8-26 14:19:00 | 显示全部楼层

非常感谢版主在百忙看看我这贴!

我按照阁下的试了下,出现以下的信息能够再帮忙解决下吗?

请选取要修改到的尺寸样式(1:GBDIM1 ,2:R  ,3:X   ,4:GBDIM )2
请选取尺寸来修改:
选择对象: 找到 1 个

选择对象:  Error: 参数类型错误: lselsetp nil

发表于 2009-8-26 20:04:00 | 显示全部楼层
第9行al改成a1。即小写字母l改成数字1。
 楼主| 发表于 2009-8-28 09:47:00 | 显示全部楼层
特别致谢ZZXXQQ老兄!
 楼主| 发表于 2009-8-28 11:51:00 | 显示全部楼层
假若我修改的不是标注样式而是文字样式,这个程序又将作些改动可以实现吗?
发表于 2009-8-29 20:27:00 | 显示全部楼层
894560869发表于2009-8-28 11:51:00假若我修改的不是标注样式而是文字样式,这个程序又将作些改动可以实现吗?

标注参数还要作过多的修改,真有耐心!佩服

 楼主| 发表于 2009-9-23 13:48:00 | 显示全部楼层
能不能把1,2,3,4换成A,B,C,D呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-27 20:50 , Processed in 0.306620 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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