明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 香田里浪人

闭合多义线面积批量标注

  [复制链接]
发表于 2013-9-17 12:47:38 | 显示全部楼层
lz发的插件不能使用,请核对再上传,谢谢,我用的12cad
 楼主| 发表于 2013-9-17 13:45:05 | 显示全部楼层
5cllovely 发表于 2013-9-17 12:47
lz发的插件不能使用,请核对再上传,谢谢,我用的12cad

看14楼,试一下,如何?
发表于 2013-9-17 18:54:24 | 显示全部楼层
删除“ (mkla "面积注释" 1);;;此句可以显示面积标注颜色,1红色2黄色3绿色”即可使用,因该句mkla未定义,所以删除后即可使用,人家能发出来已很不错了,别说怪罪别人的话。
发表于 2013-9-18 10:03:48 | 显示全部楼层
一上來就有好東東收藏了
发表于 2013-9-18 16:50:52 | 显示全部楼层
香田里浪人 发表于 2013-9-17 13:45
看14楼,试一下,如何?

在08,12cad都测试了,不能使用,加载后运行,就提示未知命令,是不是lz还定义了其他外部函数
 楼主| 发表于 2013-9-18 19:51:43 | 显示全部楼层
5cllovely 发表于 2013-9-18 16:50
在08,12cad都测试了,不能使用,加载后运行,就提示未知命令,是不是lz还定义了其他外部函数

我只装04,在04是可以用,其他版本我没有试,不知道。
发表于 2013-12-31 15:57:40 | 显示全部楼层
经测试,第一个程序如果有弧形多段线,面积标注错误。
发表于 2013-12-31 16:01:33 | 显示全部楼层
这个鸟程序可以框选批量标注面积,字体打下随面积改变的。但不支持圆和非闭合多段线
  1. (defun c:mj ( / ee h i slst ss vlalst x xy)
  2. (setq ss (ssget '((0 . "LWPOLYLINE"))))
  3. (setq slst (ss-en ss))
  4. (setq slst
  5.    (vl-remove-if
  6.      'not
  7.      (mapcar
  8.        '(lambda (x)
  9.     (if
  10.       (= (vlax-curve-isClosed (vlax-ename->vla-object x)) T) ;;判断为闭合的图元名组表
  11.        x
  12.     )
  13.         )
  14.        slst
  15.      )
  16.    )
  17.   )
  18. (setq vlalst (mapcar 'vla-get-Area (mapcar 'vlax-ename->vla-object slst)))
  19.   (setq i 0)
  20.   (repeat (length slst)
  21.     (bwh (nth i slst))
  22.     (setq ee (emake (nth i vlalst) xy h))
  23. ;;;    (entmod ee)
  24.     (setq i (1+ i))
  25.   )
  26.   (princ)
  27. )


  28. ;选择集变图元名表
  29. (defun ss-en (ss / a en lst)
  30.     (setq a -1)
  31.     (while (setq en (ssname ss (setq a (1+ a))
  32.             )
  33.         )
  34.         (setq lst (cons en lst))
  35.     )
  36.     lst
  37. )

  38. ;;包围盒中点坐标(获取字体高度,文字插入点坐标)
  39. (defun bwh (e / ll ur p2 p4)
  40.   (vla-getboundingbox (vlax-ename->vla-object e) 'll 'ur)
  41.   (setq  ll (mapcar 'vlax-safearray->list (list ll ur))
  42.   )
  43.   (setq  h
  44.    (* (sqrt
  45.         (apply '+
  46.          (list (expt (apply '- (list (caar ll) (caadr ll))) 2)
  47.          (expt (apply '- (list (cadar ll) (cadadr ll))) 2)
  48.          )
  49.         )
  50.       )
  51.       0.04
  52.    )
  53.   )
  54.   (setq x (* (apply '+ (list (caar ll) (caadr ll))) 0.5))
  55.   (setq y (* (apply '+ (list (cadar ll) (cadadr ll))) 0.5))
  56.   (setq xy (list x y))
  57. )

  58. ;;;建立文本函数

  59. (defun emake (mj xy h)
  60.   (command "-text" "j" "mc" xy h 0 (rtos mj 2 3)))
发表于 2013-12-31 19:41:39 | 显示全部楼层
这个程序需加改进,如开口为多大,程序如何处理,如何生成一一对应的表格在CAD中。并将数据填在表格中。
发表于 2016-7-22 17:25:30 | 显示全部楼层
能否批量只标记面积且批量导到excel中
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 18:00 , Processed in 0.181421 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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