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
);求块中块      

xiaocainiao 发表于 2023-12-17 15:49:49

wzg356 发表于 2023-12-17 15:43
blk块名
blks块名的表
(mapcar (function(lambda(st)(setq blks(append(getblks st)blks))))blks)


谢谢!我试一下

1028695446 发表于 2023-12-19 22:20:49

本帖最后由 1028695446 于 2023-12-26 08:44 编辑

xiaocainiao 发表于 2023-12-17 13:52
谢谢、我想要图块内子块的图元名、我先下载看下自己会不会改
已更新,,,,,,,,,,,,,

xiaocainiao 发表于 2023-12-25 14:17:24

1028695446 发表于 2023-12-19 22:20
已更新,,,,,,,,,,,,,

学习了、万分感谢

xiaocainiao 发表于 2023-12-27 10:10:16

1028695446 发表于 2023-12-19 22:20
已更新,,,,,,,,,,,,,

大神程序里面好像少了ss-enlst这个函数

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))
                )
        )
)

xiaocainiao 发表于 2023-12-27 11:00:22

1028695446 发表于 2023-12-27 10:14
;选择集与对象名表互转
(defun ss-enlst        (ss / enlst)
        (cond


谢谢、这回可以了

shiy65 发表于 2023-12-27 14:52:18

:dizzy:
你的问题看似简单,其实真有点复杂,说浅了,不顶用,说深了,目前你好像还不懂。建议先放弃。
先从了解“块”开始

shiy65 发表于 2023-12-27 15:07:20

(setq ent (entget (ssname (ssget) 0)))
在图中抓一个块,看看图原表,看看内容
用entnext遍历块中子项,依次提取
修改后用entmode更新
大概如此吧
页: 1 [2]
查看完整版本: 求教用ssget如何获取嵌套块中子块的图元名