找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3817|回复: 40

[每日一码] 封闭区域面积统计工具:面积计算器

[复制链接]
发表于 2004-4-27 23:20:57 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 yularna 于 2014-12-31 14:25 编辑

可以通过点取物体或数字文本,对物体的面积,文本的内容等数据进行
加减运算,支持点取/选取物体,可直接将结果写入图形内。

完全开放源代码。请自行修改源代码中DCL文件定位的定义。

[pcode=lisp,true]
(setvar "CMDECHO" 0)
(vl-load-com)
;;;==========================测量封闭区域面积.lsp=======================================*
;;;功能:测量封闭区域的面积(可分别设置XY比例)                     *
;;;日期:zml84 于 2009-06-07                                        *
(defun C:TT (/ X Y SIZE SS AREA STR TMP)
    ;; 0 初始化
    (or *TEST_TMP*
(setq *TEST_TMP* '(1000 100 2.5))
    )
    (setq X    (nth 0 *TEST_TMP*)
   Y    (nth 1 *TEST_TMP*)
   SIZE (nth 2 *TEST_TMP*)
    )
    ;; 1
    (while
(progn
     (princ
  (strcat
      "\n当前设置:X比例="
      (rtos X)
      ",X比例="
      (rtos Y)
      ",字高="
      (rtos SIZE)
  )
     )
     (initget "X Y Size")
     (princ
  "\n点取要测量面积的封闭对象,或 [X比例(X)/Y比例(Y)/字高(S)]: "
     )
     (setq SS (entsel ""))
)
    (cond ((= SS "X")
    (if (and (setq TMP (getreal "\n设置X向比例: "))
      (> TMP 0)
        )
        (setq X TMP)
    )
   )
   ((= SS "Y")
    (if (and (setq TMP (getreal "\n设置Y向比例: "))
      (> TMP 0)
        )
        (setq Y TMP)
    )
   )
   ((= SS "Size")
    (if (and (setq TMP (getreal "\n设置字体高度: "))
      (> TMP 0)
        )
        (setq SIZE TMP)
    )
   )
   ((and (setq
      AREA (vla-get-area
        (vlax-ename->vla-object (car SS))
    )
         )
         (setq AREA (/ AREA 1.0 X Y)
        STR  (rtos AREA 2 3)
         )
         (princ (strcat "\n**面积 = " STR))
         (setq PT (getpoint "\n文字的位置: "))
    )
    (command "_.TEXT" "non" PT SIZE 0 STR)
   )
    )
    )
    ;; 2
    (setq *TEST_TMP* (list X Y SIZE))
    (princ)
)



;;;=================================================================*
;;;功能:点取内部一点,测量封闭区域的面积(可分别设置XY比例)       *
;;;日期:zml84 于 2009-06-07                                        *
(defun C:TT2 (/ X Y SIZE PT EN AREA STR TMP)
    ;; 0 初始化
    (or *TEST_TMP*
(setq *TEST_TMP* '(1000 100 2.5))
    )
    (setq X    (nth 0 *TEST_TMP*)
   Y    (nth 1 *TEST_TMP*)
   SIZE (nth 2 *TEST_TMP*)
    )
    ;; 1
    (while
(progn
     (princ
  (strcat
      "\n当前设置:X比例="
      (rtos X)
      ",X比例="
      (rtos Y)
      ",字高="
      (rtos SIZE)
  )
     )
     (initget "X Y Size")
     (princ
  "\n点取要测量的位置,或 [X比例(X)/Y比例(Y)/字高(S)]: "
     )
     (setq PT (getpoint ""))
)
    (cond ((= PT "X")
    (if (and (setq TMP (getreal "\n设置X向比例: "))
      (> TMP 0)
        )
        (setq X TMP)
    )
   )
   ((= PT "Y")
    (if (and (setq TMP (getreal "\n设置Y向比例: "))
      (> TMP 0)
        )
        (setq Y TMP)
    )
   )
   ((= PT "Size")
    (if (and (setq TMP (getreal "\n设置字体高度: "))
      (> TMP 0)
        )
        (setq SIZE TMP)
    )
   )
   ((and
        (setq EN (bpoly PT))
        (setq
     AREA (vla-get-area
       (vlax-ename->vla-object EN)
          )
        )
        ;;(progn (command "REGEN") (redraw EN 3) t)
        (entdel EN)
        (setq AREA (/ AREA 1.0 X Y)
       STR  (rtos AREA 2 3)
        )
        (princ (strcat "\n**面积 = " STR))
    )
    (command "_.TEXT" "non" PT SIZE 0 STR)
   )
    )
    )
    ;; 2
    (setq *TEST_TMP* (list X Y SIZE))
    (princ)
)
[/pcode]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2004-4-27 23:21:45 | 显示全部楼层
Dialog interface
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-2 17:02:11 | 显示全部楼层
请问楼主,为什么我装后不能运行,我为所有下载文件建立一个文件夹,并添加入ACAD文件目录,输入“xarea”命令时命令行出现如图提示。还请楼主指导指导!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2004-5-3 11:55:24 | 显示全部楼层
还是不行,要不,我把下载的几个文件上传上去,您帮忙看看是不是还缺什么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-4 11:28:50 | 显示全部楼层
我在2002&2004试过了,你下载的文件没有问题。
只要加载AreaCalculator.VLX就可以了,加载之后运行XAREA
其他的文件都不用再加载
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-4 13:32:59 | 显示全部楼层
最初由 mmmm 发布
[B]我在2002&2004试过了,你下载的文件没有问题。
只要加载AreaCalculator.VLX就可以了,加载之后运行XAREA
其他的文件都不用再加载 [/B]

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

使用道具 举报

 楼主| 发表于 2004-5-4 13:42:05 | 显示全部楼层
因为有源代码,其他是用来给程序员提供研究的。
AreaCalculator.VLX提供用于简单的最终应用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-10 22:34:15 | 显示全部楼层
mmmm,怎么用啊。
我都不知道怎么加载。。

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 15:28 , Processed in 0.211004 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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