newer 发表于 2017-8-6 10:09:22

批量标注多段线各段长度(支持弧线)

本帖最后由 newer 于 2018-11-7 00:52 编辑

有朋友求助这个,http://bbs.xdcad.net/thread-711444-1-1.html


(defun c:XDTB_PLSegLen (/ _process val)
(defun _process (e / segs inx g v #angle #length #midpoint p1)
    (setq segs (xdrx_polyline_numverts e))
    (setq inx 0)
    (repeat segs
      (if (setq g (xdrx_polyline_getlinesegat e inx t))
      (progn
          (xdge::getpropertyvalue g "length" "midpoint" "angle")
      )
      (progn
          (setq g (xdrx_polyline_getarcsegat e inx t))
          (xdge::getpropertyvalue g "length" "midpoint")
          (setq v (xdrx_curve_getfirstderiv e #midpoint)
                #angle (xdrx_vector_angle v))
      )
      )
      (setq #angle (xd::geom:angleformat #angle)
            p1         (trans (polar #midpoint
                                 (+ #angle (/ pi 2.0))
                                 (/ #txt_height 2.0))
                                 e
                                 0
                        )
                   )
      (xdrx_text_make
      p1
      (rtos #length 2 #txt_bit)
      (getvar "textstyle")
      #txt_height
      #angle
      )
      (xd::text:setalignment (entlast) p1 "BC")
      (xd::text:adjust (entlast))
      (setq inx (1+ inx))
    )
    (xdge::free g)
)
(if (not #txt_height)
    (setq #txt_height 3.5)
)
(if (not #txt_bit)
    (setq #txt_bit 1)
)
(if (setq val (getint (xdrx_prompt "\n保留位数<" #txt_bit ">:" t)))
    (setq #txt_bit val)
)
(if (setq val (getreal (xdrx_prompt "\n字高<" #txt_height ">:" t)))
    (setq #txt_height val)
)
(xdrx_begin)
(xdrx_sysvar_push '("dimzin" 0))
(if (and (xdrx_initssget "\n选择多段线<退出>:")
         (setq ss (xdrx_ssget '((0 . "*POLYLINE"))))
      )
    (progn
      (xd::text:init 1)
      (mapcar '(lambda (x) (_process x)) (xdrx_pickset->ents ss))
    )
)
(xdrx_sysvar_pop)
(xdrx_end)
(princ)
)


yangjian001 发表于 2017-8-7 08:04:12

非常感谢楼主无私奉献

pym528 发表于 2017-8-7 10:53:26

谢谢楼主分享。{:1_1:}

Michael001 发表于 2017-8-17 16:46:08

厉害,标注钢筋的时候很方便!!!!!

lijunfa12345 发表于 2017-8-20 20:45:36

{:1_16:}{:1_8:}{:1_4:}{:1_24:}{:1_23:}

lmchgs 发表于 2017-8-21 15:22:34

程序命令是什么啊

zw6199225 发表于 2017-8-30 13:51:44

程序命令是什么啊

chen2802 发表于 2017-8-31 10:39:38

相改成这样,怎么改

newer 发表于 2017-8-31 10:48:07

chen2802 发表于 2017-8-31 10:39


你是说封闭的最后那一段也标注? 工具箱里面的命令已经是这样了,安装下工具箱吧。


chen2802 发表于 2017-8-31 10:59:22

newer 发表于 2017-8-31 10:48


不是,我想叫数字都标注在图形的外边

abenmao168 发表于 2017-9-1 08:45:06

支持弧线,这个功能不错

c999c99c9 发表于 2017-9-23 21:09:06

谢谢楼主分享

sicky111 发表于 2017-9-24 00:01:56

这个厉害了、

君是我的泪 发表于 2017-11-16 12:00:24

no function definition: XDRX_PROMPT,CAD2006可以吗?

864643236 发表于 2017-11-16 23:07:17

呵呵哈哈,呵呵呵
页: [1] 2 3
查看完整版本: 批量标注多段线各段长度(支持弧线)