明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2926|回复: 8

求高手修改多段线自动编号标注长度程序

[复制链接]
发表于 2012-12-16 15:47:31 | 显示全部楼层 |阅读模式
在本论坛收集了一个多段线自动编号标注长度想请高手改一下
原程序对只能标在图纸上希望能有大大帮忙改一下让也可以顺便输出至Excel
在此贴出程序原文希望能有人帮忙


;;;BY X_S_S_1
(vl-load-com)
(defun c:la (/
                ss
                qz
                lst
                length_lst
                en
                pt_lst
                curve-obj
                dist
                s_lst
                n
                pt
                tl
               )
  (defun x_ssn (ss / n lst)
    (repeat (setq N (sslength ss))
      (setq LST (cons (ssname SS (setq N (1- N))) LST))
    )
  )
  (defun emk_t (layer pt1 pt2 text ang n72 n73 h /)
    (entmake (list '(0 . "text")
                   '(100 . "AcDbEntity")
                   (cons 8 layer)
                   '(100 . "AcDbText")
                   (cons 10 pt1)
                   (cons 1 text)
                   (cons 40 h)
                   '(41 . 0.75)
                   '(7 . "standard")
                   (cons 72 n72)
                   (cons 11 pt2)
                   (cons 50 ang)
                   (cons 73 n73)
             ) ;_ 结束list
    ) ;_ 结束entmake
  ) ;_ 结束defun
  (SETQ SS (SSGET '((0 . "*LINE,CIRCLE,ARC,ELLIPSE"))))
  (setq qz (getstring "\n前缀:"))
  (setq lst (x_ssn ss))
  (setq        length_lst
         (mapcar '(lambda (en)
                    (vlax-curve-getDistAtParam
                      en
                      (vlax-curve-getEndParam en)
                    )
                  )
                 lst
         )
  )
  (setq
    pt_lst (mapcar '(lambda (curve-obj dist)
                      (vlax-curve-getPointAtDist curve-obj (/ dist 2))
                    )
                   lst
                   length_lst
           )
  )
  (setq s_lst nil)
  (repeat (setq n (length length_lst))
    (setq s_lst        (cons (strcat qz
                              (itoa n)
                              "="
                              (rtos (nth (1- n) length_lst) 2 2)
                      )
                      s_lst
                )
    )
    (setq n (1- n))
  )
  (mapcar '(lambda (pt tl) (emk_t "0" pt pt tl 0 1 0 250))  ;此句可以将(emk_t "0" pt pt tl 0 1 0 250))做变量(250改文字大小)
          pt_lst
          s_lst
  )
)
 楼主| 发表于 2012-12-17 11:08:46 | 显示全部楼层
再頂一下
发表于 2012-12-17 17:05:03 | 显示全部楼层
好程序,帮忙顶一个,字体要是可以自定义大小就好了,要是字与线对齐就更好了。。
 楼主| 发表于 2012-12-18 11:36:17 | 显示全部楼层
我也在等高手完善這程序
 楼主| 发表于 2012-12-19 11:17:41 | 显示全部楼层
我再頂一直頂
发表于 2012-12-19 12:00:35 | 显示全部楼层
能自定义高度并写在图上,更好
 楼主| 发表于 2012-12-21 10:27:18 | 显示全部楼层
我再頂一直頂
发表于 2013-1-27 20:11:11 | 显示全部楼层
编程精神可嘉,使用价值不大,已经有人编程面积周长输出excel
发表于 2023-8-16 11:36:30 | 显示全部楼层
很方便的线段编码程序,希望有大神出手,协助修改。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 02:34 , Processed in 0.196862 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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