xiaocainiao 发表于 2023-12-16 16:24:49

求教用ssget如何获取嵌套块中子块的图元名

求教一下!如果用SSGET选择图块、如何获取每个块中子块的图元名?


我知道用nentsel可以获取嵌套块中子块的图元名、如下代码:
(setq en (nentsel "\n拾取块内图元:"))
(setq ent (cadddr en))


但是用ssget就不知道怎么操作了

wzg356 发表于 2023-12-17 15:43:34

本帖最后由 wzg356 于 2023-12-17 15:44 编辑


blk块名
blks块名的表
(mapcar (function(lambda(st)(setq blks(append(getblks st)blks))))blks)
(defun getblks (blk / e dxf lst blk2)
      (setq e(tblobjname "block" blk) lst(list blk))               
      (while(setq e(entnext e))                        
                (and(setq dxf(entget e))                              
                        (wcmatch(cdr(assoc 0 dxf)) "INSERT")
                        (setq blk2(cdr(assoc 2 dxf)))
                        (setq lst(cons blk2 lst))
                        (setq lst(append(getblks blk2)lst))
                )
      )lst
);求块中块      

1028695446 发表于 2023-12-27 10:14:34

xiaocainiao 发表于 2023-12-27 10:10
大神程序里面好像少了ss-enlst这个函数

;选择集与对象名表互转
(defun ss-enlst        (ss / enlst)
        (cond
                ((= (type ss) 'PICKSET)
                        (vl-remove-if-not '(lambda (x) (= (type x) 'ENAME)) (mapcar 'cadr (ssnamex SS)))
                )
                ((= (type ss) 'LIST)
                        (setq enlst (ssadd))
                        (last (mapcar '(lambda (x) (ssadd x enlst)) ss))
                )
        )
)

masterlong 发表于 2023-12-16 16:30:59

对你来说超纲了
放弃吧

xiaocainiao 发表于 2023-12-16 16:32:34

masterlong 发表于 2023-12-16 16:30
对你来说超纲了
放弃吧

要这么复杂吗

masterlong 发表于 2023-12-16 16:55:04

你可以搜一下
框选复制块内图元
我印象中论坛有但能用的极少
而且并不完美

vitalgg 发表于 2023-12-16 17:19:33

块内图元无法加入到选择集。
所以也无法用ssget 取到块内图元。
可以用遍历块定义内图元的方法取到块内图元。

如果知道块名,可以使用 @lisp函数 (block:ent-list "块名")取得块内图元列表。

xiaocainiao 发表于 2023-12-16 17:22:28

masterlong 发表于 2023-12-16 16:55
你可以搜一下
框选复制块内图元
我印象中论坛有但能用的极少


我不是要框选复制块内图元、就是想获取块内的子块图元名、想批量对块进行处理、普通图元不考虑

飞雪神光 发表于 2023-12-16 17:35:31

遍历子块 计算子块的包围框的点是否在ssget的包围框内?

1028695446 发表于 2023-12-16 17:53:24

本帖最后由 1028695446 于 2023-12-16 17:56 编辑

你要图块名还是图块的图元名?附件是获取图块名的,想要图元名,稍微改下就行了

xiaocainiao 发表于 2023-12-17 13:52:32

1028695446 发表于 2023-12-16 17:53
你要图块名还是图块的图元名?附件是获取图块名的,想要图元名,稍微改下就行了

谢谢、我想要图块内子块的图元名、我先下载看下自己会不会改

xiaocainiao 发表于 2023-12-17 14:56:21

1028695446 发表于 2023-12-16 17:53
你要图块名还是图块的图元名?附件是获取图块名的,想要图元名,稍微改下就行了

求教大神能不能改个获取子块图元名的程序、水平有限、你发的这个不会改
页: [1] 2
查看完整版本: 求教用ssget如何获取嵌套块中子块的图元名