明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3210|回复: 7

申请和与均值程序以及面积查询程序

[复制链接]
发表于 2007-8-17 17:34:00 | 显示全部楼层 |阅读模式

申请和与均值程序以及面积查询程序,说明如下:

    和与均值程序

    有一系列文字(数字)对象(可能成千上万),字高有两种规格,大一点的字高为4(整数),小一点的字高就为3(小数),也可能是1,0.75,2,1.5……分别对应出现。例如大字高为2的时候小字高即为1.5。

    要求:指定某区域内的上述文字对象(例如用cp命令选择)计算数字的和以及均值。计算过程描述如下:大字高的对象(字高为1、2、4……)直接累加,小字高对象乘0.1再累加,大字高和小字高累加结果再相加即为和。和除以大字高对象个(数据个数)数即得到均值。结果在命令栏给出。

例如:
命令: _SUM
默认小数高度 1.50。默认整数高度 2.00。
选择对象: cp
第一圈围点:..
找到符合要求的 45 个数据,总和为 172.000000, 平均值为 3.822222

    查询面积程序

    AutoCAD自身有个填充命令,填充完成后查看特性可以得到面积,或者围绕某个空间画多段线,之后查询多段线特性也可以得到面积。我想要一个命令,只要在空间内部点一下鼠标(最好这时将所选空间的边界突出显示一下),再确认一下就可以得到面积。如果连续点多个空间的话可以累计,点重复了提示重复。

 楼主| 发表于 2007-8-23 10:41:00 | 显示全部楼层
那个好心人帮忙做一下啊,可以付费的……联系我……
发表于 2007-8-24 00:18:00 | 显示全部楼层

可以做到.详细请与我联系(QQ 279554746)

欢迎访问我的空间  http://arminghz07.ik8.com/ 

发表于 2007-8-24 17:08:00 | 显示全部楼层
本帖最后由 作者 于 2007-8-24 17:08:49 编辑

  1. ;;和与均值 V1.0 by sailorcwx @2007.8.24
  2. (defun c:sum()
  3.   (if (not YH_h1) (setq YH_h1 1.5))
  4.   (if (not YH_h2) (setq YH_h2 2.0))
  5.   (initget "Y N")
  6.   (setq YH_kw (getkword (strcat "\n小数高度 " (rtos YH_h1 2 2)  "  整数高度 " (rtos YH_h2 2 2) "\n是否修改字高<N>")))
  7.   (if (= YH_kw "Y")
  8.     (progn
  9.       (setq YH_h11 (getreal (strcat "输入小数高度<" (rtos YH_h1) ">"))
  10.      YH_h21 (getreal (strcat "输入整数高度<" (rtos YH_h2) ">"))
  11.      )
  12.       (if (and YH_h11 (> YH_h11 0)) (setq YH_h1 YH_h11))
  13.       (if (and YH_h21 (> YH_h21 0)) (setq YH_h2 YH_h21))
  14.       )
  15.     )
  16.   (setq YH_ss (ssget (list '(0 . "TEXT") '(-4 . "<OR") (cons 40 YH_h1)(cons 40 YH_h2) '(-4 . "OR>"))))
  17.   (if YH_ss
  18.     (progn
  19.       (setq YH_sum 0
  20.      YH_n1 0
  21.      YH_n2 0
  22.      YH_index 0
  23.      )
  24.       (repeat (sslength YH_ss)
  25. (setq YH_data (entget (ssname YH_ss YH_index )))
  26. (if (setq YH_c (distof (cdr (assoc 1 YH_data))))
  27.    (progn
  28.      (setq YH_sum (+ YH_sum YH_c))
  29.      (if (= (cdr (assoc 40 YH_data)) YH_h1) (setq YH_n1 (1+ YH_n1))(setq YH_n2 (1+ YH_n2)))
  30.      )
  31.    )
  32. (setq YH_index (1+ YH_index))
  33. )
  34.       (princ (strcat "\n找到符合要求的" (itoa (+ YH_n1 YH_n2)) "个数据,总和为" (rtos YH_sum 2) " 平均值为" (rtos (/ YH_sum YH_n2))))
  35.       )
  36.     )
  37.   (princ)
  38.   )
发表于 2007-8-25 01:39:00 | 显示全部楼层
本帖最后由 作者 于 2007-8-25 3:14:19 编辑

  1. ;;查询闭合空间面积V1.0 by sailorcwx @2007.8.24
  2. (defun c:ga(/ YH_AREA YH_ENT YH_PT)
  3. (setvar "CMDECHO" 0)
  4.   (vl-load-com)
  5.   (vl-cmdf "-bhatch" "p" "solid")
  6.   (while (setq YH_pt (getpoint "\n点选封闭空间,右键结束"))
  7.     (vl-cmdf YH_pt)
  8.     )
  9.   (vl-cmdf "")
  10.   (setq YH_ent (entlast)
  11. YH_area (vla-get-area (vlax-ename->vla-object YH_ent))
  12. )
  13.   (entdel YH_ent)
  14.   (princ (strcat "所选区域面积为" (rtos YH_area)))
  15.   (princ)
  16.   )
 楼主| 发表于 2007-9-4 11:24:00 | 显示全部楼层

非常感谢,给我你的QQ,我给你充些Q币作为感谢吧。187257528

发表于 2007-9-6 16:38:00 | 显示全部楼层

程序应该这样吧!

private sub totalnumber1()

      dim pptext as acadtext

      dim numcount as double    'total count1

      dim count1 as double

   dim ppsetpp1 as acadselectionsets

     '添加选择集

   if not isnull(thisdrawing.selectionsets.item("pptext")) then

      set ppsetpp1=thisdrawing.selectionsets.item("pptext")

      ppsetpp1.delete

     end if  

dim pp1data(0 to 0) as integer

dim pp2filter(0 to 0) as variant

ppsetpp1.selectonscreen pp1data,pp2filter    '选择文字对象

 dim pppmmset() as acadtext

   redim pppmmset(Ubound(ppsetpp1.count)-1)

  dim jj as double

dim min11() as variant,max11() as variant

dim pptext111 as acadtext

dim kk as double

dim ppheight as double

ppheight=0

 for jj=0 to Ubound(ppsetpp1.count)-1

  

   set pptext111=ppsetpp1.item(jj)

  redim min11(jj)

  redim max11(jj)

   pptext111.getboundingbox min11(jj),max11(jj)

  if ppheight=int(abs((max11(jj)-min11(jj))) then

  '高的字体

  count1=count1+ppheight

              

  end if

'------****矮字体

.........同理

ppheight=int(abs((max11(jj)-min11(jj)))

   

 next

end sub

 楼主| 发表于 2007-9-17 11:05:00 | 显示全部楼层

最初提供的那个均值程序是有点疏漏的,小字高的数没有乘0.1,呵呵。

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

本版积分规则

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

GMT+8, 2025-5-25 20:14 , Processed in 0.192746 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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