明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1168|回复: 3

多段线面积标高到TXT,自娱自乐

  [复制链接]
发表于 2018-4-25 17:03:22 | 显示全部楼层 |阅读模式
  1. (defun vxs (e / i v lst)
  2.   (setq i 0)
  3.   (while
  4.     (setq v (vlax-curve-getpointatparam e (setq i (1+ i))))
  5.      (setq lst (cons v lst))
  6.   )
  7.   (reverse lst))
  8. ;;;;;;;;;;;;;;;
  9. (defun 38zu ( e / e)
  10.   (cdr(assoc 38(entget e)))
  11.   )


  12. (defun c:tt11 ( / lst ent pts pt demj zmj ffn ff) ;标记三角网表面积

  13.   (setq lst (ssget '( (0 . "*polyline") (8 . "S-CAP")) ) )
  14. (setq i 0)
  15. (setq zmj 0.000)
  16. (setq ffn (getfiled "选取/建立数据导出文件" "" "txt" 1))
  17.   (setq ff (open ffn "w"))

  18.   
  19. (while  (< i (sslength lst))

  20. (setq ent (ssname lst i))

  21. (setq pts (vxs ent))
  22.   (setq len (length pts))
  23. (setq pt (mapcar
  24.   '(lambda(x)
  25.     (/ x len)
  26.   )
  27.   (apply
  28.     'mapcar
  29.     (cons '+ pts)
  30.   )
  31. )
  32. )

  33. (setq    AcadObject   (vlax-get-acad-object)

  34.           AcadDocument (vla-get-ActiveDocument Acadobject)

  35.           mSpace    (vla-get-ModelSpace Acaddocument)) ;初始化系统


  36.   

  37.   (setq demj (vlax-curve-getArea  (vlax-ename->vla-object ent)))
  38.   
  39.   (entmake (list (cons 0  "TEXT") (cons 1 (rtos (+ i 1) 2 0)) (cons 10 (polar pt (* 0.5 pi) 0.5)  )
  40.                (cons 40 0.3)
  41.                (cons 8 "三角网表面积")
  42.                ))
  43. (entmake (list (cons 0  "TEXT") (cons 1 (strcat "面积"(rtos demj 2 3))) (cons 10 pt)
  44.                (cons 40 0.3)
  45.                (cons 8 "三角网表面积")
  46.                ))
  47.   (entmake (list (cons 0  "TEXT") (cons 1 (strcat "深度"(rtos (38zu ent) 2 3) )) (cons 10 (polar pt (* 1.5 pi) 0.5)  )
  48.                (cons 40 0.3)
  49.                (cons 8 "三角网表面积")
  50.                ))



  51.   
  52.   (princ (strcat (rtos (+ i 1) 2 0)","(rtos demj 2 3) "," (rtos (38zu ent) 2 3) "\n"
  53.     ) ff)


  54.   
  55.   
  56.   
  57. ;(setq zmj(+ zmj demj))

  58. (setq i (+ i 1))
  59.   
  60.   
  61.   )

  62. (close ff)
  63.   (princ)

  64. )

发表于 2018-4-26 10:28:13 | 显示全部楼层
感谢分享程序!!!!!
发表于 2018-4-27 23:26:41 | 显示全部楼层
感谢分享程序!!!!!
 楼主| 发表于 2018-5-2 19:18:56 | 显示全部楼层
  1. (mapcar 'cdr (vl-remove-if-not  '(LAMBDA (A1)(equal 10 (car a1)) )  (entget (car(entsel)))) )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 05:20 , Processed in 0.179455 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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