找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: grs432

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

[复制链接]
 楼主| 发表于 2014-11-19 16:15:48 | 显示全部楼层
st788796 发表于 2014-11-19 15:49
你先把  XDAPI 和 xd-lisp-lib.vlx 加载

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-19 16:25:20 | 显示全部楼层
grs432 发表于 2014-11-19 16:15
xdrx_polyline_numverts 这个是返回多段线顶点数的,,怎么在命令中体现不出来呢??

先给你个画线并作组的
  1. (defun c:tt (/ p pts p d pl pl1 p1 str tf)
  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 p        (getpoint (apply 'xdrx_line_midp pts) "\n弦高: ")
  11.               d        (* 2 (xdrx_point_dist2line p (cadr pts) (car pts)))
  12.         )
  13.         (setq pl (xdrx_polyline_make (cadr pts) (car pts)))
  14.         (xdrx_polyline_setbulgeat pl 0 (/ d (apply 'distance pts)))
  15.       )
  16.     )
  17.     (if        (and pl (> (length pts) 2))
  18.       (progn
  19.         (setq n (xdrx_polyline_numverts pl))
  20.         (xdrx_polyline_setpointat pl (1- n) (car pts))
  21.         (xdrx_polyline_addvertexat pl (1- n) (cadr pts))
  22.         (xdrx_polyline_setbulgeat
  23.           pl
  24.           (- n 2)
  25.           (/ d (distance (cadr pts) (caddr pts)))
  26.         )
  27.         (xdrx_polyline_setbulgeat
  28.           pl
  29.           (1- n)
  30.           (/ d (distance (car pts) (cadr pts)))
  31.         )
  32.       )
  33.     )
  34.   )
  35.   (if (and pl
  36.            (if (setq p (getpoint "\n引出点<回车端点>: "))
  37.              (progn
  38.                (setq tf nil)
  39.                p
  40.              )
  41.              (setq tf t
  42.                    p  (xdrx_curve_getendpoint pl)
  43.              )
  44.            )
  45.            (setq p1 (getpoint p "\n标注点: "))
  46.            (setq str (getstring "\n回路编号: "))
  47.       )
  48.     (progn
  49.       (setq
  50.         txt (xdrx_text_make p1 (strcase str) (getvar "textsize") 0.0)
  51.         pl1 (xdrx_polyline_make p p1)
  52.       )
  53.       (xdrx_polyline_setbulgeat pl1 0 0.5)
  54.       (if tf
  55.         (progn
  56.           (xdrx_curve_join pl pl1)
  57.           (xdrx_group_make "*" pl txt)
  58.         )
  59.         (xdrx_group_make "*" pl txt pl1)
  60.       )
  61.     )
  62.   )
  63.   (princ)
  64. )

点评

st788796您好,首先非常感谢您对我的问题的耐心解答,我也是认真的在试用您给的工具,为了让工具更完美些,我有几个建议。1、请问画线的时候点击下一点时如果点错了,能支持回退吗?CAD中回退是U的命令。这样子如果  详情 回复 发表于 2014-11-21 11:43
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-19 17:14:28 | 显示全部楼层
如果文字和线做成组就可以这样统计
  1. (defun c:tt (/ ss nl)
  2.   (if (setq ss (ssget '((0 . "text"))))
  3.     (progn
  4.       (setq nl
  5.              (mapcar
  6.                '(lambda        (x / lst ll n)
  7.                   (if (setq lst        (vl-remove-if
  8.                                   '(lambda (a)
  9.                                      (/= (xdrx_getpropertyvalue a "IsA")
  10.                                          "AcDbGroup"
  11.                                      )
  12.                                    )
  13.                                   (XD::Obj:Reactors x)
  14.                                 )
  15.                       )
  16.                     (progn
  17.                       (setq
  18.                         ll (xdrx_pickset->ents
  19.                              (xdrx_getpropertyvalue
  20.                                (car lst)
  21.                                "allEntities"
  22.                              )
  23.                            )
  24.                         n  (xdrx_getpropertyvalue (car ll) "numVerts")
  25.                       )
  26.                       (list (xdrx_getpropertyvalue (cadr ll) "textstring")
  27.                             (if        (= (length ll) 3)
  28.                               n
  29.                               (1- n)
  30.                             )
  31.                       )
  32.                     )
  33.                   )
  34.                 )
  35.                (xdrx_pickset->ents ss)
  36.              )
  37.       )
  38.       (foreach x nl
  39.         (princ "\n")
  40.         (princ x)
  41.         )
  42.     )
  43.   )
  44.   (princ)
  45. )

点评

[attachimg]11436[/attachimg] 成组后为什么统计错误??  详情 回复 发表于 2014-11-19 17:56
好的,非常感谢,我现在就试一下,对于论坛的函数库还不是特别了解,,先一个个对照着读。还是要努力学习~!!  详情 回复 发表于 2014-11-19 17:35
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-11-19 17:35:49 | 显示全部楼层
st788796 发表于 2014-11-19 17:14
如果文字和线做成组就可以这样统计

好的,非常感谢,我现在就试一下,对于论坛的函数库还不是特别了解,,先一个个对照着读。还是要努力学习~!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-11-19 17:56:16 | 显示全部楼层
本帖最后由 grs432 于 2014-11-19 18:01 编辑
st788796 发表于 2014-11-19 17:14
如果文字和线做成组就可以这样统计
QQ截图20141119180150.jpg


成组后为什么统计错误??

点评

选择对象: 指定对角点: 找到 4 个,4 个编组 选择对象: ; 错误: no function definition: XD::OBJ:REACTORS 这是什么问题呢??  详情 回复 发表于 2014-11-19 18:45
那不提示你缺函数了吗,去看看今天最新帖子,今天更新的一个函数。  详情 回复 发表于 2014-11-19 18:44
在开源函数库  详情 回复 发表于 2014-11-19 18:20
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 264个

财富等级: 日进斗金

发表于 2014-11-19 18:20:51 来自手机 | 显示全部楼层
grs432 发表于 2014-11-19 17:56
成组后为什么统计错误??

在开源函数库

点评

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

使用道具 举报

 楼主| 发表于 2014-11-19 18:28:29 | 显示全部楼层

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-11-19 18:44:33 | 显示全部楼层
grs432 发表于 2014-11-19 17:56
成组后为什么统计错误??

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

使用道具 举报

 楼主| 发表于 2014-11-19 18:45:13 | 显示全部楼层
grs432 发表于 2014-11-19 17:56
成组后为什么统计错误??

选择对象: 指定对角点: 找到 4 个,4 个编组
选择对象:  ; 错误: no function definition: XD::OBJ:REACTORS

这是什么问题呢??

点评

http://bbs.xdcad.net/thread-677350-1-1.html  详情 回复 发表于 2014-11-19 19:20
去看看今天最新的帖子,提供的函数。  详情 回复 发表于 2014-11-19 18:47
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-11-19 18:47:35 | 显示全部楼层
grs432 发表于 2014-11-19 18:45
选择对象: 指定对角点: 找到 4 个,4 个编组
选择对象:  ; 错误: no function definition: XD::OBJ:REAC ...

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2014-11-19 19:20:19 | 显示全部楼层
grs432 发表于 2014-11-19 18:45
选择对象: 指定对角点: 找到 4 个,4 个编组
选择对象:  ; 错误: no function definition: XD::OBJ:REAC ...

http://bbs.xdcad.net/thread-677350-1-1.html

点评

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

使用道具 举报

 楼主| 发表于 2014-11-19 21:20:01 | 显示全部楼层
eachy 发表于 2014-11-19 19:20
http://bbs.xdcad.net/thread-677350-1-1.html

对呀!!终于思路对上了呀!!后边只能靠自己整理了呀!!谢谢了呀!!!

点评

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

使用道具 举报

已领礼包: 264个

财富等级: 日进斗金

发表于 2014-11-19 21:48:03 来自手机 | 显示全部楼层
grs432 发表于 2014-11-19 21:20
对呀!!终于思路对上了呀!!后边只能靠自己整理了呀!!谢谢了呀!!!

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

使用道具 举报

 楼主| 发表于 2014-11-21 11:43:45 | 显示全部楼层
本帖最后由 grs432 于 2014-11-21 12:06 编辑
st788796 发表于 2014-11-19 16:25
先给你个画线并作组的

st788796您好,首先非常感谢您对我的问题的耐心解答,我也是认真的在试用您给的工具,为了让工具更完美些,我有几个建议。1、请问画线的时候点击下一点时如果点错了,能支持回退吗?CAD中回退是U的命令。这样子如果错了,退回重新再点。

2、另外还有个问题,如果成组后,再想加入线的话,能不能再给出个命令是先解组再画线的并且画上的线可以与以前的多段线直接连接在一起。画完线后重新打组。


3、另外,可以将点击自动连接以前的多段线单独写1个程序,这样会很方便。



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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-21 11:51:29 | 显示全部楼层
本帖最后由 st788796 于 2014-11-21 11:52 编辑
grs432 发表于 2014-11-21 11:43
st788796您好,首先非常感谢您对我的问题的耐心解答,我也是认真的在试用您给的工具,为了让工具更完美些 ...

首先,没有这样画过,只是凭自己想象出的操作模式写的程序,和实际应用肯定有距离

再者,你把实际中所能用到的操作都写写,这样再总结分成几个功能或者一个程序中的几个选项

1 2 3 问题都好解决

点评

另外,此次工具从开始我都是以通过多段线的顶点这个思路来统计经过块的数量,,那么有多段线经过多少个块的算法吗??且可以将块名和块的数量也打包在组中。  详情 回复 发表于 2014-11-21 12:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 10:06 , Processed in 0.223889 second(s), 67 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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