找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 958|回复: 2

我想选择图形里>=n的所有ZH层的文字,并将文字改为+1的值,该如何实现

[复制链接]
发表于 2002-1-18 11:20:43 | 显示全部楼层 |阅读模式

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

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

×
我想选择图形里>=n的所有ZH层的文字,并将文字改为+1的值,该如何实现,下列选择不能进行
(setq n (getstring"\n从XX开始改:"))
(setq ss1 (ssget "x" '((8 . "zh" ) (0 . "TEXT")(-4 . ">=") (1. n)))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 23个

财富等级: 恭喜发财

发表于 2002-1-18 20:09:55 | 显示全部楼层

请看:....

loner想选择图形里>=n的所有ZH层的文字,并将文字改为+1的值,该如何实现
我想选择图形里>=n的所有ZH层的文字,并将文字改为+1的值,该如何实现,下列选择不能进行
(setq n (getstring"\n从XX开始改:"))
(setq ss1 (ssget "x" '((8 . "zh" ) (0 . "TEXT")(-4 . ">=") (1. n)))


String是不能使用">="的

  1. ....

  2. (while (setq ss (ssget '((8 . "ZH")(0 . "TEXT"))))
  3.   (setq nCount (1- (sslength ss)))
  4.   (while (>= nCount 0)
  5.      (setq en (ssname ss nCount)
  6.            ob (vlax-ename->vla-object en)
  7.            sContent (vla-get-TextString ob)
  8.            nContent (atoi sContent)
  9.      )
  10.      (if (>= nContent n)
  11.         (progn
  12.            (setq nContent (1+ nContent)
  13.                  sContent (itoa nContent)
  14.            )
  15.            (vla-put-TextString ob sContent)
  16.         )
  17.      );end if
  18.      (vlax-release-object ob)
  19.      (setq nCount (1- nCount))
  20.    );end while
  21. );end while

  22. .....


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

使用道具 举报

已领礼包: 23个

财富等级: 恭喜发财

发表于 2002-1-19 23:42:58 | 显示全部楼层

回复: 请看:....

最初发表由 e2002
[B]loner想选择图形里>=n的所有ZH层的文字,并将文字改为+1的值,该如何实现
我想选择图形里>=n的所有ZH层的文字,并将文字改为+1的值,该如何实现,下列选择不能进行
(setq n (getstring"\n从XX开始改:"))
(setq ss1 (ssget "x" '((8 . "zh" ) (0 . "TEXT")(-4 . ">=") (1. n)))


String是不能使用">="的

  1. ....

  2. (while (setq ss (ssget '((8 . "ZH")(0 . "TEXT"))))
  3.   (setq nCount (1- (sslength ss)))
  4.   (while (>= nCount 0)
  5.      (setq en (ssname ss nCount)
  6.            ob (vlax-ename->vla-object en)
  7.            sContent (vla-get-TextString ob)
  8.            nContent (atoi sContent)
  9.      )
  10.      (if (>= nContent n)
  11.         (progn
  12.            (setq nContent (1+ nContent)
  13.                  sContent (itoa nContent)
  14.            )
  15.            (vla-put-TextString ob sContent)
  16.         )
  17.      );end if
  18.      (vlax-release-object ob)
  19.      (setq nCount (1- nCount))
  20.    );end while
  21. );end while

  22. .....


:9 :9 :9 [/B]



(atoi)函数对字符串的转换还有一个问题:
  如果提供的字符串参数不是纯数字字符,而是字母,符号,或与数字字符混合,则返回值=0,而不是nil,所以无法判断参数是不是"0",或"0.000"....
  故还需要对sContent作进一步的分析:对其每一char判断其ascii值是否在(ascii 0 ) ~ (ascii 9)之间如不是,则判断是否是"+","-", ".",可能还要计算到底有多少个"+","-",","....Faint....此方法看来是走不通了,怎么办?
  换一个思路:如果atoi返回了0,则开始判断其每一个char是不是均为"0"或","
若是,则可以加1,否则不能这样加1.
  如果最求完美,还需要对"字母符号与数字字符混合"的sContent判断是那个数字段
要加1....(电气软件ess中就有这样的程序实现,可参考,当然博超公司不会提供源代码给你的.他是用ObjectARX写的,可能C++中有现成的函数来处理string to int吧? )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 01:36 , Processed in 0.379578 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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