找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3696|回复: 26

[编程申请] 图纸排列

[复制链接]

已领礼包: 264个

财富等级: 日进斗金

发表于 2014-9-17 04:54:13 | 显示全部楼层 |阅读模式

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

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

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

已领礼包: 3198个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-9-17 08:42:29 来自手机 | 显示全部楼层
那就一样大的排一起

点评

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

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

使用道具 举报

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-9-18 08:07:58 | 显示全部楼层
这个局限性很强,可以提供个简单排列,具体应用的时候在加约束条件即可

点评

通用的话,可以提高两个工具,一个是只运行几次的 拾取 边界 设置的,拾取后可以把实体类型什么的保存起来。 这样,不变的情况下,就读这个设置来找边界来进行处理。  详情 回复 发表于 2014-9-18 08:47
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-9-18 08:47:25 | 显示全部楼层
st788796 发表于 2014-9-18 08:07
这个局限性很强,可以提供个简单排列,具体应用的时候在加约束条件即可

通用的话,可以提高两个工具,一个是只运行几次的 拾取 边界 设置的,拾取后可以把实体类型什么的保存起来。 这样,不变的情况下,就读这个设置来找边界来进行处理。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3198个

财富等级: 富可敌国

发表于 2014-9-18 09:04:17 | 显示全部楼层
我觉得应该按图号从左至右,从上至下排序,设定列数,行距,列距 后重排,楼主这个,只是对齐,中间还有空的,空出来没意义吧,另外还要考虑到大小图框的问题,上传个文档供测试


TEST1.rar

101.66 KB, 下载次数: 29

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

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-9-18 09:59:34 来自手机 | 显示全部楼层
最大框应该有特征,如块、特定层线,如果是块里面有属性还可以提取属性作为排序的约束条件,最基本的就是构造框选集,遍历求box,根据box特征分组,每个组再用框去排行列,最后移动完成

点评

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

使用道具 举报

已领礼包: 3198个

财富等级: 富可敌国

发表于 2014-9-18 13:43:35 | 显示全部楼层
csharp 发表于 2014-9-18 09:59
最大框应该有特征,如块、特定层线,如果是块里面有属性还可以提取属性作为排序的约束条件,最基本的就是构 ...

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2014-9-19 11:31:53 | 显示全部楼层
先写个行对齐的
  1. (defun c:tt (/ ss dis ptl firstBox v)
  2.   (if (and (setq e (car (xdrx_entsel "\nPick Insert: " '((0 . "INSERT")))))
  3.            (setq dis (getdist "\nSpace Dist: "))
  4.            (progn
  5.              (princ "\n选择范围<回车全选>.....")
  6.              (setq filter (list (assoc 2 (entget e))))
  7.              (if (not (setq ss (ssget filter)))
  8.                (setq ss (ssget "x" filter))
  9.                ss
  10.              )
  11.            )
  12.       )
  13.     (progn
  14.       (setq ptl             (mapcar 'xdrx_entity_box (xdrx_pickset->ents ss))
  15.             ptl             (vl-sort ptl
  16.                               '(lambda (x1 x2)
  17.                                  (if (equal (caar x1) (caar x2) 1e-3)
  18.                                    (> (cadar x1) (cadar x2))
  19.                                    (< (caar x1) (caar x2))
  20.                                  )
  21.                                )
  22.                      )
  23.             firstBox (car ptl)
  24.             v             (mapcar '- (caddr firstBox) (car firstBox))
  25.             ptl             (XD::List:TableSort
  26.                        (mapcar '(lambda        (x)
  27.                                   (list
  28.                                     (last x) ;_左上角
  29.                                     (last x)
  30.                                     (cadr x) ;_右下角
  31.                                   )
  32.                                 )
  33.                                ptl
  34.                        )
  35.                        0
  36.                        3
  37.                        (car v) ;_行以高度为误差
  38.                      )
  39.       )
  40.       (mapcar '(lambda (x / row basePnt position basePnt baseBox)
  41.                  (setq row        (mapcar 'cdr x)
  42.                        baseBox        (car row)
  43.                        basePnt        (car baseBox)                                       
  44.                        position        (mapcar
  45.                                   '(lambda (a b)
  46.                                      (setq
  47.                                        basePnt (polar
  48.                                                  basePnt
  49.                                                  0.
  50.                                                  (+ dis
  51.                                                     (- (caadr a) (caar a))
  52.                                                  )
  53.                                                )
  54.                                      )
  55.                                    )
  56.                                   row
  57.                                   (cdr row)
  58.                                 )
  59.                  )
  60.                  (mapcar '(lambda (a b)
  61.                             (if        (setq ss (ssget "C" (car a) (cadr a)));_不可有重叠
  62.                               (progn
  63.                                 (xdrx_entity_move
  64.                                   ss
  65.                                   (car a)
  66.                                   b
  67.                                 )
  68.                               )
  69.                             )
  70.                           )
  71.                          (cdr row)
  72.                          position
  73.                  )
  74.                )
  75.               ptl
  76.       )
  77.     )
  78.   )
  79.   (princ)
  80. )

20140919113050.jpg

点评

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

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-9-19 12:22:45 来自手机 | 显示全部楼层
eachy 发表于 2014-9-19 11:31
先写个行对齐的

行与行间没有处理

点评

补充几句,列之间大小不一致时还没有想好怎么处理  详情 回复 发表于 2014-9-20 09:40
楼主去哪儿呢? 提了问题就不管呢?  详情 回复 发表于 2014-9-19 22:13
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3198个

财富等级: 富可敌国

发表于 2014-9-19 22:13:55 | 显示全部楼层
csharp 发表于 2014-9-19 12:22
行与行间没有处理

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2014-9-20 09:40:14 | 显示全部楼层
csharp 发表于 2014-9-19 12:22
行与行间没有处理


补充几句,列之间大小不一致时还没有想好怎么处理
  1. (defun c:tt (/ ss dis ptl firstBox v maxHeightL nl nnl)
  2.   (if (and (setq e (car (xdrx_entsel "\nPick Insert: " '((0 . "INSERT")))))
  3.            (setq dis (getdist "\nSpace Dist: "))
  4.            (progn
  5.              (princ "\n选择范围<回车全选>.....")
  6.              (setq filter (list (assoc 2 (entget e))))
  7.              (if (not (setq ss (ssget filter)))
  8.                (setq ss (ssget "x" filter))
  9.                ss
  10.              )
  11.            )
  12.       )
  13.     (progn
  14.       (setq ptl               (mapcar 'xdrx_entity_box (xdrx_pickset->ents ss))
  15.             ptl               (vl-sort        ptl
  16.                                 '(lambda (x1 x2)
  17.                                    (if (equal (caar x1) (caar x2) 1e-3)
  18.                                      (> (cadar x1) (cadar x2))
  19.                                      (< (caar x1) (caar x2))
  20.                                    )
  21.                                  )
  22.                        )
  23.             firstBox   (car ptl)
  24.             v               (mapcar '- (caddr firstBox) (car firstBox))
  25.             ptl               (mapcar '(lambda (a) (mapcar 'cdr a))
  26.                                (XD::List:TableSort
  27.                                  (mapcar '(lambda (x)
  28.                                             (list
  29.                                               (last x) ;_左上角
  30.                                               (last x)
  31.                                               (cadr x) ;_右下角
  32.                                             )
  33.                                           )
  34.                                          ptl
  35.                                  )
  36.                                  0
  37.                                  3
  38.                                  (car v) ;_行以高度为误差
  39.                                )
  40.                        )
  41.             maxHeightL (mapcar
  42.                          '(lambda (x)
  43.                             (+ dis
  44.                                (apply
  45.                                  'max
  46.                                  (mapcar
  47.                                    'cadr
  48.                                    (mapcar
  49.                                      '(lambda (a)
  50.                                         (apply 'mapcar (cons '- a))
  51.                                       )
  52.                                      x
  53.                                    )
  54.                                  )
  55.                                )
  56.                             )
  57.                           )
  58.                          ptl
  59.                        )
  60.             nnl               (reverse maxHeightL)
  61.       )
  62.       (mapcar '(lambda (x)
  63.                  (setq nL  (cons (apply '+ nnl) nL)
  64.                        nnl (cdr nnl)
  65.                  )
  66.                )
  67.               maxHeightL
  68.       )
  69.       (mapcar '(lambda (x y / start basePnt position basePnt baseBox)
  70.                  (setq baseBox        (car x)
  71.                        basePnt        (car baseBox)
  72.                        basepnt        (list (car basePnt) y 0.)
  73.                        start        basepnt
  74.                        position        (mapcar
  75.                                   '(lambda (a b)
  76.                                      (setq
  77.                                        basePnt (polar
  78.                                                  basePnt
  79.                                                  0.
  80.                                                  (+ dis
  81.                                                     (- (caadr a) (caar a))
  82.                                                  )
  83.                                                )
  84.                                      )
  85.                                    )
  86.                                   x
  87.                                   (cdr x)
  88.                                 )
  89.                  )
  90.                  (mapcar '(lambda (a b)
  91.                             (if        (setq ss (ssget "C" (car a) (cadr a))) ;_不可有重叠
  92.                               (progn
  93.                                 (xdrx_entity_move
  94.                                   ss
  95.                                   (car a)
  96.                                   b
  97.                                 )
  98.                               )
  99.                             )
  100.                           )
  101.                          x
  102.                          (cons start position)
  103.                  )
  104.                )
  105.               ptl
  106.               (mapcar '(lambda (b)
  107.                          (- (cadr (caaar ptl)) b)
  108.                        )
  109.                       (cons 0.0 nl)
  110.               )
  111.       )
  112.     )
  113.   )
  114.   (princ)
  115. )
tukuang.gif

点评

将构造的行对齐点再次按列排Table后仅进行横向移动即可  详情 回复 发表于 2014-9-20 12:21
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 264个

财富等级: 日进斗金

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 17:38 , Processed in 0.264550 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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