找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3396|回复: 52

(测试)[公告]:准备写一些关于各种面积统计的程序。

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-8-27 21:36:38 | 显示全部楼层 |阅读模式

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

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

×
准备在工具箱中增加各种统计面积的程序(当然也可以是其他的统计),任何专业的都可以。

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

已领礼包: 7993个

财富等级: 富甲天下

发表于 2003-8-27 22:37:07 | 显示全部楼层
填充面积好象就够用了,能将结果返回到绘图区标注最好。
还有什么需要统计面积呢?
什么时候出for 2004?很关心哦。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2003-8-27 23:19:19 | 显示全部楼层
最初由 hs_f 发布
[B]填充面积好象就够用了,能将结果返回到绘图区标注最好。
还有什么需要统计面积呢?
什么时候出for 2004?很关心哦。 [/B]

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

使用道具 举报

已领礼包: 7993个

财富等级: 富甲天下

发表于 2003-8-27 23:31:07 | 显示全部楼层
1、控规地块面积计算;
2、总规用地平衡表;
3、。。。。
---有关工具箱的2004版本,无可奉告?商业机密?就是不告诉你?。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-8-28 08:50:55 | 显示全部楼层
1\要求统计出同一图层的线段长度和,可用于电线长度计算
2\要求统计出同一图块的个数
3\要求统计出相同填充的面积和
4\要求用EXCLE出报表
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-28 15:52:34 | 显示全部楼层
统计面积或者长度在预决算里面用的很多,要是有这样的程序那就方便多了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-29 12:19:10 | 显示全部楼层
最初由 bluejan 发布
[B]统计面积或者长度在预决算里面用的很多,要是有这样的程序那就方便多了 [/B]

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2003-8-31 02:26:21 | 显示全部楼层
其实相减的命令ACAD的ARAE里就有,就是用起来不方便,能不能写个更方便使用的就太好了!因为算建筑面积确实经常用到要相减的时候。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-9-2 09:47:39 | 显示全部楼层

希望对大家有用!

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

使用道具 举报

发表于 2003-9-4 18:45:55 | 显示全部楼层
还没开始做吗,我有些急了我天天在盼O,完成了我要第一个试用呵呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-9-4 20:49:59 | 显示全部楼层

关于面积的程序

*-*3  在道路设计中有每隔20米就一个横断面图,需要计算出填挖方量,由于实际工程中往往有挖有填的,如果道路长度有10公里,用CAD中自带的量取面积命令好象很劳神,尤其在市政道路中如此,不知有哪位学长有这方面的程序?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2003-9-6 08:14:39 | 显示全部楼层

  1. ;|
  2. 功能:计算封闭曲线(*polyline,spline,circle,ellipse)面积并标注

  3. 说明:用于统计曲线面积,包括三种方式:
  4.       1. boundary方式,拾取点,如果生成边界则标面积
  5.       2. 统计图层曲线面积
  6.       3. 选择范围后标注所有曲线积   

  7.       程序中标注数字采用了临时图层tmp_area,方便使用

  8.       需配合xdrx_api build 11208以上版本使用。
  9. |;
  10. ($xdrx_load "xdlsp.lsp")
  11. (defun c:XDTB_PlIsOff (/ ss e n)
  12.   (setq ss (ssget '((0 . "*polyline"))))
  13.   (if ss
  14.     (progn
  15.       (setq n 0)
  16.       (xdrx_setsstodb ss 0)
  17.       (while (setq e (xdrx_getentdata 0))
  18.         (if (not (xdrx_curve_isclosed e))
  19.           (progn
  20.             (redraw e 3)
  21.             (setq n (1+ n))
  22.           )
  23.         )
  24.       )
  25.       (princ (strcat "\n共检查 " (itoa (sslength ss)) " 根多义线. ")
  26.              (if (zerop n)
  27.                "全部闭合. "
  28.                (strcat "共 " (itoa n) " 根非闭合多义线!")
  29.              )
  30.       )
  31.     )
  32.   )
  33.   (princ)
  34. )   
  35. (defun c:XDTB_AREA0
  36.        (/ kw redraw_le get_area get_layer_area get_point_area)
  37.   (defun redraw_le ()
  38.     (foreach e le_drw (redraw e 4))
  39.     (foreach e le_del (entdel e))
  40.     (setq le_drw nil
  41.           le_del nil
  42.     )
  43.   )
  44.   (defun get_area (l / _area ss ss0 ss1 e e1 info pt str len)
  45.     (setq ss1        (ssadd)
  46.           _area        0.0
  47.     )
  48.     (princ
  49.       "\n选择拾取范围 (*polyline,circle,ellipse,spline)<全选>: "
  50.     )
  51.     (setq ss (ssget "x" l))
  52.     (setq ss0 (ssget l)
  53.           ss  (if ss0
  54.                 ss0
  55.                 ss
  56.               )
  57.     )
  58.     (xdrx_setsstodb ss 0)
  59.     (while (setq e (xdrx_getentdata 0))
  60.       (setq info (xdrx_curve_info e))
  61.       (setq pt (xdrx_midp (cadr (last info)) (caddr (last info))))
  62.       (if (xdrx_curve_isclosed e)
  63.         (progn
  64.           (if (not (xdrx_getxdata e "面积"))
  65.             (progn
  66.               (setq str (rtos (/ (cadr (assoc "Area" info)) 1e6) 2 2))
  67.               (if (not (setq str (xdrx_getxdata e "面积")))
  68.                 (progn (setq
  69.                          str (rtos (/ (cadr (assoc "Area" info)) 1e6) 2 2)
  70.                        )
  71.                        (xdrx_setxdata e "面积" str)
  72.                 )
  73.                 (setq str (car (xdrx_getxdata e "面积")))
  74.               )
  75.             )
  76.             (setq str (car (xdrx_getxdata e "面积")))
  77.           )
  78.           (setq _area (+ _area (read str)))
  79.           (command ".text" "j" "mc" pt (* 3 bl) 0 str)
  80.         )
  81.         (setq ss1 (ssadd e ss1))
  82.       )
  83.     )
  84.     (princ (strcat "\n\t总面积为 " (rtos _area 2 2) "。"))
  85.     (if        (/= (sslength ss1) 0)
  86.       (progn (If (And (Zerop (Getvar "cmdactive")) (Ssget "i"))
  87.                (sssetfirst nil)
  88.              )
  89.              (xdrx_setsstodb ss1 0)
  90.              (while (setq e1 (xdrx_getentdata 0))
  91.                (redraw e1 3)
  92.                (setq le_drw (cons e1 le_drw))
  93.              )
  94.              (redraw_le)
  95.              (sssetfirst nil ss1)
  96.              (setq len (rtos (sslength ss1) 2 0))
  97.              (prompt
  98.                (strcat "\n\t" "共 " len " 根非闭合多义线未标注面积。")
  99.              )
  100.       )
  101.     )
  102.   )
  103.   (defun get_layer_area        (/ e)
  104.     (setq e (xdrx_entsel "\n拾取实体: "))
  105.     (princ (strcat "\n你已选择了 " (xdrx_getentdxf 8) " 层"))
  106.     (get_area
  107.       (list '(0 . "*polyline,circle,ellipse,spline")
  108.             (cons 8 (xdrx_getentdxf 8))
  109.       )
  110.     )
  111.   )
  112.   (defun get_point_area        (/ p0 e str info tf)
  113.     (setq p0 (getpoint "\n拾取标注范围内一点: "))
  114.     (while p0
  115.       (if (setq e (bpoly p0))
  116.         (progn (setq info (xdrx_getarea e))
  117.                (entdel (entlast))
  118.                (setq str (rtos (/ (car info) 1e6) 2 2))
  119.                (command ".text" "j" "mc" p0 (* 3 bl) 0 str)
  120.         )
  121.         (progn (xdrx_drawing_viewsave)
  122.                (command ".zoom" ".3x")
  123.                (setq tf T)
  124.                (alert "无法找到范围, 重新选择!")
  125.         )
  126.       )
  127.       (setq p0 (getpoint "\n拾取标注范围内一点: "))
  128.     )
  129.     (if        tf
  130.       (xdrx_drawing_viewres)
  131.     )
  132.   )
  133.   (xdrx_begin "tmp_area" "1")
  134.   (xdrx_sysvar_push "cmdecho")
  135.   (setvar "cmdecho" 0)
  136.   (xdrx_ucson)
  137.   (initget "1 2 3")
  138.   (setq kw (getkword "\n[1 拾取点/2 按图层/3 选择范围]<3>: "))
  139.   (cond        ((eq kw "1") (get_point_area))
  140.         ((eq kw "2") (get_layer_area))
  141.         (T (get_area '((0 . "*polyline,circle,ellipse,spline"))))
  142.   )
  143.   (xdrx_ucsoff)
  144.   (xdrx_end)
  145.   (xdrx_sysvar_pop)
  146.   (princ)
  147. )

  148. (defun c:xdtb_ptarea (/ pt pts area e)
  149.   (while (setq pt (getpoint "\nPoint: "))
  150.     (if        (= (type pt) 'LIST)
  151.       (setq pts (cons pt pts))
  152.     )
  153.   )
  154.   (if pts
  155.     (progn
  156.       (xdrx_begin)
  157.       (xdrx_sysvar_push "osmode" "dimzin")
  158.       (setvar "dimzin" 0)
  159.       (setq area (abs (apply 'xdrx_parea pts)))
  160.       (setq e (xdrx_entsel "\n拾取标注文字: " '((0 . "text"))))
  161.       (xdrx_setenttodb (car e))
  162.       (xdrx_setxdata "area" (rtos area 2 1))
  163.       (princ (strcat "\nArea = " (rtos area 2 1)))
  164.       (xdrx_sysvar_pop)
  165.       (xdrx_end)
  166.     )
  167.   )
  168.   (princ)
  169. )
  170. (defun c:xdtb_tjarea (/ e ss lay str area pt)
  171.   (setq e (xdrx_entsel "\n拾取典型文字: " '((-3 ("AREA")))))
  172.   (if e
  173.     (progn
  174.       (xdrx_begin)
  175.       (xdrx_sysvar_push "osmode")
  176.       (setvar "osmode" 0)
  177.       (xdrx_setenttodb (car e))
  178.       (setq lay (xdrx_getentdxf 8))
  179.       (princ "\n拾取统计范围(回车全选)...")
  180.       (if (not (setq ss (ssget (list (cons 8 lay) '(-3 ("area"))))))
  181.         (setq ss
  182.                (ssget "x" (list (cons 8 lay) '(-3 ("area"))))
  183.         )
  184.       )
  185.       (if ss
  186.         (progn
  187.           (setq pt (getpoint "\n输出点: "))
  188.           (xdrx_setsstodb ss 0)
  189.           (while (setq e1 (xdrx_getentdata 0))
  190.             (setq str  (xdrx_getentdxf 1)
  191.                   area (car (xdrx_getxdata e1 "area"))
  192.             )
  193.             (vl-cmdf ".text" pt 1.6 "0" (strcat str "    " area))
  194.             (setq pt (polar pt (- _pi2) 6.))
  195.           )
  196.         )
  197.       )
  198.       (xdrx_sysvar_pop)
  199.       (xdrx_end)
  200.       (princ)
  201.     )
  202.   )
  203. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 17:09 , Processed in 0.360652 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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