找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4034|回复: 13

[求助] 如何提取块中块列表,并对嵌套的子块进行处理????

[复制链接]
发表于 2016-6-12 20:20:19 | 显示全部楼层 |阅读模式

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

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

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

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-6-12 20:33:46 | 显示全部楼层
tblsearch 搜索块表指定块名
然后一直entnext,如果遇到INSERT,递归搜索
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2016-6-12 22:51:59 | 显示全部楼层
改造了一下,但没好使
(defun c:tt (/ e cc)
(setq cc 0)
(if (and (setq e (car (entsel "\n选择块:")))(= "INSERT" (cdr (assoc 0 (entget e)))))
(progn
   (cbc e)
   (entupd e)
) )
(princ)
)
; (entmod (subst (cons (car (assoc 8 (entget (entlast)))) "DX-DL")(assoc 8 (entget (entlast))) (entget (entlast))))
(defun cbc(e / b bb e c)
(setq cc (+ cc 1))   
(setq e (tblobjname "block" (cdr (assoc 2 (setq bb (entget e)))))
)
(entmod (subst (cons (car (assoc 2 bb)) "GY_DL")(assoc 2 bb) bb))
(entupd e)  更新后图块并没有什么变化???????????
(while (setq e (entnext e))
  (if (= "INSERT" (cdr (assoc 0 (setq el (entget e)))))
    (cbc e)
    (if (= "ATTDEF" (cdr (assoc 0 (setq el (entget e)))))
      (progn       
        (entmod (subst (cons (car (assoc 3 e1)) cc)(assoc 3 e1) e1))
        (entupd e)  更新后图块并没有什么变化???????????
    ) )
  )
)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

 楼主| 发表于 2016-6-12 23:23:27 | 显示全部楼层
我就想修改块中的块,类似于将子块替换,属性值也没替换成啊,是(entupd  的事,如何修改,请高手指教一二,多谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2016-6-12 23:27:52 来自手机 | 显示全部楼层
挚友01 发表于 2016-6-12 23:23
我就想修改块中的块,类似于将子块替换,属性值也没替换成啊,是(entupd  的事,如何修改,请高手指教一二, ...

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2016-6-13 16:37:06 来自手机 | 显示全部楼层
块定义的原点始终是(0 0 0),块定义内部引用其它块定义和在模型空间插入块并无两样,插入嵌套块时插入点相对坐标和块定义内部一样的,当然有比例和旋转的需要进行变换
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-14 08:25:55 | 显示全部楼层
((-1 . <图元名: 796f1c38>) (0 . "INSERT") (330 . <图元名:
796f16d8>) (5 . "28F") (100 . "AcDbEntity") (67 . 0) (8 . "0") (62 . 3) (100 .
"AcDbBlockReference") (2 . "JXT_1_1") (10 -1.44501e-006 -122.63 0.0) (41 . 1.0)
(42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210
0.0 0.0 1.0))


我是在(0 0 0)点插入的主块,其它的块都是正常定义的,怎么偏到很远的地方了?
defun block_SBTH_P(e / bb e c el)
(setq cc (+ cc 1))   
(setq e (tblobjname "block" (cdr (assoc 2 (setq bb (entget e))))))
(while (setq e (entnext e))
  (if (and (= "INSERT" (cdr (assoc 0 (setq bb (entget e)))))(= "JXT_1_1" (cdr (assoc 2 bb))))
    (progn
      (setq pnt (cdr (assoc 10 bb)))

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2016-6-14 11:49:36 | 显示全部楼层
挚友01 发表于 2016-6-14 08:25
((-1 . ) (0 . "INSERT") (330 . ) (5 . "28F") (100 . "AcDbEntity") (67 . 0) (8 . "0") (62 . 3) (100 . ...

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

使用道具 举报

 楼主| 发表于 2016-6-18 12:16:00 | 显示全部楼层
((-1 . <图元名: 796f1c38>) (0 . "INSERT") (330 . <图元名:
796f16d8>) (5 . "28F") (100 . "AcDbEntity") (67 . 0) (8 . "0") (62 . 3) (100 .
"AcDbBlockReference") (2 . "JXT_1_1") (10 -1.44501e-006 -122.63 0.0) (41 . 1.0)
(42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210
0.0 0.0 1.0))
子块的插入点并不是子块实际的插入的位置点,主块插入点为'(100 100) 主块大小为50x50(长x宽)
可子块返回的位置点为(10 -1.44501e-006 -122.63 0.0),怎么理解??(所有建块都是块中心点,包括子块的建立)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 20:44 , Processed in 0.184577 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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