明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1963|回复: 8

求一次处理表格中带负数的数字为零的LSP程序002

[复制链接]
发表于 2012-9-7 23:27 | 显示全部楼层 |阅读模式
1明经币
本帖最后由 品茗新秀 于 2012-9-8 00:02 编辑

求一次处理表格中带负数的数字为零和删除括号前面的1及括号的LSP程序002
原图



达到效果





注:改为0的数与原负值为同图层、同样式、同大小,即除了数值改为0,其它均应与原图一样。
还有后面仅删除括号前面的1及括号,其它不能改变

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

最佳答案

查看完整内容

(Defun C:test () (for-sset (ssget "X" '((1 . "*-#*-*"))) -#-* ) (for-sset (ssget "X" '((1 . "*(#*x#*)"))) #X# ) )
发表于 2012-9-7 23:27 | 显示全部楼层
(Defun C:test ()
   (for-sset
     (ssget "X" '((1 . "*-#*-*")))
     -#-*
   )
   (for-sset
     (ssget "X" '((1 . "*(#*x#*)")))
     #X#
   )
)

回复

使用道具 举报

发表于 2012-9-8 08:44 | 显示全部楼层
这个不需要LISP,CAD中查找替换就可以搞定的,套哥,多学学CAD基础知识,再研究编程吧。
回复

使用道具 举报

发表于 2012-9-8 08:52 | 显示全部楼层
Try:


  1. (defun -#-* (a / b c d e)
  2.   (setq b (entget a)
  3.         c (assoc 1 b)
  4.         d (cdr c)
  5.         e (vl-string->list d)
  6.         e (member 45 (cdr (member 45 e)))
  7.         e (cons 48 e)
  8.   )

  9.   (repeat (1- (vl-string-position (ascii "-") d nil T))
  10.     (setq e (cons 32 e))
  11.   )

  12.   (entmod (subst (cons 1 (vl-list->string e)) c b))
  13. )

  14. (defun #X# (a / b c d e)
  15.   (setq b (entget a)
  16.         c (assoc 1 b)
  17.         d (cdr c)
  18.         e (vl-string->list d)
  19.         e (cdr (member 40 e))
  20.         e (reverse (cdr (member 41 (reverse e))))
  21.   )
  22.   (entmod (subst (cons 1 (vl-list->string e)) c b))
  23. )

  24.     ;;; (for-sset ss entdel)
  25.     ;;; Vladimir Nesterovsky

  26.     ;; (defun for-sset (sset fun / n)
  27.     ;;    (if (= 'PICKSET (type sset))
  28.     ;;      (repeat (setq n (fix (sslength sset)))
  29.     ;;         (fun (ssname sset (setq n (1- n))))
  30.     ;;    ) )
  31.     ;; )

  32.     (defun for-sset (sset func / n ename)
  33.        (and (= 'pickset (type sset))
  34.             (setq n -1)
  35.             (while (setq ename (ssname sset (setq n (1+ n))))
  36.               (func ename)
  37.             )
  38.        )
  39.     )

  40. (Defun C:test ()
  41.    (for-sset
  42.      (ssget "X" '((1 . "*-#*")))
  43.      -#-*
  44.    )
  45.    (for-sset
  46.      (ssget "X" '((1 . "*(#*x#*)")))
  47.      #X#
  48.    )
  49. )

点评

非常好,再改进一下,见下图,多改了顶层标高  发表于 2012-9-8 18:56

评分

参与人数 1明经币 +1 收起 理由
品茗新秀 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2012-9-8 09:50 | 显示全部楼层
你一共才39个明经币,300个可怎么出啊?

点评

楼主放主,就是倾家当产,不会赖帐  发表于 2012-9-8 17:58
币是先扣掉的,放在后台的/  发表于 2012-9-8 16:08
回复

使用道具 举报

发表于 2012-9-8 12:51 来自手机 | 显示全部楼层
上一悬赏贴楼主赖账

点评

我对人家高手的才华佩服得五服投地,你呢,什么都不会,只会乱叫。把时间花在跟别人学习上,做对社会有用的人,这个三年级小学生都会懂的  发表于 2012-9-8 19:04
记住了,以后的东东都让你看不懂,看人家高手,玩的是才华,玩的是品德。  发表于 2012-9-8 19:02
回复

使用道具 举报

 楼主| 发表于 2012-9-8 18:12 | 显示全部楼层
本帖最后由 品茗新秀 于 2012-9-8 18:13 编辑

非常强大,太好了,建议再改进一下,见下图测试











本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2012-9-8 18:23 来自手机 | 显示全部楼层
又想赖账了…一直改进最后说不满意

点评

不会赖账,做人要堂堂正正,  发表于 2012-9-8 18:58
回复

使用道具 举报

 楼主| 发表于 2012-9-8 20:02 | 显示全部楼层
本帖最后由 品茗新秀 于 2012-9-8 20:05 编辑

十分强大,非常不错,
对了一下,不知异在何处,两个代码好象差不多,楼主能不能告诉我
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-16 23:40 , Processed in 0.144220 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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