找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3007|回复: 12

[多段线] 多段线顶点坐标列表统计(支持凸度和边长)

[复制链接]

已领礼包: 51个

财富等级: 招财进宝

发表于 2017-8-13 00:43:38 | 显示全部楼层 |阅读模式
  • 插件名称 : 多线列表
  • 作  者 : Lispboy
  • 运行环境 :XDRX API 晓东工具箱 
  • 发布时间 :2017-08-13
  • 命令名称 :XDTB_PLSegList
  • 插件介绍 :多段线顶点坐标列表统计(支持凸度和边长)
  • 备  注 : (点击图片可以放大)
(点击图片可以放大)

晓东温馨提示 1、运行环境为 晓东工具箱XDRX API 的插件,请下载最新版本的 晓东工具箱XDRX API开发环境 一键安装
2、在ACAD中如何加载插件,请看 论坛插件使用方法
3、如果您有要求需要定制插件,请到 编程申请 论坛发帖求助

插件详细内容

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

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

×
本帖最后由 newer 于 2018-12-25 15:36 编辑

可选 Z 坐标是否列出。

多段线上编号标注待完成。

[sell]
  1. (defun c:XDTB_PLSegList (/ #xd_table_res_z _lengths _format _writebulges _mergecell bulge bulges
  2.                          verts i j c val lens lst r gl g
  3.                         )
  4.   (defun _lengths ()
  5.     (setq g  (xdge::constructor e)
  6.           gl (xdge::getpropertyvalue g "getcurvelist")
  7.     )
  8.     (setq lens (mapcar '(lambda (x) (xdge::getpropertyvalue x "length"))
  9.                        gl
  10.                )
  11.     )
  12.     (xdge::free g gl)
  13.     lens
  14.   )
  15.   (defun _writebulges (tb)
  16.     (setq rows (xdrx_table_numrows tb))
  17.     (setq i 3
  18.           j 0
  19.     )
  20.     (while (< i (1- rows))
  21.       (setq bulge (_format (nth j bulges) 4))
  22.       (if (= bulge "0.0")
  23.         (setq bulge "")
  24.       )
  25.       (xdrx_setpropertyvalue
  26.         tb
  27.         "textstring"
  28.         (list (list i 4 bulge) (list i 5 (_format (nth j lens) #xd_table_txt_bits)))
  29.         "textheight"
  30.         (list (list i 4 #xd_table_txt_height)
  31.               (list i 5 #xd_table_txt_height)
  32.         )
  33.       )
  34.       (setq j (1+ j)
  35.             i (+ i 2)
  36.       )
  37.     )
  38.   )
  39.   (defun _format (str bit)
  40.     (if (equal str 0.0 1e-3)
  41.       "0.0"
  42.       (rtos str 2 bit)
  43.     )
  44.   )
  45.   (defun _mergecell (tb startCol endCol startRow)
  46.     (setq rows (xdrx_table_numrows tb))
  47.     (setq c startCol)
  48.     (while (<= startCol c endCol)
  49.       (setq r startRow)
  50.       (while (< r (1- rows))
  51.         (xdrx_table_mergecells tb r (1+ r) c c)
  52.         (setq r (+ 2 r))
  53.       )
  54.       (setq c (1+ c))
  55.     )
  56.   )
  57.   (xdrx_begin)
  58.   (xdrx_sysvar_push '("dimzin" 0))
  59.   (if (= 1 (xdrx_yesorno "\n保留Z坐标" 0))
  60.     (setq #xd_table_res_z t)
  61.   )
  62.   (if (not #xd_table_txt_height)
  63.     (setq #xd_table_txt_height 3.5)
  64.   )
  65.   (if (setq val (getreal (xdrx_prompt "\n字高<" #xd_table_txt_height ">:" t)
  66.                 )
  67.       )
  68.     (setq #xd_table_txt_height val)
  69.   )
  70.   (if (not #xd_table_txt_bits)
  71.     (setq #xd_table_txt_bits 1)
  72.   )
  73.   (if (setq val (getint
  74.                   (xdrx_prompt "\n边长小数位<" #xd_table_txt_bits ">:" t)
  75.                 )
  76.       )
  77.     (setq #xd_table_txt_bits val)
  78.   )
  79.   (if (setq e (car (xdrx_entsel
  80.                      "\n拾取一个多段线<退出>:"
  81.                      '((0 . "LWPOLYLINE"))
  82.                    )
  83.               )
  84.       )
  85.     (progn (setq verts  (xdrx_getpropertyvalue e "vertices" "bulges")
  86.                  lens   (_lengths)
  87.                  bulges (cadr verts)
  88.                  verts  (car verts)
  89.            )
  90.            (setq lst (mapcar '(lambda (x)
  91.                                 (list (_format (car x) 4)
  92.                                       (_format (cadr x) 4)
  93.                                       (_format (caddr x) 4)
  94.                                       ""
  95.                                       ""
  96.                                 )
  97.                               )
  98.                              verts
  99.                      )
  100.            )
  101.            (setq lst (xd::table:celltile
  102.                        '("序 号" "X坐标" "Y坐标" "Z坐标" "凸 度" "边 长")
  103.                        1
  104.                        lst
  105.                      )
  106.            )
  107.            (setq i   0
  108.                  lst (mapcar '(lambda (x)
  109.                                 (if (= i 0)
  110.                                   (progn (setq i (1+ i)) (list x))
  111.                                   (list x x)
  112.                                 )
  113.                               )
  114.                              lst
  115.                      )
  116.                  lst (cons (list "界址点坐标表" nil nil nil nil nil)
  117.                            (apply 'append lst)
  118.                      )
  119.            )
  120.            (if (setq pt (getpoint "\n表格插入点<退出>:"))
  121.              (progn (xd::text:init 1)
  122.                     (setq tb (xd::table:makefromlist lst pt #xd_table_txt_height 0.0))
  123.                     (xd::table:begin tb)
  124.                     (_mergecell tb 0 3 2)
  125.                     (_mergecell tb 4 5 3)
  126.                     (_writebulges tb)
  127.                     (if (not #xd_table_res_z)
  128.                       (xdrx_table_deletecolumns tb 3 1)
  129.                     )
  130.                     (xdrx_table_setrowheight tb 0 (* 2.0 #xd_table_txt_height))
  131.                     (xdrx_table_setrowheight tb 1 (* 2.0 #xd_table_txt_height))
  132.                     (xdrx_setpropertyvalue
  133.                       tb
  134.                       "HorzCellMargin"
  135.                       (/ #xd_table_txt_height 2.0)
  136.                       "autosize"
  137.                       t
  138.                     )
  139.                     (xd::table:end tb)
  140.              )
  141.            )
  142.     )
  143.   )
  144.   (xdrx_sysvar_pop)
  145.   (xdrx_end)
  146.   (princ)
  147. )

[/sell]

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

已领礼包: 3904个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 8987个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 23个

财富等级: 恭喜发财

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

使用道具 举报

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 47个

财富等级: 招财进宝

发表于 2019-11-25 14:18:34 | 显示全部楼层
绘制宗地图在没有CASS软件的情况,使用该插件可以快速实现,赞一个
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 47个

财富等级: 招财进宝

发表于 2019-11-25 14:30:04 | 显示全部楼层
测试不成功,白白损失10个豆,显示“致命错误 ,无法写入放弃文件(可能磁盘已满)”,点确定后就退出CAD了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 47个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 408个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 59个

财富等级: 招财进宝

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

使用道具 举报

发表于 2020-9-18 12:20:19 | 显示全部楼层
本帖最后由 wx_bn5Y8HHA 于 2020-9-18 12:21 编辑

是不是可以增加一些信息,这样有助于放样表格制作。当然直接在线段上标注编号那就更完美了。
I80V`5B`WY0$OR%MI`25PU5.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 03:36 , Processed in 0.222108 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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