找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 855|回复: 7

[求助] 怎么样获取嵌套块引用的插入坐标? ( A->B->C->D,获取D在A里的坐标)

[复制链接]

已领礼包: 2个

财富等级: 恭喜发财

发表于 2020-6-24 11:17:50 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 takeeasy 于 2020-6-24 11:20 编辑

各位大神,请教一个新手问题~ 十分感谢各位的阅读和回复
比如有4层嵌套块引用, A->B->C->D
A块引用 中有 B块引用
B块引用 中有 C块引用
C块引用 中有 D块引用
怎么获得D块引用在A块引用的位置坐标?

是通过一层层explode,把D打散到A块里, 再读坐标? 如果这样的话, 怎么用自动获取嵌套关系?
还是通过其他方法?


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

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2020-6-28 09:13:58 | 显示全部楼层
自己顶一下, 继续求助
就是要获得在位编辑里的树目录结构信息
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2020-6-28 09:16:41 | 显示全部楼层
takeeasy 发表于 2020-6-28 09:13
自己顶一下, 继续求助
就是要获得在位编辑里的树目录结构信息

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2020-7-3 09:07:49 | 显示全部楼层
Lispboy 发表于 2020-6-28 09:16
图块都有变换矩阵,可以得到,嵌套得到没层的,
然后把矩阵左乘下,作用到对象就可以了

谢谢答复请问图块矩阵是什么?怎么获得?

现在该问题我曲线解决了
通过dictionary记录下 blocks里的所以对应关系
D : C
C : B
B : A

比如我要获得D在A的坐标, 那么
用sendcommand be  依次进入B 块引用 炸开 C块引用,  .....进入A块引用 炸开B块引用,  

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2020-11-19 14:33:31 | 显示全部楼层
Lispboy 发表于 2020-6-28 09:16
图块都有变换矩阵,可以得到,嵌套得到没层的,
然后把矩阵左乘下,作用到对象就可以了

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

使用道具 举报

已领礼包: 199个

财富等级: 日进斗金

发表于 2022-6-13 15:32:01 | 显示全部楼层
采用递归就解决了。
如下:
(defun get::block:nr(e / mat0)
        (if (equal (xdrx-getpropertyvalue e "IsA") "AcDbBlockReference")
                (progn
                        (setq mat0 (xdrx-getpropertyvalue e "BlockTransform")
                                mat (cons mat0 mat)
                        );;;setq
                        (mapcar
                                '(lambda(x)
                                        (if (not (equal (xdrx-getpropertyvalue x "IsA") "AcDbBlockReference"))
                                                (if (equal (xdrx-getpropertyvalue x "IsA") "AcDbPolyline")
                                                        (setq lst (cons (list mat x) lst))
                                                );;if
                                                (get::block:nr x)
                                        );;;if
                                );;;lambda
                                (xdrx-getpropertyvalue e "Entities")
                        );;;mapcar
                );;;progn
        );;;if
);;;defun
(progn
        (setq lst nil
                mat nil
                e (car (xdrx-entsel "\n拾取块<退出>:" '((0 . "insert"))))
        )
        (get::block:nr e)
        (mapcar
                '(lambda(x)
                        (xdrx-polyline-make
                                (xdrx-points-transform
                                        (xdrx-getpropertyvalue (cadr x) "GetSamplePoints")
                                        (apply 'xdrx-matrix-product (car x))
                                );;;xdrx
                                t
                        );;;xdrx
                );;;lambda
                lst
        );;;mapcar
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 199个

财富等级: 日进斗金

发表于 2022-6-13 15:33:34 | 显示全部楼层
这是获取嵌套图块中多段线,并将其坐标进行转换后,绘制的图形,测试下,就明白啥意思了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 199个

财富等级: 日进斗金

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 23:24 , Processed in 0.398491 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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