找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2774|回复: 9

[编程申请] 求各位高手帮忙编写一个area图层所有数字计算求和的lisp

[复制链接]
发表于 2020-5-18 16:33:51 | 显示全部楼层 |阅读模式

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

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

×
1、具体描述:一个cad文件,里面只有AREA图层的是代表面积,分全面积和半面积,如图红色字体为AREA图层面积的数字:如室外梯计算半面积的10.75/2,01面积78.95,01面积744.572、想实现的功能:就是选中area图层的数字如下图有3个数字位于area图层,相加,如果是计算半面积的数字如10.75/2就直接用10.75除以2(保留两位小数),用结果再和其他area图层的数字相加。
10.75/2+78.95+744.57=828.85
然后把结果打字到屏幕上。

01层照片

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

已领礼包: 51个

财富等级: 招财进宝

发表于 2020-5-18 18:24:21 | 显示全部楼层
看看这个, http://bbs.xdcad.net/thread-725874-1-1.html

试试事先用颜色区分下房间,然后自动给你算面积了,你那些数字都不用自己算和画出来了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-18 21:14:36 | 显示全部楼层
Lispboy 发表于 2020-5-18 18:24
看看这个, http://bbs.xdcad.net/thread-725874-1-1.html

试试事先用颜色区分下房间,然后自动给你算面 ...

谢谢大大!你的程序功能非常强大,但是因为我(必须得)用的一款软件自动标识的面积层是area,所以希望有一个命令能选中area图层的面积数据,然后求和。因为我是初学的,还不得其门。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2020-5-19 01:09:43 | 显示全部楼层
wx_i500B4dE 发表于 2020-5-18 21:14
谢谢大大!你的程序功能非常强大,但是因为我(必须得)用的一款软件自动标识的面积层是area,所以希望有 ...

* 和 / 都能算

  1. (defun c:tt ()
  2.   (if (not
  3.         (and (xdrx-initssget "\n选择area层的数字文字<全选>:")
  4.              (setq ss (xdrx-ssget '((0 . "text") (8 . "area"))))
  5.         )
  6.       )
  7.     (setq ss (ssget "x" '((0 . "text") (8 . "area"))))
  8.   )
  9.   (progn (setq sum 0.0)
  10.          (mapcar '(lambda (x)
  11.                     (if        (setq num (xd::string:isnum
  12.                                     (xdrx-getpropertyvalue x "textstring")
  13.                                   )
  14.                         )
  15.                       (setq sum (+ sum (atof (car num))))
  16.                       (progn (if (setq num
  17.                                         (xdrx-string-regexps
  18.                                           "(^(([ | ]+)?(-|+)?[0-9]+(\\.[0-9]*)?([ | ]+)?)[/|*]((([ | ]+)?(-|+)?[0-9]+(\\.[0-9]*)?([ | ]+)?$"
  19.                                           #textstring
  20.                                         )
  21.                                  )
  22.                                (progn (setq sum
  23.                                              (+        sum
  24.                                                 (eval
  25.                                                   (cons
  26.                                                     (read
  27.                                                       (car
  28.                                                         (xdrx-string-regexps "[*|/]" (car num))
  29.                                                       )
  30.                                                     )
  31.                                                     (mapcar
  32.                                                       'atof
  33.                                                       (xdrx-string-regexps "[^/*]+" (car num))
  34.                                                     )
  35.                                                   )
  36.                                                 )
  37.                                              )
  38.                                       )
  39.                                )
  40.                              )
  41.                       )
  42.                     )
  43.                   )
  44.                  (xdrx-pickset->ents ss)
  45.          )
  46.          (xdrx-prompt "\nArea层数字总面积为:" sum)
  47.   )
  48.   (princ)
  49. )


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

使用道具 举报

 楼主| 发表于 2020-5-19 09:58:47 | 显示全部楼层
运行之后选择不中area图层的文字,然后炸开之后才能选中,估计这个是单行文字和多行文字的区别,我们公司软件生成的默认是多行文字所以才选不中,请问下大大这个怎么修改成选中多行文字?但是这个算法真的很赞,按一下空格就出来了,在图形复杂的时候省去了很多手工检查的时间,非常感谢!!

01层.zip

20.07 KB, 下载次数: 11, 下载积分: D豆 -1 , 活跃度 1

点评

更通用的 去看这个 http://bbs.xdcad.net/thread-725876-1-1.html 乘法也能算  详情 回复 发表于 2020-5-19 10:15
把代码的 (setq ss (xdrx-ssget '((0 . "text") (8 . "area")))) 改成 (setq ss (xdrx-ssget '((0 . "*text") (8 . "area"))))  详情 回复 发表于 2020-5-19 10:14
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-5-19 10:14:44 | 显示全部楼层
wx_i500B4dE 发表于 2020-5-19 09:58
运行之后选择不中area图层的文字,然后炸开之后才能选中,估计这个是单行文字和多行文字的区别,我们公司软 ...

把代码的 (setq ss (xdrx-ssget '((0 . "text") (8 . "area"))))

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-5-19 10:15:42 | 显示全部楼层
wx_i500B4dE 发表于 2020-5-19 09:58
运行之后选择不中area图层的文字,然后炸开之后才能选中,估计这个是单行文字和多行文字的区别,我们公司软 ...

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

使用道具 举报

 楼主| 发表于 2020-5-20 08:36:24 | 显示全部楼层
太谢谢 两位高手了,现在问题已经解决了,非常感谢!!!!

点评

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2020-5-20 16:43:02 | 显示全部楼层
wx_i500B4dE 发表于 2020-5-20 08:36
太谢谢 两位高手了,现在问题已经解决了,非常感谢!!!!

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-19 20:51 , Processed in 0.301985 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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