nyistjz 发表于 2021-6-22 15:03:27

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

本帖最后由 nyistjz 于 2021-6-25 08:59 编辑

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

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

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

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





fangmin723 发表于 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 "群组")
      )
      .
      .
      .
      .
)

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

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


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



nyistjz 发表于 2021-6-24 15:24:42

ssyfeng 发表于 2021-6-24 13:38
代码见附件:

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

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

是否可以用普通 的选择办法,类似于原生删除的那种选择,ssget?

fangmin723 发表于 2021-6-22 15:29:22

本帖最后由 fangmin723 于 2021-6-22 15:30 编辑

这还判断啥啊,直接返回就得了(CDR (ASSOC 0 (ENTGET (CAR (ENTSEL)))))

nyistjz 发表于 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)))))

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

nyistjz 发表于 2021-6-24 08:48:55

有没有高手可以搞定这个问题?
还请朋友们能够帮忙!

ssyfeng 发表于 2021-6-24 12:43:54

看看是不是这个效果:

nyistjz 发表于 2021-6-24 13:08:51

本帖最后由 nyistjz 于 2021-6-24 13:30 编辑

ssyfeng 发表于 2021-6-24 12:43
看看是不是这个效果:
就是这个意思,您能把代码附上来分享给大家吗?

ssyfeng 发表于 2021-6-24 13:38:57

本帖最后由 ssyfeng 于 2021-6-24 16:50 编辑

代码见附件:

页: [1] 2
查看完整版本: 图块分解按需加载的程序合并问题