找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 14961|回复: 135

[已解决] 块与块连线程序求助

[复制链接]
发表于 2014-11-18 17:40:25 | 显示全部楼层 |阅读模式
悬赏20D豆已解决
本帖最后由 newer 于 2021-2-4 05:02 编辑

未标题-1.gif
想实现如上动画的程序。块与块之间自动连线或者隔1个连接1个(动画只做了块块的连线)。并有连线的数量提示,如动画上的1,2,3。最后将引出回路号(回路号可以自定义,如果引下一次回路可以自动增加回路号),同时标记出线经过块的数量。


1、同时询问一下,线经过块,统计块数量的函数怎么表达。
2、另外的思路是如果是多段线,请问多段线的顶点数量怎么表达。
3、如果图纸上的线经过的块或者是多段线的顶点数量有增加,能实现在单独图层中的数量自动增加吗?

最佳答案

查看完整内容

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

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-18 17:40:26 | 显示全部楼层
grs432 发表于 2014-11-24 11:06
块自动连线的那个就算了,不讨论了,那个没有通用性,还是手动布置线吧,平时好多块不是常规布置。。
...

先写个去点的
  1. (defun c:tt (/ e n bulge p1 p2 d)
  2.   (if (setq e (xdrx_entsel "\n点击去除的顶点: " '((0 . "lwpolyline"))))
  3.     (progn
  4.       (setq n (fix (apply 'xdrx_curve_getparamatpoint e)))
  5.       (cond
  6.         ((zerop n)
  7.          (xdrx_polyline_removevertexat (car e) 0)
  8.         )
  9.         ((= n (1- (xdrx_polyline_numverts (car e))))
  10.          (xdrx_polyline_removevertexat (car e) (1- n))
  11.         )
  12.         (t
  13.          (setq bulge (xdrx_polyline_getbulgeat (car e) n)
  14.                p     (xdrx_curve_getpointatparam (car e) (+ n 0.5))
  15.                p1    (xdrx_polyline_getpointat (car e) (1- n))
  16.                p2    (xdrx_polyline_getpointat (car e) (1+ n))
  17.                d     (distance
  18.                        p
  19.                        (xdrx_line_midp (xdrx_polyline_getpointat (car e) n) p2)
  20.                      )
  21.          )
  22.          (xdrx_polyline_removevertexat (car e) n)
  23.          (xdrx_polyline_setbulgeat
  24.            (car e)
  25.            (1- n)
  26.            (if (minusp bulge)
  27.              (- (/ (* 2.0 d) (distance p1 p2)))
  28.              (/ (* 2.0 d) (distance p1 p2))
  29.            )
  30.          )
  31.         )
  32.       )
  33.     )
  34.   )
  35.   (princ)
  36. )

点评

[attachimg]11584[/attachimg] 我今天刚想试程序,,这CAD的组不能用了,不显示组了。。疯了的节奏。。 又出现下面这个对话框。。唉!造什么孽了。 [attachimg]11585[/attachimg]  详情 回复 发表于 2014-11-24 17:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-18 17:52:26 | 显示全部楼层
你把专业描述说清楚,连线不复杂

点评

如附件图纸,回路已经连接好的,,能不能将回路线经过的块的数量分别统计到1个层上,并能导出到EXCEL表中。  详情 回复 发表于 2014-11-19 13:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-11-18 18:33:20 | 显示全部楼层
请把你画好后的成图DWG压缩附上来吧。

点评

附件是图纸 gd.rar 就如附件图纸,回路已经连接好的,,能不能将回路线经过的块的数量分别统计到1个层上,并能导出到EXCEL表中。  详情 回复 发表于 2014-11-19 13:47
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-11-19 13:47:51 | 显示全部楼层
本帖最后由 grs432 于 2014-11-25 11:11 编辑
XDSoft 发表于 2014-11-18 18:33
请把你画好后的成图DWG压缩附上来吧。


就如附件图纸,回路已经连接好的,,能不能将回路线经过的块的数量分别统计到1个层上,并能导出到EXCEL表中。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-11-19 13:48:35 | 显示全部楼层
本帖最后由 grs432 于 2014-11-25 11:10 编辑
st788796 发表于 2014-11-18 17:52
你把专业描述说清楚,连线不复杂

如附件图纸,回路已经连接好的,,能不能将回路线经过的块的数量分别统计到1个层上,并能导出到EXCEL表中。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-19 14:04:14 | 显示全部楼层
grs432 发表于 2014-11-19 13:48
如附件图纸,回路已经连接好的,,能不能将回路线经过的块的数量分别统计到1个层上,并能导出到EXCEL表中 ...

统计不了,画图不规范

点评

能将附件中的回路号和多段线的点统计到EXCEL表中呢?  详情 回复 发表于 2014-11-19 15:09
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-11-19 15:09:36 | 显示全部楼层
st788796 发表于 2014-11-19 14:04
统计不了,画图不规范

能将附件中的回路号和多段线的点统计到EXCEL表中呢?

副本.rar

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

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-19 15:16:50 | 显示全部楼层
grs432 发表于 2014-11-19 15:09
能将附件中的回路号和多段线的点统计到EXCEL表中呢?

你要是用这种线绘制的话,提取时只要提取 pline 顶点即可
  1. (defun c:tt (/ p pts p d pl)
  2.   (while (setq p (if pts
  3.                    (getpoint (car pts) "\n下一点: ")
  4.                    (getpoint "\n起点: ")
  5.                  )
  6.          )
  7.     (setq pts (cons p pts))
  8.     (if        (= (length pts) 2)
  9.       (progn
  10.         (setq
  11.           p (getpoint (apply 'xdrx_line_midp pts) "\n弦高: ")
  12.           d (* 2 (xdrx_point_dist2line p (cadr pts) (car pts)))
  13.         )
  14.         (setq pl (xdrx_polyline_make (cadr pts) (car pts)))
  15.         (xdrx_polyline_setbulgeat pl 0 (/ d (apply 'distance pts)))
  16.       )
  17.     )
  18.     (if        (and pl (> (length pts) 2))
  19.       (progn
  20.         (setq n (xdrx_polyline_numverts pl))
  21.         (xdrx_polyline_setpointat pl (1- n) (car pts))
  22.         (xdrx_polyline_addvertexat pl (1- n) (cadr pts))
  23.         (xdrx_polyline_setbulgeat
  24.           pl
  25.           (- n 2)
  26.           (/ d (distance (cadr pts) (caddr pts)))
  27.         )
  28.         (xdrx_polyline_setbulgeat
  29.           pl
  30.           (1- n)
  31.           (/ d (distance (car pts) (cadr pts)))
  32.         )
  33.       )
  34.     )
  35.   )
  36.   (princ)
  37. )

点评

不好意思,,刚看清你的程序是画线的,,我是了解一下,多段线的顶点数量和与线一起的回路号怎么取出。。  详情 回复 发表于 2014-11-19 15:51
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-19 15:23:14 | 显示全部楼层
另外,回路编号最好和连线做成一个组,这样检查方便,另外写出 excel 文件也方便

点评

[attachimg]11435[/attachimg] 我加载以后怎么会这样子。乱码。能不能做个演示我看一下,,好像不太明白?  详情 回复 发表于 2014-11-19 15:39
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-11-19 15:39:45 | 显示全部楼层
st788796 发表于 2014-11-19 15:23
另外,回路编号最好和连线做成一个组,这样检查方便,另外写出 excel 文件也方便

QQ截图20141119153746.jpg
我加载以后怎么会这样子。乱码。能不能做个演示我看一下,,好像不太明白?

点评

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

使用道具 举报

 楼主| 发表于 2014-11-19 15:41:10 | 显示全部楼层
grs432 发表于 2014-11-19 15:39
我加载以后怎么会这样子。乱码。能不能做个演示我看一下,,好像不太明白?

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-19 15:49:54 | 显示全部楼层
grs432 发表于 2014-11-19 15:41
手动打组的话,,是不是也能识别!!

你先把  XDAPI 和 xd-lisp-lib.vlx 加载

点评

xdrx_polyline_numverts 这个是返回多段线顶点数的,,怎么在命令中体现不出来呢??  详情 回复 发表于 2014-11-19 16:15
这个2个文件我加载过了,,怪我保存lisp语言选 的不对。。所以乱码了!! 您能给点多段点顶点数量统计的有关写法吗?主要是怎样识别线上的回路号。  详情 回复 发表于 2014-11-19 15:59
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-11-19 15:51:08 | 显示全部楼层
st788796 发表于 2014-11-19 15:16
你要是用这种线绘制的话,提取时只要提取 pline 顶点即可

不好意思,,刚看清你的程序是画线的,,我是了解一下,多段线的顶点数量和与线一起的回路号怎么取出。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-11-19 15:59:56 | 显示全部楼层
st788796 发表于 2014-11-19 15:49
你先把  XDAPI 和 xd-lisp-lib.vlx 加载

这个2个文件我加载过了,,怪我保存lisp语言选 的不对。。所以乱码了!!

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 10:20 , Processed in 0.426226 second(s), 64 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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