找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: jxwlkj

[已解决] 【已解决】求自动修改块属性

[复制链接]

已领礼包: 859个

财富等级: 财运亨通

发表于 2017-3-3 21:33:23 | 显示全部楼层
本帖最后由 csharp 于 2017-3-3 21:44 编辑

  1. (defun c:tt (/ ss _getatt a4 al lst getposition)
  2.   (defun _getatt (l tag)
  3.     (car (vl-remove-if-not
  4.            (function (lambda (x) (= (xdrx_getpropertyvalue x "tag") tag)))
  5.            l
  6.          )
  7.     )
  8.   )
  9.   (defun getposition (b p str / p1 v l atts)
  10.     (setq p1   (xdrx_getpropertyvalue b "position")
  11.           v    (mapcar '- p1 (mapcar '+ '(4.5 5.0 0) p))
  12.           l    (mapcar 'fix (mapcar '/ v '(36.0 50.0 1.)))
  13.           atts (xdrx_getpropertyvalue b "attributeentities")
  14.     )
  15.     (list (xdrx_getpropertyvalue (_getatt atts "WIRENO") "textstring")
  16.           (_getatt atts "XREF")
  17.           (strcat "/"
  18.                   str
  19.                   "."
  20.                   (itoa (1+ (car l)))
  21.                   (chr (+ 65 (cadr l)))
  22.           )
  23.     )
  24.   )
  25.   (if (and (setq ss (ssget '((0 . "INSERT") (2 . "HA1S1"))))
  26.            (setq a4 (ssget "x" '((0 . "INSERT") (2 . "A4"))))
  27.       )
  28.     (progn
  29.       (setq al        (xdrx_pickset->ents ss)
  30.             lst        (mapcar
  31.                   '(lambda (x / p2 atts no l)
  32.                      (mapcar 'set '(p2 atts box) (xdrx_getpropertyvalue x "position" "attributeentities" "boundingbox"))
  33.                      (setq no (last (xdrx_string_split
  34.                                       (xdrx_getpropertyvalue (_getatt atts "4") "textstring")
  35.                                       "-"
  36.                                     )
  37.                               )
  38.                      )
  39.                      (setq l (vl-remove-if-not
  40.                                (function (lambda (a)
  41.                                            (xdrx_point_isinside (xdrx_getpropertyvalue a "position") box)
  42.                                          )
  43.                                )
  44.                                al
  45.                              )
  46.                      )
  47.                      (if l
  48.                        (progn
  49.                          (foreach i l (setq al (vl-remove i al)))
  50.                          (mapcar '(lambda (a) (getposition a p2 no)) l)
  51.                        )
  52.                        nil
  53.                      )
  54.                    )
  55.                   (xdrx_pickset->ents a4)
  56.                 )
  57.             lst        (xd::list:groupbyindex (apply 'append lst) 0)
  58.       )
  59.       (mapcar '(lambda (x)
  60.                  (if (= (length x) 2)
  61.                    (progn
  62.                      (xdrx_setpropertyvalue (caar x) "textstring" (cadadr x))
  63.                      (xdrx_setpropertyvalue (caadr x) "textstring" (cadar x))
  64.                    )
  65.                  )
  66.                )
  67.               (mapcar 'cdr lst)
  68.       )
  69.     )
  70.   )
  71.   (princ)
  72. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 1310个

财富等级: 财源广进

 楼主| 发表于 2017-3-3 21:54:24 | 显示全部楼层

感谢csharp,可以用。非常感谢。大量的两两对应一次搞定,剩下的用手动选择也很快就处理完成。顺便也学到了不少东西。真希望自己可以快点成长起来也可以帮助到有需要的人。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-3-3 21:55:49 | 显示全部楼层

屏幕录像你试试这个,把结果录个传上来看看。

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

使用道具 举报

已领礼包: 1310个

财富等级: 财源广进

 楼主| 发表于 2017-3-3 22:59:17 | 显示全部楼层
花了些时间,终于弄好了GIF了。现在传效果出来, 录像5_转.gif

先用自动的处理,因为DWG里图框太多,只选择了部分代表性的录制。
可以看到第4张图的下面那些接线,是要连接到第5张图的上面部分。所以需要进行标注引用。
自动的因为没有框选所有的图框,也就是在框选范围内没有两两对应的标号就没有生成引用。
然后有多个相同的标号的。用手动的来选择。就可以再次生成引用。
再次感谢csharp。

评分

参与人数 1D豆 +5 收起 理由
newer + 5 有始有终奖!

查看全部评分

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-3-3 23:03:43 | 显示全部楼层

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

使用道具 举报

已领礼包: 1310个

财富等级: 财源广进

 楼主| 发表于 2017-3-3 23:14:18 | 显示全部楼层

是啊,以前用手工太慢了,要记下每根线的位置,要到哪张图去,再一根线一根线的去对,修改。现在可算是节约了很多的时间。这一切都归功于论坛和csharp的无私帮助。感谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4365个

财富等级: 富可敌国

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-19 22:31 , Processed in 0.318438 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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