明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 753|回复: 3

求助大神:已知图元名,判断该图元是否在某个块内,如果在块内,获取父块名称

[复制链接]
发表于 2020-12-1 13:06:09 | 显示全部楼层 |阅读模式
如题,求助!求助!求助!
发表于 2020-12-2 11:48:16 | 显示全部楼层
遍历所有块,然后查找到了返回图块名
 楼主| 发表于 2020-12-3 07:56:58 | 显示全部楼层
jun353835273 发表于 2020-12-2 11:48
遍历所有块,然后查找到了返回图块名

谢谢你啊,我试试
发表于 2021-1-31 21:51:42 | 显示全部楼层
;;; 取嵌套块
(DEFUN C:Block-GetNestBlk (/ entSS nestlist nestlen NestBlkName mSPACE pt)
    ;; 选择对象
    (SETQ entSS (ENTSEL "\n ---- 选择嵌套块:"))
    (IF (NULL entSS)
        (EXIT)
    )
    ;; 提取由内向外嵌套表,计算嵌套长度【1,即无嵌套关系,0,非块】
    (SETQ nestlist (NTH 3 (NENTSELP (CADR entSS))))
    (SETQ nestlen (LENGTH nestlist))
;;;    (PRINC "\n ---- nestlist:")
;;;    (PRINC nestlist)
    ;; 检查选择是否为块,且点选的为嵌套块;插入块
    (IF (AND (= (CDR (ASSOC 0 (ENTGET (CAR entSS)))) "INSERT")
             (> nestlen 1)
        )
        (PROGN
            ;; 提取嵌套块名
            (SETQ NestBlkName (CDR (ASSOC 2 (ENTGET (CAR nestlist)))))
            (PRINC "\n ---- 嵌套块名:")
            (PRINC NestBlkName)
            ;; 拾取点并插入块
            (SETQ pt (GETPOINT "\n ---- 指定块插入点:"))
            (SETQ mSPACE (VLA-GET-MODELSPACE (VLA-GET-ACTIVEDOCUMENT (VLAX-GET-ACAD-OBJECT))))
            (VLA-INSERTBLOCK mSPACE (VLAX-3D-POINT pt) NestBlkName 1 1 1 0)
        )
        (ALERT "选择的图元不是块,或为非嵌套块")
    )
    (PRINC)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 12:46 , Processed in 0.159028 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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