明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: highflybir

[【高飞鸟】] 【飞鸟集】数字文本的四则运算和统计(更新到2020.11.09)

  [复制链接]
发表于 2020-11-11 05:32:12 来自手机 | 显示全部楼层
能不能进行分类求和呢。
发表于 2020-12-1 00:20:14 来自手机 | 显示全部楼层
谢谢高飞鸟大神
发表于 2021-9-5 22:50:43 | 显示全部楼层
好用,这一版本比以前的好用多了
发表于 2021-9-14 15:16:27 | 显示全部楼层
能不能加入 “绿化面积:12m”这类文本的统计啊??
发表于 2021-9-15 20:47:12 | 显示全部楼层
太好了,能加减乘除,谢谢!
发表于 2021-10-29 15:32:10 | 显示全部楼层
很好用,谢谢楼主
发表于 2021-11-3 08:43:57 | 显示全部楼层

谢谢楼上的分享
发表于 2021-12-21 14:12:25 | 显示全部楼层
今天又来感谢高飞大神的作品,特别实用
发表于 2021-12-21 14:23:27 | 显示全部楼层
有点尴尬的是我用“stat"命令,进行了统计计算,其实我只想在旁边写出一个结果就好:例:"3*5",我想的是输入命令单击它后在旁边出现一个文字15就行。不知道直接操作怎么实现,看来要利用高飞大神的函数自己稍微改造下?或是原来就带的有呢?
发表于 2021-12-21 17:33:56 | 显示全部楼层
;我计算楼梯过程中,核对踏步宽度高度是否正确,做的一个小程序,选中带符号的文字,将计算结果放置在右下角,图层为当前图层。
;感谢高飞大神

  1. (defun c:CAt (/ box Els ent i lst nls num p1 p2 p3 p4 sel strlst wcs wz_jd wz_obj wz_zg)
  2.   
  3.   (if
  4.     (or
  5.       (setq wcs (vlax-create-object "Aec32BitAppServer.AecScriptControl.1"))
  6.       (setq wcs (vlax-create-object "ScriptControl"))
  7.     )
  8.     (vlax-put-property wcs "language" "VBScript")
  9.   )
  10.   (setq i 0)
  11.   (setq sel (ssget '((0 . "text"))))
  12.   (repeat (sslength sel)
  13.     (setq ent (ssname sel i))
  14.     (command "ucs" "e" ent)
  15.     (setq wz_obj (vlax-ename->vla-object ent))
  16.     (setq wz_jd (vlax-get-property wz_obj 'Rotation)) ;取得角度
  17.     (setq wz_zg (vlax-get-property wz_obj 'Height)) ;取得字高
  18.     (setq lst (entget ent))
  19.     (setq box (textbox lst))  ;取得文字的外框坐标
  20.     (setq p1 (car box))
  21.     (setq p3 (cadr box))
  22.     (setq p2 (list (car p3) (cadr p1)));p2为文字插入坐标
  23.                 (setq p2 (trans p2 1 0))
  24.     (setq p4 (list (car p1) (cadr p3)))
  25.    
  26.     (setq num (cdr (assoc 1 lst)))
  27.     (if (wcmatch (cdr (assoc 0 lst)) "*_TEXT")
  28.       (setq num (atof num))
  29.       (progn
  30.         (foreach s '("㎡" "平方米" "米")
  31.           (while (/= num (setq num (vl-string-subst "" s num))))
  32.         )
  33.         (while (/= num (setq num (vl-string-subst "*" "×" num))))
  34.         (setq num (vl-string-translate "xX" "**" num))
  35.         ;;优先使用CAD的cal函数计算.
  36.         (if CAL               
  37.           (setq num (float (cal (strcat num "+0.0"))))    ;这个地方需要转化为浮点,不然cal函数会出错
  38.           ;;然后采用vbs计算
  39.           (if wcs
  40.             (setq num (vlax-invoke wcs 'eval num))
  41.             (setq num (CAL:Expr2Value Num))
  42.           )
  43.         )
  44.       )
  45.     )
  46.     ;;;    (setq Els (cons ent Els))
  47.     ;;;    (setq Nls (cons num Nls))
  48.     (entmake (list '(0 . "TEXT") (cons 1 (rtos num)) (cons 10 p2) (cons 40 (* 0.3 wz_zg))))
  49.     (setq i (1+ i))
  50.   )
  51.   (command "ucs" "")
  52.   ;;;  (list
  53.   ;;;    (reverse Els)
  54.   ;;;    (reverse Nls)
  55.   ;;;  )
  56.   (prin1)
  57. )

  58. (prompt "\n根据高飞大神四则运算进行修改<c:cat>")
  59. (prin1)

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

本版积分规则

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

GMT+8, 2024-12-23 18:08 , Processed in 0.148253 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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