免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 7501|回复: 13
收起左侧

[资料] 本程序为求多个封闭物体的面积之和(圆、多边形)..

    [复制链接]

7

主题

2016

铜板

30

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
543
QQ
发表于 2011-7-19 23:20 | 显示全部楼层 |阅读模式
本帖最后由 zhb236623 于 2011-9-28 21:44 编辑
  1. (defun c:mj ()    ;;;mjtd.com
  2.   (VL-LOAD-COM)
  3.   (princ "\n ****本程序为求多个封闭物体的面积之和****")
  4.   (princ "\n 请选择封闭物体(圆、多边形)....")
  5.   (setq ss (ssget '((0 . "CIRCLE,LWPOLYLINE"))))
  6.   (setq        i   0
  7.         ES  0
  8.   )
  9.   (repeat (sslength ss)
  10.     (setq ent (ssname ss i))
  11.     (setq obj (vlax-ename->vla-object ent))
  12.     (setq s (vla-get-Area obj))
  13.     (setq es (+ es s))
  14.     (setq i (1+ i))
  15.   )
  16.   (princ (strcat "总面积为:" (rtos es)))
  17.   (princ)
  18. )
复制代码
好用的话再发一个可以统计层面积的,基于CASS使用。这个在画房子的时候要先标注房屋层数才能使用。
“居民地——   ‘一般房屋   ——  多点砖房屋   ”  最后提示输入层数  类似这样子画出来的房子才能统计房屋面积。。
  1. (defun c:cmj ()
  2.   (VL-LOAD-COM)
  3.   (princ "\n ****本程序为求多个封闭物体的面积之和****")
  4.   (princ "\n 请选择封闭物体(圆、多边形)....")

  5. ;;(ssget  '((0 . "TEXT")(8 . "JZP")))


  6.   (setq ss (ssget '((0 . "CIRCLE,LWPOLYLINE")(8 . "JMD"))))
  7.   (setq        i   0
  8.         ES  0
  9.   )
  10.   (repeat (sslength ss)
  11.     (setq ent (ssname ss i))
  12.     (setq obj (vlax-ename->vla-object ent))
  13.     (setq s (vla-get-Area obj))
  14.                
  15.                 (setq appname "south")
  16.                 (regapp (setq rname appname))
  17.                 (setq xxdata (entget ent (list rname)))
  18.     (setq south_sx1 (cdr (assoc -3 xxdata)))         ;;提取-3的后表
  19.     (setq house_cen (cdr (assoc 1040 (cdr (car south_sx1)))))    ;;获取楼房层数
  20.          (setq single_area ( * s house_cen ))
  21.                                
  22.     (setq es (+ es single_area))
  23.     (setq i (1+ i))
  24.   )
  25.   (princ (strcat "总面积(单间单层面积*层数)为:" (rtos es)))
  26.   (princ)
  27. )
复制代码
以下程序为统计每套房间面积,层数,单幢总面积的程序。最后只要把文件文件改为   aa.txt->aa.csv  直接改后缀名就可以看到结果。。。。
  1. (defun c:cmj ()
  2.   (VL-LOAD-COM)
  3.   (princ "\n ****本程序为求多个封闭物体的面积之和****")
  4.   (princ "\n 请选择封闭物体(圆、多边形)....")



  5. (setq ffn (getfiled "选取文件" "D:/temp/" "txt" 1))
  6. (setq ff (open ffn "w"))
  7. (princ "单层面积,层数,整幢面积" ff)
  8. (princ "\n" ff)
  9. (close ff)


  10. ;;(ssget  '((0 . "TEXT")(8 . "JZP")))


  11.   (setq ss (ssget '((0 . "CIRCLE,LWPOLYLINE")(8 . "JMD"))))
  12.   (setq        i   0
  13.         ES  0
  14.   )
  15.   (repeat (sslength ss)
  16.     (setq ent (ssname ss i))
  17.     (setq obj (vlax-ename->vla-object ent))
  18.     (setq s (vla-get-Area obj))
  19.                
  20.                 (setq appname "south")
  21.                 (regapp (setq rname appname))
  22.                 (setq xxdata (entget ent (list rname)))
  23.     (setq south_sx1 (cdr (assoc -3 xxdata)))         ;;提取-3的后表
  24.     (setq house_cen (cdr (assoc 1040 (cdr (car south_sx1)))))    ;;获取楼房层数
  25.          (setq single_area ( * s house_cen ))
  26.                                 
  27.     (setq es (+ es single_area))

  28.         (setq ff (open ffn "a"))
  29.         (princ s ff)
  30.         (princ "," ff)
  31.         (princ house_cen ff)
  32.         (princ "," ff)
  33.         (princ single_area ff)
  34.         (princ "\n" ff)
  35.         (close ff)
  36.     (setq i (1+ i))
  37.   )
  38.   (princ (strcat "总面积(单间单层面积*层数)为:" (rtos es)))
  39.   (princ)
  40. )
复制代码

mj.rar

418 Bytes, 下载次数: 83

cmj.rar

607 Bytes, 下载次数: 61

cmj加每套房子面积统计.rar

729 Bytes, 下载次数: 57

883

主题

8万

铜板

632

好友

超级版主

论坛使者

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

积分
28818

精华勋章宣传勋章爱心勋章优秀斑主地信元老灌水勋章荣誉会员勋章活跃勋章贡献勋章冰雪节勋章10周年纪念勋章

QQ
发表于 2011-7-20 13:54 | 显示全部楼层
楼主把代码使用说明说明一下
该会员没有填写今日想说内容.

7

主题

2016

铜板

30

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
543
QQ
 楼主| 发表于 2011-7-20 15:26 | 显示全部楼层
新建文本文件,改名为mj.lsp
复制上面代码到里面保存。
打开CASS ,在命令行输入appload  ,加载mj.lsp文件,然后在命令行输入   mj   就可以选 择封闭区域求总面积

7

主题

2016

铜板

30

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
543
QQ
 楼主| 发表于 2011-7-20 23:23 | 显示全部楼层
本帖最后由 zhb236623 于 2011-7-20 23:23 编辑

只要下载附件,在CAD 命令行输入APPLOAD   加载MJ.LSP

然后在命令行输入MJ   选择封闭区域就可以得到多个选中的封闭区域的总面积。。。

7

主题

3530

铜板

23

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
618
发表于 2011-9-23 08:39 | 显示全部楼层
求资源量的时候比较好啊
该会员没有填写今日想说内容.

0

主题

153

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
49
发表于 2011-9-27 17:49 | 显示全部楼层
房屋面积之和计算出来了,如果能保存出一个房屋面积统计就好了,也就是所计算的每个房屋面积是多少,总和是多少的一个统计

7

主题

2016

铜板

30

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
543
QQ
 楼主| 发表于 2011-9-28 21:47 | 显示全部楼层
zh143028 发表于 2011-9-27 17:49
房屋面积之和计算出来了,如果能保存出一个房屋面积统计就好了,也就是所计算的每个房屋面积是多少,总和是 ...

这个可以有,代码已更新。。。。。。。。。。。。

0

主题

1万

铜板

68

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6334

灌水勋章

发表于 2011-10-25 09:36 | 显示全部楼层
谢谢楼主。。。。。。

该会员没有填写今日想说内容.

0

主题

1万

铜板

68

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6334

灌水勋章

发表于 2011-10-25 15:57 | 显示全部楼层
谢谢楼主。。。。。。
该会员没有填写今日想说内容.

24

主题

2708

铜板

60

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
734
发表于 2011-10-28 12:39 | 显示全部楼层
LSP编程,好东西!谢谢分享!
今天貌似字体变了似得!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表