找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 975|回复: 10

[求助] 多段线累积距离标注求助

[复制链接]

已领礼包: 143个

财富等级: 日进斗金

发表于 2017-3-10 10:32:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 yyuanliangg 于 2017-3-10 12:08 编辑

最近遇到一个麻烦的事情,需要在无数多段线上标注累积距离。每段多段线都需要从多段线起点开始累积标注到每个节点的距离。标注出的累积距离需要上下标注方式,上面是节点号下面是起点至该节点的累积距离数字。麻烦论坛的老师给抽空写个批量标注的小程序。非常感谢。1、需要标注多段线至每个节点的距离。
2、程序需要批量执行。
谢谢帮忙。

Drawing1.rar

9.33 KB, 下载次数: 18, 下载积分: D豆 -1 , 活跃度 1

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-3-10 11:21:37 | 显示全部楼层
本帖最后由 newer 于 2017-3-10 11:23 编辑

收费求帮助?
把你做的图贴上来,一个图顶100句话。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 143个

财富等级: 日进斗金

 楼主| 发表于 2017-3-10 12:05:35 | 显示全部楼层

对不起,刚才搞错了,我不是收费求帮助,而是付费给帮助的老师。请原谅。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-3-10 12:50:38 | 显示全部楼层

你做的图呢? 怎么个标注法,用图说明。截图和传DWG压缩包。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-3-10 15:16:44 | 显示全部楼层

多段线编号(距离).gif

加载XDRX API , 程序可以设置 文字高度,编号前缀,引线长度,水平基线长度,批量标注。


  1. (defun c:tt ()
  2.   (defun _callback (key)
  3.     (cond
  4.       ((= key "D")
  5.        (if (setq
  6.              len (getreal (xdrx_prompt "\n引线长度<" #dog-len ">:" t))
  7.            )
  8.          (setq #dog-len len)
  9.        )
  10.       )
  11.       ((= key "S")
  12.        (if (setq len
  13.                   (getreal (xdrx_prompt "\n基线水平长度<" #dog-len1 ">:" t)
  14.                   )
  15.            )
  16.          (setq #dog-len1 len)
  17.        )
  18.       )
  19.       ((= key "H")
  20.        (if (setq len
  21.                   (getreal (xdrx_prompt "\n文字高度<" #dog-txtheight ">:" t)
  22.                   )
  23.            )
  24.          (setq #dog-txtheight len)
  25.        )
  26.       )
  27.       ((= key "I")
  28.        (if (/= (setq len (getstring
  29.                            (xdrx_prompt "\n编号前缀<" #dog-prefix ">:" t)
  30.                          )
  31.                )
  32.                ""
  33.            )
  34.          (setq #dog-prefix len)
  35.        )
  36.       )
  37.     )
  38.     (_prompt)
  39.   )
  40.   (defun _prompt ()
  41.     (xdrx_prompt
  42.       "\n当前设置:编号前缀("                      #dog-prefix
  43.       ") 字高("                  #dog-txtheight      ") / 引线长度("
  44.       #dog-len                  ") / 水平段长度("   #dog-len1
  45.       ")"
  46.      )
  47.   )
  48.   (defun _makeMleader (e p str)
  49.     (if        (not (setq blk (xdrx_object_get "block" "_dotblank")))
  50.       (setq blk (xdrx_document_makeablock "_dotblank"))
  51.     )
  52.     (setq dir (xdrx_curve_getfirstderiv e p)
  53.           ang (xdrx_vector_angle dir)
  54.           ang (xd::ucs:angle)
  55.           p1  (polar p (+ ang (/ pi 4.0)) #dog-len)
  56.     )
  57.     (setq ml (xdrx_mleader_make
  58.                p
  59.                p1
  60.                str
  61.                (* #dog-txtheight
  62.                   (xd::var:getratio)
  63.                )
  64.              )
  65.     )
  66.     (xdrx_mtext_make
  67.       '(0 0 0)
  68.       str
  69.       100.0
  70.       (* #dog-txtheight
  71.          (xd::var:getratio)
  72.       )
  73.     )
  74.     (setq scl (xd::var:getratio))
  75.     (xdrx_setpropertyvalue
  76.       ml
  77.       "mtext"
  78.       (entlast)
  79.       "dogleglength"
  80.       (* #dog-len1 scl)
  81.       "scale"
  82.       (xd::var:getscaleratio)
  83.       "landinggap"
  84.       (* (/ #dog-txtheight 2.0) scl)
  85.       "arrowsize"
  86.       (* (/ #dog-txtheight 1.0) scl)
  87.       "ArrowSymbolId"
  88.       blk
  89.       "textattachmenttype"
  90.       6
  91.     )
  92.     (xdrx_entity_delete (entlast))
  93.   )
  94.   (defun _dim (e)
  95.     (setq vertices (xdrx_getpropertyvalue e "vertices"))
  96.     (setq i -1)
  97.     (xd::text:init 1)
  98.     (xd::dim:init)
  99.     (repeat (length vertices)
  100.       (setq pnt           (nth (setq i (1+ i)) vertices)
  101.             dis           (xdrx_curve_getdistatpoint e pnt)
  102.             prefix (xdrx_string_format "%s%d" #dog-prefix (1+ i))
  103.             dis           (xdrx_string_format "%.1f" dis)
  104.             str           (strcat "\\pxqc;" prefix "\\P\\pq*;" dis)
  105.       )
  106.       (_makeMleader e pnt str)
  107.     )
  108.   )
  109.   (xd::doc:checkversion '> "17.0" "")
  110.   (xdrx_begin)
  111.   (xdrx_initssget
  112.     "\n选取要标注的多段线[编号前缀(I)/字高(H)/引线长度(D)/水平长度(S)]<退出>:"
  113.     "H I D S"
  114.     ""
  115.     "_callback"
  116.   )
  117.   (xdrx_initget "H I D S")
  118.   (if (not #dog-len)
  119.     (setq #dog-len 10.0)
  120.   )
  121.   (if (not #dog-len1)
  122.     (setq #dog-len1 2.0)
  123.   )
  124.   (if (not #dog-prefix)
  125.     (setq #dog-prefix "A")
  126.   )
  127.   (if (not #dog-txtheight)
  128.     (setq #dog-txtheight 3.5)
  129.   )
  130.   (_prompt)
  131.   (if (setq ss (xdrx_ssget '((0 . "LWPOLYLINE"))))
  132.     (progn
  133.       (mapcar '(lambda (x) (_dim x)) (xdrx_pickset->ents ss))
  134.     )
  135.   )
  136.   (xdrx_end)
  137.   (princ)
  138. )


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 143个

财富等级: 日进斗金

 楼主| 发表于 2017-3-12 10:20:43 | 显示全部楼层
非常感谢版主的热心帮助,但我因一直使用2006版本(以前有很多程序不能兼容06以上版本)。所以没法使用此程序。但还是要感谢你能为我抽时间写这个程序。非常感谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-3-14 12:39:32 | 显示全部楼层

你可以装个2008,需要2008以上的,画完,然后在保存成低版本的图形,在用2006继续画。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3904个

财富等级: 富可敌国

发表于 2017-3-15 08:37:43 | 显示全部楼层
好的非常好的插件非常便利,但是就是不会用呀!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2020-3-3 15:28:45 | 显示全部楼层
问一下楼主,这个在点上标记的块,是事先画好的一个属性块吗,然后插入的时候改一改它的文字属性就好了,还是说,是代码生成的一个块,然后在每次插入这个块。这个箭头是用代码画的吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2020-3-8 07:45:31 | 显示全部楼层
学习了,谢谢分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 16:55 , Processed in 0.190078 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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