找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: pxt2015

[已解决] 如何将直线(主梁、次梁)分组

[复制链接]

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-31 08:20:29 | 显示全部楼层
建议先找出连接的一个方向的主梁、次梁线,左右排序,这里涉及到挑梁时就麻烦点了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-31 08:27:10 | 显示全部楼层
satwe里面又框架梁的校核程序,主要问题就是施工图cad的识别。原位标注识别不准,施工图中梁的跨数与计算书不符、支座位置不符、梁上部原位标注不知道是上部支座筋还是跨中钢筋、标高上升或下降等,造成该程序的梁配筋校核基本都是错误的。但是框架梁的几款强条基本都是正确的。选择性使用还是可以的。
设计的思路也可以参照satwe程序的,基本大同小异。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 47个

财富等级: 招财进宝

 楼主| 发表于 2020-8-31 11:38:16 | 显示全部楼层
本帖最后由 pxt2015 于 2020-8-31 12:11 编辑

dyjwyqz5221 发表于 2020-8-31 08:02
之前,设计过一个梁校核的程序。很久了,后来api升级、加上手工绘制的cad图原位标注不规范等原因,就一直 ...


如果能先把多跨主梁、次梁按照这个逻辑关系分组读取出来,通过包围盒读取对应跨的计算书和实配钢筋就不难了。
核心问题是如何对梁线(中心线代表梁线)分组,按照支座区分梁线的跨数,当直线有角度时如何判断连续梁?
最终结果就是
lst= (((A1) (A2 A3 A4) (A5 A6 A7) (A8 A9 A10) (A11 A12 A13))
((B1) (B2 B3 B4) (B5 B6 B7) (B8 B9 B10) (B11 B12 B13)).......)
主要难点在于:
要将图元名A*从选择集里分离出来,然后从左到右分段:((A1) (A2 A3 A4) (A5 A6 A7) (A8 A9 A10) (A11 A12 A13))返回了图元名分组后的表lst后,生成各段A1,A2-A3-A4,A5-A6-A7,A8-A9-A10,A11-A12-A13的包围盒,根据包围盒就能读取配筋计算结果和实际配筋。

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

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-8-31 14:17:16 | 显示全部楼层
先别急着做框架梁的校核,我看首先做个框架柱的校核吧。一步一步来,框架梁用到的知识更多,框架柱就很麻烦。

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

使用道具 举报

已领礼包: 47个

财富等级: 招财进宝

 楼主| 发表于 2020-8-31 16:03:59 | 显示全部楼层
柱子校核简单啊,柱子只需要按照柱子pl线选择集转换成表返回lst柱=(A1 A2 A3……An),遍历即可,是一个简单的表

处理梁就非常复杂,涉及梁1和梁2……梁n的分组,按顺序排序,梁1里面按照梁跨分段。虽然难度大,但论坛里面的大神一定有办法。
lst梁= (((A1) (A2 A3 A4) (A5 A6 A7) (A8 A9 A10) (A11 A12 A13))
((B1) (B2 B3 B4) (B5 B6 B7) (B8 B9 B10) (B11 B12 B13)).......)

点评

梁线是图中是贯穿柱子 是是一根线,还是在每个柱子分别断开? 那次梁呢,被主梁是断开的,还是整体一根跨过主梁的?  详情 回复 发表于 2020-8-31 17:08
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-8-31 17:08:52 | 显示全部楼层
pxt2015 发表于 2020-8-31 16:03
柱子校核简单啊,柱子只需要按照柱子pl线选择集转换成表返回lst柱=(A1 A2 A3……An),遍历即可,是一个简单 ...

梁线是图中是贯穿柱子 是是一根线,还是在每个柱子分别断开?

那次梁呢,被主梁是断开的,还是整体一根跨过主梁的?

点评

[attachimg]102261[/attachimg] 如图所示,第一张为原始条件图,第二张文字分别为各直线的图元名,截图所有直线交点处都是断开的,如何判断连续梁?红色直线拐弯处,如何识别?  详情 回复 发表于 2020-8-31 21:18
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-8-31 17:16:00 | 显示全部楼层
pxt2015 发表于 2020-8-30 14:33
如果梁线有角度,而且连续梁的角度不完全一致,处理难度似乎很大。

斜的怎么判断是否是一个整体的,下面都可以借鉴


                               
登录/注册后可看大图

本帖最后由 newer 于 2020-8-31 17:12 编辑


超强的批量的“融合线段”工具
452 个回复 - 24846 次查看
见过一些专业软件都提供“融合直线”,“连接线段”等命令,但无外乎都是交互点两条合并,没见过支持批量的,而且更没见过支持“误差范围”的,有朋友私下建议,所以写了这么一个插件,大家用用,有建议跟帖。 需 ...
2013-10-25 12:53 - newer - 每日插件


带容差的哦



                               
登录/注册后可看大图

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

使用道具 举报

已领礼包: 47个

财富等级: 招财进宝

 楼主| 发表于 2020-8-31 21:18:31 | 显示全部楼层
newer 发表于 2020-8-31 17:08
梁线是图中是贯穿柱子 是是一根线,还是在每个柱子分别断开?

那次梁呢,被主梁是断开的,还是整体一 ...

141022oe48g4x66ii8t80t.png
如图所示,第一张为原始条件图,第二张文字分别为各直线的图元名,截图所有直线交点处都是断开的,如何判断连续梁?红色直线拐弯处,如何识别?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-8-31 23:21:21 | 显示全部楼层
pxt2015 发表于 2020-8-30 14:26
有诸位大神和热心lisper的参与,我看到希望了。本项目应用于梁配筋校核

1、总平面图:框选直线、PL线, ...

你这图处理的不干净,下面图的位置,有断线

搜狗截图20200831231916.jpg

点评

辛苦版主这么晚写代码。 这个dwg文件为了程序的通用性,旋转了角度,导致有一些零碎的断线,正常情况下是没有的。  详情 回复 发表于 2020-9-1 14:27
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-9-1 03:35:13 | 显示全部楼层
本帖最后由 newer 于 2020-9-1 04:08 编辑
pxt2015 发表于 2020-8-30 14:26
有诸位大神和热心lisper的参与,我看到希望了。本项目应用于梁配筋校核

1、总平面图:框选直线、PL线, ...

几个API函数就搞定了,代码没多少,理解下,有问题发帖

主次梁校核.gif


  1. (defun c:tt ()
  2.   (defun xd::line:group
  3.          (ss distsnap angsnap / an box box1 lst p1 p2 pnt x xdir y)
  4.     (if        (= (type ss) 'PICKSET)
  5.       (setq ss (xdrx-pickset->ents ss))
  6.     )
  7.     (setq box (xdrx-entity-box ss t)
  8.           ss  (mapcar
  9.                 '(lambda (x)
  10.                    (list
  11.                      (xd::geom:angleformat (xdrx-getpropertyvalue x "angle"))
  12.                      x
  13.                    )
  14.                  )
  15.                 ss
  16.               )
  17.     )
  18.     (setq ss (xd::list:groupbyindex ss angsnap))
  19.     (setq lst (mapcar '(lambda (x)
  20.                          (setq an   (car x)
  21.                                p1   '(0 0 0)
  22.                                p2   (polar p1 an 1.0)
  23.                                xdir (xdrx-vector-normalize (mapcar '- p2 p1))
  24.                                box1 (xdrx-points-box box xdir)
  25.                                p1   (car box1)
  26.                                p2   (polar p1 an 1.0)
  27.                                lst  (mapcar
  28.                                       '(lambda (y)
  29.                                          (setq
  30.                                            pnt (xdrx-getpropertyvalue y "midpoint")
  31.                                          )
  32.                                          (list (abs (xdrx-point-dist2line pnt p1 p2))
  33.                                                y
  34.                                          )
  35.                                        )
  36.                                       (cdr x)
  37.                                     )
  38.                                lst  (xd::list:groupbyindex lst distsnap)
  39.                                lst  (vl-sort lst '(lambda (x y) (< (car x) (car y))))
  40.                                lst  (mapcar
  41.                                       '(lambda (x)
  42.                                          (xdrx-entity-sortoncurve (list p1 p2) (cdr x))
  43.                                        )
  44.                                       lst
  45.                                     )
  46.                          )
  47.                        )
  48.                       ss
  49.               )
  50.     )
  51.     lst
  52.   )
  53.   (defun _write-txt (lst)
  54.     (setq start "@")
  55.     (xd::text:init 1)
  56.     (mapcar
  57.       '(lambda (x)
  58.          (mapcar
  59.            '(lambda (y)
  60.               (setq start (chr (+ (ascii START) 1)))
  61.               (setq no 0)
  62.               (mapcar
  63.                 '(lambda (z)
  64.                    (xdrx-getpropertyvalue z "midpoint" "direction")
  65.                    (if (< (car #direction) 0)
  66.                      (setq #direction (xdrx-vector-negate #direction))
  67.                    )
  68.                    (xdrx-text-make
  69.                      '(0 0 0)
  70.                      (strcat start "-" (itoa (setq no (1+ no))))
  71.                      500.0
  72.                    )
  73.                    (setq box (xdrx-text-box (entlast))
  74.                          pt  (xd::geom:get9pt box 2)
  75.                    )
  76.                    (xdrx-entity-align (entlast)
  77.                                       pt
  78.                                       (mapcar '+ pt '(1 0 0))
  79.                                       #midpoint
  80.                                       (mapcar '+ #midpoint #direction)
  81.                    )
  82.                  )
  83.                 y
  84.               )
  85.             )
  86.            x
  87.          )
  88.        )
  89.       lst
  90.     )
  91.   )
  92.   (xdrx-begin)
  93.   (xd::doc:getdouble "\n输入距离精度误差" "distsnap" 100.0)
  94.   (xd::doc:getdouble "\n输入角度精度误差" "angsnap" 0.1)
  95.   (if (and (setq ss (xdrx-ssget "\n选择梁<退出>:" '((8 . "*梁") (0 . "line"))))
  96.            (xdrx-curve-removedup ss)
  97.            (setq ss (xdrx-curve-intersectbreak ss))
  98.       )
  99.     (progn
  100.       (xd::doc:safezoom ss)
  101.       (setq lst (xd::line:group ss distsnap angsnap))
  102.       (_write-txt lst)
  103.     )
  104.   )
  105.   (xdrx-end)
  106.   (princ)
  107. )

点评

[attachimg]102275[/attachimg] 版主你好,如图所示,紫色这里排序不准确。第一行【相当于L35】期望的结果是: 第一行【要求从左往右排序,且分组】:lst35= '((35-1) (35-2 35-3 35-4)(35-5 35-6 35-7) (35-  详情 回复 发表于 2020-9-1 22:08
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 511个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 47个

财富等级: 招财进宝

 楼主| 发表于 2020-9-1 12:33:56 | 显示全部楼层
版主厉害了!但我执行贴出来的代码,不知道哪里原因得不到您动画的效果,还差一点点。如下图所示,排序乱了,lst长度=1

最终目的是得到各梁的图元名和包围盒,以便进行下一步梁配筋校对。




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

使用道具 举报

已领礼包: 47个

财富等级: 招财进宝

 楼主| 发表于 2020-9-1 12:35:26 | 显示全部楼层
版主厉害了!但我执行贴出来的代码,不知道哪里原因得不到您动画的效果,还差一点点。如下图所示,排序乱了,lst长度=1

最终目的是得到各梁的图元名和包围盒,以便进行下一步梁配筋校对。




更多图片 小图 大图
组图打开中,请稍候......

yjk配筋校对 (1).rar

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

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

使用道具 举报

已领礼包: 47个

财富等级: 招财进宝

 楼主| 发表于 2020-9-1 14:27:47 | 显示全部楼层
newer 发表于 2020-8-31 23:21
你这图处理的不干净,下面图的位置,有断线

辛苦版主这么晚写代码。
这个dwg文件为了程序的通用性,旋转了角度,导致有一些零碎的断线,正常情况下是没有的。

点评

程序的前三行,已经考虑了碎线情况,进行消重,重新打断,操作了  详情 回复 发表于 2020-9-1 16:09
别费劲了,非常麻烦的。satwe框架梁的校核相对比较成熟了。最近我正在与satwe编程人员沟通进行部分改进。对于pkpm、yjk适用的  详情 回复 发表于 2020-9-1 16:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-9-1 16:03:41 | 显示全部楼层
pxt2015 发表于 2020-9-1 14:27
辛苦版主这么晚写代码。
这个dwg文件为了程序的通用性,旋转了角度,导致有一些零碎的断线,正常情况下 ...

别费劲了,非常麻烦的。satwe框架梁的校核相对比较成熟了。最近我正在与satwe编程人员沟通进行部分改进。对于pkpm、yjk适用的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 17:13 , Processed in 0.206850 second(s), 63 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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