找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1705|回复: 11

[编程申请] 关于景观树木的标注

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-4-14 10:34:19 | 显示全部楼层 |阅读模式

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

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

×
看到过这样一个插件,可惜找不到程序,只有演示,能否编一个?谢谢!

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

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-4-14 14:13:08 | 显示全部楼层
简单写了个,字体高度什么的可以自己修改代码

录像3_转.gif

  1. (defun c:tt ()
  2.   (xdrx_begin '(("osmode" 0)))
  3.   (if (and
  4.         (setq e (xdrx_entsel "\n选取样本树<退出>:" '((0 . "insert"))))
  5.         (setq pts (XD::Doc:GetFence "\n起始点" "\n下一点<结束>" -1))
  6.         (setq e (car e)
  7.               blkna (car (xdrx_getpropertyvalue e "blocktablerecord"))
  8.         )
  9.         (setq ss (ssget "f" pts (list '(0 . "insert") (cons 2 blkna))))
  10.       )
  11.     (progn
  12.       (if (> (sslength ss) 1)
  13.         (progn
  14.           (setq ptj (mapcar
  15.                       '(lambda (x)
  16.                          (xdrx_getpropertyvalue x "position")
  17.                        )
  18.                       (xdrx_pickset->ents ss)
  19.                     )
  20.           )
  21.           (setq e (apply
  22.                     'xdrx_polyline_make
  23.                     pts
  24.                   )
  25.           )
  26.           (setq ptj1 (xdrx_points_sortOnCurve e ptj)
  27.                 ptj2 (mapcar
  28.                        'cadr
  29.                        ptj1
  30.                      )
  31.           )
  32.           (entdel e)
  33.           (apply
  34.             'xdrx_polyline_make
  35.             ptj2
  36.           )
  37.         )
  38.         (progn
  39.         )
  40.       )
  41.       (setq pt (getpoint (last ptj2) "\n标注位置:"))
  42.       (setq e (xdrx_mleader_make (last ptj2) pt (strcat blkna (itoa
  43.                                                                     (sslength ss)
  44.                                                               ) "株"
  45.                                                 ) 40.0
  46.               )
  47.       )
  48.       (xdrx_setpropertyvalue e "ArrowSymbolId" "_none" "DoglegLength" 20.0
  49.                              "TextAttachmentType" 5
  50.       )
  51.     )
  52.   )
  53.   (xdrx_end)
  54.   (princ)
  55. )


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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-4-14 10:50:58 | 显示全部楼层
是不是一种树中间还有可能有其*他类型的树啊?如果这样,直线拉选择就歧义了。

点评

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2016-4-14 11:00:36 | 显示全部楼层
newer 发表于 2016-4-14 10:50
是不是一种树中间还有可能有其*他类型的树啊?如果这样,直线拉选择就歧义了。

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

使用道具 举报

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-4-14 14:21:35 | 显示全部楼层
说明下,块名作为标注的文字加上数量
程序只连接样本树的插入点。过滤掉不是样本块的**图块。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-4-14 14:23:02 | 显示全部楼层
对了,安装晓东工具箱后,把代码加载到CAD里面命令TT即可。

点评

谢谢N版了,太好了,完美。试了下,发现往左边标的时候字下没线,在引线的中间了,希望能修改下就更完美了。  详情 回复 发表于 2016-4-14 15:37
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2016-4-14 15:37:30 | 显示全部楼层
newer 发表于 2016-4-14 14:23
对了,安装晓东工具箱后,把代码加载到CAD里面命令TT即可。

谢谢N版了,太好了,完美。试了下,发现往左边标的时候字下没线,在引线的中间了,希望能修改下就更完美了。

点评

楼主试试这个框选自动连线,函数是“模拟退火算法",编译文件是 For AutoCAD 2010-2012 x86 和 x64  详情 回复 发表于 2016-4-17 20:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2016-4-17 20:03:58 | 显示全部楼层
本帖最后由 csharp 于 2016-4-17 21:18 编辑
Lisphk 发表于 2016-4-14 15:37
谢谢N版了,太好了,完美。试了下,发现往左边标的时候字下没线,在引线的中间了,希望能修改下就更完美 ...

楼主试试这个框选自动连线,函数是“模拟退火算法",编译文件是 For AutoCAD 2010-2012 x86 和 x64

  1. (defun c:tt (/ ss sl e pts ptl pl _AddMleader sp ml pl)
  2.   (defun _AddMleader (p1 p2 str / ml)
  3.     (setq ml (vlax-invoke
  4.                (vla-get-modelspace
  5.                  (vla-get-activedocument (vlax-get-acad-object))
  6.                )
  7.                'AddMleader
  8.                (append p1 p2)
  9.                0
  10.              )
  11.     )
  12.     (vla-put-DoglegLength ml 0.0)
  13.     (vla-put-textleftattachmenttype ml 3)
  14.     (vla-put-textrightattachmenttype ml 3)
  15.     (vla-put-textstring ml str)
  16.     (vla-put-LandingGap ml 0.0)
  17.     (vla-put-textrotation ml 0.0)
  18.     (vla-put-TextLineSpacingFactor ml 0.8)
  19.     (vla-put-TextLineSpacingStyle ml 1)
  20.     (vla-put-TextJustify ml 2)
  21.     (vla-put-DogLegged ml -1)
  22.     (vla-put-ContentType ml 2)
  23.     ml
  24.   )
  25.   (if (setq ss (ssget '((0 . "insert"))))
  26.     (progn
  27.       (setq sl (sslength ss))
  28.       (while (setq e (ssname ss (setq sl (1- sl))))
  29.         (setq pts (cons (cdr (assoc 10 (entget e))) pts))
  30.       )
  31.       (setq ptl        (tsaa pts)
  32.             sp        (car ptl)
  33.             pl        (vlax-invoke (vla-get-modelspace
  34.                                (vla-get-activedocument (vlax-get-acad-object))
  35.                              )
  36.                              'AddLightWeightPolyline
  37.                              (apply 'append ptl)
  38.                 )
  39.             sp        (list (car sp) (cadr sp) 0.0)
  40.             ml        (_AddMleader sp
  41.                              (polar sp (* pi 0.25) 100.0);_转点位置
  42.                              (cdr (assoc 2 (entget (ssname ss 0))))
  43.                 )
  44.       )
  45.       (vla-put-ArrowheadBlock ml "_NONE");_取消箭头
  46.       (vla-put-textheight ml 100.0);_文字高度
  47.     )
  48.   )
  49.   (princ)
  50. )
tsaa.gif

Release.rar

35.62 KB, 下载次数: 9

点评

UCS下,MLEADER的文字是平行X轴吗?在不同的图块在一起的时候,框选并不高效,另外连线的顺序是按照什么规则?  详情 回复 发表于 2016-4-17 21:13

评分

参与人数 1D豆 +5 贡献 +1 收起 理由
newer + 5 + 1 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-4-17 21:13:35 | 显示全部楼层
csharp 发表于 2016-4-17 20:03
楼主试试这个框选自动连线,函数是“模拟退火算法",编译文件是 For AutoCAD 2010-2012 x86 和 x64

UCS下,MLEADER的文字是平行X轴吗?在不同的图块在一起的时候,框选并不高效,另外连线的顺序是按照什么规则?

点评

代码已更新,文字平行 UCS X轴 模拟退火算法的一个介绍 http://www.cnblogs.com/heaad/archive/2010/12/20/1911614.html  详情 回复 发表于 2016-4-17 21:44
可以加上点选样本,然后再框选过滤 这个算法每次运算结果可能不一样,非最优解  详情 回复 发表于 2016-4-17 21:20
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2016-4-17 21:20:02 | 显示全部楼层
newer 发表于 2016-4-17 21:13
UCS下,MLEADER的文字是平行X轴吗?在不同的图块在一起的时候,框选并不高效,另外连线的顺序是按照什么 ...

可以加上点选样本,然后再框选过滤

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

使用道具 举报

已领礼包: 264个

财富等级: 日进斗金

发表于 2016-4-17 21:44:24 来自手机 | 显示全部楼层
newer 发表于 2016-4-17 21:13
UCS下,MLEADER的文字是平行X轴吗?在不同的图块在一起的时候,框选并不高效,另外连线的顺序是按照什么 ...

代码已更新,文字平行 UCS X轴

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 18:53 , Processed in 0.470910 second(s), 62 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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