明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1302|回复: 11

[提问] 图块分解按需加载的程序合并问题

[复制链接]
发表于 2021-6-22 15:03:27 | 显示全部楼层 |阅读模式
本帖最后由 nyistjz 于 2021-6-25 08:59 编辑

如题,如何判断所选择元素的属性。
比如:
如果是直线的话,就返回直线;
如果是普通图块,就返回普通图块;
如果是属性块,就返回属性块;
如果昌组,就返回组;
……

我的目的,是想让lisp根据所选择元素不同的属性执行不同的操作。

------------------------------------------------------------------------------------------------------------------------------------------------------

附件是9楼朋友写出来的程序,在选择内容的时候,虽然已经完整的实现了所需要的功能,但没有原生选择的预览功能,不太直观,请网上的各位朋友们看一下,是否可以修改的更为好用,谢谢!





本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-6-22 15:47:17 | 显示全部楼层
nyistjz 发表于 2021-6-22 15:31
(CDR (ASSOC 0 (ENTGET (CAR (ENTSEL)))))

您写的这个,好您好像识别不了组,和多重嵌套。您测试一下 ...
其他的自己弄哈
(setq entpy (strcase (cdr (assoc 0 (if (= (cdr (assoc 102 (setq edata (entget (car (entsel)))))) "{ACAD_REACTORS") (entget (cdr (assoc 330 edata))) edata)))))
(cond
        ((equal entpy "LINE")
                (alert "直线")
        )
        ((equal entpy "INSERT")
                (alert "块")
        )
        ((equal entpy "GROUP")
                (alert "群组")
        )
        .
        .
        .
        .
)
 楼主| 发表于 2021-6-23 09:50:04 | 显示全部楼层
本帖最后由 nyistjz 于 2021-6-23 09:51 编辑
fangmin723 发表于 2021-6-22 15:47
其他的自己弄哈
(setq entpy (strcase (cdr (assoc 0 (if (= (cdr (assoc 102 (setq edata (entget (car ( ...

谢谢您的回复!本来想根据您所给到的返回来自己修改个小程序,但折腾了一个晚上,最后发现还是不行,水平有限,终究是搞不定。
请大侠帮忙看看,是否可以把我附件中的这些命令整合进一个命令。

大概意思就是:
根据选择的内容,循环判断所属类型,执行不同的命令,相应的可以自动执行分解属性块、分解多重插入、解散群组、绑定外部参照,等动作,而不需要人为的进行判断。


相应的分解程序已经放在了附件中。



本帖子中包含更多资源

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

x
 楼主| 发表于 2021-6-24 15:24:42 | 显示全部楼层

选择需要处理的范围[角点一]:
选择需要处理的范围[角点二]:; 错误: 参数类型错误: lselsetp nil
命令: *取消*

你这个选择方法好像有点问题,选不中内容。

是否可以用普通 的选择办法,类似于原生删除的那种选择,ssget  ?
发表于 2021-6-22 15:29:22 | 显示全部楼层
本帖最后由 fangmin723 于 2021-6-22 15:30 编辑

这还判断啥啊,直接返回就得了(CDR (ASSOC 0 (ENTGET (CAR (ENTSEL)))))
 楼主| 发表于 2021-6-22 15:31:04 | 显示全部楼层
本帖最后由 nyistjz 于 2021-6-22 15:46 编辑
fangmin723 发表于 2021-6-22 15:29
这还判断啥啊,直接返回就得了(CDR (ASSOC 0 (ENTGET (CAR (ENTSEL)))))

(CDR (ASSOC 0 (ENTGET (CAR (ENTSEL)))))

您写的这个,好您好像识别不了组,和多重嵌套。您测试一下,是不是这个样子,感谢 !

本帖子中包含更多资源

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

x
 楼主| 发表于 2021-6-24 08:48:55 | 显示全部楼层
有没有高手可以搞定这个问题?
还请朋友们能够帮忙!
发表于 2021-6-24 12:43:54 | 显示全部楼层
看看是不是这个效果:

本帖子中包含更多资源

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

x
 楼主| 发表于 2021-6-24 13:08:51 | 显示全部楼层
本帖最后由 nyistjz 于 2021-6-24 13:30 编辑
ssyfeng 发表于 2021-6-24 12:43
看看是不是这个效果:

就是这个意思,您能把代码附上来分享给大家吗?
发表于 2021-6-24 13:38:57 | 显示全部楼层
本帖最后由 ssyfeng 于 2021-6-24 16:50 编辑

代码见附件:

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-5-16 20:13 , Processed in 0.189095 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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