找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5009|回复: 9

[求助] [已解决]关于天正材料统计表中的管件统计的修正

[复制链接]
发表于 2013-10-7 11:13:48 | 显示全部楼层 |阅读模式

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

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

×
天正材料表中管件命名一直不准,只是以为管径大小依次排序,比如三通DN50X50X40和三通50X40X50,天正一律命名为三通DN40X50X50,现在提取管线中的管径属性,以管径对每个线段进行分层,不知道是否可以对天正管件统计进行修正,望高手指点!
三通.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-10-7 12:04:21 | 显示全部楼层


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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-10-7 14:18:45 | 显示全部楼层
看来不能用这个自定义实体, DXF 中有起点没终点,vlax-dump-object 查询有长度没角度,只能导出为线去做了
先贴一个算法供参考, 把实体分配到点上后就可以判断是几通,用图层作管径
  1. (defun c:tt (/ ss el pts sp ep index)
  2.   (if (setq ss (ssget '((0 . "DN*"))));_特定图层
  3.     (progn
  4.       (setq el    (xdrx_pickset->ents ss);_实体列表
  5.         pts    (xdrx_curve_getinters ss);_所有交点,即起点 终点表,去重复
  6.       )
  7.       (foreach p pts;_遍历点表
  8.     (foreach e el;_遍历曲线
  9.       (setq    sp (xdrx_curve_getstartpoint e)
  10.         ep (xdrx_curve_getendpoint e)
  11.       )
  12.       (if (or (setq index (assoc sp ppl))
  13.           (setq index (assoc ep ppl))
  14.           )
  15.         (setq
  16.           ppl (subst (reverse (cons e (reverse index))) index ppl)
  17.         )
  18.         (setq ppl (cons (list p e) ppl));_将曲线分配到每个点上 ((p1 e11 e12 ...) (p2 e21 e22 ...) ...)
  19.       )
  20.     )
  21.       )
  22.     )
  23.   )
  24.   (princ)
  25. )

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-10-7 15:38:32 | 显示全部楼层
更正一下,两个点可以用 xdrx_entity_getstretchpoint 获得,这个函数前面也在天正实体上用过
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-10-7 16:46:22 | 显示全部楼层
先贴一段,后面处理是专业要求了
  1. (defun c:tt (/ ss e pts ptl)
  2.   (if (setq ss (ssget '((0 . "TCH_PIPE"))))
  3.     (progn
  4.       (xdrx_setsstodb ss 0)
  5.       (while (setq e (xdrx_getentdata 0))
  6.     (setq pts (mapcar '(lambda (x) (mapcar 'fix x))
  7.               (xdrx_entity_getstretchpoint e)
  8.           )
  9.     )   
  10.     (mapcar    (function (lambda (x / index)
  11.                 (if    (setq index (assoc x ptl))
  12.                   (setq ptl
  13.                      (subst (reverse (cons e (reverse index))) index ptl)
  14.                   )
  15.                   (setq ptl (cons (list x e) ptl))
  16.                 )
  17.               )
  18.         )
  19.         pts
  20.     )
  21.       )
  22.       (mapcar '(lambda (x / el p str)
  23.          (setq el (cdr x)
  24.                p  (car x)
  25.          )
  26.          (setq str (apply 'strcat
  27.                   (mapcar '(lambda (x / l st)
  28.                          (setq l   (entget x)
  29.                            st (strcat
  30.                              (strcase
  31.                                (cdr (assoc 301 l))
  32.                              )
  33.                              (rtos (cdr (assoc 140 l))
  34.                                    2
  35.                                    0
  36.                              )
  37.                                )
  38.                          )
  39.                          st
  40.                        )
  41.                       el
  42.                   )
  43.                )
  44.          )
  45.          (xdrx_text_make p str 1000 0.)
  46.            )
  47.           ptl
  48.       )
  49.     )
  50.   )
  51.   ;;(princ ptl)
  52.   (princ)
  53. )

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

使用道具 举报

 楼主| 发表于 2013-10-7 19:57:23 | 显示全部楼层
本帖最后由 xskfq 于 2013-10-7 20:33 编辑

专业说明:三通四通都是横平竖直的。

三通命名规则就是:三通—水平1*水平2*垂直,水平1管径值大于水平2的管径数值
图片中的三通按此规则,就是:三通DN50X50X40和三通50X40X50


四通命名规则就是:四通—水平1*水平2*垂直1*垂直2      水平1管径数值大于所有管径数值,垂直1大于垂直2  

弯头命名规则就是:弯头—水平*垂直


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

使用道具 举报

 楼主| 发表于 2013-10-7 20:30:40 | 显示全部楼层
本帖最后由 xskfq 于 2013-10-7 20:46 编辑

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-7 20:47:52 来自手机 | 显示全部楼层
ptl 里面的子表就是相连的管线吧,先去除一个线的,然后,三四个线的一次排序完成水平大小垂直大小
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 21:09 , Processed in 0.437960 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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